Інтеграція PIM-системи (Product Information Management)
PIM-система — централізоване сховище інформації про продукти: характеристики, описи, зображення, документи, переводи. Сайт отримує дані про товари з PIM, а не зберігає у власній БД. Актуально для компаній з великим каталогом (10 000+ SKU), кількома каналами продажу або складними продуктами з багатьма атрибутами.
Популярні PIM-системи
- Akeneo — лідер ринку, є Community Edition (безплатна)
- Pimcore — відкрита платформа, дуже гнучка
- Plytix — для малого бізнесу
- Salsify, inRiver — enterprise-рішення
- 1С:Номенклатура — частний випадок PIM для 1С-екосистеми
Роль PIM у архітектурі
ERP (1С/SAP) PIM (Akeneo) Канали продажу
Ціни, остатки → Обогащення даних → Сайт
Базові атрибути Медіа, описи Маркетплейси
Переводи Мобільний додаток
PIM — не джерело цін та остатків (вони приходять з ERP у реальному часі). PIM зберігає те, що змінюється рідко: тексти, зображення, документи, характеристики.
Інтеграція з Akeneo через REST API
// composer require akeneo/api-php-client
$client = \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder::create(
'https://your-pim.akeneo.com'
)->buildAuthenticatedByPassword('client_id', 'secret', 'user', 'pass');
// Отримати товари з заданими атрибутами
$products = $client->product()->listPerPage(100, true, [
'channel' => 'ecommerce',
'locales' => ['ru_RU', 'en_US'],
'attributes' => ['name', 'description', 'weight', 'color'],
'filters' => [['field' => 'enabled', 'operator' => '=', 'value' => true]]
]);
foreach ($products->getItems() as $product) {
$name = $product['values']['name'][0]['data'];
$description = $product['values']['description'][0]['data'];
// Синхронізувати з локальною БД сайту
}
Стратегія синхронізації
Pull-підхід — сайт періодично запитує зміни у PIM:
- Scheduled job кожні 15–30 хвилин:
GET /products?search={"updated":[{"operator":">","value":"2024-03-15T10:00:00"}]} - Akeneo підтримує фільтр
completeness— синхронізувати тільки повністю заповнені продукти
Push-підхід (webhook) — PIM сповіщає сайт при публікації змін. Akeneo підтримує webhook з подіями product.updated, product.created.
Медіафайли з PIM
Зображення зберігаються в PIM з привязкою до продукту та атрибуту. Сайт може:
- Кешувати зображення локально (S3), пересинхронізовувати за хешем
- Віддавати зображення прямо з PIM (тільки для закритих середовищ)
- Використовувати CDN PIM-системи прямо на публічному сайті
Мультиязичність
PIM — природне місце для управління переводами продуктів. Російська та англійська версії товару зберігаються в PIM з привязкою до locale. На сайті при запиті даних передавайте потрібну locale:
GET /products/tshirt-blue?scope=ecommerce&locales=ru_RU
Синхронізація категорій
Ієрархія категорій (дерево) також приходить з PIM:
$categories = $client->category()->listPerPage(100);
// Будуємо дерево з flat-масиву з parent_code
Терміни розробки: 4–8 тижнів для інтеграції з Akeneo або Pimcore з інкрементальною синхронізацією, медіа та мультиязичністю.







