Wo serialisiert Magento den Wert von product_options in Sales_flat_order_item
-
16-10-2019 - |
Frage
In meiner Magento -Installation sind alle Produkte konfigurierbare Produkte, bei denen die Größe das Superattribut ist. Vor einiger Zeit habe ich die Produkte benannt [PRODUCT_CODE] - [COLOUR]
, wie 999MBELT - Black
Dies würde jedoch die Farbe doppelt so verdrängen lassen, wie das Farbattribut in der Produktbeschreibung war, und es wurde gesagt, dass sie sie entfernen sollen
Ich wurde jetzt beauftragt, die Rechnungen zu reparieren, indem ich einbezieht, was Farbe eines Produkts hat. Ich weiß, wie man das macht. Ich muss nur die serialisierte Zeichenfolge in bearbeiten sales_flat_order_item.product_options
und ändern
s:15:"attributes_info";a:1:{i:0;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:2:"58";}
zu so etwas
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";}}
Jetzt weiß ich, wie ich das machen werde. Das Problem ist, dass ich nicht herausfinden kann, wo ich meinen Code einsetzen soll
Ich frage mich also, wo Magento das ursprüngliche Array serialisiert und in in in in den in der In IN speichert sales_flat_order_item
Lösung
fand es, zumindest dort, wo es für mich funktioniert, in app\code\core\Mage\Sales\Model\Convert\Quote.php
Es gibt eine Linie $orderItem->setProductOptions($options);
, in setProductOptions
oder in einer Funktion, die von aufgerufen wurde setProductOptions
wo es die Daten serialisiert, so dass ich nur tun musste war array_push
hinein $options['attributes_info']
Dies ist nützlich, wenn Sie andere Attribute wie Material nur als kosmetische Sache für Bestellungen hinzufügen möchten