我目前正在构建一个简单的电子商务网站,但遇到了一个有趣的问题。
基本上,产品在产品表中,但还有许多其他选项,例如价格、颜色等...其中一些会影响总价。
但是,如果存在相同的产品但具有不同的选项集,那么产品 ID 显然是相同的,并且该项目不会添加到 codeigniter 购物车中。
我想到的最简单的方法就是让相同id的商品加入购物车,这样容易吗?有没有更好的方法来解决这个问题?
任何想法都会很有帮助!
最佳答案
好的,所以我找到了我的问题的答案,人们可能会觉得有帮助。
基本上我使用多维数组作为 Codeigniter 购物车类不支持的选项。
这会生成相同的行 ID,因为数组显示为数组,但也可能破坏了用于在 Codeigniter Cart 类中生成哈希的内爆函数。
要解决这个问题,您可以简单地替换 CI_Cart 类中的这一行:
$rowid = md5($items['id'].implode('', $items['options']));
用这一行:
$rowid = md5($items['id'].serialize($items['options']));
解决问题。
然后,这将创建多维数组的可存储表示形式作为文本,然后对其进行哈希处理,并且如果存在用作选项值的多维数组,则该文本将始终是唯一的。
关于php - Codeigniter - 如果选项不同,则添加具有相同 ID 的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473740/