Magento 产品和报价项目在概念上有什么区别

Magento 产品和报价项目在概念上有什么区别,magento,e-commerce,Magento,E Commerce,涉及的类别:Mage\u销售\型号\报价\项目和Mage\u目录\型号\产品 我听到一个事件(在cart add上)后得到了这两个结果。我正在尝试从外部来源更新产品的数量信息 到目前为止,我的代码只基于产品信息,我不确定这是否正确 报价项目的目的是什么? 一个捆绑的可配置产品怎么样?对于如何从捆绑产品中获取单个项目,您有什么建议吗 谢谢我的第一个答案是,产品和产品报价是两个独立的实体,因此不应在统一的实体中建模 一个例子说明了为什么我会选择我工作的公司,以及为什么我们要分别对这些东西进行建模:

涉及的类别:Mage\u销售\型号\报价\项目Mage\u目录\型号\产品

我听到一个事件(在cart add上)后得到了这两个结果。我正在尝试从外部来源更新产品的数量信息

到目前为止,我的代码只基于产品信息,我不确定这是否正确

报价项目的目的是什么? 一个捆绑的可配置产品怎么样?对于如何从捆绑产品中获取单个项目,您有什么建议吗


谢谢

我的第一个答案是,产品和产品报价是两个独立的实体,因此不应在统一的实体中建模

一个例子说明了为什么我会选择我工作的公司,以及为什么我们要分别对这些东西进行建模:


在我们的电子采购系统中,您可能在特定的买方和卖方之间有一个“合同”。当涉及发票条目时,“报价”项对此进行建模。如果没有合同,则使用正常产品价格创建报价项目,否则使用供应商和买方之间的“合同”调整价格。

Magento将报价项目放入购物车,特别是。使用
$product->prepareForCart
检索这些报价项。这些项目还包括不同的信息,例如数量和可配置的产品选项(在报价项目上)

从后端的角度来看,产品的数据存储在:
catalog\u product\u entity\u*
中,而报价项目存储在
sales\u flat\u quote\u item
中(至少在企业中。其他人可能希望在社区中验证这一点)


编辑:附加一些代码,我们写的进口产品库存一段时间

$product                 = Mage::getModel("catalog/product")->load($productId);
$product->seStockData(array(
    "qty"                         => (int)$yourQuantity,
    "is_in_stock"                 => ((int)$isTheProductInStock),
    "manage_stock"                => $manageStock,
    "is_qty_decimal"              => $isQtyDecimal,
    "use_config_manage_stock"     => $useConfigManageStock,
));

Mage::getModel('catalog/product_api')->update($sku,$product->getData());
出于您的目的,您可能只需要调用
$product->save(),但我将整个代码段都包括在内,因为它可以工作

希望有帮助。谢谢
Joe

我想感谢两位回复者迄今为止的努力,但他们的回答与我的问题相去甚远。我会试着根据我学到的东西来回应自己

报价是一个与订单相关的概念,仅在Magento的工作流程方面先于订单。现实世界中的概念有点像预订单,就像你在餐馆里把要点菜的东西放在一个位置上,而不是一张订单或账单

我正在监视一个事件(checkout\u cart\u product\u add\u after),该事件向我发送$product和$orderItem。我现在了解到,这是为了获得有关产品的信息,以及有关计费和该产品在未来订单中的表示的信息而发送的

对于分组产品,例如,$product是具有各种关联尺寸的T恤,则$product将包含主分组产品的SKU,$orderItem将包含所选T恤的实例(中等尺寸SKU)


仅供参考:因此,为了在购物车更新时更新产品信息,如果是复杂类型(捆绑、可配置或分组),最好从$item获取产品信息。

我感谢您的努力,但您正在制造混乱$item->qty是另一个概念,而不是$product->qty$item->qty是添加到当前购物车中的$product类型的商品数量,这是变量名称之间不幸的重叠。我把它重新命名为更清晰的名称(为了子孙后代,因为这显然没有回答你的问题)。