在我的网站上,我使用hook_add_to_cart_data
为项添加一些额外的自定义。当添加两个相同的产品但具有不同的$data
时,似乎ubercart压缩旧$data
并堆叠购物车中的商品,更新$qty
而不是添加新商品。< / p>
如何告诉ubercart将新商品和旧商品视为购物车中的不同商品,这样他们就不会堆叠,我可以控制这种行为吗?
答案 0 :(得分:1)
不,不应该,请参阅uc_cart.module中的uc_cart_get_contents
函数,第1358行:
for ($i = 0; $i < count($items[$cid]); $i++) {
if ($items[$cid][$i]->nid == $item->nid && $items[$cid][$i]->data == $item->data) {
$items[$cid][$i]->qty += $item->qty;
continue 2;
}
}
其中一个原因:在uc_cart_get_contents
实现中调用uc_cart_add_item
函数中的函数hook_add_to_cart_data
之前,其他一些模块合并(或清理)这两个产品的这些$数据。