2012-01-27 78 views
4

我一直在閱讀教程的很多在互聯網,但即使在Magento站點的那些是1.5版本或甚至一些功能的引用不再存在。自定義數據添加到購物車項目在Magento 1.6

什麼我做的是簡單的,我發送一個項目一個自定義腳本的Magento之外,其中用戶進行設計,那麼客戶可以點擊添加到購物車從那裏和它重新添加到Magento的。

我需要的是將設計的圖像文件名稱作爲訂單處理中顯示的訂單項特定數據片段,以及客戶端和管理端的查看訂單歷史記錄。

我有一個模塊掛鉤到checkout_cart_product_add_after,並能夠獲得以下信息:designsdesignIddesignId用於用戶返回編輯設計的情況,因此設計被重新加載,然後當物品返回時,如果不同,designsdesignId內容應該被替換。

目前,我正在通過URL將產品添加到購物車,因爲有關如何將其實用工具添加到某種程度的示例,但最終無法保存到購物車。我假設STORE_ID和Magento代碼中的一些隨機毛刺之間的區別。

我很欣賞指向更堅實的信息,而不是僅僅翻閱舊的文檔來查看是否有任何有用的東西擺脫它,它已經讓我走得這麼遠,但它不是一個正確完成工作的有效方法。

+0

你用什麼樣的方法?您嘗試了URL參數選項,但忘記了放置示例代碼。也許,你的代碼是錯誤的! – 2012-01-27 20:37:18

+0

對文檔更​​感興趣。添加購物車的代碼是最不感興趣的,因爲該模塊確實獲得了我需要的信息,我專注於實際將數據添加到從URL添加到購物車的訂單項中,除非實際上更輕鬆地添加它們,在這種情況下,我會粘貼代碼。 – user00265 2012-01-27 20:57:17

回答

7

這種方法有很多事情需要考慮,並且有幾種方法可以做到。如果有任何事情,這很不簡單。

A)首先,看看這是否可以通過現有的產品定製選項來實現。如果有什麼辦法可以做到這一點,而無需改變大量的核心功能,它會讓你的生活更輕鬆。 B)就個人而言,我會考慮爲您的自定義內容創建一個模型,並在該內容與sales/quote_itemsales/order_item之間建立關係。您需要修改前端才能使用此功能,並且還需要管理區域才能顯示信息,併爲管理員提供了將自定義內容添加到項目的方法。這可能是你做到最徹底的方式。

C)或者,您可以在將項目添加到報價時將自定義數據數組添加到報價中。爲此,您將不得不完全劫持添加到購物車控制器。首先,從現有控制器中獲取所有功能。看看Mage_Sales_Model_Quote :: addProduct命令()函數,你會看到它有兩個參數,如下所示:

$quote->addProduct($product, $request); 

其中$request是格式化這樣Varien_Object類型:

$request = new Varien_Object(array(
    'qty'=>$qty, 
    'options'=>$options, 
    'custom_options'=>$custom_options 
)); 

,並在那裏$custom_options是一組自定義數據。

這種方式可能有用,但充滿危險。您需要確保您複製了原始加載車控制器的所有功能,包括分派事件並設置所有會話標誌。還有其他的考慮。如果您的數據是特定訂單項,那麼我們可以安全地假設您不希望Magento簡單地增加購物車中訂單項的數量,因爲特定數據適用於特定的訂單項。爲此,您可以覆蓋Mage_Sales_Model_Quote,然後複製getItemByProduct()函數對訂單項運行不同的檢查集,以確定是否增加數量。

如果你不能做A,B是我推薦的方法。短期來看,這可能會耗費更多時間,但長期而言則是更好的解決方案。

相關問題