如何将多种不同类型的产品添加到购物车

时间:2012-05-21 10:11:35

标签: php mysql

我正在创建一个购物车,我正在尝试添加不同类型的产品,例如Mobilesclothes等 我创建了一个add_to_cart方法并将产品添加到会话中,然后我将所有产品保存到数据库表中。 但现在我很困惑如何添加不同的产品,因为不同产品的参数不同,例如。

1. product_id, quantity, price for mobile.
2. product_id, quantity, price, size for cloths.
....

我应该为不同类型的产品创建不同的add_to_cart()方法。

4 个答案:

答案 0 :(得分:0)

在您的方案中,最好将产品选项作为JSON字符串发送,然后在服务器端对其进行解码,这样您就不必担心每种产品的不同选项。

因此产品可能有以下选项:

{color: "black", size: "large"}

产品二可能有:

{memory: "2 GB", harddisk: "750 GB"}

答案 1 :(得分:0)

只要产品至少有一些共同的领域,编写不同的方法并不完全合理。

其他属性可以简单地作为键值对传递。

将数据写入数据库时​​,您可以应用EAV modeling

答案 2 :(得分:0)

您可以继续使用 add_to_cart()

相反,你将添加一个数组参数,比如“attributes”或“extra”和 添加特定/唯一产品有价值的密钥。

然后在数据库中创建一个可变大小的“属性”列,例如。 VARCHAR(128) 并添加编码为 JSONs

的属性

你仍然可以搜索任何产品然后使用“LIKE'%”属性“:%'”(json)

这并不会强制您为每个新产品属性创建其他列。

答案 3 :(得分:0)

您可以在规范数组中保留主数组和规范中的基本常见内容,如下所示 产品[mobile] =>数组(name =>'test1',price =>'20'规格=数组('color'=> red,model =>'N70'等....))

产品[cloths] =>数组(name =>'test1',price =>'30'规格=数组('size'=>'XL',color =>'yello'等......))