← Terug naar kennisbank
Kennisbankartikel

Webshopkoppeling documentatie

Intro

Met de webshop api wordt het mogelijk om orders (facturen) in te schieten in McWin (POS systeem van Microcash) en bepaalde gegevens op te halen.

 

Er zijn een aantal instellingen en gegevens nodig om de webshop met McWin te kunnen koppelen. Hieronder de benodigdheden.

 

  • McWin moet aan staan op de server. (Wordt geïnstalleerd door Microcash)
  • De McAppBridge moet zijn geïnstalleerd en actief zijn. (Wordt geïnstalleerd door Microcash)
  • Bedrijfsgegevens moeten zijn aangemaakt. (Wordt aangemaakt door Microcash)
  • API Login account (Aan te maken in de Microcash Online Helpdesk portal)
  • API-Key (Te vinden in de Microcash Online Helpdesk portal)
  • API-Code (Te vinden in de Microcash Online Helpdesk portal)

 

Artikel stamdata

De artikel stamdata wordt op een FTP locatie van Microcash gezet waar we credentials van aanleveren. Het bestand is een totaalbestand en wordt dagelijks overschreven. Dit bestand kun je gebruiken om de artikeldata up to date te houden binnen de webshop. Verder kun je via de API artikeldata opvragen om tussendoor de meest up to date data te verkrijgen.

API

De API is te bereiken op https://app.microcash.nl en moet worden aangevuld met het call gedeelte van de URL. Bijvoorbeeld: https://app.microcash.nl/api/auth/login 

Er is een aantal calls beschikbaar in de API. Deze calls worden hieronder beschreven. Op de Login en Refresh calls na hebben alle calls de volgende headers nodig:

Authorization = Bearer accessToken uit de login call

X-Api-Key = Verstrekte API-Key

X-Api-Code = Verstrekte API-Code

Content-Type = application/json

 

Alle calls zijn POST calls en hebben JSON input en output. Zorg dat je Encoding UTF-8 hebt voor de input.

 

Login /api/auth/login

De call om een bearer token te verkrijgen welke nodig is om de daadwerkelijke webshop calls te doen. Het antwoord bevat zowel een Bearer Token (accessToken) als een Refresh Token. 

Je hoeft niet voor elke call in te loggen. Het Bearer Token is een bepaalde tijd geldig. Zolang deze geldig is kun je dit Token hergebruiken. Wanneer het Token niet meer geldig is kun je met de Refresh call een nieuw Token opvragen zonder dat je opnieuw hoeft in te loggen. Wanneer ook het Refresh Token verlopen is zul je opnieuw moeten inloggen.

Input

{
  "email": "gebruikers email aangemaakt in de Microcash Online Helpdesk portal",
  "password": "gebruikers wachtwoord aangemaakt in de Microcash Online Helpdesk portal"
}
Veld Type Verplicht Info
email string Ja Gebruikersnaam
password string Ja Wachtwoord

 

Output

{
   "tokenType": "Bearer",
   "accessToken": "Dit is het Bearer Token",
   "expiresIn": 3600,
   "refreshToken": "Dit is het Refresh Token"
}

 

Veld Type Info
tokenType string  
accessToken string

Dit is het Bearer token dat moet worden gebruikt in de authorization header bij de API calls.

 

Voorbeeld: Authorization = Bearer EFROKEWR$33_wijoi$FJOKIWIJFIOWJ

 

expiresIn integer Geldigheid van het Bearer token
refreshToken string Het Refresh token. Zie het Refresh hoofdstuk

 

Refresh /api/auth/refresh

Wanneer het Bearer Token verlopen is kun je met het Refresh Token verkregen uit de Login call een nieuw Bearer Token genereren zonder opnieuw in te loggen. Je krijgt dan als antwoord een nieuw Bearer Token plus een nieuw Refresh Token.

Wanneer het Refresh Token ook niet meer geldig is zul je opnieuw de Login call moeten aanroepen.

Input

{
  "refreshToken": "Refresh Token verkregen uit de Login call"
}

 

Veld Type Verplicht Info
refreshToken string Ja Het Refresh Token verkregen bij de Login call of een eerdere Refresh call

 

Output

{
   "tokenType": "Bearer",
   "accessToken": "Dit is het Bearer Token",
   "expiresIn": 3600,
   "refreshToken": "Dit is het Refresh Token"
}

 

Veld Type Info
tokenType string  
accessToken string

Dit is het Bearer token dat moet worden gebruikt in de authorization header bij de API calls.

 

Voorbeeld: Authorization = Bearer EFROKEWR$33_wijoi$FJOKIWIJFIOWJ

 

expiresIn integer Geldigheid van het Bearer token
refreshToken string Het Refresh token. Zie het Refresh hoofdstuk

 

Get Stock /api/webshop/stock

Opvragen van de voorraad van producten via de barcode een van product.

Input

{
  "barcodes": [
    "1234567891234",
    "2345678912345",
    "3456789123456",
  ]
}

 

Veld Type Verplicht Info
barcodes Array van strings Ja Array van barcodes

 

Output

{
   "products":    [
   {
              "barcode": "1234567891234",
         "stock": 6
      },
            {
         "barcode": "2345678912345",
         "stock": 27
      }
   ],
   "messages": [],
   "errors": ["Barcode niet gevonden: '3456789123456'"]
}

 

Veld Type Info
products Array van productobjecten Array van producten waar de voorraad van is opgehaald
products: barcode string

Barcode van een product

 

products: stock integer Voorraad van een product
messages Array van strings Aanvullende meldingen over de call. Op dit moment niet in gebruik.
errors Array van strings Errormeldingen waarin staat beschreven wat er fout is gegaan.

 

Create Invoice /api/webshop/invoice

Aanmaken van een factuur van een bestelling in McWin.

Input

{
	"customer":{
		"name":"Tinus Test",
		"email":"tinustest@gmail.com",
		"address":{
			"street":"Adres",
			"houseNumber":"1",
			"houseNumberAddition":"a",
			"zipCode":"1234AB",
			"city":"Testdorp"
		}
	},
	"lines":[
		{
			"barcode":"8720181022548",
			"price":2.49,
			"quantity":1
		},
		{
			"barcode":"3663555004373",
			"price":2.49,
			"quantity":1
		}
	],
	"reference":"123477",
	"webshop":"Web",
	"paid":true,
	"note":"Extra klantbestelling",
	"dropship":false
}

 

Veld Type Verplicht Info
customer Klantobject Ja Klantobject met informatie over de klant
customer: name string Ja

Naam van de klant

 

customer: email string Ja Emailadres van de klant
customer: address Adresobject   Klantadres
customer: address: street string   Straatnaam van de klant
customer: address: houseNumber string   Huisnummer van de klant
customer: address: houseNumberAddition string   Huisnummertoevoeging van de klant
customer: address: zipCode string   Postcode van de klant
customer: address: city string   Woonplaats van de klant
customer: address: country string   3 letter code van het land volgens de ISO 3166-1 regel. https://www.iso.org/obp/ui 
lines Bestelregel object Ja Array van bestelregel objecten
lines: barcode string Ja Productbarcode
lines: price double Ja Productprijs
lines: quantity integer Ja Aantal van een product
reference string Ja Unieke referentie van de bestelling
webshop string   Unieke referentie van de webshop. Deze moet bekend zijn binnen McWin. Standaard leeg
paid boolean   Ja/nee vraag of de bestelling al betaald is. Standaard nee
note string   Extra notitie voor de bestelling
dropship boolean   Ja/nee vraag of de bestelling een dropship bestelling is. Wanneer je hier ja invult wordt betekent dit dat de bestelling door een externe leverancier wordt afgehandeld, en er geen voorraad wordt afgeboekt.

Output

{
   "reference": " 123477",
"invoiceNumber": "11W",
   "messages": [],
   "errors": []
}

 

Veld Type Info
reference string Unieke referentie van de bestelling
invoiceNumber string

Factuurnummer aangemaakt door McWin

 

messages Array van strings Aanvullende meldingen over de call. Op dit moment niet in gebruik.
errors Array van strings Errormeldingen waarin staat beschreven wat er fout is gegaan.

 

Get Products /api/webshop/product

Live productinformatie ophalen vanuit McWin. In deze call kun je van een lijst van producten (barcodes) een aantal productvelden ophalen.

Input

{
  "barcodes": [
    "1234567891234"
  ],
  "fields": [
    "salesPrice",
    "group",
    "currentPrice",
    "name"
  ]
}

 

Veld Type Verplicht Info
barcodes Array van strings Ja Array van productbarcodes
fields Array van strings Ja

Array met de productvelden waarvan je informatie wil ontvangen. Zie extra uitleg over de velden wat de input kan zijn.

 

 

 

Productvelden:
Name: Productomschrijving
Number: PLU
Stock: Winkelvoorraad (zonder eigen magazijn voorraad. Voor de gehele voorraad gebruik de stock call)
SalesPrice: Verkoopprijs
TemporaryPrice: Tijdelijke verkoopprijs
TemporarySince: Tijdelijke verkoopprijs startdatum
TemporaryUntil: Tijdelijke verkoopprijs einddatum
CurrentPrice: Kassaprijs
VATCode: BTWcode van het artikel. Dit kan N, L, M, H zijn. M wordt niet gebruikt in Nederland
Group: Groepcode van het product
Brand: Merkcode van het product
Category: Categorie van het product
Memo1: Vrije invoer
Memo2: Vrije invoer
Memo3: Vrije invoer
Memo4: Vrije invoer
Webshop: Voor welke webshop is dit product beschikbaar. “NEE” in het geval van niet beschikbaar voor webshops
StockMinimum: Minimale voorraad van het product in de winkel
StockMaximum: Maximale voorraad van het product in de winkel
ProductRange: Assortiment van het product

 

Output

{
   "products": [   {
      "barcode": "1234567891234",
      "fields":       [
                  {
            "field": "SalesPrice",
            "value": "0,85"
         },
                  {
            "field": "Group",
            "value": "404"
         },
                  {
            "field": "CurrentPrice",
            "value": "0,85"
         },
                  {
            "field": "Name",
            "value": "Testproduct"
         }
      ]
   }],
   "messages": [],
   "errors": []
}

 

Veld Type Info
products Array van productobjecten Array van producten waar de productinformatie van is opgehaald
products: barcode string

Barcode van een product

 

products: fields Array van productveldobjecten Object met daarin de informatie over het productveld
products: fields: field string Welk productveld is opgehaald
products: fields: value string Waarde van het opgehaalde productveld.<UNKNOWN> in het geval van een foutief opgegeven productveld, <NOTINUSE> wanneer een productveld niet in gebruik is

 

Heeft dit artikel je geholpen?

Aantal gebruikers dat dit nuttig vond: 0 van 0
Klopt dit artikel niet? Geef het door

Kom je er niet uit?

Maak een melding aan. Vermeld wat je al hebt geprobeerd en voeg eventueel een foto of foutmelding toe.

Vraag of probleem melden Terug naar kennisbank