БесплатноБесплатный аудит сайта и кода на 1С-Битрикс при заказе доработки или поддержки

PunchOut/OCI: интеграция с системами закупок клиента

Интеграция PunchOut/OCI: система закупок клиента подключается к каталогу поставщика на 1С-Битрикс

Крупный корпоративный заказчик почти никогда не покупает «через сайт» руками. У него есть собственная система закупок — SAP SRM, Ariba, Coupa, Jaggaer или отраслевая надстройка над 1С, — в которой снабженец формирует заявку, а дальше идёт согласование по лимитам и центрам затрат. Если ваш каталог существует отдельно от этой системы, менеджеру заказчика приходится вручную переносить артикулы и цены из вашего интернет-магазина в свою заявку. Это долго, порождает ошибки и на практике заканчивается тем, что вы проигрываете конкуренту, который такую интеграцию уже сделал.

PunchOut (а в мире SAP — его реализация OCI, Open Catalog Interface) закрывает ровно эту боль: снабженец из своей системы закупок «проваливается» в ваш каталог на 1С-Битрикс, набирает корзину по персональным ценам и одним нажатием возвращает её обратно в заявку. Никакого двойного ввода, никаких ошибок в артикулах. Ниже — практический разбор, как устроен этот обмен и как его собрать на Битриксе: от архитектуры round-trip до полей протокола, аутентификации и возврата заказа в ERP. Это выжимка из наших проектов по разработке B2B-порталов на 1С-Битрикс — без общих слов.

Коротко

  • PunchOut — это сценарий round-trip: из системы закупок клиента в ваш каталог и обратно с готовой корзиной.
  • OCI — реализация PunchOut от SAP на HTTP-формах; cXML PunchOut — альтернатива от Ariba на XML-документах.
  • Клиент не регистрируется у вас: его система передаёт подписанный запрос, а Битрикс создаёт временную сессию с персональным каталогом и ценами под контракт.
  • Обратно уходит не заказ, а корзина — она превращается в заявку внутри системы закупок и проходит там согласование.
  • На Битриксе PunchOut — это обработчик входящих/исходящих запросов поверх каталога, привязанный к профилям компаний, типам цен и обмену с ERP.

Что такое PunchOut и OCI

PunchOut — это модель интеграции между системой электронных закупок покупателя (e-procurement) и каталогом поставщика. Название буквально означает «пробить наружу»: пользователь, находясь внутри своей закупочной системы, на секунду выходит наружу — в каталог поставщика, — работает там как в обычном интернет-магазине, а затем возвращается обратно, принося с собой собранную корзину. Ключевая идея в том, что каталог остаётся на стороне поставщика: покупатель всегда видит актуальные позиции, цены и остатки, а не выгруженный полгода назад прайс.

Существует два способа выгрузки товаров в закупочную систему: статический (поставщик отдаёт файл-каталог, который заказчик загружает к себе) и динамический, он же PunchOut. Статический каталог быстро устаревает и не умеет показывать персональные условия, поэтому для сложных номенклатур и контрактных цен применяют именно PunchOut. Поставщик держит один живой каталог, а условия под каждого клиента подставляются на лету.

OCI (Open Catalog Interface) — это конкретная спецификация PunchOut, разработанная SAP для интеграции с SAP SRM и модулем закупок SAP ERP. Она предельно прагматична: обмен идёт обычными HTTP-запросами, а корзина возвращается как HTML-форма с фиксированным набором скрытых полей. Именно за счёт простоты OCI стал де-факто стандартом в России и Европе — его поддерживают почти все закупочные системы, а реализовать приём и отдачу OCI-запросов можно на любой платформе, включая 1С-Битрикс.

Важно с самого начала различать три вещи. PunchOut — это концепция (round-trip между двумя системами). OCI — один из протоколов, реализующих эту концепцию (от SAP, на HTTP-формах). cXML PunchOut — другой протокол той же концепции (от Ariba, на XML-документах). Когда клиент говорит «нам нужен PunchOut», первым делом уточните, какой именно диалект использует его закупочная система: от этого зависит формат полей и способ обмена.

Важно: PunchOut возвращает в систему закупок корзину, а не оформленный заказ. Финальное решение о покупке, согласование по лимитам и выпуск заказа поставщику происходят уже внутри системы клиента. Ваш каталог отвечает только за подбор позиций и цен.

Зачем это клиенту и поставщику

PunchOut выгоден обеим сторонам, но по разным причинам. Полезно держать в голове мотивацию каждой, чтобы правильно продавать и внедрять интеграцию.

Что получает покупатель (заказчик). Снабженец работает в привычном интерфейсе своей закупочной системы и не переносит данные руками. Заявка формируется из актуального каталога с правильными артикулами, поэтому исчезают ошибки ввода и пересорт. Все внутренние процедуры — согласование по бюджету, центрам затрат, лимитам — остаются в системе заказчика и не ломаются. Плюс полная прослеживаемость: каждая закупка привязана к контракту и проходит через корпоративный контроль.

Что получает поставщик (вы). Во-первых, вы попадаете в закупочный контур крупного клиента и становитесь «предпочтительным поставщиком» — заявки идут к вам, а не к конкуренту с ручным прайсом. Во-вторых, каталог остаётся под вашим контролем: цены, ассортимент и остатки вы меняете у себя, и клиент сразу видит актуальное. В-третьих, заказы приходят структурированными и уже с правильными артикулами, что резко снижает нагрузку на ваших менеджеров и ускоряет обработку.

Архитектура интеграции: round-trip

Технически PunchOut — это цикл из двух HTTP-переходов между системой закупок и вашим каталогом. Его удобно представлять как «туда и обратно» (round-trip), где у каждого шага своя роль. Разберём цикл по этапам на примере OCI.

1. Setup-запрос (вход). Пользователь в закупочной системе выбирает вашего поставщика из списка каталогов. Система отправляет на ваш заранее согласованный URL HTTP-запрос с параметрами: идентификатор пользователя и организации, пароль или токен, код контракта, язык, валюта и — важнейшее поле — HOOK_URL, адрес, на который позже нужно вернуть корзину.

2. Аутентификация и сессия. Ваш обработчик на Битриксе проверяет подпись/пароль запроса, находит по идентификатору профиль компании-клиента и создаёт временную сессию. С этого момента каталог работает в «режиме PunchOut»: он знает, кто пришёл, по какому контракту и куда возвращать корзину.

3. Работа в каталоге. Покупатель попадает в ваш каталог на Битриксе и работает как в обычном интернет-магазине: ищет товары, применяет фильтры, смотрит персональные цены, набирает корзину. Всё это — ваш штатный функционал витрины, просто с ограничениями и ценами под конкретный контракт.

4. Возврат корзины (выход). Покупатель нажимает «Оформить в закупку». Битрикс формирует ответ по всем позициям корзины и отправляет его на тот самый HOOK_URL. В OCI это HTML-форма со скрытыми полями, которая автоматически сабмитится в закупочную систему; в cXML — XML-документ PunchOutOrderMessage.

5. Заявка и согласование. Закупочная система принимает корзину, превращает её в позиции заявки и запускает свой внутренний процесс — согласование, проверку бюджета, выпуск заказа. На этом round-trip завершён; дальше заказ может прийти к вам уже отдельным каналом (по EDI, почтой или через обмен с вашей ERP).

Система закупок SAP SRM / Ariba Coupa / 1С Каталог 1С-Битрикс обработчик OCI 1. Setup-запрос + HOOK_URL 4. Возврат корзины на HOOK_URL 2–3. Покупатель набирает корзину Round-trip PunchOut
Схема: система закупок отправляет setup-запрос с HOOK_URL, покупатель набирает корзину в каталоге на Битриксе, а корзина возвращается на HOOK_URL внутрь заявки.

Протокол OCI: поля и формат

OCI ценят за минимализм. Никаких сложных схем и SOAP-конвертов — только HTTP-запрос с параметрами на вход и HTML-форма со скрытыми полями на выход. Разберём обе стороны.

Входящий setup-запрос. Закупочная система вызывает ваш URL методом GET или POST и передаёт служебные параметры. Ключевые из них:

Исходящий ответ с корзиной. Обратно OCI ждёт HTML-форму, в которой каждая позиция описана набором полей с индексом. По каждой строке корзины формируется группа полей вида NEW_ITEM-*[n]:

Поле OCIЧто содержитПример
NEW_ITEM-DESCRIPTION[n]Наименование товараБумага А4, 80 г/м²
NEW_ITEM-MATNR[n]Артикул/код материала поставщикаSUP-10456
NEW_ITEM-QUANTITY[n]Количество50
NEW_ITEM-UNIT[n]Единица измерения (код)PCE / шт
NEW_ITEM-PRICE[n]Цена за единицу245.00
NEW_ITEM-CURRENCY[n]ВалютаRUB
NEW_ITEM-VENDORMAT[n]Артикул поставщика для сверки10456
NEW_ITEM-PRICEUNIT[n]Ценовая единица (за сколько указана цена)1
NEW_ITEM-LEADTIME[n]Срок поставки в днях3

Индекс [n] нумерует позиции: первая строка корзины — [1], вторая — [2] и так далее. Задача вашего обработчика на Битриксе — обойти корзину и для каждой позиции сгенерировать полный комплект этих полей, а затем автоматически отправить форму на HOOK_URL клиентским JavaScript-сабмитом.

Важно: самое уязвимое место OCI — соответствие единиц измерения и артикулов. Закупочная система клиента ждёт коды единиц в своём справочнике (часто по ISO — PCE, KGM, MTR), а не «шт» и «кг». Согласуйте маппинг единиц и формат артикулов до первого тестового обмена, иначе позиции «не лягут» в заявку.

cXML PunchOut как альтернатива

Если клиент работает на SAP Ariba или Coupa, он с большой вероятностью попросит не OCI, а cXML PunchOut. Это протокол компании Ariba (ныне часть SAP), и он устроен принципиально иначе: вместо HTTP-форм с плоскими полями обмен идёт полноценными XML-документами.

Цикл тот же самый round-trip, но упакован в XML:

cXML строже и богаче OCI: он поддерживает классификаторы товаров, вложенную структуру, расширения через Extrinsic и цифровые подписи. Но и реализовать его сложнее — нужен разбор и генерация XML, обработка ошибок на уровне документа, поддержка версий cXML DTD. На Битриксе оба протокола делаются как обработчики на PHP, просто у cXML больше кода на парсинг и валидацию XML.

Практический вывод: закладывайте архитектуру так, чтобы «ядро» PunchOut (определение клиента, персональный каталог, сборка корзины) было общим, а протокольный слой (OCI-форма или cXML-документ) — сменным адаптером. Тогда подключение второго клиента на другом протоколе не потребует переписывать всё заново.

OCI против cXML — сравнение

КритерийOCI (SAP)cXML PunchOut (Ariba)
Формат обменаHTTP-форма, плоские поляXML-документы
Где чаще встречаетсяSAP SRM, SAP ERP, 1С-надстройкиSAP Ariba, Coupa, Jaggaer
Сложность реализацииНизкая — набор полей формыСредняя — парсинг и генерация XML
Классификаторы товаровНет из коробкиДа (UNSPSC, extrinsic-поля)
АутентификацияUSERNAME/PASSWORD в запросеCredential-блок, shared secret
Возврат корзиныHTML-форма на HOOK_URLPunchOutOrderMessage на BrowserFormPost
РасширяемостьОграниченнаяВысокая (вложенные структуры)

Для большинства российских внедрений первым делают OCI: он проще, распространён среди клиентов на SAP и 1С, а порог входа минимальный. cXML добавляют, когда появляется клиент на Ariba или Coupa. Оба протокола прекрасно сосуществуют на одном каталоге, если протокольный слой вынесен в отдельный адаптер.

Один каталог — два протокола OCI HTTP-форма, плоские поля NEW_ITEM-*[n] SAP SRM · 1С cXML PunchOut XML-документы PunchOutOrderMessage Ariba · Coupa Общее ядро PunchOut на 1С-Битрикс клиент · персональный каталог · корзина
Схема: протокольный слой (OCI или cXML) — сменный адаптер над общим ядром PunchOut; подключение нового клиента не требует переписывать каталог.

Сценарий закупки глазами покупателя

Чтобы интеграция была не «технически правильной», а удобной, полезно пройти путь снабженца целиком. Вот как выглядит закупка через PunchOut с точки зрения человека, а не системы.

  1. Открывает заявку в своей системе. Снабженец создаёт новую заявку на закупку и видит список доступных внешних каталогов — среди них ваш магазин на Битриксе.
  2. Проваливается в ваш каталог. По клику система тихо отправляет setup-запрос, аутентифицируется, и в том же окне или во фрейме открывается ваша витрина — уже с персональными ценами под его контракт.
  3. Ищет и подбирает товары. Работает как в обычном интернет-магазине: поиск, фильтры, карточки товаров, сравнение. Видит остатки и сроки поставки.
  4. Набирает корзину. Добавляет позиции с нужным количеством. Здесь важна выверенная логика витрины — снабженцу нужно быстро найти повторяемую номенклатуру, а не «продающие» баннеры.
  5. Возвращается в заявку. Нажимает «Перенести в закупку» — корзина уходит на HOOK_URL, окно каталога закрывается, и он снова в своей системе, но заявка уже заполнена позициями.
  6. Отправляет на согласование. Дальше — внутренний процесс заказчика: проверка бюджета, подписи, выпуск заказа поставщику. Ваш каталог в этом уже не участвует.

Из этого сценария следует важный дизайн-принцип: витрина в режиме PunchOut должна быть заточена под быстрый повторный подбор, а не под импульсную розничную покупку. Снабженцу нужны быстрый поиск по артикулу, готовые списки заказов, прошлые корзины и понятные единицы измерения. Всё, что мешает быстро набрать заявку (лишние шаги, капризная авторизация, медленный фильтр), напрямую бьёт по вашей выручке.

Реализация в 1С-Битрикс

На платформе 1С-Битрикс PunchOut/OCI собирается как связка обработчиков поверх штатного торгового каталога и механики B2B-профилей. Никакого «коробочного модуля PunchOut» в поставке нет — это всегда разработка, но она опирается на готовые подсистемы платформы. Разберём, из каких частей состоит реализация.

1. Точка входа (входящий обработчик). Отдельный публичный скрипт или контроллер (например, /local/punchout/oci_login.php или маршрут через routing), который принимает setup-запрос. Его задачи: проверить учётные данные, найти профиль компании по идентификатору, сохранить HOOK_URL и параметры сессии, авторизовать технического пользователя и сделать редирект в каталог.

2. Привязка к профилю компании. Клиент в B2B-каталоге Битрикса — это, как правило, отдельный пользователь или компания с назначенным типом цены и группой. PunchOut-сессия связывается именно с этим профилем: от него берутся тип цены, доступные разделы каталога, склад и правила показа остатков.

3. Персональный каталог. Штатные компоненты каталога (catalog.section, catalog.smart.filter, sale.basket.basket) работают в контексте PunchOut-сессии и показывают цены и ассортимент под контракт. Здесь пригодится грамотно настроенный умный фильтр — снабженцу важно быстро отсекать номенклатуру.

4. Точка выхода (исходящий обработчик). Кнопка «Перенести в закупку» ведёт на скрипт, который обходит корзину пользователя (Bitrix\Sale\Basket), формирует по каждой позиции комплект OCI-полей (или XML для cXML) и рендерит самосабмитящуюся форму на сохранённый HOOK_URL.

5. Обмен заказами с ERP. Отдельно от round-trip настраивается канал получения финальных заказов, которые заказчик выпустил из своей системы. Обычно это стандартный обмен 1С-Битрикс с 1С:ERP по CommerceML или EDI, чтобы заказ автоматически попал в вашу учётную систему.

Технически ядро удобно вынести в модуль /local/modules/ или в /local/php_interface/, а протокольные адаптеры (OCI, cXML) — в отдельные классы, чтобы добавление нового клиента сводилось к настройке, а не к переписыванию. Все входящие и исходящие запросы обязательно логируются: при разборе проблем с заказчиком лог round-trip экономит дни переписки.

Важно: не завязывайте PunchOut на «живого» пользователя с обычной авторизацией по логину/паролю на вашем сайте. Заведите технического пользователя (или сервисную группу) под каждый контракт и привязывайте сессию к нему. Так вы отделите машинную аутентификацию систем от персональных аккаунтов сотрудников заказчика.

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

Настройка PunchOut-клиента в админке Битрикса сводится к карточке контракта: реквизиты доступа, привязка к профилю цены и параметры протокола. Схематично интерфейс выглядит так:

PunchOut-клиент: ООО «Заказчик» Логин доступа srm_zakazchik Тип цены Контракт №2025-114 Протокол OCI 4.0 cXML HOOK_URL получается из запроса, не хранится Статус подключения Тестовый round-trip пройден · активен Проверить обмен
Схема: карточка PunchOut-клиента связывает учётные данные с типом цены и протоколом; HOOK_URL берётся из входящего запроса. Реальные подписи зависят от реализации.

В такой карточке администратор задаёт: учётные данные для аутентификации setup-запроса, тип цены и группу доступа (они определяют персональный каталог), протокол и его версию, а также при необходимости — маппинг единиц измерения и формат артикулов. Отдельно ведётся журнал обменов: когда пришёл setup-запрос, сколько позиций вернулось, был ли успешный round-trip. Этот журнал — первый инструмент диагностики при подключении нового заказчика.

Аутентификация и безопасность

PunchOut — это машинный обмен между двумя корпоративными системами, поэтому к безопасности требования выше, чем к обычной витрине. Разберём уровни защиты.

Важно: относитесь к HOOK_URL и входящим параметрам как к недоверенному вводу. Экранируйте всё, что попадает в HTML-форму возврата, и проверяйте домен HOOK_URL. Иначе PunchOut-точка входа становится вектором для XSS и открытого редиректа.
Слои безопасности PunchOut HTTPS — весь транспорт зашифрован Учётные данные под контракт + IP-фильтр Короткая сессия + валидация HOOK_URL Изоляция персонального каталога чем глубже слой, тем ближе к данным клиента
Схема: защита выстраивается слоями — от шифрования транспорта до изоляции персонального каталога конкретного контракта.

Персональные цены и каталог под контракт

Главная ценность PunchOut для B2B — не сам обмен, а то, что каждый заказчик видит свои условия. Одна и та же гайка стоит для дистрибьютора одну цену, для разового заказчика — другую, а часть ассортимента вообще может быть скрыта. В 1С-Битрикс это реализуется штатными механизмами каталога, привязанными к PunchOut-сессии.

Именно связка «идентификатор контракта → профиль → тип цены и ассортимент» превращает обычный интернет-магазин в полноценный B2B-каталог. Подробно механику персональных цен, договоров и лимитов мы разбираем в материале про интеграцию B2B-портала с ERP — PunchOut опирается ровно на эту же основу, добавляя к ней внешний вход из системы закупок.

Возврат корзины и заказ в ERP

Здесь важно чётко развести два потока, которые новички часто путают. PunchOut-корзина и финальный заказ — это разные вещи, и приходят они по разным каналам.

Поток 1 — корзина по round-trip. Собранная в вашем каталоге корзина возвращается в систему закупок заказчика. Это ещё не заказ, а «наполнение заявки». Внутри системы клиента она проходит согласование, и только после этого может стать заказом. На этом этапе в вашей ERP ничего не появляется.

Поток 2 — финальный заказ. После внутреннего согласования заказчик выпускает заказ поставщику. Он приходит к вам отдельным каналом: по EDI, через электронный документооборот (ЭДО), по email или напрямую в обмен с вашей учётной системой. Этот заказ и нужно завести в 1С/ERP для отгрузки и выставления документов.

Грамотная архитектура связывает оба потока: позиции корзины несут артикулы вашего каталога, поэтому пришедший позже финальный заказ по этим артикулам однозначно матчится с вашей номенклатурой и без ручной сверки попадает в ERP. Здесь и подключается стандартный обмен Битрикса с учётной системой.

ЭтапЧто происходитГде живёт
Сборка корзиныПодбор позиций и ценКаталог на 1С-Битрикс
Возврат round-tripКорзина → заявкаСистема закупок клиента
СогласованиеПроверка бюджета и подписиСистема закупок клиента
Выпуск заказаЗаявка → заказ поставщикуСистема закупок клиента
Приём заказаЗаказ по EDI/ЭДО/обмену1С-Битрикс → ваша ERP
Отгрузка и документыКомплектация, УПД, счётВаша учётная система

Тестирование и подключение клиента

PunchOut почти никогда не заводится «с первого раза начисто»: слишком много параметров согласуется между двумя ИТ-командами. Поэтому внедрение строят как серию контролируемых тестов round-trip.

  1. Согласуйте параметры на бумаге. До кода зафиксируйте: URL точки входа, метод и протокол (OCI/cXML), учётные данные, формат артикулов, справочник единиц измерения, валюту, версию интерфейса. Разночтения здесь — источник 80% проблем.
  2. Поднимите тестовый контур. Разверните обработчик на стейджинге и получите доступ к тестовой системе закупок клиента (или к эмулятору OCI/cXML). Боевой каталог трогать рано.
  3. Прогоните вход. Убедитесь, что setup-запрос проходит аутентификацию, находит профиль и открывает персональный каталог с правильными ценами.
  4. Прогоните выход. Соберите тестовую корзину и проверьте, что она корректно возвращается на HOOK_URL и «ложится» в заявку клиента без потери полей и с правильными единицами.
  5. Проверьте пограничные случаи. Пустая корзина, дробные количества, товары без цены по контракту, спецсимволы в наименованиях, длинные артикулы — всё это ломает неаккуратные реализации.
  6. Зафиксируйте эталонный лог. Сохраните пример успешного round-trip как эталон. При будущих сбоях сравнение с ним быстро показывает, что изменилось.
  7. Переведите на боевой контур. Только после зелёных тестов подключайте продакшн-каталог и реальный контракт, начав с ограниченного круга снабженцев.

От клиента на этих этапах нужны три вещи: доступ к тестовой закупочной системе, справочник соответствия артикулов и единиц, и контактное лицо со стороны ИТ, а не только закупок. Чем чище справочники с обеих сторон, тем быстрее и дешевле проходит подключение.

Частые ошибки при внедрении

Мини-FAQ. Нужно ли поддерживать и OCI, и cXML сразу? Нет — начните с протокола первого крупного клиента (чаще это OCI). Но заложите архитектуру со сменным протокольным адаптером, чтобы второй клиент на другом диалекте не потребовал переписывать ядро.

Чек-лист внедрения

Сведём всё в практический список для приёмки PunchOut перед подключением реального заказчика:

  1. Протокол определён. Выяснено, что использует система клиента — OCI или cXML PunchOut, — и зафиксирована версия интерфейса.
  2. Точка входа готова. Обработчик setup-запроса принимает параметры, аутентифицирует, находит профиль и открывает персональный каталог.
  3. Профиль и цены привязаны. Контракт связан с типом цены, группой доступа и складом; ассортимент под контракт изолирован.
  4. Маппинг согласован. Единицы измерения, артикулы и валюта соответствуют справочникам клиента.
  5. Точка выхода готова. Корзина корректно превращается в OCI-форму (или cXML) и возвращается на валидированный HOOK_URL.
  6. Безопасность закрыта. HTTPS, IP-фильтр, экранирование ввода, короткая сессия, белый список доменов HOOK_URL.
  7. Обмен с ERP настроен. Финальные заказы по EDI/ЭДО матчатся по артикулам и попадают в учётную систему.
  8. Тесты пройдены. Успешный round-trip и пограничные случаи проверены на стейджинге, эталонный лог сохранён.

Вывод

PunchOut/OCI — это не «ещё один способ выгрузить прайс», а прямой вход в закупочный контур крупного клиента. Технически на 1С-Битрикс он собирается как связка входящего и исходящего обработчиков поверх торгового каталога и B2B-профилей: setup-запрос авторизует контракт, каталог показывает персональные цены, корзина возвращается в систему закупок, а финальный заказ приходит к вам отдельным каналом и ложится в ERP. Сделайте эти звенья аккуратно — согласуйте маппинг, изолируйте каталоги, закройте безопасность и вынесите протокол в сменный адаптер — и вы станете «предпочтительным поставщиком», которого не хотят менять из-за уже работающей интеграции.

Частые вопросы

Чем PunchOut отличается от OCI?

PunchOut — это общая концепция «выхода» из системы закупок клиента в каталог поставщика и возврата собранной корзины обратно. OCI (Open Catalog Interface) — конкретная реализация этого сценария от SAP на основе HTTP-форм и фиксированного набора полей. Есть и альтернатива — cXML PunchOut от Ariba, где обмен идёт XML-документами. То есть OCI и cXML PunchOut — это два разных «диалекта» одной идеи round-trip между закупочной системой и вашим каталогом на Битрикс.

Нужна ли клиенту регистрация в моём интернет-магазине при PunchOut?

Классической регистрации с паролем не нужно. Покупатель авторизуется в своей системе закупок (SAP SRM, Ariba, Coupa, 1С), а она сама передаёт вашему сайту подписанный запрос с идентификатором контракта и пользователя. По этому запросу Битрикс создаёт временную сессию и показывает персональный каталог с ценами под контракт. Отдельный логин на вашей стороне покупатель не вводит — вся аутентификация проходит на уровне систем.

Как в PunchOut передаются персональные цены и ассортимент?

Идентификатор контракта из входящего запроса определяет, какой набор товаров и какие цены увидит покупатель. В Битриксе это реализуется через привязку сессии к профилю компании: свой тип цены, свой набор доступных разделов каталога, свои остатки и НДС. Один и тот же товар разным клиентам можно показывать по разной цене, а часть ассортимента — скрывать. Именно поэтому PunchOut удобен для контрактных поставок, где условия у каждого заказчика свои.

Что возвращается в систему закупок после сборки корзины?

Не заказ, а корзина. Покупатель набирает позиции в вашем каталоге и нажимает «Оформить» или «Перенести в закупку». Битрикс формирует структурированный ответ — в OCI это HTML-форма со скрытыми полями по каждой позиции (артикул, наименование, цена, количество, единица, ставка НДС), в cXML это документ PunchOutOrderMessage. Этот ответ уходит обратно в систему закупок клиента, где превращается в заявку и проходит внутреннее согласование. Заказ поставщику формируется уже оттуда.

На какой редакции 1С-Битрикс можно сделать PunchOut/OCI?

Технически PunchOut — это обработчик входящих и исходящих HTTP-запросов поверх каталога, поэтому подойдёт любая редакция с модулем «Интернет-магазин» — «Малый бизнес» или «Бизнес». Для крупных B2B-внедрений с персональными каталогами, договорными ценами и обменом с ERP разумнее «Бизнес» или отраслевая сборка B2B-портала: там уже есть механика профилей компаний, типов цен и ограничений доступа, на которую опирается PunchOut.

Сколько занимает внедрение PunchOut и что нужно от клиента?

Базовый OCI-обмен на готовом каталоге поднимается за несколько недель: настройка обработчика, маппинг полей, тестовый round-trip. Основное время уходит на согласование параметров с ИТ-службой заказчика — URL, метод аутентификации, формат артикулов и единиц измерения. От клиента нужны доступ к тестовому контуру его системы закупок, справочник соответствия артикулов и контактное лицо со стороны ИТ. Чем чище справочники с обеих сторон, тем быстрее проходит интеграция.

Поделиться:

Хотите подключить закупки клиентов через PunchOut/OCI?

Спроектируем B2B-каталог с персональными ценами, поднимем обмен OCI или cXML PunchOut с системой закупок вашего заказчика и свяжем финальные заказы с 1С/ERP. Рассчитаем стоимость по вашей задаче.

Услуга «B2B-портал»

Игорь Воскресенский

Основатель студии B2Bsite. С 2014 года команда разрабатывает и поддерживает B2B-порталы и интернет-магазины на 1С-Битрикс, настраивает персональные каталоги, интеграции PunchOut/OCI с системами закупок и обмен заказами с 1С и ERP для среднего и крупного бизнеса.

← Все статьи блога