3

我目前正在构建一个简单的电子商务网站,但遇到了一个有趣的问题。

基本上,产品在产品表中,但也有许多其他选项,例如价格、颜色等……其中一些对总价格有影响。

但是,如果存在相同的产品但具有不同的选项集,那么产品 ID 显然是相同的,并且该项目不会添加到 codeigniter 购物车中。

我想到的最简单的方法是允许将具有相同 id 的产品包含在购物车中,这很容易吗?有没有更好的方法来解决这个问题?

任何想法都会非常有帮助!

4

1 回答 1

7

好的,所以我找到了我的问题的答案,人们可​​能会觉得有帮助。

基本上,我对 Codeigniter 的购物车类不支持的选项使用多维数组。

由于数组显示为数组,但也可能破坏了用于在 Codeigniter Cart 类中生成哈希的 implode 函数,因此生成了相同的行 ID。

要解决此问题,您可以在 CI_Cart 类中简单地替换此行:

$rowid = md5($items['id'].implode('', $items['options']));

用这条线:

$rowid = md5($items['id'].serialize($items['options']));

解决问题。

然后,这将创建多维数组的可存储表示作为文本,然后对其进行哈希处理,如果有一个多维数组用作选项值,则该表示将始终是唯一的。

于 2012-05-06T20:37:08.793 回答