这是一个关于用PHP构建的电子商务购物车逻辑的问题:
我在购物车中有一个项目在php中保存了会话,此会话由一个组合字符串命名,其中唯一键由product_id给出:
$this->session->data['quote_total_'.$product_id];
问题是当我在购物车中添加相同产品但价格不同时 - 系统会根据错误,选项和数量的变化自动生成价格 - 实际上,购物车会话的第一个值是第一个产品价格的值被新的价值覆盖。这是避免这种覆盖的最佳方法吗?
我正在考虑在会话名称附加一个独特的值,但我不明白哪些......
答案 0 :(得分:0)
如何将此变量设为数组而不是原始数据类型?
答案 1 :(得分:0)
不要使用产品ID作为密钥,只需自动创建密钥,该密钥将是数字的,并随每个产品递增
// add a product - new product will always be added
$this->session->data[] = array(
'product_id' => 123,
'qty' => 1,
'name' => 'Product Name',
'price' => 10
);
// you can iterate over the products like
foreach($this->session->data as $product)
{
print_r($product);
}
答案 2 :(得分:0)
在会话变量中附加产品ID的价格,以唯一标识具有不同价格的每个产品。并且还使用数组来存储多个产品。
答案 3 :(得分:-2)
创建多维数组,例如
$data = array([0]=>array(
'product_id' => 123,
'qty' => 1,
'name' => 'Product Name',
'price' => 10),
[1]=>array(
'product_id' => 123,
'qty' => 2,
'name' => 'Product Name',
'price' => 20)
);