Ich erhalte das Produktattribut aus dem Angebot. Es scheint, dass es einen falschen Wert gibt. Bitte überprüfen Sie meinen unten stehenden Code.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cart = $objectManager->get('\Magento\Checkout\Model\Cart');
$itemsCollection = $cart->getQuote()->getItemsCollection();
$itemsVisible = $cart->getQuote()->getAllVisibleItems();
$items = $cart->getQuote()->getAllItems();
$product_object = $objectManager->create('Magento\Catalog\Model\Product');
foreach($itemsVisible as $item){
if($option = $item->getOptionByCode('simple_product')) {
$productId = $option->getProduct()->getId();
$item_s = $product_object->load($productId);
echo $screen_size = $productId."/".$item_s->getScreenFrameSize()."/".$item_s->getFiberglassScreenRollSize()."/".$item_s->getScreenCornerSize()."<br>";
}
}
Bitte überprüfen Sie das Bild unten zum besseren Verständnis. Gibt es einen Fehler in meiner Sammlung oder Schleife?
Bitte hilf mir!!!
magento2
cart
sales-quote
Sunny Rahevar
quelle
quelle
$objectManager->create('Magento\Catalog\Model\Product');
in einer foreach-Schleife erstellen . Überprüfen Sie meine AntwortAntworten:
Weil Sie jedes Mal dasselbe Objekt in foreach verwenden. Sie müssen ein neues Objekt in jeder Schleife erstellen. Ihr endgültiger Code sieht also folgendermaßen aus:
HINWEIS: Verwenden Sie den Objektmanager nicht direkt im Code. Verwenden Sie die Produktfabrik, da die Fabrik jedes Mal ein neues Objekt erstellt.
quelle
Bitte versuchen Sie so etwas
quelle
Ich denke, Sie müssen ein neues Produktobjekt erstellen, anstatt es in Ihrer foreach-Schleife wiederzuverwenden. Durch die Wiederverwendung des Produktobjekts können solche Nebenwirkungen auftreten, selbst wenn die Methode "Laden" vorschlägt, dass alle Daten überschrieben werden. Überprüfen Sie die Verwendung von benutzerdefinierten Attributen in
AbstractExtensibleModel
quelle