Naar de inhoud
SyncMyShop

Systemen

Optiply koppeling: je ERP, WMS en webshop koppelen aan Optiply

Een Optiply koppeling levert Optiply artikelen, vrije voorraad, leveranciers, verkoophistorie en open inkooporders, en zet de inkooporders die Optiply voorstelt terug in je ERP. De koppeling loopt via de Optiply API of via vaste CSV-bestanden op SFTP.

Wat is Optiply en wie gebruikt het?

Optiply is software voor voorraadoptimalisatie en inkoop voor webshops, retail en groothandel. Optiply voorspelt de vraag per artikel uit de verkoophistorie, rekent met levertijd, minimale bestelhoeveelheid en bestelgrootte per leverancier, en stelt inkooporders voor. Die gaan na goedkeuring naar de leverancier en naar je ERP of magazijn.

Optiply houdt zelf geen voorraad bij. Alles waarmee het rekent komt uit je eigen systemen: voorraad uit het ERP of WMS, verkopen uit de webshop of het ERP, leveranciers en inkoopprijzen uit het ERP. Optiply heeft standaardkoppelingen met onder meer Exact Online, Business Central, Odoo, Shopify, WooCommerce, Magento, Lightspeed, Picqer en Monta. Een eigen koppeling is nodig als je ERP er niet tussen staat, als de standaardkoppeling een gegeven niet meeneemt, of als gegevens uit twee systemen samen moeten komen.

Wat je met Optiply koppelt

Gegeven in Optiply Richting Waar het meestal vandaan komt
products met stockLevel naar Optiply ERP of WMS
suppliers met levertijd en e-mail naar Optiply ERP
supplierProducts met prijs, lotSize, minimumPurchaseQuantity naar Optiply ERP of leveranciersfeed
sellOrders en sellOrderLines naar Optiply webshop of ERP
buyOrders en buyOrderLines met expectedDeliveryDate beide kanten ERP en Optiply
receiptLines (ontvangsten) naar Optiply ERP of WMS
productCompositions (stuklijsten) naar Optiply ERP

Open inkooporders gaan naar Optiply omdat ze als inkomende voorraad meetellen in de voorraadpositie, naast de vrije voorraad. De inkooporders die Optiply zelf voorstelt, gaan de andere kant op. Met verwachte leverdatums per regel vult dezelfde informatie in je webshop de levertijd bij nul voorraad.

Hoe Optiply data vrijgeeft

De Optiply API

De API staat op https://api.optiply.com/v1 en volgt JSON:API, met Content-Type: application/vnd.api+json. De documentatie is alleen met inloggegevens te lezen; api.optiply.com/v1/docs geeft zonder token een 401. De koppelcode die Optiply zelf op GitHub publiceert, laat de werking zien: een OAuth-token van dashboard.optiply.nl/api/auth/oauth/token met client-id, client-secret, gebruikersnaam en wachtwoord, een filter op account (filter[accountId]), wijzigingen ophalen met filter[updatedAt][GT] en pagina's van 100 met page[limit]. Limieten voor het aantal aanroepen publiceert Optiply niet openbaar; de koppeling leest ze uit de antwoorden en remt af op een 429.

SFTP met vaste CSV-bestanden

De tweede route is een SFTP-map met vaste bestandsnamen: Products, SalesOrders, SalesOrdersLines, Suppliers, SupplierProducts, BuyOrders, BuyOrdersLines, ItemDeliveries en ProductCompositions. Optiply leest ze standaard elk uur in. Een bestand is volledig met een kolom updated_at als wijzigingssleutel, of een deltabestand met alleen wat sinds de vorige levering veranderd is. Tijden staan in UTC in het formaat 2026-10-01T22:30:00Z.

remoteId,name,skuCode,eanCode,unlimitedStock,stockLevel,status,updated_at
10482,"Kabelgoot 60 mm wit",KB-2210,8712345678906,FALSE,28,enabled,2026-10-01T22:30:00Z
10483,"Eindkap kabelgoot 60 mm",KB-2211,8712345678913,FALSE,-3,enabled,2026-10-01T22:30:00Z

Volgens Optiply is stockLevel de fysieke voorraad min wat al verkocht is, berekend in het bronsysteem, en mag hij negatief zijn. Een ERP dat geen negatieve voorraad kent en -3 als 0 exporteert, verbergt drie stuks die al verkocht en nog niet geleverd zijn. Optiply adviseert dan te weinig. Een artikel verwijderen gaat met status disabled of deleted_at, niet door het weg te laten. Zie CSV en Excel van leveranciers voor wat er met zulke bestanden misgaat.

De standaardkoppelingen als maatstaf

Bij de standaardkoppeling met Exact Online haalt Optiply elke 30 minuten artikelen, voorraad, verkooporders, inkooporders en ontvangsten op. Verkopen komen uit verkooporders of uit verkoopfacturen. Staan beide aan, dan telt Optiply alleen facturen zonder verkooporder, zodat een verkoop niet dubbel meetelt. Bij Monta gaan inkooporders van Optiply elke 15 minuten naar Monta.

Artikel en leveranciersartikel uit Exact Online naar Optiply Optiply leest vrije voorraad als CurrentStock min PlanningOut: 40 min 12 is 28. De inkoopprijs per stuk is PurchasePrice gedeeld door NumberOfItemsPerUnit: 2,00 gedeeld door 12 is 0,1667, en Optiply rondt prijzen af op 2 decimalen. Bestelgrootte, minimum en levertijd komen uit drie aparte velden. Exact Online Optiply Code KB-2210 CurrentStock 40 PlanningOut 12 gepland uitgaand PurchasePrice 2.00 per doos van 12 NumberOfItemsPerUnit 12 PurchaseUnitFactor 12 MinimumQuantity 48 PurchaseLeadTime 5 skuCode KB-2210 stockLevel 28 price 0.17 0,1667 afgerond op 2 decimalen lotSize 12 minimumPurchaseQuantity 48 deliveryTime 5 dagen 40 - 12 2,00 / 12 als useLOT aan als useMOQ aan
De standaardmapping van Optiply voor Exact Online, met ons voorbeeldartikel. De prijs per stuk wordt afgerond; bij goedkope artikelen in grote dozen telt dat op.

Waar het bij Optiply op vastloopt

Welke voorraad Optiply ziet

Optiply rekent met vrije voorraad: wat nu verkocht kan worden. In de Exact-koppeling is dat CurrentStock min PlanningOut, uit één hoofdmagazijn. Een bedrijf met voorraad in twee magazijnen, of met voorraad die geblokkeerd is voor kwaliteitscontrole, krijgt in Optiply een ander getal dan het denkt. De koppeling legt per magazijn vast of het meetelt en rekent stockLevel uit voordat het naar Optiply gaat. Zie welke voorraad toon je in je webshop.

Inkoopprijs per stuk, afgerond

Optiply bewaart price met 2 decimalen. Een ERP met een prijs per doos geeft per stuk vaak meer decimalen. Uit het voorbeeld: 2,00 per doos van 12 is 0,1667 per stuk, en Optiply bewaart 0,17. Op 12.000 stuks per jaar is dat 12.000 x 0,17 = 2.040 tegen 12.000 x 2,00 / 12 = 2.000, een verschil van 40 euro in de inkoopwaarde waarmee Optiply rekent. Voor artikelen van centen per stuk legt de koppeling de inkoopeenheid vast, of rekent hij met de prijs per doos en lotSize. Zie eenheden en verpakkingen.

Bestelgrootte en minimum

lotSize is de verpakking waarin je koopt, zoals 6 bij een sixpack; minimumPurchaseQuantity is het minimum per bestelling. Beide zijn gehele getallen van minimaal 1. In de Exact-koppeling komen ze alleen mee als de instellingen useLOT en useMOQ aan staan. Staat lotSize op 1 terwijl de leverancier alleen per 12 levert, dan kan Optiply 20 stuks adviseren, die de leverancier als 24 levert. Het verschil van 4 komt als onverwachte ontvangst in je ERP.

Sleutels en een nieuw bronsysteem

In het SFTP-schema verwijzen productId en supplierId naar de remoteId van artikel en leverancier, als getal (long). Een ERP dat artikelen alleen kent aan een code als KB-2210, heeft een numeriek id nodig, of een vertaaltabel die de koppeling bijhoudt. Wie van bronsysteem wisselt, krijgt nieuwe ids. Optiply raadt dan aan de nieuwe koppeling onder een andere naam en een ander e-mailadres aan te maken en de verkoophistorie mee te verhuizen, zodat de voorspelling niet opnieuw begint.

Systemen die we aan Optiply koppelen

Aan de ERP-kant: Exact Online koppeling, AFAS webshop koppeling en Business Central koppeling. Voor het magazijn: Picqer koppeling, GoedGepickt koppeling en Monta koppeling. Voor verkopen uit de webshop: Shopify koppeling en WooCommerce koppeling. Inkoopprijzen en leveranciersgegevens staan op inkoopprijzen, alle stromen op koppelingen.

We bouwen de koppeling voor een vaste prijs en hosten, draaien en bewaken hem daarna voor een vast bedrag per maand. Voor de livegang draait hij als dry run: je ziet per artikel welke voorraad, prijs en bestelgrootte naar Optiply zouden gaan, zonder dat er iets verandert. Vertel welk ERP en welk magazijn je naast Optiply gebruikt, dan hoor je welke gegevens erbij horen.

Veelgestelde vragen

Heeft Optiply een openbare API?

Optiply heeft een API op api.optiply.com/v1. De documentatie daarvan is niet openbaar: zonder inloggegevens geeft het documentatie-adres een 401. De eigen koppelcode die Optiply op GitHub publiceert, laat zien dat de API met JSON:API werkt en een OAuth-token vraagt met client-id, client-secret, gebruikersnaam en wachtwoord. De toegang vraag je aan bij Optiply.

Hoeveel verkoophistorie heeft Optiply nodig?

Optiply voorspelt uit de verkoophistorie per artikel; een minimum aantal maanden noemt de openbare helpdocumentatie niet. Bij een nieuwe koppeling of een nieuw bronsysteem gaat de bestaande verkoophistorie mee, anders begint de voorspelling bij nul. Optiply waarschuwt om verkopen tijdens een overstap niet in twee systemen tegelijk te registreren, omdat ze dan dubbel in de historie komen.

Kan Optiply rekening houden met de voorraad van mijn leverancier?

Ja. Een leveranciersartikel in Optiply kan voorraad, vrije voorraad, beschikbaarheid en een beschikbaarheidsdatum hebben. Optiply zegt er zelf bij dat een ontbrekende waarde, een nul en een niet-beschikbaar artikel niet hetzelfde betekenen. De koppeling stuurt die drie toestanden dus apart door. Zie leveranciersvoorraad koppelen.

Hoe komen de inkooporders van Optiply in mijn ERP?

Als inkooporder met regels, met het id van Optiply als referentie. De standaardkoppelingen doen dat op een vast ritme, bij Monta bijvoorbeeld elke 15 minuten. Een eigen koppeling haalt nieuwe inkooporders op met een filter op updatedAt, zo vaak als het ERP dat aankan. Optiply raadt aan eerst te controleren of een order al bestaat voordat je hem opnieuw stuurt, anders staat hij twee keer bij je leverancier.

Telt Optiply voorraad uit meerdere magazijnen mee?

Dat hangt af van de koppeling. De standaardkoppeling met Exact Online neemt voorraad uit één hoofdmagazijn, terwijl de artikelen uit alle magazijnen komen. Wie uit twee magazijnen verkoopt, laat de koppeling het stockLevel per artikel optellen over de magazijnen die meetellen. Zie meerdere magazijnen.

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