Skip to content
MiniShop3
MiniShop3
Современный компонент интернет-магазина для MODX 3
  1. Компоненты
  2. MiniShop3
  3. Cookbook менеджера
  4. Поле в заказе

Поле «Комментарий менеджера» в заказе

Добавьте текстовое extra field к заказу и увидите его в карточке Extras → MiniShop3 → Заказы.

Цель

Менеджер вводит внутренний комментарий к заказу. Значение хранится в колонке ms3_orders и сохраняется через PUT /api/mgr/orders/{id}.

Что понадобится

  • MiniShop3 1.13.x
  • Право mssetting_save (создание extra field)
  • Право msorder_list (чтение карточки)
  • Право msorder_save (сохранение заказа)

Шаг 1. Создайте extra field

  1. Откройте Extras → MiniShop3 → Утилиты → Дополнительные поля.
  2. В фильтре Класс модели выберите msOrder (Заказы).
  3. Нажмите Создать поле и заполните:
ПараметрЗначение
Ключmanager_comment
НазваниеКомментарий менеджера
xtypetextfield
dbtypevarchar
precision500
phptypestring
Активнода

Сохраните форму. Пакет создаст миграцию и добавит колонку в таблицу заказов.

Класс в БД

В UI класс сохраняется как MiniShop3\Model\msOrder. В API создания укажите то же значение в поле class.

Шаг 2. Проверьте API

http
GET /api/mgr/extra-fields?class=MiniShop3\Model\msOrder

В списке должно быть поле manager_comment с "active": true и "column_exists": true.

Шаг 3. Откройте заказ в менеджере

  1. Extras → MiniShop3 → Заказы → выберите заказ.
  2. На вкладке с данными заказа найдите секцию Дополнительные поля заказа.
  3. Введите текст в Комментарий менеджера.
  4. Сохраните карточку.

Vue-форма отправляет значение на верхнем уровне тела запроса:

json
{
  "manager_comment": "Позвонить перед доставкой"
}

Шаг 4. Проверьте сохранение

Перезагрузите карточку или запросите заказ:

http
GET /api/mgr/orders/{id}

В ответе должно быть "manager_comment": "Позвонить перед доставкой".

Отличие от полей модели

Extra field создаёт колонку в БД. Поля модели только меняют отображение уже существующих колонок (секции, xtype, visible). Для нового текста на заказе берите extra fields.

API appendix

МетодПутьПрава
GET/api/mgr/extra-fields?class=MiniShop3\Model\msOrdermssetting_save
POST/api/mgr/extra-fieldsmssetting_save
PUT/api/mgr/orders/{id}msorder_save
GET/api/mgr/orders/{id}msorder_list

POST /api/mgr/extra-fields (фрагмент):

json
{
  "class": "MiniShop3\\Model\\msOrder",
  "key": "manager_comment",
  "label": "Комментарий менеджера",
  "xtype": "textfield",
  "dbtype": "varchar",
  "precision": "500",
  "phptype": "string",
  "null": true,
  "active": true
}

Troubleshooting

СимптомЧто проверить
403 на extra-fieldsПолитика mssetting_save у пользователя
Секция в заказе пустаяactive = 1 в ms3_extra_fields, ключ без опечаток
Поле есть в утилите, но не в заказеКолонка class в ms3_extra_fields. Форма запрашивает GET ...?class=msOrder, в БД часто MiniShop3\Model\msOrder. Сверьте в DevTools
Ошибка после созданияЛог MODX: миграция Phinx, права на core/components/minishop3/migrations
Две системы полей путаютСм. issue #214 и cookbook полей модели

См. также: Cookbook extra fields, Заказы.