Domanda

Per un prodotto Ho una regola prezzo di catalogo e prezzo livello.

Quando aggiungo prodotto al carrello Magento prende sempre il prezzo minimo. C'è un modo per impostare di prendere prezzo in base al catalogo regola prezzo sempre?

Ho cercato ma non ho ottenuto una soluzione per questo. C'è qualche impostazioni di amministrazione per questo?

È stato utile?

Soluzione

Il codice che guida il prezzo può essere trovato in Mage_Catalog_Model_Product_Type_Price

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

e attraverso _applySpecialPrice

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

Non ci sono opzioni coinvolti e restituirà il prezzo minimo.

A mio avviso questo corrisponde anche l'attesa del cliente!

Se si vuole modificare questo comportamento si può osservare l'evento catalog_product_get_final_price e utilizzare $ product-> setData ( 'final_price', x.yz); per il valore che si desidera.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top