Skip to content

feat(web-api): GET customer/orders list and get by id#425

Open
Ibochkarev wants to merge 1 commit into
betafrom
feat/issue-423-customer-orders-api
Open

feat(web-api): GET customer/orders list and get by id#425
Ibochkarev wants to merge 1 commit into
betafrom
feat/issue-423-customer-orders-api

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

Web API для ЛК: список и детали заказов текущего покупателя (token-auth), рядом с уже существующим cancel.

  • GET /api/v1/customer/orders — pagination (limit/offset), фильтр status
  • GET /api/v1/customer/orders/{id} — детали своего заказа (products, delivery, payment, address)
  • Логика в CustomerOrderService: жёсткий customer_id, черновики через ms3_status_draft, публичный DTO без token/properties/user_id
  • cancel переведён на тот же сервис (единый ownership + исключение draft)
  • Методы getOrders / getOrder в CustomerAPI.js
  • Лексиконы ru/en для ошибок list/get

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

  • Новая функциональность (non-breaking change)

Связанные Issues

Closes #423

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

Gate E (эта сессия):

  • php -l на затронутых PHP — exit 0
  • php core/components/minishop3/tests/CustomerOrderServiceDtoTest.php — exit 0 (OK CustomerOrderServiceDtoTest)
  • Ручное curl с MS3TOKEN на живом MODX (не запускалось в CI-окружении агента)

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

  • MiniShop3: ветка feat/issue-423-customer-orders-api
  • PHP: локальный CLI (8.x)

Чеклист

  • Код соответствует стилю проекта
  • Лексиконы добавлены на двух языках (ru/en)
  • Изменения не ломают существующую функциональность (cancel сохранён, контракт тот же)
  • PHPStan полный прогон (в PR не запускался; синтаксис и unit DTO — да)
  • ESLint (Vue не трогали)
  • CHANGELOG.md — не трогали (релизный процесс)

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

  • Follow-up (не в этом PR): свести SSR OrdersPageService на общий data-слой с CustomerOrderService.
  • Review: security — без critical/high IDOR; draft из setting + cancel в сервис закрыты в fix-loop.

Headless cabinet needs history alongside cancel; scope by customer_id and omit token/properties from public DTOs.
@Ibochkarev Ibochkarev added priority: medium Средний приоритет enhancement New feature or request labels Jul 17, 2026
@Ibochkarev
Ibochkarev requested a review from biz87 July 17, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium Средний приоритет

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Web API: GET /customer/orders (+ get by id) для ЛК

1 participant