2010-03-01 57 views
4

涉案類之間的概念上的差異:Mage_Sales_Model_Quote_ItemMage_Catalog_Model_Product是什麼產品和報價項目

作爲聽一個事件(在購物車添加)的結果,我得到了他們兩個。我試圖從外部來源更新產品的數量信息。

到目前爲止,我只根據產品信息對我的代碼進行了基於,我不確定這是否正確。

報價物品的用途是什麼? 捆綁的可配置產品如何?你有關於如何從捆綁產品中獲取單個物品的建議嗎?

感謝

回答

3

我想感謝兩位響應者迄今爲止的努力,但他們的回答與我的問題相去甚遠。我會嘗試根據我所學到的東西來回應自己。

一個報價是與爲了一個概念,這是唯一在Magento的工作流程方面在這之前。一個真實的世界概念就像一個預購,就像一個郵局,你可以把它放在餐廳,而不是一個訂單或一張賬單。

我正在監視發送$ product和$ orderItem的事件(checkout_cart_product_add_after)。我現在明白,這是爲了獲得有關產品的信息以及有關結算的信息以及未來訂單中該產品的表示。

對於分組產品,例如$ product是具有各種關聯大小的Tshirt,$ product將包含主分組產品的SKU,$ orderItem將包含所選Tshirt的實例(中等尺寸的SKU)。

FYI:所以爲了如果是一個複雜的類型(包,配置或分組)

1

我的第一個答案是,一個產品和對產品的報價是兩個獨立的實體,因此不應該在一個統一的實體建模。

爲什麼會在我工作的公司,爲什麼我們分開這些事情型號的例子:

在我們的電子採購系統,你可能有一個特定的買方和賣方之間的「契約」。 「報價」項目在發票條目中對此進行了模擬。如果沒有合同,則使用正常產品價格創建報價項目,否則使用供應商和買方之間的「合同」來調整價格。

3

Magento特別將報價物品放入購物車。這些報價項目使用$product->prepareForCart進行檢索。這些項目還包括不同的信息,如數量和可配置的產品選項(在報價項目上)。

從後端角度看,產品數據存儲在:catalog_product_entity_*,而報價項存儲在sales_flat_quote_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

+0

我更新的車更新一個產品,你有我優,以獲得從$項目的產品信息的信息想要更新庫存數量而不是購物車數量。 – 2010-03-01 15:04:09

+0

我很欣賞這種努力,但您正在製造混亂。 $ item-> qty是另一個概念,而不是$ product-> qty – 2010-03-02 09:29:25

+0

$ item-> qty是添加到當前購物車的$ product類型的商品數量 – 2010-03-02 09:44:52