Estoy obteniendo el atributo del producto de la cotización. Parece que hay un valor incorrecto. Por favor revise mi código a continuación.
$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>";
}
}
Por favor, consulte la imagen de abajo para una mejor comprensión. ¿Hay algún error en mi colección o bucle?
¡¡¡Por favor, ayúdame!!!
magento2
cart
sales-quote
Sunny Rahevar
fuente
fuente
$objectManager->create('Magento\Catalog\Model\Product');
en cada ciclo. Comprueba mi respuestaRespuestas:
Porque usas el mismo objeto cada vez en foreach. Necesita crear un nuevo objeto en cada ciclo. Entonces su código final se ve así:
NOTA: No use el administrador de objetos directamente en el código. Use la fábrica de productos porque la fábrica creará nuevos objetos cada vez.
fuente
Por favor intente algo como esto
fuente
Supongo que tienes que crear un nuevo objeto de producto en lugar de reutilizarlo en tu bucle foreach. Al reutilizar el objeto del producto, puede obtener tales efectos secundarios incluso si el método "cargar" sugiere que todos los datos se sobrescribirán. Verifique el uso de atributos personalizados en
AbstractExtensibleModel
fuente