Наблюдаю баг с использованием бонусных баллов при оформлении заказа.
Система иногда не дает использовать бонусные баллы, хотя в настройках ограничений по использованию баллов нет.
Покупатель указывает, сколько использовать баллов. При смене способа оплаты количество указанных покупателем баллов изменяется на другое количество.
Воспроизводится на демо-версии.
Покупателю я начислил 1000 бонусных баллов. Он их видит, когда заходит в оформление заказа:
Ситуация 1
Покупатель указывает все 1000 баллов и нажимает кнопку Применить. Баллы успешно учитываются в заказе:
Покупатель меняет способ оплаты на любой другой. Указанные покупателем бонусные баллы сбрасываются:
Ситуация 2
Покупатель указывает для использования только 600 баллов:
Покупатель меняет способ оплаты и количество использованных баллов уменьшается до 400:
С другими суммами похожие изменения при смене способа оплаты.
Если не менять способ оплаты и оформить заказ, то в оформленном заказе сумма заказа и количество использованных баллов может отличаться от того, что было при оформлении заказа.
Оформляем заказ с использованием 600 баллов, сумма заказа 420 долларов:
Заказ оформляется с 400 использованными баллами и суммой заказа 620 долларов:
У меня на сайте баг проявляется несколько иным образом. Если у покупателя есть 1000 баллов и он хочет заказать 10 штук товара по 840 рублей, то он не может использовать все 1000 баллов - система при смене способа оплаты сбрасывает использованные баллы до 840:
Когда откатываюсь до 4.12.1, то бонусные баллы используются корректно. При смене способа оплаты их количество не изменяется.
1 лайк
Перенёс сообщение из релизной темы на баг-трекер.
1 лайк
Тоже на днях клиенты жаловались, что количество примененных баллов меняется.
Здравствуйте. Проблему воспроизвел. Передал информацию разработчикам, спасибо.
1 лайк
Здравствуйте, @sinobook.ru !
Проблема исправлена, исправление войдет в релиз CS-Cart и Multi-Vendor 4.13.1
Для исправления проблемы собственными силами можно использовать патч:
app-addons-reward_points-func.php.diff
diff --git a/app/addons/reward_points/func.php b/app/addons/reward_points/func.php
index 7d719462bb..2475daebd5 100644
--- a/app/addons/reward_points/func.php
+++ b/app/addons/reward_points/func.php
@@ -136,7 +136,7 @@ function fn_reward_points_calculate_cart_taxes_pre(&$cart, &$cart_products, &$sh
}
// calculating price in points
- if (defined('ORDER_MANAGEMENT') && isset($cart['points_info']['in_use']['cost'])) {
+ if (isset($cart['points_info']['in_use']['cost'])) {
This file has been truncated. show original
app-functions-fn.cart.php.diff
diff --git a/app/functions/fn.cart.php b/app/functions/fn.cart.php
index f45e55166d..02414bc692 100644
--- a/app/functions/fn.cart.php
+++ b/app/functions/fn.cart.php
@@ -1953,6 +1953,16 @@ function fn_extract_cart_content(&$cart, $user_id, $type = 'C', $user_type = 'R'
}
}
+ /**
+ * Executes when extracting cart content from the customer's profile, allows you to modify the extract data.
This file has been truncated. show original
design-backend-templates-addons-reward_points-hooks-orders-totals_content.post.tpl.diff
diff --git a/design/backend/templates/addons/reward_points/hooks/orders/totals_content.post.tpl b/design/backend/templates/addons/reward_points/hooks/orders/totals_content.post.tpl
index 80b2ef92be..989221461e 100644
--- a/design/backend/templates/addons/reward_points/hooks/orders/totals_content.post.tpl
+++ b/design/backend/templates/addons/reward_points/hooks/orders/totals_content.post.tpl
@@ -7,7 +7,7 @@
{if $order_info.points_info.in_use}
<tr>
- <td>{__("points_in_use")} ({__("points_lowercase", [$order_info.points_info.in_use.points])}):</td>
- <td>{include file="common/price.tpl" value=$order_info.points_info.in_use.cost}</td>
This file has been truncated. show original
О том, как применить патч, можно прочитать в нашей документации: https://www.cs-cart.ru/docs/latest/upgrade/apply_diff_file.html
1 лайк
Денис, спасибо.
Я не обновлял магазин до 4.12.2. Дождусь новой версии с исправлением.
1 лайк