Dostaję koszyk za pomocą:
$cart = Mage::getSingleton('checkout/session')->getQuote();
A następnie iterowanie za pomocą:
foreach ($cart->getAllItems() as $item) { }
Wygląda jednak na to, że zwraca zduplikowane produkty z tymi samymi kodami SKU, ale z różnymi identyfikatorami produktów! Jednak na stronie głównej, kiedy otwieram koszyk, pokazuje pojedynczy produkt.
cart: {
id: 680,
items: [
{
name: "Tori Tank",
price: "60.0000",
id: "418",
sku: "wbk004"
},
{
name: "Tori Tank",
price: "60.0000",
id: "286",
sku: "wbk004"
}
]
}
Moje pytanie brzmi… Dlaczego tak się dzieje? Czy produkt nadrzędny (konfigurowalny) nie powinien pokazywać własnego unikalnego kodu SKU?
Ponadto, jeśli chcę dodać produkt do koszyka, czy powinienem dodać produkt konfigurowalny? Czy dodam prosty produkt, a Magento zajmie się resztą?
źródło
Użyj
$cart->getAllVisibleItems()
zamiast$cart->getAllItems()
.Otrzymujesz duplikaty, ponieważ dodając konfigurowalny produkt do koszyka, magento faktycznie dodaje 2 produkty, produkt prosty i produkt konfigurowalny, ale tylko jeden jest widoczny dla użytkownika.
źródło
źródło