我们正在创建一个专业购物车,我们在客户购买时会在购买时将Affiliate 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')");
这会起作用还是会弄乱一些东西?
答案 0 :(得分:0)
首先,使用API加载会员用户名(... getValue('username')),而不是您在第一段中所述的会员ID。你应该使用getValue('userid'); (对于会员ID)或getValue('refid'); (推荐ID)。
您尝试使用的数据库命令仅在表TABLE_ORDERS_TOTAL具有名为“affid”的列时才起作用。您可以手动将其添加到表格中......
我想知道你为什么要做这样的事情......看起来你想稍后将这个ID用于某些特殊用途。您是否想向原始推荐人提供佣金,即使客户已删除所有Cookie或同时点击其他联盟会员的横幅?如果是这样,您应该使用终身佣金: http://support.qualityunit.com/541587-Lifetime-commissions
如果您需要任何其他帮助,请随时联系我们的在线支持。
答案 1 :(得分:0)
您可能想看看JROX的做法 - 它们是受Zen Cart欢迎的联盟营销系统。这里描述了:http://jam.jrox.com/docs/index.php?article=111
基本上他们只是捎带到结帐成功页面并将其逻辑粘贴在页脚中。