Chcę uzyskać teraz kolekcję wszystkich produktów w koszyku.
Jak mogę to zrobić ? Wszelkie sugestie będą mile widziane.
magento-1.7
cart
collection
quote
Sukeshini
źródło
źródło
Odpowiedzi:
w
$cart
masz wszystko kolekcję koszyka pozycji i jeśli chcesz uzyskać identyfikator produktu, wymienić można uzyskać z użyciem pętli foreachźródło
Znalazłem inne rozwiązanie. Poniższy kod działa dla mnie.
źródło
$item->getProduct()
... Za każdym razem, gdy myślisz o użyciu -> load () w magento, możesz liczyć na niską wydajność, czasami nie ma innych opcja naprawdę, ale tutaj tak nie jest ..Istnieje kilka metod, które działają w inny sposób:
Zwraca kolekcję pozycji wyceny ze wszystkimi pozycjami powiązanymi z bieżącą wyceną.
Jest to skrót do powyższej metody, ale jeśli nie ma cudzysłowu, zwraca pustą tablicę, więc nie można polegać na uzyskaniu instancji kolekcji.
Ładuje kolekcję elementów, a następnie zwraca tablicę wszystkich elementów, które nie są oznaczone jako usunięte (tj. Zostały usunięte w bieżącym żądaniu)
Wczytuje kolekcję elementów, a następnie zwraca tablicę wszystkich elementów, które nie są oznaczone jako usunięte ORAZ nie mają elementu nadrzędnego (tzn. Otrzymujesz elementy dla produktów w pakiecie i konfigurowalnych, ale nie powiązane z nimi elementy podrzędne). Każdy element tablicy odpowiada wyświetlanemu wierszowi na stronie koszyka.
Wybierz to, co najlepiej odpowiada Twoim potrzebom. W większości przypadków potrzebna jest ostatnia metoda, ale niestety Magento zapewnia ją tylko jako tablicę, a nie jako kolekcję.
Zauważ, że
Mage::getSingleton('checkout/cart')->getQuote()
iMage::getSingleton('checkout/session')->getQuote()
są wymienne.źródło
najlepszy sposób, aby dostać wszystkie produkty do koszyka
źródło
Poniższy kod służy do pobierania przedmiotów z koszyka
źródło