
BAS Exchange для WooCommerce — обмен товарами, ценами, остатками и заказами с BAS
Обмен WooCommerce с BAS по протоколу CommerceML 2: категории, товары, свойства, фото, цены и остатки приходят из BAS, а заказы уходят в BAS. Адрес обмена, пользователь и пароль — в админке, BAS запускает обмен сама. Базовая версия бесплатная, Pro — заказы, вариации, склады и акционные цены.
- Совместимость
- WordPress 6.2+ · WooCommerce 7.0+ (проверено на WP 7.1 / Woo 11.1) · PHP 7.4+ · HPOS · BAS с обменом с сайтом по CommerceML 2
- Лицензия
- один сайт, годовая
- Триал
- 7 дней, без карты, один на сайт
Что есть во Free,
а что даёт Pro
Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.
Как это выглядит
Главное о модуле
Как это выглядит для покупателя
Покупатель видит на сайте то, что есть в BAS, — и не видит самого обмена:
Что получает админ
Страница WooCommerce → Обмен с BAS с вкладками «Подключение», «Каталог», «Заказы» (Pro), «Журнал и ручной импорт» и «Лицензия».

Триал стартует, когда вы попросите
Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт
Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней. Для студий — ключи на 5, 25 сайтов или без ограничений.
Технические требования
BAS с обменом с сайтом по протоколу CommerceML 2.
WooCommerce 7.0+, совместимость с HPOS, классический и блочный чекаут.
WordPress 6.2+ · PHP 7.4+ с расширением XMLReader. Расширение Zip нужно для архивов; без него модуль просит BAS слать файлы без архива.
Сайт должен быть доступен для BAS по HTTP(S) по адресу обмена. Если сайт закрыт файрволом или паролем, этот адрес нужно пропустить.
Тайм-аут запроса на сервере — больше «Секунд на шаг импорта» (по умолчанию 20 с).
Проверено на WordPress 7.1 с WooCommerce 11.1, PHP 8.3 и 7.4, MySQL, с HPOS и без.
История версий
Первый выпуск: точка обмена CommerceML 2 (авторизация, файлы частями и zip, пошаговый импорт), группы → категории, товары с фото, свойства → атрибуты, цена из вида цен, общий остаток,…
Вместе с BAS Exchange для WooCommerce покупают
4 модуля одним заказом — на 40% дешевле, чем по отдельности


Nova Poshta Premium — модуль Новая Почта для OpenCart 2.3, 3.x и 4.x

LiqPay — оплата картой для OpenCart 2.3, 3.x и 4.x

Telegram-уведомления и Viber/SMS покупателям для OpenCart
Полное описание модуля
BAS Exchange для WooCommerce — модуль обмена между магазином на WooCommerce и BAS по протоколу CommerceML 2. Товары, цены и остатки ведутся в BAS, а сайт получает их сам: без выгрузок в CSV, без ручного переписывания цен и без ситуации, когда на сайте «есть в наличии» то, чего уже нет на складе. В обратную сторону (в Pro) BAS забирает заказы с сайта и возвращает их статусы.
Обмен запускает BAS: в настройках обмена с сайтом вы указываете адрес, пользователя и пароль с вкладки «Подключение», а дальше BAS по расписанию или вручную отправляет каталог и предложения и забирает заказы. Магазин отвечает ровно так, как ожидает протокол.
Как это выглядит для покупателя
Покупатель видит на сайте то, что есть в BAS, — и не видит самого обмена:
- Актуальные цены и наличие. Цена из выбранного вида цен, остаток и статус «есть / нет в наличии» обновляются с каждым обменом.
- Каталог как в учёте. Группы BAS становятся категориями с той же вложенностью, свойства — атрибутами, по которым работают фильтры.
- Фото и описание приходят вместе с товаром; повторный обмен не плодит копии изображений в медиатеке.
- Размеры и цвета (Pro) — вариации со своей ценой и остатком, акционная цена показывается зачёркнутой.
- Товар, который в BAS пометили на удаление, исчезает с витрины (в черновик или корзину — как выберете).
Что получает админ
Страница WooCommerce → Обмен с BAS с вкладками «Подключение», «Каталог», «Заказы» (Pro), «Журнал и ручной импорт» и «Лицензия». На скриншотах админка на украинском, интерфейс модуля есть и на русском.
- Подключение за минуту. Адрес, пользователя и пароль модуль создаёт сам — их остаётся скопировать в BAS. Пользователь и пароль — отдельные, это не учётная запись WordPress.
- Контроль над полями. Название, описание, артикул, категории, изображения, атрибуты — каждое поле можно отдать BAS или оставить редактируемым на сайте.
- Виды цен и склады модуль берёт из файлов BAS и показывает в настройках — названия не нужно угадывать.
- Журнал пишет каждый шаг обмена с результатом: что пришло, сколько создано и обновлено, что пропущено и почему. Тот же журнал — в WooCommerce → Статус → Журналы.
- Ручной импорт — загрузить import.xml, offers.xml или zip с изображениями прямо в админке и смотреть пошаговый импорт. Удобно для первого заполнения и для проверки проблемного файла.
Pro: заказы, вариации, склады, акции
- Заказы в BAS. При обмене заказами BAS забирает новые и изменённые заказы выбранных статусов: покупатель, адрес, телефон и e-mail, строки товаров с идентификаторами BAS, доставка и сборы как услуги, метод оплаты.
- Статусы из BAS. «Отменён», «оплачен», финальный статус и свои правила вида «Отгружен = completed». Каждое изменение пишется заметкой в заказ.
- Честный признак «оплачен». Для наложенного платежа — только в статусе «Выполнен», для карты — после подтверждения оплаты.
- Вариации из характеристик товара: размер, цвет и т. п. становятся вариациями со своей ценой и остатком.
- Акционная цена из второго вида цен (например «Акционная») — когда она ниже обычной.
- Склады: остаток на сайте — сумма только отмеченных складов.
- Полная выгрузка: товары, которые пришли из BAS раньше, а в полной выгрузке отсутствуют, — в черновик или «нет в наличии». Когда вернутся в BAS, снова появятся на сайте.
Как это работает — шаг за шагом
- BAS обращается на адрес обмена с пользователем и паролем и получает сессию.
- Магазин сообщает, принимает ли zip-архивы и какого размера части файлов можно слать, — в пределах того, что принимает ваш сервер.
- BAS отправляет файлы: import.xml (группы, свойства, товары), offers.xml (цены и остатки) и изображения — частями или одним архивом.
- Магазин импортирует файл шагами: если время шага истекло, отвечает «progress», и BAS повторяет запрос, пока импорт не завершится.
- Каждый товар и категория получают идентификатор BAS — следующие обмены обновляют их, а не создают новые.
- Файлы обмена удаляются сразу после импорта; в журнале остаётся результат каждого шага.
- Pro: при обмене заказами BAS получает файл с заказами, подтверждает получение, а в следующий раз — только новые и изменённые. Статусы из BAS возвращаются отдельным файлом.
Что под капотом
- Потоковое чтение XML. Файлы читаются по одному элементу, а не целиком в память, поэтому большой каталог не упирается в memory_limit. Файлы в кодировке windows-1251 тоже читаются.
- Продолжение с места остановки. Состояние импорта каждого файла сохраняется между шагами; повторный запрос BAS продолжает, а не начинает сначала.
- Привязка по идентификатору BAS в товарах, вариациях, категориях и изображениях: никаких дублей при повторных обменах и после переименований.
- Безопасность. Отдельные пользователь и пароль для BAS со сравнением за постоянное время; имена файлов проверяются (никаких «../» и исполняемых расширений), zip распаковывается с защитой от выхода за папку.
- Файлы вне публичной папки. Модуль сам выбирает для файлов обмена папку вне корня сайта и удаляет XML сразу после импорта — включая файлы заказов, потому что в них персональные данные. Админка показывает, где лежат файлы.
- Сайт на простых ссылках получает адрес вида /index.php/bas-exchange/, который доходит до WordPress без правил перезаписи.
- Убирает за собой. С галочкой «Удалять данные» удаление модуля убирает его настройки, журнал, папку обмена и идентификаторы BAS; сами товары и категории остаются.
Как установить
- Плагины → Добавить новый → Загрузить плагин, выберите
catcode-bas-exchange-for-woocommerce-free-1.0.0.zip(бесплатная версия) илиcatcode-bas-exchange-for-woocommerce-1.0.0.zip(Pro) и активируйте. Нужен активный WooCommerce. - WooCommerce → Обмен с BAS → Подключение: скопируйте адрес сайта для обмена, пользователя и пароль. Командой curl с этой же вкладки можно проверить, что адрес отвечает «success».
- В BAS откройте настройки обмена с сайтом по протоколу CommerceML и вставьте эти три значения.
- На вкладке «Каталог» выберите, какие поля BAS может обновлять, и оставьте «Сопоставлять по артикулу», если товары на сайте уже есть.
- Запустите обмен в BAS. Результат каждого шага — в «Журнале». После первого обмена выберите вид цен (и для Pro — вид акционных цен и склады).
- Для Pro: вставьте лицензионный ключ из письма после оплаты или запустите 7-дневный триал на вкладке «Лицензия», затем включите обмен заказами.
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Где взять адрес для BAS?
WooCommerce → Обмен с BAS → Подключение. Там адрес сайта для обмена, пользователь и пароль с кнопками «Копировать», а также команда curl для проверки: ответ должен начинаться с «success». Параметры протокола BAS дописывает к адресу сама.
Модуль проверяли с живой BAS?
Нет. Обмен проверен на симуляторе протокола CommerceML 2, который играет роль BAS: те же запросы, файлы частями и архивом, большие каталоги, заказы и статусы. Первый обмен с вашей BAS лучше делать в 7-дневном триале; если что-то пойдёт не так, журнал покажет, на каком шаге, и мы оперативно исправим.
Обмен перезапишет описания, которые я писал на сайте?
Только поля, отмеченные в «Каталог → BAS может обновлять». Снимите отметку с «Описание» — и BAS будет заполнять описание только для новых товаров. Цены и остатки BAS обновляет всегда.
В магазине уже есть товары. Будут дубли?
Нет, если включено «Сопоставлять по артикулу»: товар, который BAS отправляет впервые, привяжется к существующему товару с тем же артикулом. Дальше связь держится по идентификатору BAS, поэтому переименование в BAS обновляет тот же товар.
Большой каталог обрывается на импорте.
Уменьшите «Секунд на шаг импорта» на вкладке «Подключение» ниже тайм-аута запроса на вашем сервере (по умолчанию 20 секунд). Магазин отвечает BAS «progress», и BAS повторяет запрос, пока файл не будет импортирован полностью.
Уйдёт ли в BAS вся история заказов?
Нет. Передаются только заказы выбранных статусов, созданные после включения обмена заказами. Если BAS что-то не получила, кнопка «Передать всё ещё раз» отправит эти заказы повторно.
Как BAS узнаёт, что заказ оплачен?
Признак «оплачен» ставится только когда деньги действительно получены: для оплаты картой — после подтверждения оплаты, для наложенного платежа — только в статусе «Выполнен». Статус «В обработке» для наложенного платежа оплатой не считается.
Можно попробовать без BAS?
Да. Выгрузите import.xml и offers.xml из BAS (или любые файлы CommerceML 2) и загрузите их на вкладке «Журнал и ручной импорт» — импорт пройдёт так же, как при обмене.
Сайт на простых ссылках (без ЧПУ). Это работает?
Да. Тогда вкладка «Подключение» показывает адрес вида /index.php/bas-exchange/ — именно его нужно вставить в BAS.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—