Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento-根据用户选择获取捆绑产品的报价对象数据_Magento_Bundle_Product_Quote - Fatal编程技术网

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

Magento-根据用户选择获取捆绑产品的报价对象数据,magento,bundle,product,quote,Magento,Bundle,Product,Quote,在将已配置的捆绑产品添加到报价之前,是否有一种有价值的方法来获取该产品的数据。以下是场景: 用户在产品视图中配置了捆绑产品 添加到购物车 我通过一个事件(sales\u quote\u add\u item或sales\u quote\u product\u add\u after)捕捉将产品添加到购物车的过程 获取已配置捆绑产品的数据 $item中包含哪些数据。这是基于孔用户和配置的产品数据吗 $item = $observer->getEvent()->getQuoteIte

在将已配置的捆绑产品添加到报价之前,是否有一种有价值的方法来获取该产品的数据。以下是场景:

  • 用户在产品视图中配置了捆绑产品
  • 添加到购物车
  • 我通过一个事件(sales\u quote\u add\u item或sales\u quote\u product\u add\u after)捕捉将产品添加到购物车的过程
  • 获取已配置捆绑产品的数据
$item中包含哪些数据。这是基于孔用户和配置的产品数据吗

$item = $observer->getEvent()->getQuoteItem();
这是与项目相关的产品吗?如果是,区别是什么

$product = $item->getProduct();
据我所知,这是用户选择吗

    $infoBuyRequest = $item->getBuyRequest()->toArray();
    $bundleOption = $infoBuyRequest['bundle_option'];
有几件事我不明白:

如何获取配置包的选项和选择?如果我对项目或产品变量进行赋值,我会得到很多数据。不是全部选项和集合,而是用户选择的选项和集合

下一个问题是:$item是将存储在数据库中的实际对象(sales\u flat\u quote\u item),所以是配置的对象吗

通过$item->getProduct()我能得到什么。这是关联的产品数据吗


如何获取自定义选项(存储在不同的数组中:bundle\u selection\u属性、bundle\u option\u id等)

如果将bundleproduct添加到卡中,以下内容将通过
sales\u quote\u add\u item
事件的观察者传递:

  • 捆绑产品
  • 所有底层的简单产品一个接一个
  • 因此,如果您有一个捆绑产品,有4个选项可选择产品和数量,则会调用观察者5次

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

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


    您可以使用诸如
    $product->getName()
    $product->getId()
    $product->getAttributeText('attribute_code')
    等函数以及observer中的所有逻辑内容。

    好的,谢谢。getProduct()和getQuoteItem()是否返回当前报价项的相同对象?如果我想分析捆绑报价项结构,例如向捆绑对象插入新的简单产品,该怎么办?不,它不一样。您应该使用getProduct()。向bundle对象添加简单产品是另一个(困难的)问题。也许你应该提出一个全新的问题,这是问题的一部分。好吧,也许问题中会有更多的反馈:)他信,但你在问题中没有提到这一点。我的回答对你上面提到的问题有用吗?当然有用。对我来说,更重要的是要知道如何获取选项和选择&能够通过观察者插入项目