Я получаю корзину с помощью:
$cart = Mage::getSingleton('checkout/session')->getQuote();
И затем итерации по нему с помощью:
foreach ($cart->getAllItems() as $item) { }
Но, похоже, он возвращает дубликаты товаров с одинаковыми SKU, но разными идентификаторами продуктов! На главном сайте, когда я открываю корзину, однако, он показывает один продукт.
cart: {
id: 680,
items: [
{
name: "Tori Tank",
price: "60.0000",
id: "418",
sku: "wbk004"
},
{
name: "Tori Tank",
price: "60.0000",
id: "286",
sku: "wbk004"
}
]
}
Мой вопрос .. Почему это происходит? Разве родительский (настраиваемый) продукт не должен показывать свой уникальный Sku?
Кроме того, если я хочу добавить продукт в корзину, должен ли я добавить настраиваемый продукт? Или я добавляю простой продукт, а Magento обрабатывает все остальное?
источник
Используйте
$cart->getAllVisibleItems()
вместо$cart->getAllItems()
.Вы получаете дубликаты, потому что при добавлении настраиваемого продукта в корзину magento фактически добавляет 2 продукта: простой продукт и настраиваемый продукт, но только один виден для пользователя.
источник
источник