Multistore (WordPress)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Hoe kun je orders van meerdere WooCommerce-sites op één plek beheren?

Het probleem

Kun je de orders van bv. 10 WooCommerce-sites beheren op één plek? Dus niet alleen dat je ze kunt bekijken op één plek, maar ook kunt afhandelen? Dat klinkt als een luxe-probleem, maar in de praktijk is het dat niet:

  • Het is veel werk om voortdurend een flinke hoeveelheid sites te moeten langslopen
  • Het is vrij nauwkeurig en ingewikkeld werk: Voor je het weet, sla je per ongeluk een webwinkel over
  • Inwerken van een nieuwe medewerkers, is ingewikkelder.

Een manier om geattendeerd te worden op orders, is niet voldoende. Sterker nog: Dat is er al in de vorm van email. Het gaat om het complete afhandelen van nieuwe orders.

Vereisten

  • Op een centrale online plek orders uit meerdere WooCommerce-sites kunnen beheren: Lezen én verwerken
  • Uiteraard moeten de originele order-ID's behouden blijven
  • De eigenlijke webwinkels zijn hierbij de Single Source of Truth
  • Extra: Voorraadbeheer centraal bijhouden
  • Extra: Productgegevens centraal bijhouden

Inventaris

  • Zelfs een simpel SQL-script maken, dat beheerders erop attenderen als in één van de shops een order is geplaatst - Dat zou al flink schelen
  • WooMultistore-plugin?
  • WooHub: Gebruik een additionele WooCommerce-site als hub
  • Standaard WooCommerce-multisite-funtionaliteit: Schijnt geen aanrader te zijn (Gijs).

WooHub

Gebruik een additionele WooCommerce-site als hub voor alle orders: Gebruik de PHP-API om orders in te lezen in de hub, maar ook om status-updates terug te sturen naar de betreffende sites (spokes)

  • Handig als de spokes hun eigen order-telling aanhouden. Anders moet er bij elke order naar alles sites een update worden gestuurd
  • Ongetwijfeld kan dit met de PHP-API, maar vergeet de WP-CLI niet: Daar kunnen verrassende dingen mee!

Datamodel van orders

  • Een order is een post en het order-ID is het post-ID. Dat maakt het gelijk al lastig om orders uit te wisselen, want de ID's kun je niet zomaar aanpassen. Of misschien maakt het niet uit als je het order-id aanpast, omdat de gebruiker daar toch niet direct mee te maken heeft?
  • Orders hebben titels, net als alle posts. Daarin kun je de naam van de spoke en het spoke-order-ID invoegen. Na bijwerken worden deze gegevens weer gestript en teruggestuurd naar de spoke
  • Pas op: Er komt verbazend veel data bij een order te pas, inclusief betalingsgegevens en productgegevens.

Bronnen