Ich arbeite an der M2-Zahlungserweiterung. Unser Händler benötigt uns, um Artikeldetails zusammen mit der Bestellung zu senden
Alles funktioniert gut, aber $order->getAllItems();
oder $order->getAllVisibleItems();
einfache und konfigurierbare übergeordnete Produkte zurückgeben
wenn ich 2 Produkte im Warenkorb habe
- 1 einfaches Produkt
- 1 Zugehöriges konfigurierbares Produkt
Anstatt zwei Produkte zu bekommen, bekomme ich drei. ein einfaches, assoziiertes Produkt und sein Mutterprodukt;
Ich kann versuchen, korrekte Produkte zu extrahieren, aber ich bin sicher, dass es ein anderes sein muss
/** @var \Magento\Sales\Model\Order $order */
$order = $payment->getOrder();
/**
* Get All Items of Products
*/
$productItems = $order->getAllItems() // returning 3 products where I have 2 in cart
$productItemsTest = $order->getAllVisibleItems(); // returning 3 products where I have 2 in cart
quelle
Der beste Weg, um Bestellartikel zu erhalten, ist die Verwendung
$order->getAllVisibleItems()
Erklärt von fschmengler oben,
getAllItems():
Diese Funktion gibt auch ein Array aller Warenkorbartikel mit dem einfachen Produkt config zurück.Sie erhalten drei Produkte, weil Sie verwenden
$order->getAllItems()
müssen$order->getAllVisibleItems()
Methode verwenden, um das Originalprodukt zu erhalten.Sie können weitere Referenzen aus der Datei überprüfen
vendor/magento/module-quote/Model/Quote.php
quelle
Sie können die Item-Schleife verwenden und das untergeordnete Item durch den folgenden Code ausschließen:
quelle