Magento - 基於報價/訂單創建期間用戶輸入的產品屬性
簡介
本文將提供以下解決方案建立不儲存在產品上或顯示在產品編輯頁面上的自訂產品屬性。相反,它將保存到訂單/報價項目並顯示在訂單、發票和其他相關文件上。此外,在將產品添加到購物車之前,客戶可以在前端進行配置。
問題定義
- 新增自訂產品屬性,即不是標準產品屬性或自訂選項的一部分。
- 在將其新增至購物車之前,客戶應在產品頁面上可見並配置該屬性。
- 該屬性的值應使用以下格式儲存報價/訂單項目。
- 屬性值應顯示在訂單、發票、銷售電子郵件和其他相關文件上。
- 提供根據屬性值過濾訂單集合的功能。
解決方案
捕獲、驗證和保存屬性值
-
觀察。者:
使用事件觀察者,例如catalog_product_load_after,捕獲並儲存屬性的值。 -
客戶輸入:
在產品頁面中新增表單元素,以允許客戶輸入屬性的值。 -
驗證:
在伺服器端驗證客戶輸入以確保其符合指定條件。 -
其他選項:
將驗證後的值儲存在產品模型的 custom_options 陣列的 extra_options 鍵中。
顯示屬性值
-
訂單和發票顯示:
自訂訂單和發票範本以將屬性值與其他發票範本產品詳細資訊一起顯示。 -
電子郵件顯示:
更新銷售電子郵件範本以在相關部分中包含屬性值。
過濾訂單集合
-
自訂屬性:
在資料庫中建立自訂屬性來儲存屬性的值。 -
事件觀察器:
使用事件觀察器,例如 sales_convert_quote_item_to_order_item,填入自訂屬性。 -
訂單集合:
使用下列指令查詢訂單集合:自訂屬性的值作為篩選條件。
重新排序支援
要確保屬性的值在重新排序期間保持不變,請使用結帳事件觀察器,例如checkout_cart_product_add_after,將屬性值複製到報價項。
翻譯
- 使用事件觀察器翻譯報價和訂單項目中的屬性標籤和值。
- 如有必要,覆蓋預設顯示範本來處理翻譯。
以上是如何在 Magento 中根據建立報價/訂單期間的使用者輸入建立動態產品屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!