Атрибут / поля пользовательского заказа Magento? Стреляешь себе в ногу? - PullRequest
5 голосов
/ 08 октября 2010

Я создаю магазин Magento, используя один каталог для 4 доменов: 1 для США и 3 для Европы (Великобритания, Франция и Германия).В Европе есть 1 склад исполнения, 1 в США и некий неофициальный / внутренний «склад» в США, где раздача подарков и тому подобное выполняется, и мы не отслеживаем уровень запасов в Magento.Нам необходимо отслеживать конкретные типы транзакций, такие как обычные веб-продажи, а также внутренние / административные заказы, такие как не веб-продажи, раздачи, заказы на выставках и т. Д. Мой план заключается в расширении базовой модели заказов и добавлении некоторого вида «тип заказа / транзакции»поле, а затем, после размещения заказа, обработайте данные заказа и укажите, в какое хранилище оно отправлено для выполнения, на основе идентификатора магазина и значения типа заказа.

Будучи новичком в Magento,Я хочу знать, является ли такая установка плохой идеей по какой-либо причине.Я стреляю в себя в ногу?Есть ли причина, по которой один каталог может быть проблематичным?Есть ли более простой или лучший способ справиться с этим потоком?Есть ли способ добавить пользовательские атрибуты к заказам, как вы можете к продуктам?

Ответы [ 2 ]

15 голосов
/ 08 октября 2010

Вы движетесь в правильном направлении, но (как и в большинстве случаев с Magento) есть несколько вариантов. Наиболее важным принципом здесь является то, что архитектура модификаций не должна приводить к ситуации, когда обновления / исправления ядра скомпрометированы. Что интересно в этом, так это то, что в текущем выпуске Magento отказался от чрезвычайно расширяемой и безопасной для обновления (в основном) модели EAV для Mage_Sales_Model_Order (и связанных объектов). Это затрудняет добавление атрибутов безопасным для обновления способом, ИМХО.

Я бы рекомендовал использовать систему Observer для добавления новых значений атрибутов, но в связанную модель. То есть вместо добавления атрибута в саму модель Order создайте модель, содержащую order_id и ваши пользовательские атрибуты. Подключитесь к соответствующему событию (вероятно, sales_convert_quote_to_order для всех заказов или checkout_type_onepage_save_order_after для заказов в веб-интерфейсе) и изучите элементы квоты, чтобы установить значения в вашей пользовательской модели. Когда вы выполняете свой процесс для передачи заказов в дом исполнения, вы можете искать пользовательские атрибуты через order_id.

6 голосов
/ 13 января 2011

Другой (лучше?) Вариант - следовать совету Ивана на Magento - Добавление нового столбца в sales_flat_quote_item и sales_flat_order_item и использовать класс настройки продаж Magento, чтобы добавить свои данные в таблицу sales_flat_order в безопасном для обновления обновлении.образом.

...