Skip to content

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

Open
Ibochkarev wants to merge 1 commit into
fix/issue-373-finalize-order-costfrom
fix/issue-449-recalculate-order-totals
Open

fix(order): include payment fee in draft order cost preview#450
Ibochkarev wants to merge 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 (для значимых изменений) — по политике релиза

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

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 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
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