2011-02-09 2 views
10

Zainspirowany przez another question Widziałem ostatnio na SO, chciałem zobaczyć, czy ktoś może wyjaśnić różnicę między przedmiotem wyceny (Mage_Sales_Model_Quote_Item) a pozycją adresową wyceny (Mage_Sales_Model_Quote_Address_Item)?Magento: Jaka jest różnica koncepcyjna między przedmiotem wyceny a przedmiotem wyceny?

Myślę, że rozumiem pojęcie przedmiotu wyceny (Mage_Sales_Model_Quote_Item - mapowane na sales_flat_quote_item db table) - w zasadzie element zamówienia w koszyku klienta, który zawiera nazwę/sku produktu, ilość i wszelkie specjalne opcje. To, czego nie rozumiem, to, do czego służy pozycja Adres wyceny Element Mage_Sales_Model_Quote_Address_Item - zmapowany na tabelę bazy danych sales_flat_quote_address_item). Widzę, że ma adres powiązany z tym, ale do czego to służy? Mogę sobie wyobrazić, że może to mieć coś wspólnego z wysyłką z wieloma adresami (której nigdy nie używałem), ale jest to dzikie domysły.

Jako pytanie wtórne (a właściwie cały powód tego pytania: /), czy istnieją przypadki, w których niestandardowy moduł zajmujący się przedmiotami z cytatem mógł bezpiecznie ignorować przedmiot z adresem cytatu?

Odpowiedz

7

Jego podobne do „statek z wieloma adresami”, jak każdy element musi być odwzorowany na osobnym adresie

+1

Jeśli tak, to czy masz pojęcie, dlaczego większość danych z quote_item została sklonowana w tej tabeli? Wydaje się, że opcjonalne pole address_id na quote_address rozwiązałoby ten sam problem. –

+1

@ Josef. Całkowicie się z tobą zgadzam. Trochę irytujące, że wszystkie dane są duplikowane ... a nawet w sklepach, które korzystają tylko z kasy strony. Byłoby miło poznać uzasadnienie tego, ale no cóż. – shaune

11

mam do czynienia z tym wcześniej.

Zasadniczo element cudzysłowu jest taki, jak go opisałeś. Przedstawia element zamówienia w koszyku ze wszystkimi szczegółami.

Jeśli chodzi o pozycję adresu cudzysłowu, jest to po prostu obiekt zawierający odniesienie do obiektu wyceny, odniesienie do obiektu adresu i ilość podzbiorów z pozycji wyceny, która ma zostać wysłana na ten konkretny adres (ale potem powielają bezużytecznie wszystko, od elementu cytatu).

W przypadku zamówienia przelewu wielowierszowego, jest to element adresu oferty, który służy do tworzenia kilku obiektów zamówienia Magento (każde zamówienie jest oddzielne, z podzbiorem elementów wyceny).

Oczywiście jest to niezgrabny projekt. Byłoby lepiej, gdyby po prostu zachowywały dane pozycji cudzysłowu i dodawały pole identyfikatora adresu i całkowicie eliminowały pojęcie "oferty z wycinkami". Wygląda to na przypadek nadmiernej normalizacji, która na nich spadła.

Kod, który chce zepsuć zawartość wózka, może bezpiecznie zignorować pozycje z adresami cudzysłowu w przypadku, gdy transakcja dotyczy tylko zamówienia na stronie (a funkcja multiasipping jest wyłączona).

Jeśli chcesz, aby zmiany pojawiły się poprawnie podczas dokonywania przelewu z wielostopniową wysyłką, musisz również znieść elementy z adresem cudzysłowu (a kod w tych obszarach jest dość brzydki).

+1

bardzo ładna odpowiedź. Próbuję zrozumieć niektóre pojęcia za Magento i było to bardzo przydatne do czytania. – clime

+0

@Raif atef nice wyjaśnić –