Как получить идентификатор сгруппированного продукта, из которого в Magento был заказан простой продукт?

Позвольте мне начать с некоторого контекста. Я работаю в Magento Enterprise Edition 1.8.0.0, и я относительно новичок в разработке Magento.

Я видел вопросы, подобные этим, в Stack Overflow, на форумах и блогах, но ответ, как правило, похож на тот, который я придумал сам:

$parentIds = (Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($_item->getProductId());
$parentId = $parentIds[0];

Это правда, что при этом будет получен родительский идентификатор, но не всегда будет получен правильный. "Правильный" родительский идентификатор, в моем случае, принадлежит к сгруппированному продукту, из которого простой продукт был помещен в корзину и в конечном итоге заказан.

Файл, в который я пытаюсь вставить эту логику:

my_template_path/email/order/items/order/default.phtml

Конечной целью является получение миниатюрного изображения нужного сгруппированного продукта в транзакционном электронном письме с подтверждением заказа. Есть идеи?

1 ответ

Решение

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

foreach ($order->getAllItems() as $item) {
    $options = $item->getProductOptions();
    $parentId = $options['super_product_config']['product_id'];

}
Другие вопросы по тегам