webentwicklung-frage-antwort-db.com.de

Magento Warenkorb holen Einzelpreis inkl. MwSt. MwSt

Ich habe ein ziemlich seltsames Problem, ich hoffe, jemand kann mir dabei helfen.

Hier sind die wichtigsten Konfigurationseinstellungen, die mein Problem beeinflussen:

  • Die Katalogpreise im Admin-Bereich werden inklusive Mehrwertsteuer angezeigt
  • Katalogpreise im Frontend werden inklusive Mehrwertsteuer angezeigt
  • Artikel im Warenkorb werden ohne Steuern angezeigt (sie werden daher separat in der Nähe der Zwischensumme angezeigt).

Alles funktioniert soweit gut. Das Problem liegt in einem benutzerdefinierten Ajax-Mini-Cart-Modul. Ich nehme die Sammlung von Artikeln aus dem Warenkorb, aber da ich den Preis aus dem Warenkorb-Artikel erhalte, erhalte ich ihn ohne Steuer.

Hier ist ein Code, um zu veranschaulichen, was ich meine. Ich nehme eine 20% Steuer und ein Produkt an, dessen Verwaltungspreis (einschließlich Steuern) auf 120 $ festgelegt ist, eine Option, die 60 $ kostet (einschließlich Steuern). Ohne Steuern wären dies 100 $ und 50 $ . Ich möchte den Preis + Option + Steuer bekommen => 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.
}

PS: Die benutzerdefinierte Option, über die ich spreche, ist vom Benutzer ausgewählt, z. B. ein Kontrollkästchen zum Installieren, das den Preis des Produkts um + 50 $ erhöht.

10
Vlad Preda

Ich habe keine Lösung für mein genaues Problem gefunden, aber ich habe die Einstellungen geändert, um genau diese Funktionalität nachzuahmen, und das Problem, auf das ich gestoßen bin, war nicht mehr vorhanden.

Zunächst entfernte ich alle Steuern auf der Website und teilte Magento mit, dass alle Preise ohne Steuern sind (auch wenn sie Steuern enthalten).

Die Steuerermäßigung erfolgt nun über eine Aktion, die auf eine benutzerdefinierte Gruppe angewendet wird, z

$tax = 20; // percent 

Ich füge eine Reduzierung von

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

mit 4 Dezimalstellen (das ist so viel, wie Magento akzeptiert). Es kann von Zeit zu Zeit einen Fehler von 1 Cent geben - also, wenn dies kein Problem ist, probieren Sie es aus!

Jetzt werden die Preise auf der gesamten Website genau für das Produkt angezeigt (da die Aktion pro Warenkorb und nicht pro Produkt gilt).

1
Vlad Preda
- 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();
2
Gaurang

was ist die Ausgabe von $item->getOptions()? Haben Sie $item->getData('price') ausprobiert? Wie wenden Sie Ihre benutzerdefinierten Optionen an? Was ist die Ausgabe von $item->debug()? Vielleicht finden Sie dort, was Sie brauchen.

Grüße Simon

1

Hast du es versucht:

$product->getFinalPrice();

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

zeige die Menge eines Einkaufswagens in meinem Header

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

Zeige den Gesamtpreis eines Einkaufswagens in meiner Kopfzeile

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

Sie können Folgendes versuchen:

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