Pregunta

Para un producto que tengo una regla de precios de catálogo y el precio de nivel.

Al agregar el artículo al carro Magento siempre tiene el menor precio. ¿Hay alguna manera de establecer que entre en precio según catálogo regla de precio siempre?

He buscado pero no conseguir una solución para esto. ¿Hay alguna configuración de administrador para esto?

¿Fue útil?

Solución

El código que eleva el precio se pueden encontrar en 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);
}

En _applyTierPrice

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

ya través de _applySpecialPrice

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

No hay opciones involucradas y se le devolverá el precio mínimo.

En mi opinión, esto también coincide con la expectativa del cliente!

Si desea cambiar este comportamiento se puede observar el evento catalog_product_get_final_price y utilizar $ producto-> setData ( 'final_price', X.YZ); al valor que desee.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top