Skip to content

fix(order): единая база для процентной комиссии оплаты (cart-only) - #460

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-372-payment-fee-base
Open

fix(order): единая база для процентной комиссии оплаты (cart-only)#460
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-372-payment-fee-base

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

Процентная комиссия оплаты считалась по разным базам: storefront — только от cart_cost, пересчёт в менеджере — от cart_cost + delivery_cost. При корзине 1000, доставке 500 и price=3% на сайте получалось ~30, в mgr ~45.

Добавлен общий контракт OrderService::paymentCommissionBase() (как в MS2: только корзина). Storefront и ManagerOrderCostRecalculator используют один helper.

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

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

Связанные Issues

Closes #372

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

cd core/components/minishop3
php -l src/Services/Order/OrderService.php                    # exit 0
php -l src/Services/Order/ManagerOrderCostRecalculator.php    # exit 0
php -l src/Services/Order/OrderCostCalculator.php             # exit 0
php -l tests/PaymentCommissionBaseTest.php                    # exit 0
php tests/PaymentCommissionBaseTest.php                       # exit 0
composer ci:php                                               # exit 0
  • Ручное тестирование (анализ формул + smoke)
  • Автоматические тесты (composer ci:php)
  • Тестирование на разных версиях PHP/MODX

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

  • MiniShop3: branch fix/issue-372-payment-fee-base
  • MODX: не требовался (smoke без MODX)
  • PHP: 8.2+

Скриншоты (если применимо)

n/a

Чеклист

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

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

Продуктовое решение: cart-only (совместимость с MS2 и текущим storefront). Заказы, уже пересчитанные в mgr с базой cart+delivery, при следующем Recalculate cost получат сумму как на сайте.

@Ibochkarev
Ibochkarev requested a review from biz87 July 28, 2026 05:15
@Ibochkarev Ibochkarev added bug Something isn't working priority: high Важно исправить в ближайшее время labels Jul 28, 2026
@Ibochkarev
Ibochkarev force-pushed the fix/issue-372-payment-fee-base branch from 057df7e to 7cc0028 Compare July 29, 2026 02:05
Manager recalculate used cart+delivery for percent fees while storefront
used cart only. Shared OrderService::paymentCommissionBase() keeps both
paths consistent.
@Ibochkarev
Ibochkarev force-pushed the fix/issue-372-payment-fee-base branch from 7cc0028 to b77555b Compare July 29, 2026 11:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working priority: high Важно исправить в ближайшее время

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Комиссия оплаты %: storefront считает от cart, manager — от cart+delivery

1 participant