2016-08-10 16 views
0

注文ブロック内のデフォルトのSKU属性(製品番号)をアイテムブロックでカスタム属性に変更したいとします。注文商品列内のMagento変更属性

参照:デフォルトでは現在

enter image description here

がSKUが表示され、私はDPN(私のカスタム属性を作成した)にこれを変更したいです。

この属性コードは、dpnです。

どうすれば実現できますか?デフォルトのコードから

/app/code/core/Mage/Adminhtml/Block/Sales/Items/Column/Default.php

私は、ファイルを編集

public function getSku() 
{ 
    /*if ($this->getItem()->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) { 
     return $this->getItem()->getProductOptionByCode('simple_sku'); 
    }*/ 
    return $this->getItem()->getSku(); 
} 

To:

public function getSku() 
{ 
    /*if ($this->getItem()->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) { 
     return $this->getItem()->getProductOptionByCode('simple_sku'); 
    }*/ 
    return $this->getItem()->getDpn(); 
} 

しかし、これは動作しません。値をreturn $this->getItem()->getProductId();に変更すると、製品IDが表示されますので、動作します。

属性からデータを取得するにはどうすればよいですか?

答えて

0

注文品(sales/order_item)は、製品(catalog/product)と同じ対象ではありません。代わりに、注文アイテムは、注文が作成されたときの製品のスナップショットによく似ています。

これにより、(顧客の注文履歴ページまたは管理パネルから)注文商品にアクセスでき、関連商品が削除または変更された後でも変更されないようにすることができます。

Magentoは、最初にカートに追加された 'snapshotting'製品によって見積もり項目(sales/quote_item)を作成します。最終的には、見積もりアイテムがオーダーアイテムに変換されます。

タスクを完了するには、新しいQuoteアイテム属性を作成し、その属性をOrderアイテムに変換する必要があります(オプションで、sales/invoice_itemsales/creditmemo_itemに変換できます)。

アトリビュートフォームの見積もりアイテムをオーダーアイテムに変換するには、Magento <fieldset>設定エレメントを参照してください。

オルタナティブ、より最適で、ソリューション:あなたが製品をフェッチし、オーダービューページで製品の属性値を使用するためにご注文のアイテムを使用することができます。

public function getSku() 
{ 
    return $this->getItem()->getProduct()->getDpn(); 
} 

あなたの属性値を変更した場合ことに注意してください商品、値はすべてのオーダービューページでも変更されます。

関連する問題