Где Magento сериализует значение product_options в sales_flat_order_item
-
16-10-2019 - |
Вопрос
В моей установке Magento все продукты являются настраиваемыми продуктами, где размер - это супер -атрибут, некоторое время назад я назвал продукты [PRODUCT_CODE] - [COLOUR]
, как 999MBELT - Black
однако это будет заместить цвет дважды, так как цветный атрибут был в описании продукта, и ему было сказано удалить его
Теперь мне поручено исправить счеты, включив, какой цвет продукт, я знаю, как это сделать, мне просто нужно отредактировать сериализованную строку в sales_flat_order_item.product_options
и изменить
s:15:"attributes_info";a:1:{i:0;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:2:"58";}
к чему -то подобному
s:15:"attributes_info";a:2:{i:0;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:2:"58";}i:1;a:2:{s:5:"label";s:6:"Colour";s:5:"value";s:10:"Dark Brown";}}
Теперь я знаю, как я собираюсь сделать это, проблема в том, что я не могу узнать, где поместить свой код
Так что мне интересно, где Magento сериализует оригинальный массив и хранит в sales_flat_order_item
Решение
Нашел это, по крайней мере, где это работает для меня, в app\code\core\Mage\Sales\Model\Convert\Quote.php
есть линия $orderItem->setProductOptions($options);
, в setProductOptions
или в функции, вызванной setProductOptions
где он сериализует данные, поэтому все, что мне нужно было сделать, это array_push
в $options['attributes_info']
Это полезно, если вы хотите добавить другие атрибуты, такие как материал, только как косметическая вещь для заказов