Zwei benutzerdefinierte Optionen kombiniert: Der Stufenpreis funktioniert nicht


11

Ich richte Produkte und Stufenpreise in Magento ein, aber ich habe festgestellt, dass bei einfachen Produkten mit benutzerdefinierten Optionen (Beispiel: blaues T-Shirt, rotes T-Shirt) der Stufenpreis nicht funktioniert, wenn wir sie kombinieren um die Menge zu erreichen.

Stufenpreise scheinen nur zu funktionieren, wenn die Menge aus einer Produktvariante erreicht wird, nicht jedoch aus einer Kombination von zwei.

Ich habe mehrere Antworten in Stack Overflow und den Magento-Foren gelesen und sie empfehlen, konfigurierbare Produkte zu erstellen. Dies kann jedoch ziemlich schwierig sein, wenn ein Geschäft viele Produkte oder viele Variationen hat.

Kennen Sie eine Problemumgehung, um den Tierpreis anzuwenden - mit einer Kombination von Variationen?


Kannst du genau sagen, was für ein blaues und ein rotes T-Shirt es gibt? Sind sie einzelne Produkte ohne Verbindung zwischen ihnen?
Christophe Ferreboeuf

Dies wären benutzerdefinierte Optionen ("Blau", "Rot") eines einfachen Produkts "T-Shirt". Wenn der Tier-Preis bei Magento derzeit "10 oder mehr, Sie erhalten einen Rabatt" wäre, würde dies beim Kauf von 10 Reds oder 10 Blues funktionieren, aber nicht beim Kauf von 5 + 5 ...
Peanuts

Wie kann Magento wissen, dass diese beiden Produkte miteinander verbunden sind?
Christophe Ferreboeuf

In meinem Beispiel gibt es nur 1 Produkt (einfaches Produkt) mit zwei benutzerdefinierten Optionen (Variationen): blau und rot. Magento berechnet keinen Staffelpreis, wenn Sie zwei Optionen desselben einfachen Produkts addieren (wir sprechen hier von einfachen Produkten, nicht von konfigurierbaren Produkten). Für konfigurierbare Produkte gibt es eine Erweiterung, die das Kombinieren von Stufenpreisen ermöglicht ( magentocommerce.com/magento-connect/… ), aber auch dies ist nicht mein Fall, wir haben zu viele Optionen, um ein Produkt pro Option zu erstellen.
Erdnüsse

Sie benötigen dazu ein benutzerdefiniertes Modul. Oder wenn ich Sie wäre, würde ich in Betracht ziehen, konfigurierbare Produkte mit dem von Ihnen erwähnten Tierpreismodul zu verwenden.
paj

Antworten:


11

Das Problem hierbei ist, dass Magento Produkte mit unterschiedlichen benutzerdefinierten Optionen als unterschiedliche Werbebuchungen im Warenkorb behandelt. Die Menge für die beiden Varianten der benutzerdefinierten Optionen summiert sich also nie, um den Angebotsposten für eine bestimmte Stufe der Staffelpreise zu qualifizieren.

Wenn Sie diese Arbeit ausführen möchten, müssen Sie benutzerdefinierte Arbeiten ausführen. Ich kann Ihnen Hinweise geben, wo Sie suchen können, damit es im Code funktioniert.

Auschecken Mage_Sales_Model_Quote_Address_Total_Subtotal::collect()

Bei dieser Methode müssen Sie alle Angebotspositionen durchlaufen und die für jedes Angebotselement geltende gestaffelte Menge verknüpfen. Angenommen, Sie haben zwei Varianten A und B mit den Mengen 1 und 3. Sie durchlaufen die Angebotspositionen und führen Folgendes aus:

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

Dann in Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem

anstatt zu verwenden: $finalPrice = $product->getFinalPrice($quoteItem->getQty()); //on line 115 use:

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

Dies beinhaltet benutzerdefinierte Arbeit, aber der Ansatz, den ich aufführe, sollte mit einigen Anpassungen im laufenden Betrieb funktionieren, während Sie ihn durcharbeiten.


4

Ich kann bestätigen, dass dies funktioniert

        /* 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 */ 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.