Cambiar el precio en presupuesto al agregar producto al carrito: magento

Quiero cambiar el precio del producto mientras agrego ese producto al carrito.

Cómo es posible, hágamelo saber …

La forma de hacerlo es agregar un observador que busque este evento 'sales_quote_add_item' :

     singleton mymodule/observer updatePrice     

El observador debe tener un método que haga algo como esto:

 public function updatePrice($observer) { $event = $observer->getEvent(); $quote_item = $event->getQuoteItem(); $new_price =  $quote_item->setOriginalCustomPrice($new_price); $quote_item->save(); } 

Puede usar una clase de observador para escuchar checkout_cart_product_add_after, y usar el “Modo Súper” de un producto para establecer precios personalizados con respecto al elemento de cita.

En su /app/code/local/{namespace}/{yourmodule}/etc/config.xml:

  ...  ...     {{modulename}}/observer modifyPrice     ...  ...  

Y luego crea una clase Observer en /app/code/local/{namespace}/{yourmodule}/Model/Observer.php

  __Model_Observer { public function modifyPrice(Varien_Event_Observer $obs) { $customPrice = Mage::getSingleton('core/session')->getCustomPriceCalcuation(); // Provide you price i have set with session $p = $obs->getQuoteItem(); $p->setCustomPrice($customPrice)->setOriginalCustomPrice($customPrice); } } 

El problema con respecto al producto configurable ha sido resuelto. Simplemente eliminas el

$ quote_item-> save ();

y luego para el producto no se agregará al carrito dos veces. Pero otro tema muy serio es permanecer en esta función. Es decir, con esta función podemos actualizar el precio del artículo en el carrito, pero luego de agregarlo al carrito, el precio del producto no cambia según la moneda diferente. Por lo tanto, esta función no se puede usar para una tienda que tenga varias monedas.

Si alguien encuentra alguna solución al respecto, por favor, comparta con nosotros …

Sopa de nueces

Archivo: /app/etc/modules/config.xml

     local true    

Archivo: /app/code/local/Ajax/ProductAdjust/etc/config.xml

     1.0.1      Ajax_ProductAdjust_Model       singleton Ajax_ProductAdjust_Model_Observer updatePrice       

Archivo: /app/code/local/Ajax/ProductAdjust/Model/Observer.php

 getEvent(); $quote_item = $event->getQuoteItem(); $new_price = $this->getNewPrice(); $quote_item->setOriginalCustomPrice($new_price); $quote_item->save(); } } 

Aclamaciones,

Como correctamente respondió Gershon Herczeg, Jürgen Thelen y Xman Classical. Deberá escribir un observador del evento sales_quote_add_item. Cuando se agrega un producto al carro, se activará su observador. Si el producto es Configurable, este evento se disparará dos veces. Tendrá que hacer algo así para obtener solo productos simples.

  $item = $observer->getEvent()->getQuoteItem(); $quote = $item->getQuote(); $product = $item->getProduct(); if ($product->getTypeId() != "configurable") { //Do your thing here } 

La pregunta no indica si esto debe hacerse agregando algo de lógica al código o no. Entonces, como tiene respuestas para el desarrollador, también hay algo que se llama reglas de precios del carrito (en el panel de administración vaya a Promociones> Reglas de precios del carrito de compras) donde puede crear diferentes reglas para realizar ventas y descuentos (con o sin cupones).

  To change product price while adding product to cart, use an observer event. Follow the steps given below 1. Add an observer in your module config.xml file. 2. Create an observer file in your model 3. add checkout_cart_product_add_after event 

Archivo: app / code / local / Namespace / Module / etc / config.xml

Por ejemplo: app / code / local / MGS / Rileytheme / etc / config.xml

     standard  MGS_Rileytheme rileytheme       rileytheme.xml        rileytheme/observer modifyPrice      

Archivo: app / code / local / MGS / Rileytheme / Model / Observer.php

 class MGS_Rileytheme_Model_Observer { public function modifyPrice(Varien_Event_Observer $observer) { //$order = Mage::registry('current_order'); For getting current order //$orderid = $order->getRealOrderId(); For getting orderid $quote_item = $observer->getQuoteItem(); $payment = 30; //add your custom product price here and do your logic here $quote_item->setOriginalCustomPrice($payment); $quote_item->save(); return $this; } }