Aanpassen voorraad (offline)#

Er is een functionaliteit binnen mijnWinkel.nl die het mogelijk maakt de voorraad van een product geautomatiseerd via een extern systeem aan te passen. Voor alle productlijsten waarvoor voorraadbeheer geactiveerd is, wordt de voorraad aangepast waar het betreffende product in voorkomt.

Ter informatie: de voorraad kan ook per product worden aangepast via een handmatige procedure (onine), deze optie is te vinden via:

  • het tabblad 'producten'
  • klik bij product data op op de productdata die u wilt aanpassen, vervolgens ga je bij de 'product data gegevens' naar de optie van 'aanpassen voorraad online'. Zie ook de help.

    De nieuwe optie offline is beschikbaar voor professionele account's en bereikbaar via
  • het tabblad 'producten'
  • klik vervolgens bij product data op de productlijst data, bij de 'product data gegevens' ga je naar ' 'aanpassen voorraad (offline)' zien. Als u op die optie klikt, krijgt u onderstaand scherm te zien.

In het scherm kunnen de verschillende mogelijkheden ingesteld worden, het veld ´prive sleutel´ is het belangrijkste en tevens verplicht, de andere instellingen zijn optioneel:

  • update voorraad
    Hier kunt u aangeven of u gebruik wilt maken van het aanpassen van de voorraad zonder ingelogd te zijn in uw winkel
  • prive sleutel
    Dit veld is verplicht om in te voeren. Wees voorzichtig met deze sleutel. Als deze sleutel bekend is bij een ander dan kan deze potentieel de voorraad van de producten van uw winkel aanpassen
  • IP adres (optioneel)
    Hier kunt u aangeven van welk adres de opdrachten moeten komen om de voorraad te wijzigen. Dit kunt u als een extra beveiliging zien.
  • terugkoppeling
    Hier kunt u een keuze maken op welke manier u een bevestiging van de wijziging van de voorraad wilt ontvangen
  • trigger
    Hier kan aangegeven worden op welk moment u een terugkoppeling wilt ontvangen. Wij raden u aan al deze opties aan te vinken

Algemene werking#

Stap 1 opvragen van een rpc id #

De eerste stap bestaat uit het opvragen van een rpc id waarmee de aanvraag uitgevoerd kan worden.

Een rpc id is maximaal 2 minuten geldig na het moment van aanvragen. Na deze periode moet er een nieuwe rpc_id aangevraagd worden. Het opvragen van een rpc_id gaat met de request:
https://$domain$/RPC/id?shop=12345
Het veld shop mag daarbij niet leeg zijn en de winkel moet bestaan. Het resultaat van deze aanvraag is:
    <rpc>
        <id>1234567890</id>
    </rpc>

Stap 2 opvoeren oproep commando#

Het aanpassen van de voorraad kan daarbij worden uitgevoerd door een GET of POST verzoek naar https://$domain$/stock/update te sturen.
Een voorbeeld van een oproep commando is:
https://$domain$/stock/update?shop=12345&pk=82db6eb42a62b299c4dbe34403992baa281ce5b&productid=12&stock_value=15&rpc_id=1234567890

Bij het verzoek moeten een aantal parameters meegegeven worden, deze zijn:

Naam parameter Omschrijving
shop Nummer van de winkel
pk Publieke sleutel (zie ook uitleg beneden tabel)
productid Identificatie nummer van het product waarvan
de voorraad aangepast moet worden.
stock_value Nieuwe voorraad waarde van het product
rpc_id De waarde die u bij stap 1 gekregen heeft

Parameter PK#

De parameter pk is een hash waarde die wordt samengesteld uit een tekenreeks die ontstaat als de volgende gegevens worden samengevoegd en daarvan de SHA1 waarde van wordt bepaald (n.b.: de SHA1 waarde moet in kleine letters worden weergegeven)
  • winkelnummer
  • privé sleutel
  • product nummer
  • nieuwe voorraad waarde
  • rpc_ id waarde

Voorbeeld PHP programma#

Om het samenstellen van de publieke sleutel met behulp van de privé sleutel en de andere parameters verder te verduidelijken is er in het volgende voorbeeld een PHP programma opgenomen. In het voorbeeld programma word het samenstellen van de publieke sleutel en het plaatsen van het verzoek geïllustreerd.

PHP Stock update request example

<?php
	// Request parameters
	$shopid="12345";
	$command="update";
	$productid="12";
	$stock_value="15";
	$private_key="121221212";
	
	$rpc_id = getRpcId($shopid);
	
	$encoded_params=array();
	$encoded_params[]=urlencode("pk").'='.urlencode(sha1($shopid.$private_key.$productid.$stock_value.$rpc_id));
	$encoded_params[]=urlencode("productid").'='.urlencode($productid);
	$encoded_params[]=urlencode("stock_value").'='.urlencode($stock_value);
	$encoded_params[]=urlencode("shop").'='.urlencode($shopid);
	$encoded_params[]=urlencode("rpc_id").'='.urlencode($rpc_id);
	$request=implode('&',$encoded_params);
	
	$result = null;
	try{
		$result = doPostRequest("https://www.mijnwinkel.nl/stock/$command", $request);
	}catch(Exception $e){
		$result = "Error occured: ".$e.getMessage();
	}
	
	echo $result;
	
	/* Get RPC ID function */
	function getRpcId($shopid){
		$url = 'https://www.mijnwinkel.nl/RPC/id?shop='.$shopid;
		$response = file_get_contents($url);
	
		if($response && $response!=''){
			// Got a response, now find and return the rpc_id
			$doc = new DOMDocument();
			$doc->loadXML($response);
			$rpcId = $doc->documentElement->firstChild->nodeValue;
			return $rpcId;
		}else{
			return null;
		}
	}
	
	/* POST Data function */
	function doPostRequest($url, $data, $optional_headers = null){
		$params = array('http' => array(
				'method' => 'POST',
				'content' => $data
		));
		if ($optional_headers !== null) {
			$params['http']['header'] = $optional_headers;
		}
		$ctx = stream_context_create($params);
		$fp = @fopen($url, 'rb', false, $ctx);
		if (!$fp) {
			throw new Exception("Problem with $url, $php_errormsg");
		}
		$response = @stream_get_contents($fp);
		if ($response === false) {
			throw new Exception("Problem reading data from $url, $php_errormsg");
		}
		return $response;
	}
?>
Op regel 13 van het voorbeeld wordt de SHA-1 waarde bepaald voor de parameter pk. Bij het verwerken van het verzoek wordt de publieke sleutel gecontroleerd als deze overeenkomt, dan wordt de voorraad van het product aangepast. Daarbij worden alle beschikbare productlijsten van de winkel doorzocht op het gegeven productnummer. Indien het nummer wordt gevonden, wordtvan het product de voorraad aangepast. De aanpassing is daarmee van toepassing voor alle productlijsten van een winkel.

Het is ook mogelijk om een GET verzoek te gebruiken voor het aanpassen van de voorraad. De URL voor een dergelijk verzoek kan de volgende vorm hebben (voorbeeld):

https://www.mijnwinkel.nl/stock/update?shop=12345&pk=82db6eb42a62b299c4dbe34403992baa281ce5b&productid=12&stock_value=15&rpc_id=1234567890

Stel een vraag
Algemene Help
  1. Welkom bij mijnWinkel
  2. Trefwoorden
  3. Stappenplan
  4. Veelgestelde Vragen (FAQ)
  5. Handleidingen printen
  6. Abonnementen
    1. Affiliateshop
    2. Abonnementsvormen
    3. Abonnement beëindigen
    4. Abonnement uitbreiden
    5. Betaaltermijnen & kortingen
    6. Betaaltermijnen en kortingen boven euro 150
    7. Basic webwinkel
    8. B2C
    9. Enterprise ordersysteem
    10. Internetkassa Professional
    11. Internetkassa Basic
    12. Light shop
    13. Offerteshop
    14. B2B/Ordersysteem vaste klanten
    15. Professional webwinkel-startup
    16. Professional webwinkel
  7. Betalen
    1. Achteraf betalen
    2. Advies betaalmethoden
    3. Afterpay
    4. Beschikbare betaalsystemen
    5. Billink
    6. Buckaroo
    7. Directe betaalmethoden
    8. Docdata Payments
    9. Electronische facturen rechtsgeldig?
    10. Internetkassa (ABN AMRO)
    11. Icepay
    12. iDEAL algemeen
    13. iDEAL ABN AMRO
    14. iDEAL ING bank
    15. iDEAL Rabo bank Professional
    16. iDEAL Mollie
    17. Klarna
    18. Multisafepay
    19. Multisafepay Connect
    20. Ogone
    21. Omnikassa Rabobank
    22. Pay.nl
    23. PayPal
    24. Paypal Checkout
    25. Postcode.nl
    26. Sisow
    27. Vemt
    28. Online betaalmethoden
  8. Ipad shop
    1. Ipad nieuw
    2. Ipad doorschakelen
    3. Ipad tekst
    4. Ipad links
    5. Ipad producten
  9. Iphone shop
    1. Iphone shop
  10. Mogelijkheden
    1. Betaalsystemen
    2. Internetkassa
    3. Koppeling met Exact
    4. Koppeling met EBoekhouden
    5. Koppeling met osFinancials
    6. Koppeling met SW Retail
    7. Koppeling met Snelstart
    8. Overzicht koppelingen via mijnWinkel
    9. Staffelkortingen
  11. Tips en Handigheidjes
    1. Acties
    2. BTW
    3. Javascript
  12. Vragen vooraf
    1. Algemene voorwaarden
    2. KvK inschrijving benodigd?
    3. Powered by mijnWinkel
    4. Wet verkoop op afstand
  13. Vragen over de techniek
    1. Besturingssystemen en browsers
    2. Techniek achter mijnWinkel
  14. Vragen over de lay-out
    1. Blokken links,midden,rechts
    2. Voorwaarden blokken
    3. Eigen layout productlijst
    4. Gebruik skin
    5. CSS editor
    6. Layout betaalmethode
    7. Release 3.5
    8. Eigen layout meerinfo
    9. Instellen Productlijst
    10. Instellen Meerinfo
  15. Vragen over afbeeldingen
    1. Beheer productplaatjes
    2. Verschillende afmeting
    3. Instellen Plaatjes
  16. Vragen over zoeken en navigatie
    1. Achterliggende zoektechniek
    2. globalsearch
    3. Meerdere menu\'s
    4. Menu en filter
    5. Rechtstreeks linken
    6. Selecties maken
    7. Uitgebreid zoeken
  17. Webwinkel opzetten
    1. AffiliateSellvia
    2. BTW verhoging
    3. B2B release3
    4. Centraal Boekenhuis
    5. Dropshipspecialist
    6. Dynamische tab menu
    7. Gerelateerd productlijst blok
    8. CSS
    9. Gerelateerd productlijst blok
    10. Ipadshop
    11. Lees meer blok
    12. Link en text grid
    13. Nummering productlijst pagina
    14. Meerinfovelden
    15. Navigatie menu
    16. Naviatie top/footer menu
    17. Aanvragen extra shop
    18. Online productmanagement
    19. Online toevoegen producten
    20. Opzetten productlijst in Excel
    21. Pakje gemak
    22. Productvariaties (maten en kleuren)
    23. Producten in meerdere categorieen
    24. Schaduwpagina's
    25. Opzet taalshops
    26. Instellen taalkolom
    27. Taalswitch
    28. Valuta
    29. Valuta childlijst
    30. Verzendmethoden
    31. Wizard
  18. Winkel optimaliseren
    1. 12Return
    2. 404
    3. Admarkt
    4. Advanced backoffice
    5. Affiliate4you
    6. Andere talen
    7. Backoffice connector
    8. Beslist.nl
    9. Bestelknop approval
    10. Beveiligd bestelprocess https
    11. Blog
    12. Broodkruimelpad
    13. BTW EU
    14. Cadeaubonnen
    15. Canonical url
    16. Ciao
    17. Daisycon
    18. DHL
    19. Donatie
    20. eWarehousing
    21. Facebookshop
    22. Fashionchick.nl
    23. Google AdWords
    24. Google Analytics
    25. Google check pagina
    26. Google check producten
    27. Google check sitemap
    28. Google check xml
    29. Google check 404
    30. Google shopping
    31. Google zoekmachine
    32. HTML sitemap
    33. Rich Snippet
    34. Keendelivery
    35. Kelkoo
    36. Keuze afleveradres
    37. Kieskeurig
    38. Koopkeus
    39. Koopzeker
    40. Kortingscodes
    41. Laposta
    42. Mailchimp
    43. Marktplaats
    44. Mopinion
    45. Myaccount
    46. Optimalisatie meerinfo scherm
    47. Q-Invoice
    48. Redirects
    49. Remarketing tag Google
    50. Reviewmeter
    51. Robots.txt
    52. RSSFeed
    53. Beveiliging
    54. Schone url
    55. Sendcloud
    56. Social media blok
    57. Sitemaps
    58. Statistieken webwinkel
    59. Subpagina's
    60. Tradetracker
    61. Twenga
    62. Twitter
    63. UDesk
    64. Automatisch aanmaken pages
    65. URL opties
    66. Userlike
    67. Vakantiepunten
    68. Vergelijk.nl
    69. Verticale slider
    70. Volgorde bestellingen
    71. Webwinkelkeur
    72. Sortering bestellingen
    73. Zoekoptimalisatie via Google
  19. Winkel beheren
    1. Backoffice koppeling
    2. Beheren emailaddressen
    3. Cookiebeleid
    4. Cookiewetgeving
    5. Dynamisch ophalen klantgegevens
    6. Dynamisch klantgegevens ophalen
    7. Dynamisch ophalen skins
    8. Externe orderstatus update
    9. Favorietenlijstje
    10. Kassasysteem
    11. Koppeling met Exact
    12. MyParcel
    13. Onderwater Login
    14. Online Verzendservice PostNL
    15. Orderbeheer
    16. PostNL
    17. PostNLCheckout
    18. Reeleezee
    19. Reeleezee nieuw
    20. Sisow Esend
    21. Track and Trace
    22. Van de Scheur Logistiek
    23. Voorraadbeheer (algemeen)
    24. Voorraadbeheer buiten mijnWinkel.nl om
    25. Verzendmethoden PostNL
    26. Winkelwagen delen
    27. Winkelwagen delen
    28. XML orderdocument
    29. OvergangBuckaroo3.0
Eigen layout (technisch)
Handleidingen
Nieuwsbrieven