我现在正试图让它工作一段时间。
我的产品是隐形眼镜,当您想要订购时,您需要填写一些选项,例如半径、厚度、屈光度等两次(左眼和右眼)。
我想当我按添加到购物车时,在购物车中添加两次相同的产品(第一次是左眼选项,第二次是右眼选项)。
这在 Opencart 中可行吗?
基本上,您希望(对于某些产品)在屏幕上显示所有产品信息和选项两次,并在单击“添加到购物车”时将这两个集合添加到购物车中,以便它们显示为单独的产品。
在某些条件下重复这些选项是相当微不足道的。
然而遗憾的是,OpenCart 的 Add To Cart 只需要一组产品数据。它期望在四个地方做到这一点:
即使这样,在添加产品的代码中也存在一组产品选项的假设。
有很多代码可能需要更改 - 以及您通常不想弄乱的东西。
但是有办法。
让我们假设您不想弄乱 index.php?route=checkout/cart/add 并希望将代码保留在 product.tpl 模板和 JavaScript 中。
您首先需要做的是将产品输入(包括隐藏输入)包装在具有唯一类(例如 .lens-left)的 div 中,并使用该类名称代替行中的每个 .product-info 实例:
data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
接下来,编写一些在加载时在相关产品页面上触发的 JS,并且:
完成所有这些后,单击“添加到购物车”会将第一个产品添加到购物车,然后将第二个产品添加到购物车。按顺序而不是一起执行此操作意味着您一次只传递一组数据。使用JS添加第二套意味着没有JS的用户看不到它。
这可以通过使加载的 JS 添加一个按钮来进一步改进,该按钮显示“我的左眼和右眼需要不同的镜片”,然后会触发所有其他内容。