Met custom modifiers definieer je per entiteit (producten, klanten, etc.) regels die data uit je bronplatform aanpassen tijdens de migratie. Hierdoor kun je waarden transformeren, samenvoegen, opsplitsen of als metafield of tag wegschrijven — zonder dat er custom code geschreven hoeft te worden. Handig wanneer je bronplatform-data net niet aansluit op hoe je Shopify-shop is ingericht en je dat niet via standaardinstellingen kunt oplossen.
⚠️ Let op: Dit is een geavanceerde feature. Foutieve modifiers kunnen je migratie kapot maken of onverwachte data wegschrijven naar Shopify. Test wijzigingen eerst op een demo-migratie voor je ze toepast op een productie-migratie.
Wanneer gebruik je custom modifiers?
Velden hernoemen of verplaatsen — bijvoorbeeld een bronveld
description_longals productbeschrijving gebruiken, of een eigenschap als metafield wegschrijven in plaats van als deel van de producttitelWaarden opschonen — overbodige spaties, HTML of prefixes verwijderen, of uniforme casing afdwingen via transforms
Tags toevoegen op basis van logica — bijvoorbeeld het label "Sale" toevoegen wanneer een speciale prijs is ingesteld
Stashen en hergebruiken — een waarde tijdens de bron-fase opslaan en later in de target-fase op een andere plek in de Shopify-payload inzetten
Metafields beheren — automatisch metafields aanmaken, bijwerken of opruimen op basis van bronwaarden, inclusief het verwijderen van bestaande metafields wanneer de bronwaarde leeg is
De pagina openen
Ga naar Settings → Advanced → Migration modifiers. Je ziet een overzicht van alle bestaande modifiers, gegroepeerd per entiteit en gesorteerd op order. Per rij zie je de entiteit, het aantal source/target rules, de aan/uit-status en acties (bewerken, verwijderen). Klik rechtsboven op New modifier om een nieuwe modifier aan te maken.
Hoe een modifier werkt
Een modifier draait in twee fases tijdens elke migratie van een entiteit.
Fase 1 — Source rules
Toegepast op de ruwe bron-data voordat Syncer het omzet naar een interne entiteit. Beschikbare acties:
set — een waarde uit de bron lezen (met optionele transforms) en op een ander doelveld in de bron-data zetten
stash — een waarde opslaan onder een sleutel om later in de target-fase op te roepen
clear — een veld leegmaken (met optie om expliciet
nullte zetten in plaats van een lege string)
Fase 2 — Target rules
Toegepast op de Shopify-payload vlak voor deze wordt verstuurd. Beschikbare acties:
set — een veld in de payload zetten
metafield — een metafield aanmaken of bijwerken met namespace, key en type. Een lege waarde verwijdert een bestaand metafield automatisch
tag — een tag toevoegen aan de entiteit (alleen voor entiteiten met tags, zoals producten en klanten)
Bronnen voor target rules kunnen drie prefixes hebben:
entity.— leest uit de interne Syncer-entiteit (bv.entity.title)payload.— leest uit de Shopify-payload zoals die op dat moment is (bv.payload.input.tags)stash.— haalt een waarde op die je in de source-fase hebt opgeslagen (bv.stash.original_sku)
Een nieuwe modifier instellen
Stap 1 — Open Custom modifiers
Ga naar Settings → Advanced → Migration modifiers en klik op New modifier.
Stap 2 — Kies de entiteit
Selecteer voor welke entiteit (producten, klanten, categorieën, etc.) de modifier geldt.
Stap 3 — Stel volgorde in (optioneel)
Als je meerdere modifiers per entiteit hebt, bepaalt order de uitvoervolgorde (lager = eerder). Modifiers met dezelfde order draaien in willekeurige volgorde.
Stap 4 — Voeg source rules toe
Per regel kies je een actie (set, stash of clear), vul je de source in als JMESPath-expressie op de bron-data (bijvoorbeeld attributes.brand of variants[0].sku) en vul je de target in (alleen voor set en clear). Voor stash kies je een stash key om de waarde onder op te slaan. Optioneel voeg je transforms toe die de waarde stap voor stap aanpassen.
Stap 5 — Voeg target rules toe
Per regel kies je een actie (set, metafield of tag) en vul je de source in met prefix (entity., payload. of stash.). Bij metafield vul je namespace, key en type in (bv. single_line_text_field, number_integer). Optioneel gebruik je set_owner_id om het metafield expliciet aan de Shopify-entiteit te koppelen.
Stap 6 — Activeer (optioneel)
Standaard staat een nieuwe modifier op uit. Zet de toggle aan zodra je hem getest hebt op een demo-migratie.
Stap 7 — Sla op
Klik op Save. De modifier is meteen actief voor de volgende migratierun (mits ingeschakeld).
Transforms — waarden stap voor stap aanpassen
Transforms zijn herbruikbare bouwstenen die je achter elkaar kunt zetten om een waarde te bewerken voordat hij wordt opgeslagen of weggeschreven. Typische mogelijkheden zijn tekst opschonen (trim, lowercase, uppercase, vervangen via regex), numerieke conversies, JSON in/uit een string halen, voorwaardelijke logica en het bewerken van arrays (mappen, filteren, samenvoegen).
De beschikbare transforms en hun parameters zie je in de UI per regel. Volgorde telt — de output van transform A is de input van transform B.
💡 Stop-en-skip: Als een transform false teruggeeft, wordt de hele regel overgeslagen. Handig om een metafield-regel bijvoorbeeld alleen toe te passen als de bronwaarde voldoet aan een conditie.
Bestaande modifiers beheren
In het overzicht zie je per modifier de entiteit, volgorde, het aantal source en target rules en de aan/uit-status.
Bewerken — opent de form-pagina met alle rules
Verwijderen — bevestiging vereist; deze actie is niet ongedaan te maken
Aan/uit zetten — schakelt de modifier in of uit zonder hem te verwijderen
Hoe het werkt in de migratie
Syncer verwerkt voor elke entiteit de volgende stappen in volgorde: de ruwe bron-data wordt opgehaald, alle ingeschakelde source rules draaien (op volgorde van order), de aangepaste data wordt omgezet naar een interne entiteit, Syncer bouwt de Shopify-payload op, alle ingeschakelde target rules draaien op de payload, en de definitieve payload wordt naar Shopify verstuurd.
🔍 Werkt iets niet zoals verwacht? Controleer of de JMESPath-expressies kloppen voor je bronplatform-data, of de transforms in de juiste volgorde staan, en of je geen typfouten hebt in metafield namespace/key. Test eerst op één entiteit via een demo-migratie voordat je een modifier op een volledige run loslaat.
