【问题标题】:magento same product with many quantity different size change one timemagento 同一产品,数量不同,大小不同,一次更换
【发布时间】:2013-06-25 22:23:30
【问题描述】:

我对magento有一点经验。我所有的产品都有自定义尺寸可供选择。 所有产品都有不同的尺寸和不同的价格。

客户将一件数量为 5 的产品添加到购物车。所以 5 件这种尺寸的产品被添加到购物车中。当客户添加其他尺寸不同的产品时,购物车中的所有产品都会更改为该尺寸。

如何防止这种行为?

【问题讨论】:

  • (我的意思是一种产品,5 个数量,不同的自定义选项)如果我选择一个,所有 5 个数量都有效。我不想要这种行为
  • 如果您的产品尺寸不同以购买产品,因此将一件一件的产品添加到您的购物车中。不直接将 5 个产品放在相同尺寸上。
  • 数据库中可以是多个产品。

标签: magento


【解决方案1】:

除非您以编程方式执行此操作(即编写代码),否则无法执行此操作。

当 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多