Orders, klanten en verzending
Van offerte naar order: een geaccepteerde offerte staat meteen in je webshop en je ERP
Een offerte die je verkoper in het ERP maakt, kan de klant in je webshop afronden, met de prijzen uit de offerte. Wij bouwen de koppeling die de offerte als concept in de webshop zet en bij acceptatie de offerte in het ERP omzet in een verkooporder, zonder dat iemand iets overtypt en zonder tweede order.
Een offerte wordt twee keer ingevoerd
In de meeste B2B-bedrijven begint een grote order als offerte. De verkoper maakt hem in het ERP, stuurt een pdf, en de klant mailt "akkoord". Daarna typt de binnendienst de offerte over als verkooporder, of de klant bestelt dezelfde artikelen nog eens in de webshop tegen zijn gewone prijzen. In het eerste geval is de offerte twee keer ingevoerd. In het tweede geval klopt de prijs op de order niet met de offerte.
Bij 40 offertes per week met elk 3 regels is overtypen 120 regels per week, met de kans op een verkeerd aantal of een verkeerde prijs in elke regel. Een koppeling haalt dat stuk weg: de klant accepteert de offerte in de webshop, en het ERP maakt de verkooporder uit de offerte zelf. De orderstroom als geheel staat bij orders, klanten en verzending.
Hoe werkt het?
Twee richtingen
| Richting | Begin | Einde |
|---|---|---|
| Offerte uit het ERP | de verkoper maakt offerte 20531 in Exact Online | de klant rondt hem af in de webshop, Exact maakt de verkooporder |
| Aanvraag uit de webshop | de klant vraagt een offerte aan voor zijn winkelmand | de verkoper prijst hem in het ERP, daarna gaat het als de eerste richting |
In beide gevallen is het ERP de plek waar de offerte bestaat. De webshop toont hem en levert het akkoord.
Van offerte naar concept in de webshop
Offerte 20531 voor Bakker Installatie B.V., debiteur 10432, heeft drie regels:
offerte 20531 versie 2 geldig tot 02-11-2026 YourRef PO-7781
10482 120 x 10,09 1.210,80
10517 10 x 48,00 480,00
10530 40 x 6,25 250,00
totaal excl. btw 1.940,80 btw 21% 407,57 totaal 2.348,37
In Shopify wordt dat een conceptorder (draft order). De velden:
| Exact Online | Shopify conceptorder | Let op |
|---|---|---|
OrderAccount |
purchasingEntity, het bedrijf |
eerst de debiteur aan het bedrijf koppelen |
QuotationLines: Item, Quantity |
lineItems: variantId, quantity |
artikelcode via de SKU naar de variant |
UnitPrice en Discount |
priceOverride per regel |
Discount is een fractie: 0.055 is 5,5% |
YourRef |
poNumber |
het inkoopnummer van de klant |
QuotationNumber, VersionNumber |
tags |
om bij acceptatie de juiste versie te vinden |
Zonder priceOverride rekent Shopify met de prijs uit de catalogus van de klant. Dan staat in de webshop € 10,63 voor artikel 10482, terwijl de offerte € 10,09 zegt. De koppeling zet daarom elke regel met de offerteprijs. De klant krijgt de link naar het concept, de invoiceUrl, per e-mail.
Accepteren zonder tweede order
Rondt de klant het concept af, dan meldt Shopify draft_orders/update en maakt het van het concept een order. Die order mag niet door de gewone orderstroom als nieuwe verkooporder naar Exact Online. De koppeling herkent de order aan het concept waaruit hij ontstond en accepteert in plaats daarvan de offerte: AcceptQuotation met Action 1, "create sales order". Exact maakt de verkooporder dan zelf uit de offerte, met de regels, prijzen en kortingen zoals de verkoper ze invoerde.
Het antwoord van Exact zegt of dat gelukt is. SalesOrderSuccess bevat de melding over de verkooporder, ErrorMessage de fout. Daarnaast heeft de offerte een eigen status:
Status |
Betekenis | Wat de koppeling doet |
|---|---|---|
| 20 | Draft | nog niet naar de webshop |
| 25, 40 | Open, Printed | als concept in de webshop |
| 50 | Accepted | concept afgesloten, verkooporder bestaat |
| 70 | Accepted but an error occurred during processing | op de controlelijst: geaccepteerd, maar geen verkooporder |
| 5 | Rejected | concept uit de webshop |
Status 70 is de stille: de offerte staat als geaccepteerd en er is geen order. Zonder controle merkt niemand het tot de klant belt waar zijn levering blijft.
Wat er stil misgaat
| Wat er gebeurt | Voorbeeld | Gevolg |
|---|---|---|
| Twee orders | de klant rondt af in de webshop, de verkoper accepteert ook in Exact | twee verkooporders voor één offerte |
| Oude versie geaccepteerd | de klant gebruikt de link van versie 1, versie 2 heeft andere prijzen | de order volgt prijzen die niet meer gelden |
| Catalogusprijs in plaats van offerteprijs | concept zonder priceOverride |
€ 10,63 in de webshop, € 10,09 in de offerte |
| Korting als percentage gelezen | Discount 0.055 als 5,5 |
een negatieve regelprijs |
| Verlopen offerte afgerond | DueDate 02-11, afgerond op 05-11 |
een order tegen prijzen van vorige maand |
| Geaccepteerd zonder order | Status 70 |
de klant wacht op een levering die niet is ingepland |
Elk van deze gevallen komt met het offertenummer op de controlelijst, zodat de verkoper het in één keer kan oplossen. Hoe orderstatussen tussen webshop en ERP worden vertaald staat in orderstatussen mappen.
Wat je ermee regelt
- Offerte als concept. Elke open offerte uit het ERP als conceptorder in de webshop, met de prijzen uit de offerte.
- Versies. Een nieuwe versie vervangt het concept; acceptatie van een oude versie wordt tegengehouden.
- Acceptatie in het ERP. De offerte wordt geaccepteerd en het ERP maakt de verkooporder, zonder dubbele order.
- Vervaldatum. Na de geldigheidsdatum gaat het concept uit de webshop.
- Aanvragen. Een winkelmand als offerteaanvraag naar het ERP.
Bestelt de klant op rekening, dan gelden kredietlimiet en betaaltermijn ook voor de offerte: zie bestellen op rekening. De prijzen per klant staan bij klantspecifieke prijzen.
Met welke systemen
| Systeem | Offerte | Van offerte naar order |
|---|---|---|
| Exact Online | crm/Quotations met QuotationLines, Status, VersionNumber, DueDate; webhook op het onderwerp Quotations |
AcceptQuotation met Action 1 |
| Business Central | salesQuote met status Draft, Sent, Accepted of Expired en validUntilDate |
de actie makeOrder |
| Shopify | conceptorder met status OPEN, INVOICE_SENT of COMPLETED; webhooks draft_orders/create en draft_orders/update |
het concept wordt bij afronden een order |
| WooCommerce | geen offerte in de kern: de orderstatussen kennen er geen | een uitbreiding bewaart hem, de koppeling schrijft naar de velden daarvan |
De velden zijn op 3 oktober 2026 nagelezen in de documentatie van Exact Online, Shopify en Microsoft. Per systeem: Exact Online, Business Central, Shopify.
Wat een standaardkoppeling hier niet doet
Standaardkoppelingen zetten orders over van de webshop naar het ERP: een order in, een verkooporder uit. Een offerte zit niet in die stroom. Een offerte uit het ERP die de klant in de webshop accepteert, komt bij zo'n koppeling als gewone order binnen en wordt een nieuwe verkooporder naast de offerte. De offerte blijft open staan, met de regels en prijzen die de verkoper invoerde, en niemand ziet dat de twee bij elkaar horen.
In een koppeling die voor jouw verkoopproces is gebouwd, blijft de offerte in het ERP de bron en levert de webshop het akkoord. Stuur een offerte met meerdere versies mee, dan hoor je hoe hij in jouw webshop terechtkomt.
Veelgestelde vragen
Kan de klant de offerte in de webshop nog aanpassen?
Dat stel je in. Een conceptorder in Shopify heeft vaste regels en prijzen; de klant rondt hem af zoals hij is. Wil de klant 150 stuks in plaats van 120, dan maakt de verkoper versie 3 in Exact Online en vervangt de koppeling het concept. Zo staat in het ERP altijd de versie die de klant heeft geaccepteerd.
Wat gebeurt er als de offerte verloopt?
Na de DueDate haalt de koppeling het concept uit de webshop. Rondt de klant een verlopen offerte toch af, bijvoorbeeld via een link die hij eerder kreeg, dan wordt de offerte niet automatisch geaccepteerd. De order komt op de controlelijst en de verkoper beslist of de oude prijzen nog gelden.
Wordt de voorraad gereserveerd zolang de offerte openstaat?
Dat kan. Een conceptorder in Shopify heeft een veld reserveInventoryUntil: tot dat moment houdt Shopify de voorraad vast. De koppeling kan het gelijkzetten aan de vervaldatum van de offerte. Voor een offerte van 30 dagen houdt dat de voorraad wel 30 dagen uit de verkoop, dus het is een keuze per artikelgroep. Zie ook reserveren bij goedkeuring.
Kan een klant in de webshop zelf een offerte aanvragen?
Ja. De klant vult zijn winkelmand en vraagt een offerte aan in plaats van te bestellen. De koppeling zet die aanvraag als offerte in het ERP, waar de verkoper de prijzen invult. De geprijsde offerte komt daarna als concept terug in de webshop, zoals hierboven.
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