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

Поле «Оптовая цена» у товара

Добавьте числовое extra field к данным товара и настройте, где оно появится в менеджере.

Цель

Менеджер вводит оптовую цену на вкладке Данные. Значение лежит в ms3_product_data и сохраняется вместе с карточкой товара.

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

  • MiniShop3 1.13.x
  • Право mssetting_save
  • Право редактирования ресурса товара

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

  1. Extras → MiniShop3 → Утилиты → Дополнительные поля.
  2. Класс msProductData (Данные товара).
  3. Создать поле:
ПараметрЗначение
Ключwholesale_price
НазваниеОптовая цена
xtypenumberfield
dbtypedecimal
precision12,2
phptypefloat
Активнода

Пакет добавит колонку в таблицу и строку в ms3_product_fields.

Класс в БД

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

Шаг 2. Раскладка на вкладке «Данные»

  1. Утилиты → Поля товара.
  2. Найдите Оптовая цена (или перенесите из «Без секции»).
  3. Положите поле в секцию Основные данные или создайте секцию Цены.
  4. Включите Видимость, задайте порядок.
  5. Перезагрузите карточку товара.

Подробнее: Cookbook полей товара.

Шаг 3. Колонка в таблице категории (опционально)

  1. Утилиты → Колонки гридов → грид category-products.
  2. Добавьте колонку wholesale_price, тип price.
  3. В displayConfig задайте формат, например:
json
{
  "decimals": 2,
  "currency": "₽",
  "currency_position": "after",
  "thousands_separator": " "
}

См. Cookbook колонок грида.

Шаг 4. Проверка

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

Откройте товар, введите значение, сохраните. В ответе GET карточки товара должно быть "wholesale_price": 1200.5.

Импорт CSV

Колонку wholesale_price можно сопоставить в Утилиты → Импорт, если поле уже создано и миграция прошла. Repeater и key-value в CSV не поддерживаются.

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

Extra field создаёт колонку. Поля модели меняют форму заказа и других сущностей MS3, но не раскладку вкладки «Данные» товара. Для новой колонки в ms3_product_data берите extra fields, затем Поля товара.

API appendix

МетодПутьПрава
POST/api/mgr/extra-fieldsmssetting_save
PUT/api/mgr/config/page-fields/product_datamssetting_save
PUT/api/mgr/grid-config/category-productsmssetting_save

Troubleshooting

СимптомЧто проверить
Поле в утилите, но не на вкладкеvisible в Поля товара, перезагрузка страницы
Нет в списке Поля товараЗапись в ms3_product_fields после POST extra field
Колонка пустая в гридеТип price или model, имя совпадает с ключом extra field
Ошибка миграцииЛог MODX, права на core/components/minishop3/migrations

См. Cookbook extra fields, Товар.