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
событие:
- Связка товара.
- Все лежат в основе простого продукта один за другим.
Так, например, если у вас есть продукт в комплекте, с 4 вариантами выбора продукта и количества, наблюдатель вызывается 5 раз.
В базе данных элемент предложения хранится вместе с добавленным продуктом пакета и выбранными базовыми продуктами.
$item->getProduct()
возвращает объект текущего элемента цитаты.
Вы можете использовать такие функции, как $product->getName()
а также $product->getId()
, $product->getAttributeText('attribute_code')
и т. д. и все логические вещи на нем в наблюдателе.