Magento - 見積書と注文にユーザー定義の製品属性を追加する
概要
Magentoは、ユーザーがカスタム属性を使用して機能を拡張できるカスタマイズ可能なプラットフォームを提供します。このガイドでは、見積品目と注文品目用に特別に設計された商品属性を作成し、ユーザーがチェックアウト プロセス中にこの属性を設定および取得できるようにする方法を説明します。
属性の作成と追加
注文での属性の永続化
属性の表示
追加の考慮事項
コード例
イベント オブザーバー後のカタログ製品ロード
<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>
営業が見積品目を注文品目イベントオブザーバーに変換
<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>
テンプレート内のカスタム属性表示
<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>
以上がMagento で見積もりや注文にカスタム属性を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。