Skip to content

fix(web): add missing customer API routes#244

Open
Ibochkarev wants to merge 1 commit intomodx-pro:betafrom
Ibochkarev:fix/customer-api-missing-routes-241
Open

fix(web): add missing customer API routes#244
Ibochkarev wants to merge 1 commit intomodx-pro:betafrom
Ibochkarev:fix/customer-api-missing-routes-241

Conversation

@Ibochkarev
Copy link
Copy Markdown
Member

Описание

Восстановлен публичный контракт CustomerAPI: методы customer.add() и customer.changeAddress() теперь имеют соответствующие Web API маршруты и больше не уходят в 404.

POST /api/v1/customer/add делегирует в CustomerProfileController::updateField() и обновляет только разрешённые поля профиля (first_name, last_name, email, phone). Для email переиспользуется общая проверка уникальности и сброс email_verified_at, чтобы частичное и полное обновление профиля работали одинаково.

POST /api/v1/customer/changeAddress делегирует в OrderController::changeCustomerAddress() и использует уже существующий механизм выбора сохранённого адреса в черновике заказа по address_hash. Логика вынесена из routes в контроллер, чтобы маршруты оставались тонкими.

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

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

Связанные Issues

Fixes #241

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

Проверены синтаксис PHP и whitespace diff:

  • git diff --check

  • php -l core/components/minishop3/src/Controllers/Api/Web/CustomerProfileController.php

  • php -l core/components/minishop3/src/Controllers/Api/Web/OrderController.php

  • php -l core/components/minishop3/config/routes/web.php

  • php -l core/components/minishop3/lexicon/ru/customer.inc.php

  • php -l core/components/minishop3/lexicon/en/customer.inc.php

  • Ручное тестирование

  • Автоматические тесты (PHPStan, ESLint)

  • Тестирование на разных версиях PHP/MODX

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

  • MiniShop3: branch fix/customer-api-missing-routes-241
  • MODX: не запускался
  • PHP: локальный CLI

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

До После

Чеклист

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

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

JSDoc CustomerAPI.add() уточнён под фактический whitelist быстрых полей профиля. IDE Intelephense по-прежнему показывает существующие ложноположительные ошибки по MODX/xPDO magic methods (get, set, save, toArray) и типу MODX\\Revolution\\modX; PHP syntax check проходит.

Restore the public CustomerAPI contract by wiring customer/add to a whitelisted partial profile update and customer/changeAddress to the existing saved-address order flow.
@Ibochkarev Ibochkarev changed the title fix(web): add missing customer API routes (#241) fix(web): add missing customer API routes May 8, 2026
@Ibochkarev Ibochkarev requested a review from biz87 May 8, 2026 04:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Web API: отсутствуют маршруты customer/add и customer/changeAddress (CustomerAPI → 404)

1 participant