我们正在创建一个专业购物车的过程中,当我们的客户进行购买时,它在购买时在数据库中记录代销商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')");这能行得通吗?还是我会把事情搞砸?
发布于 2012-10-24 13:52:15
首先,使用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-24 20:34:55
你可能想看看JROX是怎么做的--他们是一个在Zen Cart中很受欢迎的联盟营销系统。它在这里描述:http://jam.jrox.com/docs/index.php?article=111
基本上,他们只是将自己的逻辑放在结账成功页面的页脚上。
https://stackoverflow.com/questions/13039870
复制相似问题