Je veux sauvegarder des informations personnalisées dans order_item-table
. Ces informations ont été créées dans le panier. Je fais donc comme décrit dans este poste.
J'ai installé l'attribut :
$installer->addAttribute('quote_item', 'final_delivery_time', $settings);
$installer->addAttribute('order_item', 'final_delivery_time', $settings);
déclarer le jeu de champs dans le fichier config.xml
<fieldset>
<sales_convert_quote_item>
<final_delivery_time>
<to_order_item>final_delivery_time</to_order_item>
</final_delivery_time>
</sales_convert_quote_item>
<sales_convert_order_item>
<final_delivery_time>
<to_quote_item>*</to_quote_item>
<to_invoice_item>*</to_invoice_item>
<to_shipment_item>*</to_shipment_item>
<to_cm_item>*</to_cm_item>
</final_delivery_time>
</sales_convert_order_item>
</fieldset>
et un peu de code dans le panier par exemple
$oQuote = Mage::getSingleton('checkout/session')->getQuote();
foreach ( $oQuote->getAllItems() as $_item )
{
$orderItemId = $_item->getId();
$_item->setFinalDeliveryTime('some Value');
$_item->save();
}
J'ai donc obtenu un devis et j'ai mon terrain. final_delivery_time
avec cette valeur dans le sales_flat_quote_item
tableau
Après avoir passé la commande dans onepage-review
je devrais également avoir ce champ dans le champ sales_flat_order_item table
mais il n'y a rien. Dans la colonne se trouve null
. J'ai donc besoin que la valeur du champ soit enregistrée dans la commande.