Naar de inhoud
SyncMyShop

Magento en Exact Online

Magento Exact Online koppeling

Prijslijsten uit Exact Online worden klantgroepen en tier prices in Magento, voorraad per magazijn landt op de juiste bron en artikelen worden simple en configurable products. Orders en nieuwe klanten gaan als verkooporder en debiteur naar Exact. Gebouwd op jouw Magento 2 of Adobe Commerce en jouw administratie, en daarna door ons gedraaid en bewaakt.

Wat je tussen Magento en Exact Online koppelt

Magento-shops op Exact Online zijn vaak B2B: groothandels met prijsafspraken per klant, staffels en meer dan één magazijn. Daarom loopt deze koppeling meestal op Exact Online Handel, en zijn prijzen de zwaarste stroom.

Stroom Richting Magento 2 Exact Online
Artikelen naar Magento POST /V1/products sync/Logistics/Items
Basisprijs naar Magento /V1/products/base-prices logistics/SalesItemPrices
Prijslijsten en staffels naar Magento /V1/products/tier-prices sales/SalesPriceList...
Aanbiedingsperiodes naar Magento /V1/products/special-price SalesPriceListPeriods
Voorraad per magazijn naar Magento /V1/inventory/source-items sync/Inventory/StockPositions
Orders naar Exact GET /V1/orders salesorder/SalesOrders
Klanten naar Exact, klantgroep terug customers, group_id crm/Accounts
Leveringen naar Magento POST /V1/order/{id}/ship salesorder/GoodsDeliveries

De vier prijsresources van Exact (SalesPriceLists, SalesPriceListLinkedAccounts, SalesPriceListPeriods en SalesPriceListVolumeDiscounts) zijn alleen te lezen. Prijslijsten worden in Exact beheerd en gaan één kant op. Het increment_id van de Magento-order, bijvoorbeeld 000010482, gaat naar YourRef op de verkooporder. Het entity_id bewaart de koppeling zelf, om de levering later aan de goede order te hangen. De opzet in het algemeen staat op ERP koppeling met je webshop.

Welk systeem is leidend, per gegeven

Gegeven Leidend Richting Gedrag
Artikelcode, omschrijving, eenheid Exact naar Magento via de sync op Timestamp
Attribuutset, teksten, afbeeldingen, categorieën Magento of het PIM blijft in Magento niet overschreven
Prijslijst, staffels, aanbiedingen Exact naar Magento nachtelijk, plus bij elke wijziging
Welke prijslijst bij welke klant Exact naar Magento als group_id uit SalesPriceListLinkedAccounts
Aantal per magazijn Exact naar de bron in Magento alleen gewijzigde regels
Verkoopbare voorraad Magento berekend in Magento bron min reserveringen
Order Magento tot de import naar Exact één keer, YourRef als sleutel
Debiteur, adres, btw-nummer Exact na aanmaken eerste keer uit Magento wijzigingen naar de controlelijst

Wat Magento en Exact Online anders bewaren

Prijslijsten en klantgroepen

Een prijslijst uit Exact Online als klantgroep met tier prices in Magento Een prijslijst in Exact Online op basis van een artikelgroep wordt een klantgroep in Magento. De gekoppelde debiteur krijgt die klantgroep. De staffel vanaf 50 stuks met een nieuwe prijs van 8,90 wordt per SKU een tier price van het type fixed: 400 artikelen in de groep zijn 400 regels per staffel. Exact Online, prijslijst Magento 2, prijzen SalesPriceLists.Code GROOTHANDEL-A LinkedAccounts.Code 10432 één prijslijst per debiteur Entity 2 artikelgroep, niet per artikel VolumeDiscounts.Quantity 50 EntryMethod 2 nieuwe prijs NewPrice 8.90 customer_group GROOTHANDEL-A customer.group_id 4 één groep per klant sku 400 SKU's uit de artikelgroep quantity 50 price_type fixed price 8.90 klantgroep debiteur naar klant uitvouwen per SKU
Eén staffel uit een prijslijst op een artikelgroep wordt 400 tier prices in Magento, één per SKU. Zowel Exact als Magento staan één prijslijst of klantgroep per klant toe.

Hier passen de twee systemen goed op elkaar. In Exact hangt een debiteur aan hooguit één prijslijst tegelijk, en in Magento heeft een klant één group_id. Elke prijslijst wordt een klantgroep, en de koppeling zet elke gekoppelde debiteur in de juiste groep.

Het verschil zit in de regels. Een prijslijst in Exact is gebaseerd op artikelen (Entity 1) of op artikelgroepen (Entity 2). Een tier price in Magento hoort altijd bij één sku, customer_group, website_id en quantity. Een staffel op een artikelgroep moet dus worden uitgevouwen. De rekensom:

prijslijst GROOTHANDEL-A, artikelgroep Bevestiging
400 artikelen x 3 staffels (1, 50, 250 stuks)  = 1.200 tier prices
12 prijslijsten met dezelfde opbouw              = 14.400 tier prices
lezen uit Exact via de sync, 1.000 per pagina    = 1 verzoek
schrijven naar Magento, 500 per verzoek (eigen keuze) = 29 verzoeken

Exact laat met EntryMethod zien of een staffel een korting is (1) of een nieuwe prijs (2). Een nieuwe prijs wordt een tier price met price_type fixed, een korting een tier price met price_type discount, een percentage. Bij een korting op de standaardprijs rekent Exact met de actuele verkoopprijs van het artikel, dus een gewijzigde basisprijs verandert ook de staffelprijs. De koppeling leest die mee.

Let op met de vervangaanroep. PUT /V1/products/tier-prices verwijdert alle bestaande tier prices van een product en zet alleen de meegestuurde terug. Wie per prijslijst een PUT stuurt, wist de tier prices van de andere klantgroepen op dat product. De koppeling schrijft met POST en verwijdert vervallen staffels gericht met tier-prices-delete. Meer over de keuzes staat op klantspecifieke prijzen en staffelprijzen.

Aanbiedingen met een periode

Een prijslijst in Exact kan periodes hebben, met StartDate, EndDate en Type 1 voor basis of 2 voor aanbieding. Magento heeft twee plekken voor een prijs met een datum, en beide passen maar half. Een special price heeft price_from en price_to, maar geldt per store_id voor iedereen en niet per klantgroep. Een tier price is per klantgroep, maar heeft geen datum. Een aanbieding voor alle klanten wordt een special price. Een aanbieding binnen een klantprijslijst schrijft de koppeling op de startdatum als tier price en verwijdert hij op de einddatum.

Varianten

Exact Online heeft geen hoofdartikel met varianten: een jas in 4 kleuren en 6 maten is 24 artikelen. Magento verwacht één configurable product met 24 simple products. De koppeling groepeert de artikelen op een afgesproken kenmerk en leest de optie-ID's voor kleur en maat uit jouw Magento, want die verschillen per installatie. Het koppelen van een simple product aan het model gaat met één childSku per aanroep: 24 aanroepen voor deze jas, uit een wachtrij. Zie varianten.

Magazijnen en bronnen

StockPositions geeft per artikel en per magazijn CurrentStock, ReservedStock, PlanningOut en FreeStock. Magento met Multi-Source Inventory rekent met bronnen en eigen reserveringen. Elk magazijn in Exact wordt een source_code in Magento. Welk getal je schrijft, bepaalt of een order dubbel telt: Magento trekt een openstaande order zelf af tot de zending in Magento staat. Schrijft de koppeling een getal waarin Exact de geplande uitgifte van diezelfde order al heeft verrekend, dan staat 20 stuks met een order van 4 in de shop als 12. Zie voorraad over meerdere magazijnen.

Adressen

Magento levert de straat als lijst van regels in street. Exact heeft AddressLine1, AddressLine2 en AddressLine3, zonder apart huisnummerveld. Tot drie straatregels gaan één op één over. Het land komt uit country_id als code van twee letters.

De technische werkelijkheid van deze combinatie

Onderwerp Magento 2 en Adobe Commerce Exact Online
Limiet op verzoeken geen algemene limiet 60 per minuut, 5.000 per dag
Per pagina zonder pageSize alles 60, sync-endpoints 1.000
Schrijven in bulk /async/bulk/V1, via de message queue niet, één record per verzoek
Wijziging melden Adobe Commerce 2.4.4+: events; Open Source: polling webhooks, onder meer SalesOrders en StockPositions
Toegang OAuth 1.0a, HMAC-SHA256 OAuth 2.0, refresh token 30 dagen

Nagelezen op 3 oktober 2026 in de documentatie van Adobe en Exact Online.

De Exact-kant is de smalle kant. Prijzen en voorraad lezen kost weinig dankzij de sync-endpoints. Orders kosten per stuk: debiteur zoeken, verkooporder aanmaken, levering ophalen. Bij 600 orders per dag zijn dat 3 x 600 = 1.800 verzoeken. De voorraad elke 10 minuten via de sync is 144, en prijzen, artikelen en debiteuren elk uur via 4 sync-endpoints 96. Samen 2.040 van de 5.000.

De Magento-kant is de zware kant. Een volledige prijsronde van 14.400 tier prices is zwaar werk voor de server van de shop. Adobe documenteert geen limiet op de REST API, dus de grens is je server: een koppeling die midden op de dag duizenden prijzen tegelijk schrijft, maakt de shop traag. Volledige rondes draaien 's nachts, overdag gaan alleen wijzigingen mee. Een bulkverzoek wordt pas verwerkt als de consumer async.operations.all draait; staat hij stil, dan blijft elke bewerking open zonder foutmelding. De koppeling controleert de status na elke batch. De rekenmethode staat in doorvoer berekenen.

Wat een standaardkoppeling hier niet doet

Standaardkoppelingen voor Magento en Exact Online documenteren hun eigen grenzen voor B2B:

  • Een eigen extensie in Magento. Voor de B2B-variant installeer je een REST- en prijslijstuitbreiding van de leverancier.
  • Alleen prijslijsten per artikel. Prijslijsten op een artikelgroep worden niet overgezet.
  • Geen debiteurenkorting. Een korting per debiteur moet eerst als prijslijst in Exact worden aangemaakt.
  • Eén prijsmethode voor alle artikelen. Staffel of verkoopprijs kies je één keer voor de hele prijslijst, en later omzetten is lastig.
  • Prijzen in één richting, en zonder aanbiedingsperiodes.

Een gebouwde koppeling vouwt artikelgroepen uit naar SKU's, zet debiteurenkortingen om naar klantgroepen en plant aanbiedingen op hun start- en einddatum, zonder extensie van een derde in je Magento.

Als het misgaat

Wat er misgaat Wat de koppeling doet Wat je ziet
429 van Exact orders wachten, prijsrondes worden uitgesteld niets, tenzij het aanhoudt
SKU uit een prijslijst bestaat niet in Magento die regels gaan naar de controlelijst de SKU en de prijslijst
Debiteur aan een prijslijst zonder klantgroep klantgroep aangemaakt, klant toegewezen een regel in het logboek
Bulkbewerking blijft open melding na de controle de batch en het aantal open regels
Order met een artikel dat niet in Exact staat die order wordt vastgehouden de order en de SKU
Verbinding weg na het aanmaken van de order eerst zoeken op YourRef, dan pas opnieuw niets, de order staat één keer in Exact

Een order die blijft falen bewaart de koppeling met de oorspronkelijke inhoud, en hij biedt hem opnieuw aan zodra de oorzaak is opgelost. Voor livegang draait hij als dry run: je ziet per klantgroep en per SKU welke prijs er in Magento zou komen, voordat er iets verandert.

Wij hosten en bewaken de koppeling en passen hem aan als Adobe of Exact een interface wijzigt. De systeemkant staat op Exact Online koppeling, de platformkant op Magento koppeling, en alle stromen op koppelingen. Verwante combinaties: WooCommerce Exact Online koppeling, Magento Business Central koppeling en Magento AFAS koppeling. Vertel hoe jullie prijslijsten in Exact zijn opgebouwd.

Veelgestelde vragen

Welk Exact Online-pakket heb ik nodig voor een Magento koppeling?

Handel of Productie. Verkooporders, leveringen, voorraadposities en de prijslijsten zijn in de API-documentatie van Exact alleen beschikbaar in die twee pakketten. Voorraad per magazijn via ItemWarehouses en een magazijn op de verkooporder (WarehouseID) vragen Plus, Professional of Premium. Met Boekhouden kan een Magento-order alleen als verkoopboeking of verkoopfactuur landen.

Kan een debiteurenkorting uit Exact in Magento staan?

Niet als korting per klant: Magento heeft geen kortingsveld op de klant. De koppeling leest DiscountSales van de debiteur, een fractie (0,055 is 5,5%), en zet klanten met dezelfde korting in een eigen klantgroep met tier prices van het type discount. Zijn er veel verschillende kortingen, dan is een prijslijst in Exact de nettere bron.

Werkt de koppeling met Magento Open Source of alleen met Adobe Commerce?

Met allebei. Er zijn twee verschillen. Op Adobe Commerce is price_from verplicht bij een special price, op Open Source niet. En Adobe I/O Events vraagt Adobe Commerce 2.4.4 of hoger; op Open Source haalt de koppeling nieuwe orders op met een zoekopdracht op updated_at.

Hoe worden kleuren en maten uit Exact configurable products?

Exact Online heeft geen varianten: elke maat en kleur is een eigen artikel met een eigen code. De koppeling groepeert die artikelen op een afgesproken kenmerk, zoals een vrij veld of het eerste deel van de artikelcode, en maakt per groep één configurable product met de artikelen als simple products. Een artikel zonder dat kenmerk wordt een los simple product.

Gaan B2B-klanten uit Magento naar Exact of andersom?

Beide, met een vaste verdeling. Een klant die zich in Magento registreert gaat als debiteur naar Exact. De prijslijst koppel je in Exact aan de debiteur, en de koppeling zet daarna de klantgroep in Magento. Adres, btw-nummer en betalingsconditie zijn in Exact leidend; wijzigt de klant ze in Magento, dan gaat dat naar een controlelijst.

Wat gebeurt er met een aanbieding die al loopt als de koppeling start?

Adobe Commerce accepteert een special price alleen met een price_from in de toekomst. Een aanbiedingsperiode uit Exact die al begonnen is, schrijft de koppeling met de huidige tijd plus een paar minuten als start en de einddatum uit Exact als price_to.

Vertel wat je nodig hebt

Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.

  • Je weet de prijs en de doorlooptijd voordat je iets toezegt
  • Wij zoeken uit welke koppeling het werk uit handen neemt
  • Wij verzorgen de bouw, hosting, bewaking en het onderhoud
  • Je team krijgt minder overtypwerk en minder uitzoekwerk

Leveranciers, producten, orders per dag, een ruwe schatting is prima.

Of mail direct: carsten@syncmyshop.com