Skip to content

fix(order): include payment fee in draft order cost preview - #450

Merged
Ibochkarev merged 1 commit into
fix/issue-373-finalize-order-costfrom
fix/issue-449-recalculate-order-totals
Jul 28, 2026
Merged

fix(order): include payment fee in draft order cost preview#450
Ibochkarev merged 1 commit into
fix/issue-373-finalize-order-costfrom
fix/issue-449-recalculate-order-totals

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

При add/update/delete позиций в draft-заказе OrdersController::recalculateOrderTotals() больше не считает cost = cart + delivery с payment fee = 0. Метод делегирует в ManagerOrderCostRecalculator::calculateBreakdown() (MODE_AUTO) и сохраняет breakdown через общий persistBreakdown().

Preview cost в черновике совпадает с «Пересчитать стоимость» и finalize для default handlers (cart + delivery + payment commission, free_delivery_amount, проценты доставки). Warnings логируются, но не блокируют CRUD позиций (в отличие от finalize).

Зависимость: PR stacked на #448 (fix/issue-373-finalize-order-cost); после merge #448 base можно переключить на beta.

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #449

Relates to #373, #212

Как это было протестировано?

cd core/components/minishop3
php -l src/Controllers/Api/Manager/OrdersController.php   # exit 0
php -l src/Services/Order/ManagerOrderCostRecalculator.php # exit 0
composer ci:php                                            # exit 0 (11 smoke tests)
  • Ручное тестирование
  • Автоматические тесты (composer ci:php, npm run lint:ci / GitHub Actions CI)
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: текущая ветка
  • MODX: smoke без MODX/MySQL
  • PHP: локальный CI-гейт

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en) — не требуется
  • PHPStan проходит без новых ошибок (локально; в CI пока нет)
  • ESLint проходит без ошибок (npm run lint:ci для Vue) — Vue не затронут
  • Обновлён CHANGELOG.md (для значимых изменений) — по политике релиза

Дополнительные заметки

@Ibochkarev Ibochkarev changed the title Draft order preview: payment fee и пересчёт delivery через calculateBreakdown fix(order): include payment fee in draft order cost preview Jul 24, 2026
@Ibochkarev Ibochkarev added the bug Something isn't working label Jul 24, 2026
@Ibochkarev
Ibochkarev requested a review from biz87 July 24, 2026 03:02
@Ibochkarev
Ibochkarev force-pushed the fix/issue-373-finalize-order-cost branch from efb496e to 20ec466 Compare July 27, 2026 02:03
@Ibochkarev
Ibochkarev force-pushed the fix/issue-449-recalculate-order-totals branch from e7714dd to 9898af6 Compare July 27, 2026 02:05
@Ibochkarev
Ibochkarev force-pushed the fix/issue-373-finalize-order-cost branch from 20ec466 to b2c3027 Compare July 28, 2026 04:49
Delegate OrdersController::recalculateOrderTotals to ManagerOrderCostRecalculator
calculateBreakdown (MODE_AUTO) and persist via shared persistBreakdown so add/update
product paths match recalculate-cost and finalize totals.

Closes #449
@Ibochkarev
Ibochkarev force-pushed the fix/issue-449-recalculate-order-totals branch from 9898af6 to c4a369c Compare July 28, 2026 04:53
@Ibochkarev
Ibochkarev merged commit c4a369c into fix/issue-373-finalize-order-cost Jul 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] OrdersController::recalculateOrderTotals без payment fee в preview черновика

1 participant