Где Magento сериализует значение product_options в sales_flat_order_item

magento.stackexchange https://magento.stackexchange.com/questions/2786

Вопрос

В моей установке 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']

Это полезно, если вы хотите добавить другие атрибуты, такие как материал, только как косметическая вещь для заказов

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top