簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM