Интеграция SAP с сайтом
SAP — корпоративная ERP-платформа, которую используют крупные предприятия. Интеграция сайта с SAP — это enterprise-проект с серьёзными требованиями к архитектуре, безопасности и производительности. Задача никогда не решается "напрямую" — только через промежуточный слой.
Ключевые модули SAP в контексте интеграции
- SAP SD (Sales and Distribution) — заказы клиентов, ценообразование, доставка
- SAP MM (Materials Management) — номенклатура, склады, остатки
- SAP FI (Financial Accounting) — выставление счетов, дебиторская задолженность
- SAP CRM — управление клиентами и контактами
- SAP MDG (Master Data Governance) — НСИ: клиенты, материалы
Архитектура интеграции
Прямые вызовы из сайта в SAP — антипаттерн. SAP-системы нагружены операционной деятельностью, и дополнительные веб-запросы могут создавать проблемы с производительностью. Рекомендуемая схема:
Сайт (PHP/Node.js)
↕
Middleware (SAP BTP Integration / MuleSoft / собственный сервис)
↕
SAP (через SAP PI/PO, RFC, OData, SOAP)
Методы подключения к SAP
SAP OData (REST-like) — наиболее современный и рекомендуемый способ. SAP Gateway публикует OData-сервисы для внешних систем. Работает через HTTP, поддерживает CRUD.
GET https://sap-server/sap/opu/odata/sap/ZSD_ORDER_SRV/OrderSet?
$filter=CustomerID eq '1234567'
&$expand=OrderItems
Authorization: Basic {credentials}
RFC (Remote Function Call) — вызов функциональных модулей 1С через SAP-протокол. Требует SAP JCo (Java Connector) или pyrfc (Python). Для PHP нет официальной поддержки — нужен промежуточный сервис на Java или Python.
SAP SOAP Web Services — доступны через Enterprise Services Repository (ESR). Используются для сложных оркестраций.
IDocs (Intermediate Documents) — XML-формат для асинхронного обмена. Исторический стандарт SAP-интеграций, всё ещё широко применяется.
Получение данных о материалах
# Пример через SAP OData (Python requests)
import requests
response = requests.get(
'https://sap-gw/sap/opu/odata/sap/ZMM_MATERIAL_SRV/MaterialSet',
params={
'$filter': "Plant eq '1000' and MaterialType eq 'FERT'",
'$select': 'MaterialNumber,Description,BaseUnit,StandardPrice',
'$format': 'json'
},
auth=(SAP_USER, SAP_PASSWORD),
verify=True
)
materials = response.json()['d']['results']
B2B-портал: ключевые сценарии
Для корпоративных клиентов B2B-портал с SAP-интеграцией предоставляет:
- Индивидуальные цены (из SAP SD: условия ценообразования для конкретного клиента)
- Кредитный лимит и текущую задолженность (SAP FI)
- История заказов с возможностью повтора
- Статус отгрузки и документы (накладные, счета-фактуры из SAP)
- Личные менеджеры и контакты из SAP CRM
SAP Business Technology Platform (BTP)
Для новых SAP-интеграций рекомендуется SAP BTP Integration Suite — облачная ESB от SAP. Обеспечивает мониторинг потоков данных, retry-логику, трансформацию форматов. Сайт подключается к BTP через стандартные REST-вызовы.
Требования к команде
Интеграция SAP требует специалистов с опытом как в SAP Basis/ABAP, так и в веб-разработке. Критически важно участие SAP-архитектора на стороне клиента — без доступа к системе и пониманию конфигурации интеграция займёт в разы больше времени.
Срок разработки: 3–6 месяцев для серьёзной B2B-интеграции с несколькими SAP-модулями через промежуточную шину.







