0

我们正在创建一个专业购物车,当客户进行购买时,我们会在购买时将会员 ID 记录在数据库中。我创建了以下代码来使用 Post Affiliate Pro API 获取会员 ID/名称。

include ("affiliate/api/PapApi.class.php");
$session = new Gpf_Api_Session("https://www.elitespecialtymeats.com/affiliate/scripts/server.php"); 
if(!$session->login("user", "password")){ die("Cannot login. Message: ".$session->getMessage()); }
$clickTracker = new Pap_Api_ClickTracker($session);
try {
    $clickTracker->track();
    $clickTracker->saveCookies();
    if ($clickTracker->getAffiliate() != null){ $affid=$clickTracker->getAffiliate()->getValue('username'); }
    else{ $affid=''; }
}catch (Exception $e){
    $affid='';
}

我正在尝试找出将该 ID 添加到购买中的最佳方式。我认为最好将其添加到 tpl_checkout_success_default.php 中,在那里他们将购买记录到 PAP 中。我的问题是我对系统的了解不够,无法实现代码。

我最好的猜测是

 $db->Execute("UPDATE ".TABLE_ORDERS_TOTAL." SET affid='$affid' where orders_id = '".(int)$orders->fields['orders_id']."' AND class in ('ot_coupon', 'ot_gv', 'ot_subtotal', 'ot_group_pricing', 'ot_quantity_discount')");

这会起作用还是我会把事情搞砸?

4

2 回答 2

0

首先,使用 API 您正在加载会员用户名( ...getValue('username') ),而不是您在第一段中所述的会员 ID。您应该使用 getValue('userid'); (对于附属 ID)或 getValue('refid');(用于推荐 ID)。

您尝试使用的数据库命令仅在表 TABLE_ORDERS_TOTAL 有一个名为“affid”的列的情况下才有效。您可以手动将其添加到表中...

我想知道你为什么要做这样的事情......看起来你想稍后将 ID 用于某些特殊目的。即使客户删除了所有 cookie 或同时点击了另一个会员的横幅,您是否想给原始推荐人佣金?如果是这样,您应该改用终身佣金:http: //support.qualityunit.com/541587-Lifetime-commissions

如果您需要任何其他帮助,请随时联系我们的在线支持。

于 2012-10-24T05:52:15.147 回答
0

您可能想看看 JROX 的做法——它们是一个在 Zen Cart 中流行的联盟营销系统。它在这里描述:http: //jam.jrox.com/docs/index.php ?article=111

基本上,他们只是捎带结帐成功页面并将他们的逻辑粘贴在页脚中。

于 2012-10-24T12:34:54.637 回答