Magento捆绑产品-相同产品的多个选项,如何阻止Magento隐藏重复的产品?

qqrboqgw  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(206)

我正在尝试在Magento中设置捆绑产品。此产品应允许客户选择4个免费产品包含在捆绑中。这些产品可以是所有不同的产品或4个相同的产品。
比如说
免费产品1免费产品2免费产品3
客户可以选择四个免费产品1,或一个免费产品1和2,两个免费产品3。
我使用了4个下拉输入类型,每个类型都有三个免费产品作为选项。因此,客户可以为每个免费礼品行项目选择三个产品中的任何一个。
Magento只显示了一个下拉选择列表,我相信是因为每个下拉列表都包含相同的产品列表。
我需要在哪里查找以阻止Magento检查产品选项是否已经列在以前的选择中?

jdgnovmf

jdgnovmf1#

除非您以编程方式(即编写代码)来完成此操作,否则无法完成此操作。
当Magento添加一个产品时,它首先查看报价/购物车是否已经存在。如果存在,它会拉取该产品并添加到数量中。没有办法关闭此功能。
通过编程,您可以非常手动地向购物车中添加商品。

$cart = Mage::getSingleton("checkout/cart");

foreach ($products_to_add as $product_id => $custom_options) {
  $product = Mage::getModel("catalog/product")->load($product_id);
  $options = new Varien_Object(array("options" => $custom_options,
                                     "qty" => 1));

  // some products may result in multiple products getting added to cart
  // I beleive this pulls them all and sets the custom options accordingly
  $add_all = $product->getTypeInstance(true)
      ->prepareForCartAdvanced($options, $product, Mage_Catalog_Model_Product_Type_Abstract::PROCESS_MODE_FULL);

  foreach ($add_all as $add_me) {
    $item = Mage::getModel('sales/quote_item');
    $item->setStoreId(Mage::app()->getStore()->getId());
    $item->setOptions($add_me->getCustomOptions())
      ->setProduct($add_me);

    $item->setQty(1);
    $cart->getQuote()->addItem($item);
  }
}

// when done adding all the items, finally call save on the cart
$cart->save();

相关问题