Связаться
  • WordPress
  • CRM и интеграции
  • v1.0.0

BAS Exchange для WooCommerce — обмен товарами, ценами, остатками и заказами с BAS

Обмен WooCommerce с BAS по протоколу CommerceML 2: категории, товары, свойства, фото, цены и остатки приходят из BAS, а заказы уходят в BAS. Адрес обмена, пользователь и пароль — в админке, BAS запускает обмен сама. Базовая версия бесплатная, Pro — заказы, вариации, склады и акционные цены.

Скачать Free
Pro · лицензия на год Чем больше сайтов, тем дешевле каждый
Совместимость
WordPress 6.2+ · WooCommerce 7.0+ (проверено на WP 7.1 / Woo 11.1) · PHP 7.4+ · HPOS · BAS с обменом с сайтом по CommerceML 2
Лицензия
один сайт, годовая
Триал
7 дней, без карты, один на сайт
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Один адрес обмена, пользователь и пароль для BAS — всё видно на вкладке «Подключение» ✔ ✔
Протокол CommerceML 2: авторизация, файлы частями и zip-архивом, пошаговый импорт ✔ ✔
Группы BAS → категории WooCommerce с деревом и переименованиями ✔ ✔
Товары: название, артикул, описание (текст или HTML), вес, главное фото и галерея ✔ ✔
Свойства BAS → глобальные атрибуты WooCommerce для фильтров ✔ ✔
Цена из выбранного вида цен (например «Розничная») ✔ ✔
Общий остаток и статус «есть / нет в наличии» ✔ ✔
Помеченные на удаление в BAS → черновик или корзина ✔ ✔
Сопоставление с существующими товарами по артикулу, без дублей ✔ ✔
Выбор полей, которые BAS может перезаписывать ✔ ✔
Большие каталоги шагами: ни один запрос не упирается в тайм-аут сервера ✔ ✔
Ручной импорт import.xml, offers.xml и zip в админке ✔ ✔
Журнал обмена в админке и в WooCommerce → Статус → Журналы ✔ ✔
Файлы обмена вне публичной папки, удаляются сразу после импорта ✔ ✔
Обмен заказами: BAS забирает новые и изменённые заказы — ✔
Статусы заказов обратно из BAS: отменён, оплачен, финальный, свои правила — ✔
Вариации из характеристик товара (размер, цвет) со своей ценой и остатком — ✔
Акционная цена из второго вида цен — ✔
Остатки только с выбранных складов — ✔
Товары, которых нет в полной выгрузке → черновик или «нет в наличии» — ✔

Как это выглядит

Вкладка «Подключение»: адрес сайта для обмена, пользователь и пароль для BAS
Вкладка «Подключение» (админка на украинском): адрес сайта для обмена, пользователь и пароль (здесь скрыт) с кнопками «Копировать» и команда curl, которой можно проверить адрес до настройки BAS.
Настройки каталога: сопоставление по артикулу, поля, виды цен, вариации, склады
Вкладка «Каталог»: сопоставление по артикулу, статус новых товаров, поля, которые BAS может обновлять, вид цен для цены и акционной цены, вариации и склады. Виды цен и склады модуль берёт из первого же обмена.
Журнал обмена и ручной импорт файлов
Вкладка «Журнал и ручной импорт»: каждый шаг обмена с результатом и подробностями (сколько категорий, товаров и предложений обработано, сколько заказов передано) и форма, куда можно загрузить файлы из BAS вручную.

Главное о модуле

Как это выглядит для покупателя

Покупатель видит на сайте то, что есть в 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 и без.

История версий

v1.0.0 Текущая

Первый выпуск: точка обмена CommerceML 2 (авторизация, файлы частями и zip, пошаговый импорт), группы → категории, товары с фото, свойства → атрибуты, цена из вида цен, общий остаток,…

Вместе с BAS Exchange для WooCommerce покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» BAS Exchange Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 144 модулей в All Access за 4 990 ₴.
3 890 ₴ / год вместо 6 460 ₴ поштучно
Купить набор →

Полное описание модуля

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, снова появятся на сайте.

Как это работает — шаг за шагом

  1. BAS обращается на адрес обмена с пользователем и паролем и получает сессию.
  2. Магазин сообщает, принимает ли zip-архивы и какого размера части файлов можно слать, — в пределах того, что принимает ваш сервер.
  3. BAS отправляет файлы: import.xml (группы, свойства, товары), offers.xml (цены и остатки) и изображения — частями или одним архивом.
  4. Магазин импортирует файл шагами: если время шага истекло, отвечает «progress», и BAS повторяет запрос, пока импорт не завершится.
  5. Каждый товар и категория получают идентификатор BAS — следующие обмены обновляют их, а не создают новые.
  6. Файлы обмена удаляются сразу после импорта; в журнале остаётся результат каждого шага.
  7. Pro: при обмене заказами BAS получает файл с заказами, подтверждает получение, а в следующий раз — только новые и изменённые. Статусы из BAS возвращаются отдельным файлом.

Что под капотом

  • Потоковое чтение XML. Файлы читаются по одному элементу, а не целиком в память, поэтому большой каталог не упирается в memory_limit. Файлы в кодировке windows-1251 тоже читаются.
  • Продолжение с места остановки. Состояние импорта каждого файла сохраняется между шагами; повторный запрос BAS продолжает, а не начинает сначала.
  • Привязка по идентификатору BAS в товарах, вариациях, категориях и изображениях: никаких дублей при повторных обменах и после переименований.
  • Безопасность. Отдельные пользователь и пароль для BAS со сравнением за постоянное время; имена файлов проверяются (никаких «../» и исполняемых расширений), zip распаковывается с защитой от выхода за папку.
  • Файлы вне публичной папки. Модуль сам выбирает для файлов обмена папку вне корня сайта и удаляет XML сразу после импорта — включая файлы заказов, потому что в них персональные данные. Админка показывает, где лежат файлы.
  • Сайт на простых ссылках получает адрес вида /index.php/bas-exchange/, который доходит до WordPress без правил перезаписи.
  • Убирает за собой. С галочкой «Удалять данные» удаление модуля убирает его настройки, журнал, папку обмена и идентификаторы BAS; сами товары и категории остаются.

Как установить

  1. Плагины → Добавить новый → Загрузить плагин, выберите catcode-bas-exchange-for-woocommerce-free-1.0.0.zip (бесплатная версия) или catcode-bas-exchange-for-woocommerce-1.0.0.zip (Pro) и активируйте. Нужен активный WooCommerce.
  2. WooCommerce → Обмен с BAS → Подключение: скопируйте адрес сайта для обмена, пользователя и пароль. Командой curl с этой же вкладки можно проверить, что адрес отвечает «success».
  3. В BAS откройте настройки обмена с сайтом по протоколу CommerceML и вставьте эти три значения.
  4. На вкладке «Каталог» выберите, какие поля BAS может обновлять, и оставьте «Сопоставлять по артикулу», если товары на сайте уже есть.
  5. Запустите обмен в BAS. Результат каждого шага — в «Журнале». После первого обмена выберите вид цен (и для Pro — вид акционных цен и склады).
  6. Для Pro: вставьте лицензионный ключ из письма после оплаты или запустите 7-дневный триал на вкладке «Лицензия», затем включите обмен заказами.

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Где взять адрес для 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.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль