系统购物车上的php逻辑和会话值管理
这是一个关于php内置电子商务购物车逻辑的问题: 我将购物车中的一个项目与php中的一个会话一起保存,该会话由一个组合字符串命名,其中唯一键由产品id给出:系统购物车上的php逻辑和会话值管理,php,session,logic,shopping-cart,Php,Session,Logic,Shopping Cart,这是一个关于php内置电子商务购物车逻辑的问题: 我将购物车中的一个项目与php中的一个会话一起保存,该会话由一个组合字符串命名,其中唯一键由产品id给出: $this->session->data['quote_total_'.$product_id]; 问题是,当我在购物车中添加相同的产品,但价格不同时-价格由系统在错误、选项和数量发生变化时自动生成- 事实上,购物车会话的第一个值即第一个产品价格的值被新值覆盖。对于您来说,避免这种覆盖的最佳方法是什么 我正在考虑在会话名称中附
$this->session->data['quote_total_'.$product_id];
问题是,当我在购物车中添加相同的产品,但价格不同时-价格由系统在错误、选项和数量发生变化时自动生成-
事实上,购物车会话的第一个值即第一个产品价格的值被新值覆盖。对于您来说,避免这种覆盖的最佳方法是什么
我正在考虑在会话名称中附加一个唯一的值,但我不知道是哪一个…如何将此变量设置为数组而不是原始数据类型?与其将产品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);
}
使用会话变量中的产品id追加价格,以唯一标识具有不同价格的每个产品。还可以使用数组存储多个产品。创建多维数组,例如
$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)
);
我以前尝试过,但在添加产品时,我无法从上一封邮件中恢复价格,您有价格吗?对于将价格像id一样添加到会话名称中,我需要更改整数中的浮点数,只需将逗号替换为零,然后,对于在购物车方法getProducts()中检索价格我需要知道价格,这样我就不能工作了,我想。。。我说的对吗?相反,您可以使用产品id和价格作为字符串,并将它们关联起来,以唯一地标识具有不同价格的每个产品。产品id=123,价格为45.2美元,然后$this->session->data['123.'45.2'];我不明白它不会起作用,这是一个页面,你可以做我试图解释的事情,填写表格并单击蓝色按钮“acquista”,然后你可以看到购物车已更新,在更改宽度和高度输入字段[“Base(cm)”;Altezza(cm)]后再次尝试单击蓝色按钮,查看购物车,然后你可以看到发生了什么:有两种产品有不同的选择,但价格相同,最后一种……这不是一个好主意。如果是同一产品,数量必须是3,价格应该是30。