Magento: Какова концептуальная разница между цитатой и цитатой? - PullRequest
10 голосов
/ 09 февраля 2011

Вдохновленный другим вопросом Я недавно видел на SO, я хотел посмотреть, сможет ли кто-нибудь объяснить разницу между элементом цитаты (Mage_Sales_Model_Quote_Item) и элементом адреса цитаты (Mage_Sales_Model_Quote_Address_Item)?

Мне кажется, я понимаю концепцию элемента цитаты (Mage_Sales_Model_Quote_Item - сопоставлена ​​с таблицей баз данных sales_flat_quote_item) - в основном это позиция в корзине покупателя, которая включает в себя название / номер продукта, количество и любые специальные параметры. Что я не понимаю, так это то, для чего предназначен адресный элемент Mage_Sales_Model_Quote_Address_Item - сопоставленный с таблицей баз данных sales_flat_quote_address_item). Я вижу, что с ним связан адрес, но зачем, черт возьми, это? Я могу представить, что это может быть связано с многоадресной доставкой (которой я никогда не пользовался), но это дикое предположение.

В качестве вторичного вопроса (фактически всей причины этого вопроса: /), есть ли случаи, когда пользовательский модуль, работающий с элементами цитаты, мог бы безопасно игнорировать элемент адреса цитаты?

Ответы [ 2 ]

13 голосов
/ 10 июля 2012

Я имел дело с этим раньше.

По сути, пункт цитаты такой, как вы его описали.Он представляет позицию в корзине со всеми ее деталями.

Что касается элемента адреса цитаты, то это просто объект, который содержит ссылку на объект элемента цитаты, ссылку на объект адреса иподмножество из позиции цитаты, которая должна быть отправлена ​​на этот конкретный адрес (но затем они бесполезно дублируют все, начиная с позиции цитаты и заканчивая ей).

В случае оформления с несколькими рассылками, это элементы адреса цитаты, которыеиспользуются для создания нескольких объектов Ордена Magento (каждый ордер, как если бы он был отдельным с подмножеством предметов цитаты).

Конечно, это неуклюжий дизайн.Было бы лучше, если бы они просто сохранили данные элемента цитаты и добавили поле идентификатора адреса и полностью исключили концепцию «элемент адреса цитаты».Похоже на случай чрезмерной нормализации, которая привела к обратному результату.

Код, который хочет связываться с корзиной, может безопасно игнорировать элементы адреса в кавычках в случае обработки только одностраничной проверки (и мультишиппинг отключен).

Если вы хотите, чтобы изменения также корректно отображались при оформлении заказа с несколькими рассылками, вы должны также связываться с адресными элементами цитаты (и код в этих областях довольно некрасивый).

7 голосов
/ 09 февраля 2011

Относится к «доставке на несколько адресов», так как каждый элемент должен быть сопоставлен с отдельным адресом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...