¿Qué eventos de usar para la actualización de los precios personalizados en “Realizar pedido” y “Enviar pedido”

magento.stackexchange https://magento.stackexchange.com/questions/3668

  •  16-10-2019
  •  | 
  •  

Pregunta

He hecho un módulo que los precios de configuraciones personalizadas para los artículos de cotización sobre un carro de actualización. Para que utilizo estos eventos:

checkout_cart_product_add_after
sales_quote_remove_item
checkout_cart_update_items_after

Funciona bien, pero el problema es que los precios personalizados no se vuelven a calcular si el usuario procede a la comprobación o envía el pedido.

Me gustaría que se recalcula allí también, ya que se derivan de los datos que posiblemente se podría haber cambiado desde la última actualización de la compra (grupo de usuarios, producto del precio base, etc.). Magento recalcula sus precios este modo, si un precio personalizado no se establece lo que me gustaría para conseguir el mismo comportamiento.

¿Existen los eventos apropiados para enganchar en invocar el nuevo cálculo en mi módulo?

EDIT: De hecho, parece que Magento recalcula precios incluso después de cargar la página normales en la cesta. Creo que realmente no necesita esto, aunque es más correcto.

¿Fue útil?

Solución

Yo uso el salesQuoteCollectTotalsBefore caso de fijar el precio del producto y luego se transfiere a la quoteItem:

public function salesQuoteCollectTotalsBefore(Varien_Event_Observer $observer)
{
    /* @var $quote Mage_Sales_Model_Quote */
    $quote = $observer->getQuote();
    foreach ($quote->getAllItems() as $quoteItem) {
        if (true) {
            /* @var $quoteItem Mage_Sales_Model_Quote_Item */
            $product = $quoteItem->getProduct();
            $price = $helper->getPriceWithoutTax($quoteItem);
            $product->setPrice($price);
        }
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top