KatanaPIM cron jobs voor Magento 2 synchronisatie
Technische documentatie voor de automatische synchronisatie cron jobs. Deze handleiding legt uit hoe de cron jobs samenwerken om je Magento catalogus synchroon te houden met KatanaPIM.
Overzicht
KatanaPIM Connect gebruikt twee cron jobs die samenwerken:
| Cron Job | Standaard Schema | Doel |
|---|---|---|
| Full Update | Elke 8 uur (:33) |
Alle data ophalen van KatanaPIM API |
| Incremental Update | Elke 5 minuten | Wachtende wijzigingen synchroniseren naar Magento |
Deze twee-fase aanpak scheidt het ophalen van data van de Magento verwerking, wat efficiënte afhandeling van grote catalogi mogelijk maakt.
Hoe ze samenwerken
Fase 1: Full Update (data ophalen)
De Full Update cron haalt ALLE data op van de KatanaPIM API maar synchroniseert niet direct naar Magento.
Wat het doet:
- Haalt alle attributen, categorieën, producten en assets op van de KatanaPIM API
- Slaat de data op in tussentabellen (
katanapim_product,katanapim_category, etc.) - Berekent hashes om wijzigingen te detecteren
- Zet de
needs_updateflag op items waar PIM data verschilt van Magento - Markeert items die niet meer in PIM staan als verwijderd
Wat het NIET doet:
- Magento producten aanmaken of bijwerken
- Magento categorieën aanmaken of bijwerken
- Afbeeldingen importeren in Magento
Fase 2: Incremental Update (Magento sync)
De Incremental Update cron verwerkt items die gemarkeerd zijn voor update en synchroniseert ze naar Magento.
Wat het doet:
- Haalt recent gewijzigde items op van de KatanaPIM API (met timestamp filter)
- Verwerkt alle items met
needs_update = 1 - Maakt of updatet Magento producten, categorieën en attributen
- Importeert afbeeldingen en video's in Magento
- Wist de
needs_updateflag na succesvolle sync
De needs_update flag
Deze flag is het centrale mechanisme dat bepaalt wat er naar Magento wordt gesynchroniseerd. Begrijpen hoe het werkt is essentieel voor het oplossen van sync problemen.
Twee hash vergelijkingen
De module gebruikt twee aparte hash vergelijkingen:
1. Tijdens API fetch (Full Sync):
| Vergelijking | Actie |
|---|---|
| Nieuwe Katana hash = Opgeslagen Katana hash | Item overslaan, geen wijzigingen in KatanaPIM |
| Nieuwe Katana hash ≠ Opgeslagen Katana hash | Opgeslagen data bijwerken, ga naar stap 2 |
2. Bij opslaan in tussentabel:
| Vergelijking | Resultaat |
|---|---|
| Opgeslagen Katana hash = Opgeslagen Magento hash | needs_update = 0 |
| Opgeslagen Katana hash ≠ Opgeslagen Magento hash | needs_update = 1 |
Dit betekent: als data niet is gewijzigd in KatanaPIM sinds de laatste Full Sync, wordt het item volledig overgeslagen en wordt needs_update niet aangepast.
Hoe needs_update wordt gewist
Na een succesvolle Magento sync:
- Het item wordt aangemaakt of bijgewerkt in Magento
mapped_magento_hashwordt gelijkgesteld aanmapped_katana_hashneeds_updatewordt0
Filter logica
Items worden alleen naar Magento gesynchroniseerd wanneer ALLE voorwaarden zijn voldaan:
needs_update = 1skipped = 0is_deleted = 0has_error = 0
Waarom needs_update op 1 blijft staan
Als producten steeds opnieuw synchroniseren, betekent dit dat de hashes niet overeenkomen na sync. Je kunt de hash waarden inspecteren in het Katana PIM → Products grid en product detail scherm.
Veelvoorkomende oorzaken:
| Oorzaak | Oplossing |
|---|---|
| Attribuut mapping mismatch | Controleer of alle attributen zijn gemapped in Katana PIM → Attributes |
| Select optie mismatch | Zorg dat optie labels exact overeenkomen (hoofdlettergevoelig) |
| Ontbrekende store taal mapping | Map alle talen in Stores → Configuration → Katana PIM → General → Store Languages |
| Categorie niet gesynchroniseerd | Synchroniseer eerst categorieën voor producten |
| Gerelateerde producten ontbreken | Zorg dat alle gerelateerde producten bestaan in Magento |
Uitgesloten van hash vergelijking: url_key, product_stock, product_price, video, website_prices
Cron limieten
Om timeouts en geheugenproblemen te voorkomen, verwerkt elke cron run een beperkt aantal items.
Waar limieten gelden
| Sync Type | API Fetch | Magento Sync |
|---|---|---|
| Full Sync (Cron) | Geen limiet | Overgeslagen (only_api: true) |
| Incremental Sync (Cron) | Gebruikt timestamp filter | Gelimiteerd per entity type |
| Full Sync (CLI) | Geen limiet | Geen limiet |
De cron limieten gelden voornamelijk voor de Incremental Sync, die items verwerkt van de tussentabellen naar Magento.
Standaard limieten (Incremental Sync)
| Entity | Standaard Limiet | Config Path |
|---|---|---|
| Products | 100 | katanapim_automation/cron/max_products_per_cron |
| Categories | 100 | katanapim_automation/cron/max_categories_per_cron |
| Attributes | 100 | katanapim_automation/cron/max_attributes_per_cron |
| Assets | 100 | katanapim_automation/cron/max_assets_per_cron |
Wat dit betekent
Als 500 producten needs_update = 1 hebben, maar de limiet is 100:
- Eerste cron run: verwerkt producten 1-100
- Tweede cron run: verwerkt producten 101-200
- Enzovoort...
Met een 5-minuten incremental schema zouden alle 500 producten binnen ~25 minuten gesynchroniseerd zijn.
Cron schema's
Standaard schema's
| Cron Job | Cron Expressie | Betekenis |
|---|---|---|
| Full Update | 33 */8 * * * |
Op minuut 33, elke 8 uur |
| Incremental Update | */5 * * * * |
Elke 5 minuten |
Schema's kunnen worden geconfigureerd in Stores → Configuration → Katana PIM → Automation.
Sync volgorde
Entities worden verwerkt in een specifieke volgorde om data-integriteit te behouden:
- Attributes — Moeten bestaan voordat producten ze kunnen gebruiken
- Categories — Moeten bestaan voordat producten kunnen worden toegewezen
- Products — Hoofd productdata
- Assets — Afbeeldingen en video's (vereist dat producten bestaan)
Cron vs CLI
| Aspect | Cron | CLI |
|---|---|---|
| Full sync gedrag | Alleen API fetch | API fetch + Magento sync |
| Output | Gelogd naar bestanden | Console output |
| Limieten | Respecteert max per cron | Geen limieten |
| Use case | Automatische achtergrond sync | Handmatige imports, initiële setup |
Belangrijk: Het CLI commando bin/magento katana:import:full voert beide fases (fetch + sync) uit in één run, terwijl de cron full update alleen data ophaalt.
Probleemoplossing
Items synchroniseren niet
Controleer de flags:
SELECT sku, needs_update, skipped, is_deleted, has_error
FROM katanapim_product
WHERE needs_update = 1
LIMIT 10;
Items hebben needs_update = 1 EN skipped = 0 EN is_deleted = 0 EN has_error = 0 nodig om verwerkt te worden.
Cron draait niet
Verifieer dat cron actief is:
bin/magento cron:run --group=katanapim
Controleer cron schema:
SELECT * FROM cron_schedule
WHERE job_code LIKE 'katanapim%'
ORDER BY scheduled_at DESC
LIMIT 20;
Sync duurt te lang
Opties:
- Verhoog cron limieten in de configuratie
- Verlaag incremental schema frequentie
- Draai full sync via CLI tijdens daluren in plaats van cron
Items gemarkeerd als verwijderd
Als items onterecht als verwijderd zijn gemarkeerd, betekent dit meestal:
- Het item is verwijderd uit KatanaPIM
- API verbinding faalde tijdens full sync (gedeeltelijke fetch)
Oplossing: Draai een handmatige full sync via CLI om alle data opnieuw op te halen:
bin/magento katana:import:full --products
Sync log
Alle cron runs worden gelogd in Katana PIM → Sync Log.
Elke entry toont:
- Sync type (Full/Incremental)
- Items aangemaakt, bijgewerkt, verwijderd
- Gevonden fouten
- Uitvoeringstijd
Log opschoning: Oude sync logs worden automatisch verwijderd na 30 dagen (configureerbaar).
Meer hulp nodig?
Documentatie:
- Alle Help Artikelen - Compleet documentatie overzicht
Support:
- Contact Support - Krijg hulp van ons team