php magento magento-1.7

php - Magento obtener el precio de un solo artículo del carro incl. impuesto



magento-1.7 (6)

Tengo un problema bastante extraño, espero que alguien me pueda ayudar con esto.

Aquí están las principales configuraciones de configuración que influyen en mi problema:

  • Los precios de catálogo en el panel de administración se muestran incluyendo impuestos
  • Los precios de catálogo en frontend se muestran incluyendo impuestos
  • Los artículos en el carrito de compras se muestran sin incluir impuestos (por lo que se muestran por separado cerca del subtotal).

Todo está funcionando bien hasta ahora. El problema viene en un módulo personalizado de mini carrito ajax. Agarro la colección de artículos del carro, pero, como obtengo el precio del artículo del carrito de compras, lo consigo sin impuestos.

Aquí hay un código para ejemplificar lo que quiero decir. Asumiré un impuesto del 20% y un producto que tiene el precio de administración (impuestos incluidos) establecido en 120 $ , una opción que cuesta 60 $ (también incluye impuestos). Excluyendo impuestos, estos serían 100 $ y 50 $ . Quiero obtener el precio + opción + impuesto => 180 $

$quote = Mage::getSingleton(''checkout/session'')->getQuote(); $items = $quote->getAllVisibleItems(); foreach ($items as $item) { echo $item->getPrice(); // 150$ - price excluding tax echo $item->getPriceInclTax(); // 150$ - price excluding tax echo $item->getProduct()->getPrice(); // 120$ price including tax, BUT without the customer selected options. }

PD: La opción personalizada de la que hablo es la del usuario seleccionada, por ejemplo, una casilla de verificación de instalación que agrega + 50 $ al precio del producto.


Has probado:

$product->getFinalPrice(); // or this? $product->getPriceModel()->getFinalPrice($qty, $product);


¿ $item->getOptions() es la salida de $item->getOptions() ? ¿Has probado $item->getData(''price'') ? ¿Cómo aplicas tus opciones personalizadas? ¿Cuál es la salida de $item->debug() ? Quizás puedas encontrar lo que necesitas allí.

Saludos Simon


Puedes intentar esto:

$grandTotal = $this->helper(''checkout/cart'')->getQuote()->getGrandTotal(); echo $text .= $this->__('' Total: %s'', $this->helper(''core'')->formatPrice($grandTotal, false));


No encontré una solución a mi problema exacto, pero cambié la configuración para imitar esta funcionalidad exacta, y el problema que encontré ya no estaba allí.

Antes que nada, eliminé todos los impuestos en el sitio, y le dije a magento que todos los precios son sin impuestos (a pesar de que incluyen impuestos).

La reducción de impuestos ahora se realiza a través de una promoción aplicada a un grupo personalizado, por lo que

$tax = 20; // percent

Agrego una reducción de

(1 - (1 / ($tax / 100 + 1)))*100 // for 20% tax => 16.6667% reduction // for 24% tax => 19.3548% reduction

con 4 decimales (eso es tanto como magento acepta). Puede tener un error de 1 centavo de vez en cuando, así que si esto no es un problema, ¡adelante!

Ahora los precios en todo el sitio web se mostrarán exactamente para el producto (porque la promoción se aplica por carro, no por producto).


mostrar la cantidad de un carrito en mi encabezado

if ($parentBlock = $this->getParentBlock()) { $count = $this->helper(''checkout/cart'')->getSummaryCount(); if( $count == 1 ) { echo $text = $this->__(''My Cart (%s item)'', $count); } elseif( $count > 0 ) { echo $text = $this->__(''My Cart (%s items)'', $count); } else { echo $text = $this->__(''My Cart (0 items)''); } }

mostrar el precio total de un carrito en mi encabezado

$grandTotal = $this->helper(''checkout/cart'')->getQuote()->getGrandTotal(); echo $text .= $this->__('' Total: %s'', $this->helper(''core'')->formatPrice($grandTotal, false));


- Get products id, name, price, quantity, etc. present in your cart. - Get number of items in cart and total quantity in cart. - Get base total price and grand total price of items in cart. Get all items information in cart // $items = Mage::getModel(''checkout/cart'')->getQuote()->getAllItems(); $items = Mage::getSingleton(''checkout/session'')->getQuote()->getAllItems(); foreach($items as $item) { echo ''ID: ''.$item->getProductId().''<br />''; echo ''Name: ''.$item->getName().''<br />''; echo ''Sku: ''.$item->getSku().''<br />''; echo ''Quantity: ''.$item->getQty().''<br />''; echo ''Price: ''.$item->getPrice().''<br />''; echo "<br />"; } Get total items and total quantity in cart $totalItems = Mage::getModel(''checkout/cart'')->getQuote()->getItemsCount(); $totalQuantity = Mage::getModel(''checkout/cart'')->getQuote()->getItemsQty(); Get subtotal and grand total price of cart $subTotal = Mage::getModel(''checkout/cart'')->getQuote()->getSubtotal(); $grandTotal = Mage::getModel(''checkout/cart'')->getQuote()->getGrandTotal();