我正在建立一个销售糖果的网上商店。我添加了糖果盒作为捆绑产品。在购买甜食之前,顾客必须先选择包装盒。每个盒子都有数量限制。例如,方框1包含4个糖果,方框2包含12个等。选择框后,在选项页面上,假设我选择了方框1.我选择了4个糖果。现在我想买几个糖果。所以需要有一个Ajax调用来增加盒子数量。请帮我这个。提前致谢。
答案 0 :(得分:0)
我的建议是你找到一种不同的方式。我认为您建议使用ajax更改产品(到另一个包),然后将4个糖果从初始包移动到新包。这是一件非常复杂的事情。这里的完整答案需要多行代码。
我建议你先允许用户挑选糖果,然后让他们挑选一个盒子 - 盒子必须足够大,这样你就可以给你的盒子产品一个属性sweets_maximum并设置为4或12并使用一些逻辑只显示足够大的盒子。
那么糖果的成本可能为零而且盒子非零(所以你可以申请盒子而不是糖果的价格)。
或者,将sweet_maximum和捆绑SKU以及所有糖果skus加载到一个网页中,在用户选择糖果数量后,编写代码以将正确的SKU传递给Magento以添加到购物车中,即10个不同的糖果SKU方框2的SKU。
捆绑包非常复杂。我不认为你想来回它们。
* 编辑以下评论
然后这(我上面的回答)是我的推荐:在浏览器中执行所有操作,然后仅将选中的框和糖果传回Magento - 您的Javascript将使用相应的产品选择形成捆绑控制器的URL。 / p>
*或者,将sweet_maximum和捆绑SKU以及所有糖果skus加载到一个网页中,在用户选择糖果数量后,编写代码将正确的SKU传递回Magento以添加到购物车中,即10个不同的糖果SKU和方框2的SKU。*
如果你真的想使用ajax,那么你将会遇到很多困难。这是我将使用的伪代码。您可以使用defualt Magento主题找到这些功能,并从捆绑页面和购物车更新中捕获提交URL,并在控制器操作中读取代码。
(server side)display the chosen bundle
(browser side)UI logic to decide when a different box is needed
NO, WAIT. Maybe we need more information; it is difficult to do a full code architecture in this forum.
//new psuedo code
Carry on as normal. Allow the user to pick any box and any number of sweets through out the entire shopping experience
Eventually the user will visit its cart.
As part of the cart display logic, count the total sweets and count the total box capacity. If box capacity < total sweets, prompt the user to choose a bigger box.
我为什么这么说?我的意思是有很多购物场景可以解决,但如果你真的把它作为捆绑包,那么在用户按下添加到购物车按钮之前捆绑包不在购物车中 - 这就是为什么我说浏览器应该有逻辑更改浏览器中的框而不会激活任何内容。用户可以单独购买糖果吗?
我不知道该说些什么。我很乐意为您提供帮助,但就逻辑而言,我们正在打开一堆蠕虫,没有特定的所有购物场景清单以及所有允许的购买逻辑我觉得很难协助。但我想如果你写下所有的逻辑,你会自己找到答案。不要害怕以不同的方式为您的客户提供建议。
将捆绑包添加到购物车的URL是:
POST http://54.247.95.57/checkout/cart/add/product/13831/ HTTP/1.1
product=13831&related_product=&bundle_option%5B767%5D=3867&bundle_option_qty%5B767%5D=1&
删除捆绑包的URL是:
POST http://54.247.95.57/checkout/cart/updatePost/ HTTP/1.1
update_cart_action=update_qty&cart%5B48677%5D%5Bqty%5D=0
但我仍然说在浏览器中做到这一切。