2016-08-10 4 views
0

Я хочу изменить атрибут SKU по умолчанию (номер продукта) внутри orderview в блоке элементов в пользовательский атрибут.Magento изменить атрибут внутри заказа product row

См:

enter image description here

В настоящее время по умолчанию отображается SKU, я хочу изменить это в ДПН (мой пользовательский создан атрибут).

Код атрибута для этого: 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(); 
} 

До:

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();, тогда я получаю идентификатор продукта, чтобы он работал.

Как я могу получить данные из атрибута?

ответ

0

Элемент заказа (sales/order_item) - это не тот же объект, что и Продукт (catalog/product). Вместо этого элемент заказа больше похож на моментальный снимок продукта при создании заказа.

Это позволяет доступным элементам заказа (со страницы истории заказа клиента или панели администратора) и без изменений даже после удаления или изменения их соответствующего продукта.

Magento, сначала создает Quote item (sales/quote_item) автор 'snapshotting', добавленный в корзину. В конце концов элемент котировки преобразуется в элемент заказа.

Для выполнения вашей задачи вам необходимо создать новый атрибут Quote item и преобразовать атрибут в элемент Order (необязательно, вы можете его преобразовать в sales/invoice_item и sales/creditmemo_item).

Чтобы преобразовать атрибут формы, введите элемент в пункт заказа, прочтите описание элемента конфигурации Magento <fieldset>.

Альтернатива, менее оптимальным, решение: Вы можете использовать ваш деталь заказа для извлечения продукта и использовать значение атрибута продукта на заказ странице просмотра:

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

Имейте в виду, что если вы измените значение атрибута для вашего продукт, значение будет также изменяться на всех страницах просмотра заказа.

Смежные вопросы