Integracja PIM z VTEX: jak przenieść i synchronizować dane produktowe
Kto odpowiada za jakie dane, jak odwzorować atrybuty PIM na katalog VTEX, w jakiej kolejności importować przez API i jak synchronizować zmiany.
Jak zintegrować PIM z VTEX?
Najpierw ustal, który system jest właścicielem jakich danych: PIM treści produktu, ERP ceny i stany, a VTEX sprzedaż. Potem odwzoruj model danych z PIM na katalog VTEX i załóż w VTEX strukturę: kategorie, marki, grupy i pola specyfikacji. Dopiero wtedy wysyłaj przez Catalog API produkty, SKU, zdjęcia i przypisania do polityki handlowej. Ceny i stany z ERP idą osobno, przez Pricing API i Logistics API. Na koniec uruchom synchronizację zmian z kolejką, ponawianiem i raportem błędów.
Poniżej opisujemy każdy krok na podstawie dokumentacji VTEX (stan na 24.10.2026). Jeśli dopiero sprawdzasz, czy VTEX pasuje do Twojej firmy, zacznij od strony VTEX w Polsce: wdrożenie, integracje i migracja. Ten artykuł jest dla zespołów, które wybrały VTEX i planują połączenie z PIM.
Kto za co odpowiada: ERP, PIM i VTEX
Integracja działa stabilnie, gdy każda informacja ma jednego właściciela. Jeśli opis da się zmienić i w PIM, i w panelu VTEX, po kilku tygodniach nikt nie wie, która wersja jest prawdziwa.
- ERP: indeksy i kody EAN, ceny, stany magazynowe, klienci B2B. Do VTEX wysyła ceny i stany, z VTEX przyjmuje zamówienia.
- PIM: nazwy, opisy, parametry techniczne, warianty, zdjęcia, dokumenty, tłumaczenia, przypisanie do kategorii. Do VTEX wysyła katalog.
- VTEX: drzewo kategorii sklepu, polityki handlowe, promocje, wyszukiwanie, koszyk i zamówienia.
Drzewo kategorii sklepu nie musi być kopią drzewa z PIM. Dokumentacja VTEX wprost zakłada, że struktura z ERP lub PIM może nie pasować do sklepu internetowego. Wtedy w PIM utrzymujemy osobne drzewo dla kanału VTEX albo tabelę mapowania kategorii. Zasada praktyczna: pól, które przychodzą z PIM, nie edytujemy w panelu VTEX, bo następna synchronizacja i tak je nadpisze.
Jak zbudowany jest katalog VTEX
- Kategorie mają zwykle trzy poziomy: departamenty, kategorie i podkategorie. Marka jest obowiązkowa i musi istnieć przed produktem.
- Produkt ma co najmniej jedno SKU (wariant) i jest przypisany do marki oraz najbardziej szczegółowej kategorii.
- Specyfikacje mają trzy warstwy: grupy, pola i wartości. Pole ma jeden z ośmiu typów (m.in. tekst, liczba, combo, radio, checkbox, tekst indeksowany); combo, radio i checkbox wymagają listy wartości. Grupy i pola należą do kategorii i obowiązują też we wszystkich jej podkategoriach.
- Specyfikacje SKU odróżniają warianty (np. rozmiar) i mogą być tylko typu combo lub radio.
- Zdjęcia przypisuje się do SKU jako adres URL obrazu dostępnego do odczytu.
- Polityka handlowa (trade policy, w API: sales channel) decyduje, w którym kanale produkt jest widoczny, z jakimi cenami i logistyką.
Mapowanie: pojęcia z PIM a pojęcia VTEX
Nazwy w PIM zależą od systemu: Akeneo ma rodziny i modele produktów, Ergonode szablony, a Pimcore klasy obiektów. Tabela pokazuje, jak przekładamy je na VTEX.
| W PIM (Pimcore, Akeneo, Ergonode) | W VTEX | Na co uważać |
|---|---|---|
| Drzewo kategorii (lub drzewo kanałowe dla VTEX) | Departament, kategoria, podkategoria | Produkt trafia do najbardziej szczegółowej kategorii. |
| Rodzina (Akeneo), szablon (Ergonode), klasa obiektu (Pimcore) | Brak odpowiednika 1:1. Najbliżej: zestaw grup i pól specyfikacji w kategorii | Atrybuty rodziny rozpisujemy na kategorie, w których jej produkty są sprzedawane. |
| Grupa atrybutów | Grupa specyfikacji | Grupa musi być w tej samej kategorii co produkt. |
| Atrybut tekstowy lub liczbowy | Specyfikacja produktu (tekst, liczba) | Gdy ma wpływać na wyszukiwanie: typ indeksowany. |
| Atrybut z listą opcji | Specyfikacja combo, radio lub checkbox z wartościami | Wartości zakładamy przed importem produktów. |
| Oś wariantu (kolor, rozmiar, napięcie) | Specyfikacja SKU (combo lub radio) | Obowiązkowa dla wszystkich SKU w kategorii. |
| Model produktu, produkt nadrzędny | Produkt | |
| Wariant albo produkt prosty | SKU (produkt prosty to produkt z jednym SKU) | |
| Atrybut „marka” | Marka (osobny obiekt) | Zakładamy ją przed produktem. |
| Kod produktu, EAN | RefId, EAN | SKU musi mieć co najmniej jeden z nich. |
| Zdjęcia z DAM lub zasobów PIM | Pliki SKU (adres URL) | Formaty i rozmiary według wymagań VTEX. |
| Język (np. pl_PL) | Locale w formacie BCP 47 (np. pl-PL) | Tłumaczenia przez API wielojęzyczne katalogu. |
| Kanał | Polityka handlowa | Główna polityka ma ID 1. |
| Status kompletności lub zatwierdzenia | Aktywność produktu i SKU | Do VTEX wysyłamy tylko produkty kompletne. |
Integracja PIM z VTEX krok po kroku
Kolejność wynika z zależności w katalogu VTEX: nie przypiszesz produktu do marki, której nie ma, ani specyfikacji do pola, którego nie założono.
- Ustal identyfikatory. Klucz łączący to zwykle kod produktu z ERP, zapisany w VTEX jako RefId. VTEX po utworzeniu produktu zwraca własne ID; VTEX zaleca je zapisać, więc trzymamy je w PIM i kolejne aktualizacje trafiają w ten sam rekord.
- Załóż drzewo kategorii: najpierw departamenty, potem kategorie, na końcu podkategorie.
- Załóż marki.
- Załóż grupy specyfikacji, od departamentów w dół. Grupy z kategorii nadrzędnej przechodzą na wszystkie podkategorie, więc pole, którego nie używają wszystkie podkategorie, nie powinno być w grupie rodzica.
- Załóż pola specyfikacji i ich wartości, a potem aktywuj pola. Nieaktywne pola nie działają.
- Wyślij produkty z kategorią i marką, a potem specyfikacje produktów.
- Przypisz produkty do polityki handlowej. Każdy produkt musi być przypisany do głównej polityki (ID 1), żeby był widoczny w sklepie. Kolejne polityki udostępniają produkty np. marketplace'om.
- Wyślij SKU z RefId lub EAN, a potem specyfikacje SKU. Przy tworzeniu nie ustawiaj SKU jako aktywnego; VTEX zaleca włączyć , wtedy SKU aktywuje się samo, gdy spełni warunki.
- Dodaj zdjęcia do SKU. Bez zdjęcia SKU się nie aktywuje.
- Wyślij ceny i stany z ERP. Pricing API: cena bazowa dla każdego SKU, opcjonalnie cena katalogowa i ceny stałe dla tabel cen. Logistics API: najpierw magazyny, potem stan każdego SKU w każdym magazynie.
- Wyślij tłumaczenia, jeśli sklep działa w kilku językach.
- Włącz synchronizację zmian (opisujemy ją niżej).
Warianty, języki i polityki handlowe
Warianty
Oś wariantu z PIM to w VTEX specyfikacja SKU typu combo lub radio. Dokumentacja VTEX ostrzega, że specyfikacje SKU są obowiązkowe: jeśli dodasz nową specyfikację SKU w kategorii, muszą ją mieć wszystkie SKU w tej kategorii. Dlatego osie wariantów ustalamy przed pierwszym importem, a nie w trakcie.
Języki
Katalog wielojęzyczny włącza wsparcie VTEX na zgłoszenie. Tłumaczenia wysyła się przez API wielojęzyczne katalogu, osobno dla każdego locale: nazwy, opisy, słowa kluczowe i adresy produktów, kategorii i marek, nazwy SKU oraz nazwy i wartości specyfikacji. Po włączeniu tej funkcji nie można równolegle zarządzać tłumaczeniami katalogu przez GraphQL. Gdy tłumaczenia brakuje, wyszukiwarka VTEX (Intelligent Search) pokazuje treść w domyślnym języku sklepu, więc kompletność tłumaczeń sprawdzamy w PIM, zanim produkt trafi do kanału. Obsługa w FastStore jest według dokumentacji w zamkniętej becie.
Polityki handlowe
Polityka handlowa określa asortyment, ceny i logistykę dla kanału sprzedaży. W PIM jej odpowiednikiem jest kanał: trzymamy w PIM listę kanałów, w których produkt może być sprzedawany, i na jej podstawie przypisujemy go do polityk w VTEX. Inne ceny dla innej polityki ustawia się w Pricing API jako ceny stałe dla tabeli cen.
Synchronizacja zmian i obsługa błędów
Pierwszy import robi się raz, a synchronizacja działa latami. Nasze zasady:
- Wysyłamy tylko zmiany. PIM wie, co się zmieniło: Akeneo ma platformę zdarzeń (Event Platform), Pimcore udostępnia dane przez Datahub, Ergonode przez API GraphQL.
- Kolejka zamiast bezpośrednich wywołań. Domyślny limit Catalog API to 45 000 zapytań na minutę na konto i 15 000 na minutę na endpoint. Pricing API przyjmuje 2000 zapisów na minutę (33 na sekundę, z zapasem 500 zapytań). Po przekroczeniu limitu VTEX zwraca błąd 429. VTEX zaleca wtedy coraz dłuższe przerwy między ponowieniami (exponential backoff) i kolejkę, a Pricing API podaje w nagłówku , ile sekund czekać.
- Timeout to nie awaria. VTEX pisze w przewodniku importu, że timeout jest przewidziany w procesie i kod integracji powinien zakładać ponowienia. Przed ponowieniem sprawdzamy, czy produkt jednak nie powstał, żeby go nie zdublować.
- Raport: co nie przeszło i dlaczego (np. SKU bez zdjęcia, brak wartości specyfikacji) wraca do PIM, do osoby, która może poprawić dane.
- Kontrola w drugą stronę. VTEX powiadamia o zmianach SKU (cena, stan, dane, aktywność) przez endpoint afiliata albo aplikację Broadcaster w VTEX IO. Tak sprawdzamy, czy SKU faktycznie się aktywowało.
Migracja dużego katalogu do VTEX
- Arkusz tylko do poprawek. Import arkuszem w VTEX przyjmuje do 10 000 wierszy na plik, a eksport obejmuje do 300 000 produktów. Szablonu nie wolno zmieniać, a zaimportować można tylko arkusz wyeksportowany ze wszystkimi polami. Do stałej integracji i dużych katalogów używamy API.
- Kategoria techniczna. Gdy docelowe drzewo kategorii nie jest gotowe, VTEX proponuje nieaktywną kategorię techniczną (w dokumentacji „Integration”), do której trafiają wszystkie produkty, a potem przeniesienie ich do właściwych kategorii. Tak samo można użyć technicznej marki.
- Pilotaż na jednej kategorii. Zanim wyślemy cały katalog, przeprowadzamy pełny cykl na jednej kategorii: produkt, SKU, zdjęcie, cena, stan i widoczność w sklepie. Potem resztę katalogu wysyłamy partiami.
- Dane przenosimy raz, do PIM. Przy przejściu z Magento, Shopware czy własnego sklepu porządkujemy dane w PIM i z niego publikujemy do VTEX. Kolejna zmiana platformy sklepu nie oznacza wtedy kolejnej migracji danych produktowych.
Osobnego Catalog API dla Seller Portal nie używamy do głównej integracji: według VTEX jest w becie, może zostać wycofane i ma limit 100 tysięcy produktów na konto.
Najczęstsze pułapki
- SKU bez zdjęcia albo bez RefId i EAN zostaje nieaktywne. PIM powinien blokować publikację takiego wariantu.
- Grupa specyfikacji w innej kategorii niż produkt. API zwraca 200 OK, ale specyfikacji nie widać ani w panelu, ani w sklepie.
- Pole w kategorii nadrzędnej pojawia się we wszystkich podkategoriach, a nowa specyfikacja SKU jest wymagana od wszystkich SKU kategorii.
- Brak głównej polityki handlowej: produkt nie jest widoczny. Do widoczności SKU potrzebuje też ceny w polityce i stanu.
- Tłumaczenia z dwóch źródeł: API wielojęzyczne i tłumaczenia przez GraphQL nie działają razem.
- Ręczne poprawki w panelu VTEX pól z PIM znikają przy następnej synchronizacji.
Pimcore, Akeneo, Ergonode i VTEX: gotowy konektor czy API?
Gotowych konektorów łączących Pimcore, Akeneo lub Ergonode z VTEX nie znaleźliśmy, budujemy przez API. Sprawdziliśmy 24.10.2026 sklep z aplikacjami VTEX (brak wyników dla Akeneo, Pimcore, Ergonode i „PIM”), sklep z aplikacjami Akeneo (brak wyników dla „VTEX”) oraz GitHub. Platformy integracyjne typu iPaaS, np. Alumio, opisują połączenie VTEX z Akeneo w ramach swojej platformy; to opcja dla firm, które już z takiej platformy korzystają.
Po stronie VTEX integracja korzysta z Catalog API, Pricing API i Logistics API. Po stronie PIM: w Pimcore z Datahub, w Akeneo z REST API i platformy zdarzeń, w Ergonode z API GraphQL. Który PIM wybrać, zależy od katalogu i zespołu, nie od platformy sklepu. Porównanie znajdziesz w artykule systemy PIM oraz na stronach Pimcore, Akeneo i Ergonode.
Jak robimy to w LemonMind
Zajmujemy się danymi produktowymi i integracjami od 2008 roku. Mamy za sobą ponad 70 wdrożeń PIM i e-commerce, a nasz zespół to 30+ specjalistów w Gdańsku. Jesteśmy Platynowym Partnerem Pimcore i partnerem Ergonode, wdrażamy też Akeneo.
W projekcie VTEX odpowiadamy za część, od której zależy jakość katalogu: model danych, mapowanie atrybutów na kategorie i specyfikacje, migrację katalogu oraz integrację PIM i ERP z VTEX razem z raportowaniem błędów. Jeśli kłopotem są pliki od dostawców w różnych formatach, pomaga openProd, nasza osobna platforma, która z pomocą AI importuje pliki dostawców do katalogu.
FAQ: integracja PIM z VTEX
Ustal właścicieli danych (PIM: treści, ERP: ceny i stany), odwzoruj atrybuty PIM na kategorie i specyfikacje VTEX, załóż strukturę katalogu, a potem wyślij przez Catalog API produkty, SKU, zdjęcia i przypisania do polityki handlowej. Ceny i stany wysyła ERP przez Pricing API i Logistics API. Na koniec uruchom synchronizację zmian z kolejką i ponawianiem.
Kategorie, marki, grupy specyfikacji, pola i wartości specyfikacji, produkty i ich specyfikacje, przypisanie do polityki handlowej, SKU i ich specyfikacje, zdjęcia SKU, a na końcu ceny i stany. Taka kolejność wynika z dokumentacji VTEX: każdy element wymaga, żeby poprzedni już istniał.
Najczęściej brakuje zdjęcia. SKU aktywuje się, gdy ma co najmniej jedno zdjęcie, RefId lub EAN, wypełnione specyfikacje i aktywny produkt z aktywną marką i kategorią. Jeśli ActivateIfPossible jest wyłączone, SKU trzeba aktywować ręcznie.
Nie znaleźliśmy takiego konektora w sklepie z aplikacjami VTEX, w sklepie z aplikacjami Akeneo ani na GitHubie (stan na 24.10.2026). Integrację budujemy przez API: Catalog API, Pricing API i Logistics API po stronie VTEX oraz Pimcore Datahub, API Akeneo lub API Ergonode po stronie PIM.
Zwykle nie. Ceny i stany zmieniają się często i ich źródłem jest ERP, więc wysyłamy je z ERP bezpośrednio przez Pricing API i Logistics API. PIM wysyła treści produktu, a VTEX łączy jedno z drugim przez SKU.
Przez API, partiami i po pilotażu na jednej kategorii. Import arkuszem ma limit 10 000 wierszy na plik i nadaje się do poprawek. Gdy docelowe kategorie nie są gotowe, produkty można najpierw załadować do nieaktywnej kategorii technicznej i przenieść później.
Włączyć katalog wielojęzyczny przez zgłoszenie do wsparcia VTEX i wysyłać tłumaczenia z PIM przez API wielojęzyczne katalogu, osobno dla każdego locale (np. pl-PL, de-DE). Nie mieszać tego z tłumaczeniami przez GraphQL. Brakujące tłumaczenie wyszukiwarka zastąpi treścią w domyślnym języku sklepu.
Domyślnie Catalog API przyjmuje 45 000 zapytań na minutę na konto i 15 000 na minutę na endpoint, a Pricing API 2000 zapisów na minutę. Po przekroczeniu limitu VTEX zwraca błąd 429, dlatego integracja potrzebuje kolejki i ponowień z coraz dłuższą przerwą.
Porozmawiajmy o integracji PIM z VTEX
Opowiedz nam o swoim katalogu, PIM i ERP. W 30 minut powiemy, jak połączyć je z VTEX i od czego zacząć migrację danych.
Olgierd Mrozik
+48 58 732 27 37