![](/img/trans.png)
[英]Getting an order item unit price, after any discount has been applied in Magento
[英]Magento | Apply a custom price after it has already been applied (Cart Update)
我一直在使用以下方法對產品應用自定義價格:
使用事件“ checkout_cart_product_add_after”並分別為其創建函數。
在該函數中,我使用了$ item-> setCustomPrice($ value)方法。
產品以自定義價格成功添加到購物車,並且一切正確。 包括適用稅款和總計。 但是,當我在購物車中更新相同數量的產品並設置另一個自定義價格時,事情進展得並不順利。
我正在使用事件“ checkout_cart_save_after”,做的事情與我之前提到的完全相同,並且遇到了以下問題:
如果我在Magento的后台“在目錄中顯示產品價格:含稅”中選擇以下“稅收”選項,則價格不會被修改。
如果我不包括目錄產品價格稅,價格將更新。 但是,總計仍使用舊的自定義價格。
我不知道我是否為此使用了錯誤的事件。 目前,我覺得我唯一的解決方案是刪除產品,然后以新的自定義價格再次將其添加到購物車中。 我認為這不是正確的方法。
在此先感謝所有花費時間查看此問題的人。 如果我不清楚我的問題,我很樂意澄清任何問題。
編輯
我將添加一些可能會有所幫助的詳細信息:
FOREACH($observer->getCart()->getQuote()->getAllVisibleItems() AS $item){
$productPrice = $item->getProduct()->getPrice();
$discountValue = 20; //This will be a custom value that I load with a Web Service
$value = $productPrice - ($productPrice * $discountValue / 100);
$item->setCustomPrice($value);
$item->setOriginalCustomPrice($value);
}
這適用於我的第一個自定義價格更新,而不適用於如上所述的購物車更新。
這應該可以解決您的問題:
$item->setCustomPrice($value);
$item->setOriginalCustomPrice($value);
您需要同時使用觀察者事件checkout_cart_product_add_after和checkout_cart_update_items_after
當您更新購物車中的數量時,將觸發checkout_cart_update_items_after此事件,因此您還需要使用此事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.