web-dev-qa-db-fra.com

Magento - Ajouter un attribut personnalisé à la commande

J'essaie d'ajouter un champ personnalisé à mes commandes. À ce moment, j’ai trouvé le message ci-dessous qui m’a aidé à créer un tel attribut dans ma base de données: http://fabrizioballiano.net/2011/11/15/create-a-ccum-order-attribute-in -magento/

require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

$installer = new Mage_Sales_Model_Mysql4_Setup;
$attribute  = array(
   'type'          => 'int',
   'backend_type'  => 'text',
   'frontend_input' => 'text',
   'is_user_defined' => true,
   'label'         => 'My Label',
   'visible'       => true,
   'required'      => false,
   'user_defined'  => true,
   'searchable'    => true,
   'filterable'    => true,
   'comparable'    => true,
   'default'       => 0
);
$installer->addAttribute('order', 'special_attribute', $attribute);
$installer->endSetup();

Après avoir exécuté le code ci-dessus et créé plusieurs commandes, je peux parcourir toutes les commandes et voir la valeur par défaut de chaque commande. 

La question est de savoir comment puis-je stocker les données que je veux dans ce champ? Comment puis-je récupérer ces données?

Merci!

18
MatheusJardimB

Ajoutez ceci à la portée globale dans config.xml. Ensuite, définissez simplement l'attribut dans le devis - il est automatiquement transféré à la commande dans le processus de conversion devis en commande.

<global>
...
    <fieldsets>
        <sales_convert_quote>
            <your_special_attribute>
                <to_order>*</to_order>
            </your_special_attribute>
        </sales_convert_quote>
    </fieldsets>
...
</global>

Vous pouvez récupérer/définir l'attribut à tout moment via le programme d'accès/de définition magique, par exemple.

$quote->getYourSpecialAttribute()
$order->getYourSpecialAttribute()

$quote->setYourSpecialAttribute()
28
Michael Leiss

Après avoir ajouté un champ de texte au fichier billing.phtml et l'avoir enregistré dans les tables de devis et de commandes, vous pouvez afficher l'attribut. Vous pouvez afficher le champ dans Mon compte -> Afficher la commande. Apportez les modifications suivantes dans custom.xmlfie. 

<?xml version="1.0"?>
<layout version="0.1.0">
    <sales_order_view>
        <reference name="my.account.wrapper">
            <block type="custom/custom_order" name="custom.order" template="custom/order.phtml" after='sales.order.info' />
        </reference>
    </sales_order_view>
</layout>

Pour plus d'informations, reportez-vous au blog Comment ajouter un attribut personnalisé à commander dans Magento

0
Henry Roger