Я получаю атрибут продукта из цитаты. Кажется, что там неверное значение. Пожалуйста, проверьте мой код ниже.
$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>";
}
}
Пожалуйста, проверьте изображение ниже для лучшего понимания. Есть ли какая-либо ошибка в моей коллекции или цикле?
Пожалуйста, помогите мне!!!
magento2
cart
sales-quote
Солнечный Рахевар
источник
источник
$objectManager->create('Magento\Catalog\Model\Product');
в цикле foreach. Проверь мой ответОтветы:
Поскольку вы используете один и тот же объект каждый раз в foreach. Вам нужно создать новый объект в цикле foreach. Итак, ваш окончательный код выглядит так:
ПРИМЕЧАНИЕ. Не используйте диспетчер объектов непосредственно в коде. Используйте продукт фабрики, потому что фабрика будет каждый раз создавать новый объект.
источник
Пожалуйста, попробуйте что-то вроде этого
источник
Я думаю, вам нужно создать новый объект продукта, а не использовать его в цикле foreach. Повторно используя объект продукта, вы можете получить такие побочные эффекты, даже если метод «load» предполагает, что все данные будут перезаписаны. Проверьте использование пользовательских атрибутов в
AbstractExtensibleModel
источник