
BAS Exchange для OpenCart — обмен товарами, ценами, остатками и заказами с BAS
Обмен OpenCart 4, 3 и 2.3 с BAS по протоколу CommerceML 2: категории, товары, характеристики, фото, цены и остатки приходят из BAS, а заказы уходят в BAS. Адрес обмена, пользователь и пароль — в админке, BAS запускает обмен сама. Базовая версия бесплатная, Pro — заказы, характеристики, склады и акционные цены; лицензия навсегда.
- Совместимость
- OpenCart 4.0.2 – 4.1.x, 3.0.x и 2.3.0.2 (проверено на 4.1.0.3, 4.0.2.3, 3.0.5.0, 2.3.0.2) · PHP — как требует ваша версия OpenCart (проверено на 7.0, 8.2, 8.3) · BAS с обменом с сайтом по CommerceML 2
- Версия
-
v1.0.1 (OpenCart 4)
v1.0.1 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3) - Лицензия
- один сайт, навсегда
- Триал
- 7 дней, без карты, один на сайт
- Обновлено
- 24 сентября 2026
Что есть во Free,
а что даёт Pro
Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.
Как это выглядит
Главное о модуле
Как это выглядит для покупателя
Покупатель видит на сайте то, что есть в BAS, — и не видит самого обмена:
Что получает админ
Расширения → Модули → Обмен с BAS, пять вкладок: «Подключение», «Каталог», «Заказы» (Pro), «Журнал и ручной импорт» и «Лицензия».

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

Один ключ — один сайт
Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней. Для студий — ключи на 5, 25 сайтов или без ограничений.
Технические требования
BAS с обменом с сайтом по протоколу CommerceML 2.
OpenCart 4.0.2 – 4.1.x (проверено на 4.1.0.3 и 4.0.2.3), 3.0.x (проверено на 3.0.5.0) или 2.3.0.2.
PHP — тот, что нужен вашей версии OpenCart: сборку для 2.3 проверили на PHP 7.0, остальные — на PHP 8.2 и 8.3. Нужно расширение XMLReader; расширение Zip — для архивов (без него модуль просит BAS отправлять файлы без архива).
Магазин должен быть доступен для BAS по HTTP(S) по адресу обмена. Если перед магазином файрвол, этот адрес нужно пропустить; режим обслуживания OpenCart его закрывает.
Сервер должен выполнять PHP в папке модуля; если нет — есть кнопка «Создать короткий адрес» в корне магазина.
Тайм-аут запроса на сервере — больше, чем «Секунд на шаг импорта» (по умолчанию 20 с).
История версий
Исправлена фатальная ошибка на странице модуля.
Для OpenCart 4.x, 3.x и 2.3: точка обмена CommerceML 2 (авторизация, файлы частями и zip, пошаговый импорт), группы → категории, товары с фото, штрихкодом, весом и производителем, свойства…
Вместе с BAS Exchange для OpenCart покупают
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 для OpenCart — модуль обмена между магазином на OpenCart и BAS по протоколу CommerceML 2. Товары, цены и остатки ведутся в BAS, а магазин получает их сам: без выгрузок в CSV или Excel, без ручного переписывания цен и без ситуации, когда на сайте «есть в наличии» то, чего уже нет на складе. В обратную сторону (в Pro) BAS забирает заказы из магазина и возвращает их статусы.
Обмен запускает BAS: в настройках обмена с сайтом вы указываете адрес, пользователя и пароль с вкладки «Подключение», а дальше BAS по расписанию или вручную отправляет каталог и предложения и забирает заказы. Магазин отвечает ровно так, как ожидает протокол. Один модуль — три сборки: OpenCart 4.x, 3.x и 2.3.
Магазин на WordPress? Есть BAS Exchange для WooCommerce с тем же протоколом и теми же настройками.
Как это выглядит для покупателя
Покупатель видит на сайте то, что есть в BAS, — и не видит самого обмена:
- Актуальные цены и наличие. Цена из выбранного вида цен и остаток обновляются с каждым обменом.
- Каталог как в учёте. Группы BAS становятся категориями с той же вложенностью (верхние — в меню витрины), свойства — атрибутами на вкладке характеристик товара.
- Фото и описание приходят вместе с товаром; повторный обмен не плодит копии изображений в image/catalog.
- Размеры и цвета (Pro) — обязательная опция «Размер / Цвет» с собственным остатком и ценой каждого значения; значение, которого нет на складе, купить нельзя. Акционная цена показывается рядом с зачёркнутой обычной.
- Товар, который в BAS пометили на удаление, выключается и исчезает с витрины.
Что получает админ
Расширения → Модули → Обмен с BAS, пять вкладок: «Подключение», «Каталог», «Заказы» (Pro), «Журнал и ручной импорт» и «Лицензия».
- Подключение за минуту. Адрес, пользователя и пароль модуль создаёт при установке — их остаётся скопировать в BAS. Пользователь и пароль отдельные, это не учётная запись администратора OpenCart.
- Контроль над полями. Название, описание, артикул и штрихкод, категории, изображения, атрибуты, производитель — каждое поле можно отдать BAS или оставить редактируемым в магазине. Тексты пишутся во все языки магазина или только в один, если остальные вы переводите вручную.
- Виды цен и склады модуль берёт из файлов BAS и показывает в настройках — названия не нужно угадывать.
- Журнал пишет каждый шаг обмена с результатом: что пришло, сколько создано и обновлено, что пропущено и почему. Полная история — в файле cc_basx.log в папке журналов магазина.
- Ручной импорт — загрузить import.xml, offers.xml или zip с изображениями прямо в админке. Удобно для первого заполнения и для проверки проблемного файла.
Pro: заказы, характеристики, склады, акции
- Заказы в BAS. При обмене заказами BAS забирает новые и изменённые заказы выбранных статусов: покупатель, адрес доставки, телефон и e-mail, строки товаров с идентификаторами BAS (вместе с характеристикой), доставка и сборы как услуги, скидки и купоны, разложенные по строкам.
- Статусы из BAS. «Оплачен», финальный статус, «отменён» и свои правила вида «Відвантажено = Complete». Изменение проходит через штатную историю заказа OpenCart — с записью в истории, как при ручной смене статуса.
- Честный признак «оплачен». Для наложенного платежа — только в статусе завершения, для предоплаты — в статусах, которые вы отметили.
- Характеристики. В OpenCart нет вариаций, поэтому характеристики товара из BAS становятся одной обязательной опцией с собственным остатком и разницей в цене; цена товара — самая дешёвая характеристика.
- Акционная цена из второго вида цен (например «Акционная») — когда она ниже обычной.
- Склады: остаток в магазине — сумма только отмеченных складов.
- Полная выгрузка: товары, которые пришли из BAS раньше, а в полной выгрузке отсутствуют, — выключить или остаток 0. Когда вернутся в BAS, снова появятся на витрине. Товары, добавленные в магазине вручную, не трогаются никогда.
Как это работает — шаг за шагом
- BAS обращается на адрес обмена с пользователем и паролем и получает сессию.
- Магазин сообщает, принимает ли zip-архивы и какого размера части файлов можно отправлять, — в пределах того, что принимает ваш сервер.
- BAS отправляет файлы: import.xml (группы, свойства, товары), offers.xml (цены и остатки) и изображения — частями или одним архивом.
- Магазин импортирует файл шагами: если время шага исчерпано, отвечает «progress», и BAS повторяет запрос, пока импорт не завершится.
- Каждый товар, категория и характеристика получают идентификатор BAS в таблицах модуля — следующие обмены обновляют их, а не создают новые.
- Файлы обмена удаляются сразу после импорта; в журнале остаётся результат каждого шага.
- Pro: при обмене заказами BAS получает файл с заказами, подтверждает получение, а в следующий раз — только новые и изменённые. Статусы из BAS возвращаются отдельным файлом.
Что под капотом
- Потоковое чтение XML. Файлы читаются по одному элементу, а не целиком в память, поэтому большой каталог не упирается в memory_limit. Файлы в кодировке windows-1251 тоже читаются.
- Продолжение с места остановки. Состояние импорта каждого файла сохраняется между шагами; повторный запрос BAS продолжает, а не начинает сначала.
- Собственные таблицы связей с идентификаторами BAS для категорий, товаров, характеристик, атрибутов и изображений: никаких дублей при повторных обменах и после переименований. Таблицы OpenCart получают только обычные строки каталога.
- Безопасность. Отдельные пользователь и пароль для BAS; имена файлов проверяются (никаких «../» и исполняемых расширений), zip распаковывается с защитой от выхода за папку.
- Файлы вне публичной папки. Модуль сам выбирает для файлов обмена папку вне корня сайта и удаляет XML сразу после импорта — включая файлы заказов, потому что в них персональные данные. Админка показывает, где лежат файлы; другую папку можно задать константой CC_BASX_EXCHANGE_DIR в config.php.
- Свой обработчик ошибок. Обмен работает под своим error-handler: OpenCart 4 на любое предупреждение PHP перебрасывает на страницу ошибки, а BAS должна получить ответ протокола.
- Убирает за собой. С галочкой «Удалять данные при удалении модуля» удаление убирает его таблицы, журнал и папку обмена; сами товары, категории и заказы остаются.
Как установить
- OpenCart 4: Extensions → Installer → загрузите
cc_basx.ocmod.zip(имя архива не меняйте) и нажмите «Install». OpenCart 3: Extensions → Installer →cc_basx-oc3.ocmod.zip, затем Extensions → Modifications → Refresh. OpenCart 2.3: залейте содержимое папкиupload/изcc_basx-oc2.ocmod.zipв корень магазина (FTP или файловый менеджер хостинга). - Extensions → Extensions → Modules → «Обмен с BAS» (BAS Exchange) → «Install», затем «Edit».
- Вкладка «Подключение»: скопируйте адрес сайта для обмена, пользователя и пароль. Командой curl с этой же вкладки можно проверить, что адрес отвечает «success».
- В BAS откройте настройки обмена с сайтом по протоколу CommerceML и вставьте эти три значения.
- На вкладке «Каталог» выберите, какие поля BAS может обновлять, и оставьте «Сопоставлять по артикулу», если товары в магазине уже есть.
- Сначала один обмен, потом склады. Запустите обмен в BAS и проверьте «Журнал». После первого обмена на вкладке «Каталог» появятся виды цен и склады — выберите вид цен (для Pro — ещё вид акционных цен и склады) и сохраните.
- Для Pro: вставьте лицензионный ключ из письма после оплаты или запустите 7-дневный триал на вкладке «Лицензия», затем включите обмен заказами на вкладке «Заказы».
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Где взять адрес для BAS?
Расширения → Модули → Обмен с BAS → вкладка «Подключение». Там адрес сайта для обмена, пользователь и пароль с кнопками «Копировать» и команда curl для проверки: ответ должен начинаться с «success». Параметры протокола BAS дописывает к адресу сама.
Модуль проверяли с живой BAS?
Нет. Обмен проверен на симуляторе протокола CommerceML 2, который играет роль BAS: те же запросы, файлы частями и архивом, большие каталоги, заказы и статусы — на OpenCart 4.1, 4.0.2, 3.0 и 2.3. Первый обмен с вашей BAS лучше делать в 7-дневном триале; если что-то пойдёт не так, журнал покажет, на каком шаге, и мы оперативно исправим.
Склады не показываются в настройках.
Так и должно быть до первого обмена: список складов и видов цен модуль берёт из файлов BAS. Сначала запустите один обмен, потом на вкладке «Каталог» выберите склады и вид акционных цен и сохраните. Если сохранить раньше, остаток считается по всем складам.
Адрес обмена отвечает 403 или 404.
Некоторые серверы не выполняют PHP в папках модулей. Нажмите «Создать короткий адрес» на вкладке «Подключение» — в корне магазина появится файл bas_exchange.php, который только передаёт запрос дальше. Тогда дайте BAS адрес https://ваш-магазин/bas_exchange.php.
Обмен перезапишет описания, которые я писал в магазине?
Только те поля, что отмечены в «Каталог → BAS может обновлять». Снимите отметку с «Описание» — и BAS будет заполнять описание только для новых товаров. Цены и остатки BAS обновляет всегда.
В магазине уже есть товары. Будут дубли?
Нет, если включено «Сопоставлять по артикулу»: товар, который BAS отправляет впервые, привяжется к существующему товару с тем же SKU или моделью. Дальше связь держится по идентификатору BAS, поэтому переименование в BAS обновляет тот же товар.
Как BAS узнаёт, что заказ оплачен?
Для наложенного платежа — только в статусе завершения (например Complete): заказ с оплатой при получении «в обработке» ещё не оплачен. Для предоплаты — в статусах, которые вы отметили в «Статусы «оплачено»» на вкладке «Заказы».
Уйдёт ли в BAS вся история заказов?
Нет. Передаются только заказы выбранных статусов, созданные после включения обмена заказами. Если BAS что-то не получила, кнопка «Передать всё ещё раз» отправит эти заказы повторно.
Можно попробовать без BAS?
Да. Выгрузите import.xml и offers.xml из BAS (или любые файлы CommerceML 2) и загрузите их на вкладке «Журнал и ручной импорт» — импорт пройдёт так же, как во время обмена.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—