2017-01-26 2 views
0

У меня возник вопрос о получении атрибута из настраиваемого продукта. Потому что мы немного почистили наш каталог и удалили некоторые продукты, включая несколько настраиваемых продуктов со связанными с ними продуктами, мы не можем отправлять электронные письма с заказами, которые связаны с этими удаленными продуктами. В целом мы показываем тексты атрибутов из настраиваемого продукта в электронном письме. В моем примере у меня есть настраиваемый продукт с атрибутом size_attribute. Продукт в заказе имеет, например, значение 20х20см.Magento - получить текст атрибута из удаленного конфигурируемого продукта в orderemail

Обычно я получаю значение атрибута, как это:

../template/email/order/items/order/default.phtml

$_simple = Mage::getModel('catalog/product')->loadbyAttribute('sku',$_item->getSku()); 

$attr = $_simple->getResource()->getAttribute('size_attribute'); 
$attribute_code = Mage::getModel('eav/entity_attribute')->load($attr->getAttributeId())->getAttributeCode(); 

$attribute_text = $_simple->getAttributeText($attribute_code) 

Теперь у меня есть проблема, что эта линия потерпит неудачу причины продукт больше не существует в нашей базе:

Mage::getModel('catalog/product')->loadbyAttribute('sku',$_item->getSku()) 

Я знаю, что Magento скопировать всю информацию о каждом OrderItem в сен arate table, который не затрагивается при удалении продуктов из каталога.

К сожалению, большинство решений, которые я прочитал через Интернет, начинаются с указанной выше строки.

Так есть способ получить текст атрибута по-другому?

ответ

0

Невозможно загрузить продукт, который был удален, очевидно.

Проблема здесь была вызвана неправильной реализацией, в первую очередь при обработке заказов данные не должны извлекаться из продуктов, поскольку значения атрибутов могут меняться. Вместо этого должен быть создан новый атрибут sales/quote_item, где значение из продукта будет скопировано во время процесса добавления в корзину (возможно, на событии sales_quote_item_set_product).

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