Интеграция 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 поддерживает webhooks с событиями 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 с инкрементальной синхронизацией, медиа и мультиязычностью.







