Skip to content
  1. Компоненты
  2. MiniShop3
  3. Cookbook админки
  4. Поля модели

Cookbook полей модели ​

Поля модели настраивают отображение колонок, которые уже есть в БД. Новую колонку создают через Свои поля.

Справочник: Поля модели.

Цель ​

Вы группируете поля по секциям, задаёте xtype и ширину, скрываете технические колонки.

Модели ​

model (короткое имя)Форма в админке
msOrderКарточка заказа
msOrderAddressАдрес в заказе
msOrderProductПозиция заказа
msVendorПроизводитель

Другие модели API отклоняет ошибкой Invalid model type. Раскладку данных товара настраивают через поля товара, не через model fields.

Visible list vs полный CRUD ​

ЗапросНазначение
GET /api/mgr/model-fields/modelsСписок доступных моделей (для выпадающего списка в утилите)
GET /api/mgr/model-fields/visible/{model}Поля для Vue-формы (только visible)
GET /api/mgr/model-fields?model={model}Полный список в утилите «Поля модели»
GET /api/mgr/model-fields/{id}Метаданные одного поля
POST /api/mgr/model-fieldsСоздать поле модели
PUT /api/mgr/model-fields/{id}Метаданные одного поля
DELETE /api/mgr/model-fields/{id}Удалить поле модели
PUT /api/mgr/model-fields/ranksПорядок полей (drag-and-drop)

Карточка заказа вызывает visible/msOrder и visible/msOrderAddress при загрузке.

Кейс: секция «Дополнительно» на заказе ​

  1. Утилиты → Поля модели → модель msOrder.
  2. Создайте секцию:
    • ключ extra_info
    • название «Дополнительно»
    • sort_order по необходимости
  3. Откройте поле (например comment) → укажите секцию Дополнительно, visible = true, ширину 12.
  4. Перетащите секции и поля для нужного порядка.

Порядок секций: PUT /api/mgr/model-fields/sections/ranks. Порядок полей: PUT /api/mgr/model-fields/ranks.

Сортировка секций

Если drag-and-drop секций не сохраняется, см. issue #611.

Кейс: скрыть техническое поле ​

  1. Найдите поле в списке (например token или properties).
  2. Снимите Видимость или перенесите в секцию, которую не показываете на форме.
  3. Убедитесь, что поле не попало в GET .../visible/msOrder.

Связь с page-fields ​

СистемаТаблицаAPIОбласть
Model fieldsms3_model_fields/api/mgr/model-fields/*Модели MS3 (заказ, vendor, …)
Page fieldsms3_product_fields/api/mgr/config/page-fields/product_dataТолько вкладка «Данные» товара

Своё поле на msProductData создаёт колонку и строку в ms3_product_fields. Дальше раскладку вкладки правят в Поля товара, не дублируя запись в полях модели.

API appendix ​

Секции ​

http
GET /api/mgr/model-fields/sections/{model}
POST /api/mgr/model-fields/sections
PUT /api/mgr/model-fields/sections/{id}
PUT /api/mgr/model-fields/sections/ranks
DELETE /api/mgr/model-fields/sections/{id}

Combo-options ​

http
GET /api/mgr/model-fields/combo-options/{model}
GET /api/mgr/model-fields/combo-options/{model}/{field_name}

Первый вариант возвращает опции самой модели (например список статусов), второй — источник конкретного поля combo.

Права:

ДействиеПрава
Чтение списка, моделей и секцийтолько сессия менеджера
Чтение visible и combo-optionsлюбое из msorder_list, msorder_view, msorder_save, msproduct_save, mscategory_save, mssetting_list, mssetting_view, mssetting_save, view_document
Запись: создание, изменение, удаление, ranksmssetting_save

Troubleshooting ​

СимптомДействие
403Политики MS3, см. issue #613
Поле не на формеvisible = false или поле не в visible-ответе
Путаница со своими полямиСвои поля создают колонку, поля модели меняют только отображение. См. #214
Изменения не видныОбновите страницу карточки

См. Cookbook админки.