Frage

Für ein Produkt habe ich eine Katalogpreisregel und ein Tierpreis.

Wenn ich einen Artikel zum Karren hinzufüge, nimmt Magento immer den geringsten Preis. Gibt es eine Möglichkeit, den Preis nach der Katalogpreisregel zu setzen?

Ich habe gesucht, aber keine Lösung dafür bekommen. Gibt es dafür Administratoreinstellungen?

War es hilfreich?

Lösung

Der Code, der den Preis antreibt

public function getFinalPrice($qty=null, $product)
{
    if (is_null($qty) && !is_null($product->getCalculatedFinalPrice())) {
        return $product->getCalculatedFinalPrice();
    }

    $finalPrice = $product->getPrice();
    $finalPrice = $this->_applyTierPrice($product, $qty, $finalPrice);
    $finalPrice = $this->_applySpecialPrice($product, $finalPrice);
    $product->setFinalPrice($finalPrice);

    Mage::dispatchEvent('catalog_product_get_final_price', array('product'=>$product, 'qty' => $qty));

    $finalPrice = $product->getData('final_price');
    $finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);

    return max(0, $finalPrice);
}

In _Applytierprice

$finalPrice = min($finalPrice, $tierPrice);

und durch _Applyspecialprice

$finalPrice     = min($finalPrice, $specialPrice);

Es gibt keine Optionen, die den Mindestpreis zurückgeben.

Meiner Ansicht nach entspricht dies auch mit der Erwartung des Kunden!

Wenn Sie dieses Verhalten ändern möchten, können Sie das Ereignis catalog_product_get_final_price beobachten und $ product-> setData ('Final_price', X.YZ) verwenden; zu dem Wert, den Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top