【问题标题】:What is the conceptual difference between a Product and a Quote Item产品和报价项目之间的概念区别是什么
【发布时间】:2010-03-01 11:56:24
【问题描述】:

涉及的类:Mage_Sales_Model_Quote_ItemMage_Catalog_Model_Product

由于监听事件(在购物车上添加),我得到了他们两个。我正在尝试从外部来源更新产品的数量信息。

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

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

谢谢

【问题讨论】:

    标签: magento e-commerce


    【解决方案1】:

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

    quote 是一个与 order 相关的概念,只是在 Magento 中的工作流程方面之前。现实世界的概念类似于 预购,就像一个 postIt,您可以在上面放置您在餐厅中询问的菜肴,而不是订单或账单。

    我正在监视向我发送 $product 和 $orderItem 的事件 (checkout_cart_product_add_after)。我现在明白,发送既是为了获取有关产品的信息,又是有关计费的信息以及该产品在未来订单中的表示。

    在分组产品的情况下,例如 $product 是具有各种相关尺寸的 T 恤,$product 将包含主要分组产品的 SKU,$orderItem 将包含所选 T 恤的实例 (中型 SKU)。

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

    【讨论】:

      【解决方案2】:

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

      从后端的角度来看,产品数据存储在:catalog_product_entity_*,而报价项目存储在 sales_flat_quote_item(至少在 Enterprise 中。其他人可能想在社区上验证这一点)。


      编辑:附上我们为导入产品库存而编写的一些代码。

      $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();,但我将整个 sn-p 包括在内,因为它有效。

      希望对您有所帮助。谢谢, 乔

      【讨论】:

      • 我很感激你的努力,但你在搞混。 $item->qty 是不同于 $product->qty 的另一个概念
      • $item->qty 是添加到当前购物车中的 $product 类型的商品数量
      • 抱歉,不幸的是,变量名称之间有重叠。我已将其重命名为更清晰(为了后代,因为这显然没有回答您的问题)。
      【解决方案3】:

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

      为什么会来自我工作的公司,以及为什么我们分别对这些东西建模:

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

      【讨论】:

        猜你喜欢
        • 2012-03-23
        • 2019-05-17
        • 2012-06-02
        • 2023-03-10
        • 2016-04-24
        • 2017-02-06
        • 2018-08-08
        • 2011-03-07
        • 2013-12-23
        相关资源
        最近更新 更多