Плагин выводит прайс-лист на сайте и поддерживает оптовые цены от количества для:
- товаров WooCommerce;
- собственного каталога
wt_product; - страниц WordPress, отмеченных как товар (режим
products_source=page).
Разработчик: АИТ «WebTechnology».
Содержание
- Требования
- Быстрый старт
- Настройки плагина
- Оптовые цены (цены от количества)
- Ручное редактирование цен
- Импорт оптовых цен
- Экспорт и откат
- Шорткоды
- Вывод на сайте
- Корзина WooCommerce
- Миграция из ADP
- Импорт каталога wt_product
- Частые вопросы
Требования
- WordPress 5.8+
- PHP 7.4+ (рекомендуется 8.0+)
- Для оптовых цен в интернет-магазине: WooCommerce (активный)
- Для импорта/экспорта оптовых цен: права Управление WooCommerce (или администратор)
После первого включения модуля оптовых цен таблицы в БД создаются автоматически. Повторная активация плагина не обязательна.
Быстрый старт
Прайс-лист на странице
- Установите и активируйте плагин WT Прайс-лист Pro.
- Откройте Настройки → WT Прайс-лист Pro, задайте источник товаров и шаблон.
- На нужной странице вставьте шорткод:
[wt_price_list]
Оптовые цены для WooCommerce
- Настройки → WT Прайс-лист Pro → секция Оптовые цены → включите «Включить модуль» → сохраните.
- Откройте WooCommerce → Оптовые цены.
- Загрузите CSV (шаблон:
example/wt-price-list-qty-import-template.csvв папке плагина). - Включите «Создать отсутствующие товары WooCommerce», если товаров ещё нет в каталоге.
- Нажмите Предпросмотр, затем Начать импорт.
Важно: импорт оптовых цен выполняется на странице WooCommerce → Оптовые цены, а не в общих настройках плагина.
Настройки плагина
Путь: Настройки → WT Прайс-лист Pro
Основные параметры
| Параметр | Описание |
|---|---|
Товары (products_source) | Источник данных для прайс-листа: wt_product (стандартные товары), woocommerce_product (товары WooCommerce), page (страницы WordPress как товары) |
| Шаблон | footable — таблица с сортировкой и фильтрами; standart — простая вёрстка |
Секция «Оптовые цены»
| Параметр | Описание |
|---|---|
| Включить модуль | Включает шорткоды оптовых цен, пересчёт в корзине WC и вывод на карточке товара |
| Стиль таблицы | minimal, bordered, striped — оформление таблиц и списка диапазонов |
| Скрыть при одной цене | Не показывать таблицу, если у товара только один ценовой диапазон |
| На карточке товара | Автоматически выводить список оптовых цен на странице товара WooCommerce |
| Столбцы количества | Значения qty для матрицы, через запятую (по умолчанию: 1,20,100,300,500,1000,2000) |
| Текст-заглушка | Сообщение, если у товара нет оптовых цен |
Пока модуль выключен, страница WooCommerce → Оптовые цены (импорт) остаётся доступной, но шорткоды и пересчёт в корзине не работают.
Поле «Файл импорта» внизу страницы настроек
Это отдельный импорт — каталога wt_product (собственный тип записей плагина). Файл должен содержать колонку product_name.
Для оптовых цен WooCommerce это поле не используется — см. Импорт оптовых цен.
Оптовые цены (цены от количества)
Как это работает
Для каждого товара задаётся несколько диапазонов количества:
| min_qty | max_qty | price |
|---|---|---|
| 1 | 19 | 148.80 |
| 20 | 99 | 124.00 |
| 100 | 299 | 122.00 |
| 1000 | *(пусто = без верхней границы)* | 109.66 |
При добавлении в корзину или при смене количества на карточке товара применяется цена диапазона с наибольшим подходящим min_qty.
Товар определяется по:
product_id(если указан в CSV)- SKU (
product_sku) - Названию (
product_title)
Где хранятся данные
Оптовые цены хранятся в таблице БД wp_wt_pl_qty_prices (префикс сайта может отличаться).
Важно:
- диапазоны (
min_qty/max_qty/price) хранятся отдельно от стандартных meta-полей цены; - при сохранении диапазонов и после импорта плагин синхронизирует базовую цену WooCommerce (
_regular_price/_price) с ценой минимального диапазона (для корректной сортировки и отображения в каталоге).
Ручное редактирование цен
Товар WooCommerce
- Товары → Все товары → откройте товар.
- Блок Данные товара → вкладка Оптовые цены.
- Заполните строки: Min qty, Max qty, Цена.
- Кнопка Добавить диапазон — новая строка.
- Сохраните товар.
Товар wt_product
- Товары (тип записи плагина) → откройте запись.
- Метабокс Оптовые цены — та же таблица диапазонов.
Страница-товар (режим products_source=page)
- Включите источник товаров Страницы WordPress в настройках плагина.
- Откройте нужную страницу, отмеченную как товар.
- Используйте метабокс Оптовые цены аналогично
wt_product.
Импорт оптовых цен
Путь: WooCommerce → Оптовые цены
Поддерживаемый формат CSV
Колонки (первая строка — заголовки):
product_sku,product_id,product_title,min_qty,max_qty,price
Пример файла: example/wt-price-list-qty-import-example.csv
| Колонка | Обязательно | Описание |
|---|---|---|
product_sku | * | Артикул; хотя бы одно из: sku, id, title |
product_id | * | ID записи WC / wt_product |
product_title | * | Название товара |
min_qty | да | Нижняя граница количества (≥ 1) |
max_qty | нет | Верхняя граница; пусто = «и выше» |
price | да | Цена за единицу в диапазоне |
currency | нет | Поддерживается только для совместимости со старыми CSV, в текущем импорте игнорируется |
* Достаточно одного способа указать товар.
Настройки импорта
| Опция | Рекомендация |
|---|---|
| Заменить существующие | Включить — перед импортом удаляются старые диапазоны затронутых товаров |
| Резервная копия | Включить — можно откатить импорт в течение 24 часов |
| Создать товары WC | Включить, если в CSV указано название, а товара ещё нет в WooCommerce |
| Строгий режим | Включить, если нужно прервать импорт при любых предупреждениях |
Порядок действий
- Нажмите Предпросмотр — проверьте статистику и первые строки.
- Начать импорт — обработка пакетами (прогресс-бар).
- Откройте карточку товара → вкладка Оптовые цены — убедитесь, что диапазоны на месте.
Ограничения
- Максимальный размер файла: 10 MB
- Кодировка: UTF-8
- Разделитель: запятая или точка с запятой (определяется автоматически)
Экспорт и откат
На странице WooCommerce → Оптовые цены:
| Кнопка | Действие |
|---|---|
| Экспортировать текущие цены | CSV всех диапазонов в нативном формате (включая product_id и product_title) |
| Скачать шаблон CSV | Пустой шаблон с примером строк |
| Откатить последний импорт | Восстановить цены из резервной копии (если импорт делался с включённой опцией «Резервная копия») |
Шорткоды
Прайс-лист
[wt_price_list]
Основные атрибуты:
| Атрибут | По умолчанию | Назначение |
|---|---|---|
sorting | true | Сортировка таблицы |
paging | true | Пагинация |
paging_size | 50 | Размер страницы |
name_link | false | Делать название товара ссылкой |
column_name_title | Наименование | Заголовок колонки названия |
column_unit_title | Ед.изм. | Заголовок колонки единицы |
column_price_title | Цена | Заголовок колонки цены |
filter_ui_radio | false | Радио-фильтр по таксономии (taxonomy_...) |
filter_item_none_title | Весь товар | Подпись пункта «без фильтра» |
filter_product_category | false | Фильтр по категории товара |
grouping_by_product_category | false | Группировка по категориям |
products_orderby | null | Порядок сортировки товаров в выборке |
Оптовые цены
Работают только при включённом модуле Оптовые цены.
[wt_price_list_qty id="123" qty="100"]
| Атрибут | Описание |
|---|---|
id | ID товара (обязательно) |
qty | Количество столбца (по умолчанию 1) |
format | price, price_currency, raw |
empty | Текст, если цена не найдена |
[wt_price_list_qty_row id="123" columns="1,20,100" show_size="400×400" format="price"]
[wt_price_list_qty_matrix ids="10,11,12" columns="1,20,100,500" show_size="true"]
Столбцы qty по умолчанию берутся из настройки Столбцы количества, если columns не указан.
[wt_price_list_qty_table id="123"]
Вертикальный список «от — до … цена». На странице товара id можно не указывать — подставится текущий товар.
Дополнительные атрибуты:
| Атрибут | По умолчанию | Назначение |
|---|---|---|
format | price_currency | Формат цены (price, price_currency, raw) |
show_empty | false | Показать текст-заглушку при отсутствии диапазонов |
[wt_price_list_qty_bulk_table id="123" format="price"]
Выводит компактную таблицу вида «количество → цена» (по строке на каждый диапазон). На странице товара id можно не указывать.
Вывод на сайте
Автоматический вывод на карточке товара
При включённой опции «На карточке товара» под ценой WooCommerce появляется список оптовых диапазонов.
Пересчёт цены при смене количества
На карточке товара при изменении поля Количество:
- основная цена не скрывается на время пересчёта;
- цена обновляется по таблице диапазонов с небольшой задержкой (200 мс);
- подсвечивается активный диапазон в списке.
Работает с классическими темами и блоками WooCommerce.
Стили
Стили подключаются из css/qty-prices.css. Классы:
wt_pricelist_qty__card— блок списка на карточкеwt_pricelist_qty__matrix— таблица-матрицаwt_pricelist_qty__style-minimal/bordered/striped
Корзина WooCommerce
При включённом модуле оптовых цен цена позиции в корзине пересчитывается по количеству в корзине (тот же алгоритм, что и на карточке товара).
Для кастомизации доступен фильтр WordPress wt_price_list_qty_cart_item_price.
Миграция из ADP
Если на сайте активен плагин Advanced Dynamic Pricing for WooCommerce (Pro), на странице WooCommerce → Оптовые цены появляется блок «Миграция из ADP».
- Настройки → WT Прайс-лист Pro → включите Оптовые цены.
- Убедитесь, что ADP активен и в нём настроены bulk-правила.
- WooCommerce → Оптовые цены → блок миграции ADP.
- Включите Резервная копия и при необходимости Заменить существующие.
- Предпросмотр миграции → Начать миграцию.
Особенности:
- Данные читаются напрямую из ADP (без экспорта CSV).
- Товары сопоставляются по фильтрам правил (ID, SKU) или по названию правила.
- Правила только по категориям и package-правила пропускаются (отображаются в предупреждениях).
- Скидки в процентах и суммах пересчитываются от regular price WooCommerce.
После миграции проверьте несколько товаров вручную (вкладка Оптовые цены и корзина с разным количеством).
Импорт каталога wt_product
Путь: Настройки → WT Прайс-лист Pro → поле Файл импорта (внизу страницы)
Используется для наполнения собственного каталога плагина (wt_product), а не WooCommerce.
Обязательная колонка: product_name. Дополнительно: category, category_parent, product_unit, menu_order и произвольные meta-поля.
Если загрузить CSV оптовых цен (без product_name) на эту страницу, плагин покажет предупреждение и не будет импортировать файл — используйте WooCommerce → Оптовые цены.
Частые вопросы
Почему после импорта изменилась регулярная цена товара WooCommerce?
Это ожидаемое поведение: после сохранения диапазонов плагин синхронизирует regular price с ценой минимального диапазона (min_qty), чтобы карточка и каталог WooCommerce показывали актуальную базовую цену.
Импорт прошёл «успешно», но цен нет в админке
Чаще всего таблицы БД не были созданы до импорта. Обновите страницу и повторите импорт. При необходимости деактивируйте и снова активируйте плагин.
Товар создался, оптовых цен нет
Импорт оптовых цен и создание товара — разные операции. Убедитесь, что импорт выполнен на WooCommerce → Оптовые цены, а не только включена галочка «Создать товары WC» без успешного завершения импорта диапазонов.
Предпросмотр импорта «зависает»
Обновите страницу (Ctrl+F5). Проверьте wp-content/debug.log на ошибки PHP. Убедитесь, что плагин обновлён до версии с подключёнными классами импорта.
Цена на карточке не меняется при смене количества
- Включён ли модуль Оптовые цены в настройках?
- Есть ли диапазоны у этого товара (вкладка Оптовые цены)?
- Очистите кэш сайта и обновите страницу с Ctrl+F5.
SKU не найден при импорте
Укажите product_title или включите Создать товары WC. Для нативного CSV с одним только product_sku название при создании берётся из SKU.
Два разных импорта — в чём разница?
| Настройки → Файл импорта | WooCommerce → Оптовые цены | |
|---|---|---|
| Назначение | Каталог wt_product | Оптовые цены WC |
| Ключевая колонка | product_name | min_qty, price, sku/title |
| Создаёт товары WC | Нет | Опционально |
Примеры файлов в плагине
| Файл | Назначение |
|---|---|
example/wt-price-list-qty-import-template.csv | Шаблон нативного импорта |
example/wt-price-list-qty-import-example.csv | Пример одного товара, 6 диапазонов |
Поддержка
При обращении в поддержку АИТ «WebTechnology» укажите:
- версию WordPress и WooCommerce;
- скриншот настроек Оптовые цены;
- фрагмент
debug.logпри ошибках импорта; - пример строки из CSV, которая обрабатывается неверно.