结合了两个自定义选项:层级价格不起作用


11

我正在Magento中设置产品和等级价格,但是我注意到带有自定义选项的简单产品(例如:蓝色T恤,红色T恤),如果我们将它们组合在一起,则层级价格将不起作用达到数量。

等级价格似乎仅在通过一种产品变体达到数量而不是两者的组合时才起作用。

我已经在Stack Overflow和Magento论坛上阅读了一些答案,他们建议创建可配置的产品。但是,如果商店中有很多产品或很多商品,这可能会很难。

您是否知道一些变通办法,可以套用分级价格?


您能精确说明蓝色T恤和红色T恤的类型是什么?他们是单一产品,彼此之间没有联系吗?
Christophe Ferreboeuf 2014年

它们将是简单产品“ T恤”的自定义选项(“蓝色”,“红色”)。在目前的Magento,如果一线的价格是,比方说,“10个或更多,你获得折扣”,它将购买10个红人或10名蓝军,而不是在工作的时候我会购买5 + 5 ...
花生

magento如何知道这两个产品之间的联系?
Christophe Ferreboeuf 2014年

在我的示例中,只有一种产品(简单产品)具有两个自定义选项(变体):蓝色和红色。当您将同一简单产品的两个选项加起来时,Magento不会计算等级价格(我们在这里谈论的是简单产品,而不是可配置产品)。对于可配置产品,有一个扩展,允许分层价格组合(magentocommerce.com/magento-connect/…),但是同样,这不是我的情况,我们有太多选择来为每个选项创建产品。
花生2014年

您将需要一个自定义模块来实现此目的。或者,如果我是您,我会考虑将可配置产品与您提到的分层价格模块一起使用。
paj 2015年

Answers:


11

这里的问题是Magento将具有不同自定义选项的产品视为购物车中的不同订单项。因此,自定义选项的两个变体的数量从不加起来,就无法使报价项符合特定层级定价。

现在,进行此项工作将涉及自定义工作。我可以为您提供在代码中可以使它工作的指针。

查看 Mage_Sales_Model_Quote_Address_Total_Subtotal::collect()

在这种方法中,您将需要遍历所有报价项目并链接适用于每个报价项目的分层数量。可以这么说,您有数量1和数量3的两个变体A和B。您将遍历报价项目并执行以下操作:

$quoteItemA->setTieredQty(1+3);
$quoteItemB->setTieredQty(1+3); //ofcourse 1 and 3 are dynamic here

然后在 Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem

而不是使用: $finalPrice = $product->getFinalPrice($quoteItem->getQty()); //on line 115 use:

$finalPrice = $product->getFinalPrice($quoteItem->getTieredQty());

这涉及自定义工作,但是我列出的方法在您进行调整时应该可以随时进行调整。


4

我可以确认,这有效

        /* hard coded - start */ 
        $cart = Mage::getModel('checkout/cart')->getQuote();
        $total_qty = 0;
        foreach ($cart->getAllItems() as $item2) {
          if ($item2->getProductId() == $quoteItem->getProductId()) $total_qty+= $item2->getQty();    
        }
        $finalPrice = $product->getFinalPrice($total_qty);
        // $finalPrice = $product->getFinalPrice($quoteItem->getQty());
        /* hard coded - end */ 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.