Magento - Ajout d'attributs de produit définis par l'utilisateur aux devis et aux commandes
Introduction
Magento propose une plate-forme personnalisable qui permet aux utilisateurs d'étendre ses fonctionnalités avec des attributs personnalisés. Ce guide montrera comment créer un attribut de produit spécialement conçu pour les articles de devis et de commande, permettant aux utilisateurs de configurer et de capturer cet attribut pendant le processus de paiement.
Création et ajout de l'attribut
Conserver l'attribut dans les commandes
Affichage de l'attribut
Considérations supplémentaires
Exemple de code
Charge de produit du catalogue après observateur d'événement
<code class="php">public function catalogProductLoadAfter(Varien_Event_Observer $observer) { // Get the product $product = $observer->getProduct(); // Get the extra options $options = $action->getRequest()->getParam('extra_options'); // Add the extra options to the product $additionalOptions = array(); if ($additionalOption = $product->getCustomOption('additional_options')) { $additionalOptions = (array) unserialize($additionalOption->getValue()); } foreach ($options as $key => $value) { $additionalOptions[] = array( 'label' => $key, 'value' => $value, ); } $product->addCustomOption('additional_options', serialize($additionalOptions)); }</code>
Ventes Convertir un article de devis en article de commande Observateur d'événement
<code class="php">public function salesConvertQuoteItemToOrderItem(Varien_Event_Observer $observer) { // Get the quote item and order item $quoteItem = $observer->getItem(); $orderItem = $observer->getOrderItem(); // Get the additional options from the quote item $additionalOptions = $quoteItem->getOptionByCode('additional_options'); // Set the additional options on the order item $options = $orderItem->getProductOptions(); $options['additional_options'] = unserialize($additionalOptions->getValue()); $orderItem->setProductOptions($options); }</code>
Affichage des attributs personnalisés dans le modèle
<code class="php">// Get the product options $options = $_item->getOptions(); // Check if additional_options is set if (isset($options['additional_options'])) { // Get the additional options $additionalOptions = $options['additional_options']; // Add a placeholder row for the custom attribute echo '<tr> <td class="options label" title=""><span>' . $this->__('Custom Attribute') . '</span></td> <td class="options value" title=""> <span>' . $additionalOptions[0]['value'] . '</span> </td> </tr>'; }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!