Magento - Получение данных об объектах котировки продукта Bundle на основе выбора пользователя

Есть ли ценный способ получения данных о настроенном продукте Bundle перед добавлением его в предложение. Вот сценарий:

  • Пользователь настроил пакетный продукт в представлении продукта
  • Добавить в корзину
  • Я ловлю процесс добавления товара в корзину с событием (sales_quote_add_item или sales_quote_product_add_after)
  • получить данные о настроенном комплекте продукта

Какие данные есть в $item. Является ли эта дыра основанной на пользователях и настроенной?

$item = $observer->getEvent()->getQuoteItem();

Является ли это связанным продуктом с товаром, и если да, в чем разница?

$product = $item->getProduct();

Пока я понимаю, это выбор пользователя

    $infoBuyRequest = $item->getBuyRequest()->toArray();
    $bundleOption = $infoBuyRequest['bundle_option'];

Вот несколько вещей, которые я не понимаю:

Как я могу получить Опции и Выборы настроенного Пакета? Если я изменяю переменную товара или продукта, я получаю много данных. Не общие параметры и наборы, а только те, которые выбрал пользователь.

Следующий вопрос: является ли $ item реальным объектом, который будет храниться в базе данных (sales_flat_quote_item), то есть настроенным?

Что я получу через $ item-> getProduct (). Это связанные данные продукта?

Как я могу получить пользовательские параметры (хранящиеся в разных массивах:bundle_selection_attributes, bundle_option_ids и т. Д.)?

1 ответ

Решение

Если на карточку добавлен пакетный продукт, то через наблюдателя sales_quote_add_item событие:

  1. Связка товара.
  2. Все лежат в основе простого продукта один за другим.

Так, например, если у вас есть продукт в комплекте, с 4 вариантами выбора продукта и количества, наблюдатель вызывается 5 раз.

В базе данных элемент предложения хранится вместе с добавленным продуктом пакета и выбранными базовыми продуктами.

$item->getProduct() возвращает объект текущего элемента цитаты.

Вы можете использовать такие функции, как $product->getName() а также $product->getId(), $product->getAttributeText('attribute_code')и т. д. и все логические вещи на нем в наблюдателе.

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