Magento: Какова концептуальная разница между Item Quote и Item Item?

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

Я думаю, что я понимаю концепцию элемента Quote (Mage_Sales_Model_Quote_Item), сопоставленного с таблицей sales_flat_quote_item db) - в основном позиция в корзине клиентов, которая включает имя /sku продукта, количество и любые специальные опции. То, что я не понимаю, - это то, что указывает адрес позиции адреса Mage_Sales_Model_Quote_Address_Item - сопоставлен с таблицей продаж_flat_quote_address_item db). Я вижу, что у него есть связанный с ним адрес, но для чего это чертовски? Я могу себе представить, что это может иметь какое-то отношение к многоадресной доставке (что я никогда не использовал), но это дикая догадка.

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

Ответ 1

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

Ответ 2

Я уже говорил об этом раньше.

В основном позиция цитаты такова, как вы ее описали. Он представляет позицию в тележке со всеми ее деталями.

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

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

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

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

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