Estou recebendo o atributo do produto da cotação. Parece que existe um valor errado. Por favor, verifique meu código abaixo.
$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>";
}
}
Verifique a imagem abaixo para uma melhor compreensão. Existe algum erro na minha coleção ou loop?
Por favor me ajude!!!
magento2
cart
sales-quote
Sunny Rahevar
fonte
fonte
$objectManager->create('Magento\Catalog\Model\Product');
no loop foreach. Veja minha respostaRespostas:
Porque você sempre usa o mesmo objeto no foreach. Você precisa criar um novo objeto no loop foreach. Então, seu código final fica assim:
NOTA: Não use o gerenciador de objetos diretamente no código. Use a fábrica do produto porque a fábrica criará um novo objeto toda vez.
fonte
Tente algo como isto
fonte
Eu acho que você precisa criar um novo objeto de produto em vez de reutilizá-lo em seu loop foreach. Reutilizando o objeto do produto, você pode obter esses efeitos colaterais, mesmo que o método "carregar" sugira que todos os dados sejam substituídos. Verifique o uso de atributos customizados em
AbstractExtensibleModel
fonte