PIM System Integration with Website
Note: when your catalog has 10,000+ SKUs and products are sold via website, marketplaces, and mobile apps, storing attributes and descriptions in each system separately leads to chaos. Attribute errors cost an average of 200 person-hours of manual reconciliation per month, and inconsistent content across channels drops conversion by 15%. A typical scenario: a manager updates weight in ERP, but the description on the site remains old, and the customer receives outdated information.
We solve this by integrating a PIM system (Akeneo, Pimcore, Plytix) with the website. PIM becomes the central repository for product data: texts, images, documents, translations. The website consumes this data via REST API or webhook, rather than storing it in its own database. This achieves a single source of truth — all changes are made once and automatically distributed to all channels. According to Wikipedia, PIM systems reduce time-to-market by an average of 30-50%.
What Problem Does PIM Solve?
The main pain is data desynchronization across channels. For example, a product's weight changes in ERP, but the description on the site remains old. Or a manager manually edits a card on a marketplace, and a week later the changes are lost. PIM eliminates manual work: all changes are made once and automatically propagated to all systems. In our experience, PIM implementation reduces time-to-market by 40%.
What Is Included in the Work?
- Analysis of current data architecture: studying product structure, sources (ERP, CRM), consumption channels.
- Designing synchronization scheme: selecting strategy (pull/push/hybrid), determining frequency.
- Integration with PIM via REST API: configuring client (PHP, Node.js), optimizing requests (pagination, filters).
- Synchronizing categories and attributes: building category tree, field mapping.
- Media files: uploading images from PIM to the site's CDN with hash verification.
- Multilingual support: configuring locales, automatic content switching.
- Testing and monitoring: data integrity checks, alerts on failures.
Example webhook configuration in Akeneo
{ "events": ["product.created", "product.updated", "product.deleted"], "url": "https://your-site.com/webhook/akeneo", "method": "POST", "secret": "your-secret" } Popular PIM Systems
| System | Features | License |
|---|---|---|
| Akeneo | Flexible attributes, enrichment rules, built-in webhooks | Community (free), Enterprise |
| Pimcore | Open source platform, built-in DAM, high customizability | AGPLv3 |
| Plytix | Simple interface, focus on small business, Shopify integration | Paid |
| Salsify | Enterprise: channel management, analytics | Paid |
| 1C:Nomenclature | For 1C ecosystem, integration with Bitrix | Included in 1C |
Which Synchronization Strategy to Choose: Pull or Push?
Pull approach — the site periodically requests changes from PIM. Usually every 15-30 minutes. Suitable for most tasks, but introduces latency. Example request for changed products:
GET /products?search={"updated":[{"operator":">","value":"2025-01-01T10:00:00"}]} Push approach (webhook) — PIM notifies the site upon publication. Akeneo supports events product.updated, product.created. Latency — seconds. Requires processing on the site side (queue, rate limiting).
We often use a hybrid: base updates via pull every 30 minutes, critical updates (e.g., product disable) via webhook. Below is a comparison of key parameters:
| Parameter | Pull | Push |
|---|---|---|
| Latency | 15-30 min | 1-5 sec |
| Load | Periodic requests | Asynchronous notifications |
| Complexity | Low | Medium (queue, retry) |
| Idempotency | Guaranteed | Needs implementation |
Push synchronization is 60x faster than pull in terms of data freshness, but requires more complex infrastructure.
Example Integration with Akeneo
<?php // 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 specified 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']; // Sync to local site DB } Integration Specifics: Media, Multilingual, and Categories
Media files — images are stored in PIM linked to products. The site can cache them on S3 with hash verification, serve directly from PIM (only for secure environments), or use PIM's CDN. Typical volume: 500+ images for a catalog of 10,000 SKUs.
Multilingual support — PIM natively manages translations. Russian and English versions of a product are stored with locale binding. When requesting data, the site passes the required locale:
GET /products/tshirt-blue?scope=ecommerce&locales=ru_RU Category synchronization — the hierarchy comes from PIM as a flat array with parent_code. We rebuild the tree on the site side, ensuring the structure is up-to-date.
Why Choose Us?
Over 10 years of integration experience. Akeneo certified specialists. Each project has a manager and an engineer. We provide a warranty on all work. Get a consultation for your project — contact us to discuss details.
Timeline and Cost
Integration timeline: from 4 to 8 weeks depending on catalog complexity and number of channels. Cost is calculated individually. Request a project evaluation — we'll prepare a proposal.
Typical Integration Mistakes
- Synchronizing all data at once — overloads the API and slows the site. Use incremental updates.
- Ignoring media — images from PIM are heavy. Set up CDN and compression.
- Lack of monitoring — without alerts, a sync failure can go unnoticed. Set up notifications.
Our experience helps avoid these mistakes. Request a project evaluation — we'll prepare a proposal.







