系统购物车上的php逻辑和会话价值管理

时间:2012-03-21 08:54:01

标签: php session logic shopping-cart

这是一个关于用PHP构建的电子商务购物车逻辑的问题:

我在购物车中有一个项目在php中保存了会话,此会话由一个组合字符串命名,其中唯一键由product_id给出:

$this->session->data['quote_total_'.$product_id];

问题是当我在购物车中添加相同产品但价格不同时 - 系统会根据错误,选项和数量的变化自动生成价格 - 实际上,购物车会话的第一个值是第一个产品价格的值被新的价值覆盖。这是避免这种覆盖的最佳方法吗?

我正在考虑在会话名称附加一个独特的值,但我不明白哪些......

4 个答案:

答案 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)
);