Magento - 根据用户选择获取Bundle产品的报价对象数据

时间:2014-05-13 11:22:28

标签: magento bundle product quote

在将配置的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'];

以下是我不理解的一些事情:

如何获取已配置的Bundle的选项和选项?如果我var_dumb项目或产品变量我得到了很多数据。不是总选项和选项,只是用户选择的选项和选项。

接下来的问题是: $ item 是将存储在数据库中的实际对象(sales_flat_quote_item),那么配置的那个?

我通过 $ item-> getProduct()了解了什么。这是相关的产品数据吗?

如何获取自定义选项(存储在不同的数组中:bundle_selection_attributes,bundle_option_ids等等)?

1 个答案:

答案 0 :(得分:1)

如果将bundleproduct添加到卡中,则会通过sales_quote_add_item事件的观察者传递以下内容:

  1. 捆绑产品。
  2. 所有潜在的简单产品一个接一个。
  3. 所以,如果你是有一个捆绑产品,有4个选项来选择产品和数量,观察者被称为5次。

    在数据库中,报价项目与添加的捆绑产品及其选定的基础产品一起存储。

    $item->getProduct()会返回当前报价项的对象。

    您可以使用$product->getName()$product->getId()$product->getAttributeText('attribute_code')等功能以及观察者中的所有逻辑内容。