我想根据客户选择的选项计算价格。
例如,有两个可配置属性length,width
在将产品添加到购物车之前,我想根据所选长度修改价格&宽度
$finalPrice=$rrp+($length*$width)
有没有可用的事件来实现这个目标?
答案 0 :(得分:9)
我会查看catalog_product_get_final_price
,有关示例用法,请参阅Mage_CatalogRule_Model_Observer::processFrontFinalPrice()
。请注意,在此事件之后处理基于选项的定价;请参阅Mage_Catalog_Model_Product_Type_Price::getFinalPrice()
和Mage_Catalog_Model_Product_Type_Configurable_Price::getFinalPrice()
。
请注意,自定义此功能需要使用不同的报价状态,客户状态,产品类型等进行大量测试。例如,考虑首次添加到购物车中的产品,然后更新其数量从购物车。通常有必要在几个方法/观察者中实现逻辑来处理所有排列。
当客户未登录时,在CE1.7中触发的事件的完整列表,新购物车,简单产品:
<强> controller_front_init_routers 强>
Mage_Cms_Controller_Router::initControllerRouters()
<强> controller_action_predispatch 强>
Mage_Log_Model_Visitor::initByRequest()
Mage_PageCache_Model_Observer::processPreDispatch()
Mage_Persistent_Model_Observer::emulateQuote()
Mage_Persistent_Model_Observer_Session::renewCookie()
Mage_Persistent_Model_Observer::checkExpirePersistentQuote()
Mage_Persistent_Model_Observer::emulateCustomer()
<强> catalog_product_load_after 强>
Mage_CatalogInventory_Model_Observer::addInventoryData()
<强> custom_quote_process 强>
Mage_Persistent_Model_Observer::setLoadPersistentQuote()
<强> sales_quote_config_get_product_attributes 强>
Mage_SalesRule_Model_Observer::addProductAttributes()
<强> prepare_catalog_product_collection_prices 强>
Mage_CatalogRule_Model_Observer::prepareCatalogProductCollectionPrices()
<强> sales_quote_item_collection_products_after_load 强>
Mage_CatalogInventory_Model_Observer::addInventoryDataToCollection()
<强> sales_quote_item_qty_set_after 强>
Mage_CatalogInventory_Model_Observer::checkQuoteItemQty()
<强> sales_quote_collect_totals_before 强>
Mage_Tax_Model_Observer::quoteCollectTotalsBefore()
<强> sales_quote_address_collect_totals_before 强>
Mage_Sales_Model_Observer::changeQuoteCustomerGroupId()
<强> sales_quote_address_collect_totals_after 强>
Mage_Sales_Model_Observer::restoreQuoteCustomerGroupId()
<强> sales_quote_address_collect_totals_before 强>
Mage_Sales_Model_Observer::changeQuoteCustomerGroupId()
<强> catalog_product_get_final_price 强>
Mage_CatalogRule_Model_Observer::processFrontFinalPrice()
<强> sales_quote_address_collect_totals_after 强>
Mage_Sales_Model_Observer::restoreQuoteCustomerGroupId()
<强> sales_quote_collect_totals_after 强>
Mage_Sales_Model_Observer::setQuoteCanApplyMsrp()
<强> sales_quote_save_before 强>
Mage_Persistent_Model_Observer::setQuotePersistentData()
<强> sales_quote_save_after 强>
Mage_Checkout_Model_Observer::salesQuoteSaveAfter()
Mage_Log_Model_Visitor::bindQuoteCreate()
<强> sales_quote_item_save_before 强>
Mage_Reports_Model_Event_Observer::checkoutCartAddProduct()
<强> checkout_cart_add_product_complete 强>
Mage_Wishlist_Model_Observer::processAddToCart()
<强> controller_action_postdispatch 强>
Mage_Log_Model_Visitor::saveByRequest()
<强> controller_front_send_response_after 强>
Mage_Persistent_Model_Observer_Session::synchronizePersistentInfo()