我希望制作一种提供多种尺寸和颜色的产品,并允许客户在一个页面上选择不同的尺寸和颜色(以及每种颜色的数量)并提交以便一次性添加多种变化
示例:客户想订购
10 Small Black shirts
10 Medium Black shirts
20 Large Black shirts
5 Small White shirts
5 Medium White shirts
10 Large Black shirts
他们在“产品视图”页面的网格视图中输入数字,然后点击提交一次,一次将60个产品添加到他们的购物车
我已经查找过已经为购买或免费创建的附加组件和模组,但找不到任何附件和模组。
答案 0 :(得分:0)
我编写了这样一个主题。我这样做的方式是使用简单的产品。按照您的建议构建一个页面,其中包含一个HTML表单,供用户指示哪个product_id和数量,然后将该表单提交给{product_id:qty}对的JSON POST到自定义控制器,然后可以恢复product_id =&gt ;来自POST的qty对然后遍历$ cart-> addProduct($ product,$ request);对于POST中的每个对象。
因此,在自定义控制器中,您可以从
中获取$product_id=>$qty
数组
$lolo_skusToAdd = $this->getRequest()->getParam('skuJson',false);
$testArray = json_decode($lolo_skusToAdd, true);
//...
foreach($testArray as $sku=>$qty){
//Mage_Checkout_Model_Cart->addProduct() wants quantity as a Varien Object
$request = new Varien_Object(array('qty' => $qty));
//...
$eventArgs = array(
'product' => $product,
'qty' => $qty,
'additional_ids' => array(),
'request' => $this->getRequest(),
'response' => $this->getResponse(),
);
Mage::dispatchEvent('checkout_cart_before_add', $eventArgs);
try{
$cart->addProduct($product,$request);
Mage::dispatchEvent('checkout_cart_after_add', $eventArgs);
//...
我留下了很多代码。我的控制器有点乱,实际上专门针对自定义情况:它使用ajax接收POST并返回成功消息或失败消息。
我希望这能给你一些正确方向的指示。如果你这样做,你应该阅读正常的添加到购物车控制器,看看'默认Magento'如何将产品添加到购物车并模仿你的自定义控制器,这样你就可以包括所有的Mage :: dispatchEvents()和$ cart- > save()和会话消息更新等