PIM System Integration (Product Information Management)
PIM system — centralized product information repository: characteristics, descriptions, images, documents, translations. Website gets product data from PIM, not storing in own DB. Relevant for companies with large catalog (10,000+ SKU), multiple sales channels, or complex products with many attributes.
Popular PIM Systems
- Akeneo — market leader, has Community Edition (free)
- Pimcore — open platform, very flexible
- Plytix — for small business
- Salsify, inRiver — enterprise solutions
- 1С:Nomenclature — specific PIM case for 1С ecosystem
PIM Role in Architecture
ERP (1C/SAP) PIM (Akeneo) Sales Channels
Prices, stock → Data enrichment → Website
Basic attributes Media, descriptions Marketplaces
Translations Mobile app
PIM is not price/stock source (they come from ERP in real-time). PIM stores what changes rarely: texts, images, documents, characteristics.
Akeneo Integration via 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');
// Get products with specific attributes
$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'];
// Synchronize with site local DB
}
Synchronization Strategy
Pull approach — site periodically requests changes from PIM:
- Scheduled job every 15–30 min:
GET /products?search={"updated":[{"operator":">","value":"2024-03-15T10:00:00"}]} - Akeneo supports
completenessfilter — sync only fully filled products
Push approach (webhook) — PIM notifies site on change publication. Akeneo supports webhooks with product.updated, product.created events.
Media Files from PIM
Images stored in PIM linked to product and attribute. Site can:
- Cache images locally (S3), re-sync by hash
- Deliver directly from PIM (closed environments only)
- Use PIM CDN directly on public site
Multilingual
PIM is natural place for managing product translations. Russian and English versions stored in PIM linked to locale. On site, pass locale when requesting data:
GET /products/tshirt-blue?scope=ecommerce&locales=ru_RU
Category Synchronization
Category hierarchy (tree) also comes from PIM:
$categories = $client->category()->listPerPage(100);
// Build tree from flat array with parent_code
Development time: 4–8 weeks for Akeneo or Pimcore integration with incremental sync, media, and multilingual.







