Et skifte til HPOS kræver ikke, at shoppen lukker. WooCommerce kan kopiere ordrerne til de nye tabeller, mens shoppen kører, og selve skiftet er en indstilling. Det, der gør skiftet sikkert, er rækkefølgen: plugins først, så synkronisering, så test på en kopi, og først derefter den rigtige shop.
Her er forløbet trin for trin. Vil du først vide, hvad HPOS er, og om det er værd at skifte, så læs vores guide til HPOS i WooCommerce.
Før du starter
- En backup og en kopi: Tag en fuld backup af databasen, og lav en kopi af shoppen med de samme plugins, som du kan teste på.
- Opdateret WooCommerce: Opdatér WooCommerce og de plugins, der rører ordrer, før du begynder, så du ikke tester på versioner, du alligevel skal skifte væk fra.
- En kø, der kører: Ordrerne kopieres gennem WooCommerce’ kø af planlagte handlinger. Se under WooCommerce → Status → Planlagte handlinger, om der er mange ventende eller fejlede handlinger, og ryd op først. Hvorfor køen skal køre fra serveren, står i afsnittet om baggrundsjob.
- Et roligt tidspunkt: Planlæg ikke skiftet lige op til et stort udsalg. Ligger Black Friday tæt på, så se vores Black Friday-tjekliste, og skift bagefter.
Tjek plugins og specialkode
Plugins melder selv, om de er kompatible med HPOS. WooCommerce viser det på plugin-siden og under WooCommerce → Indstillinger → Avanceret → Funktioner, og så længe et aktivt plugin er markeret som ukompatibelt, kan du ikke skifte. Se efter en nyere version, spørg udvikleren, eller find et alternativ.
Sværere er det, der ikke melder noget: specialkode i temaet, små plugins, som en tidligere udvikler har lavet, og ældre plugins, der ikke er opdateret længe. Det er kode, der henter ordrer med get_post_meta(), søger efter indlæg af typen shop_order eller skriver SQL direkte mod wp_posts og wp_postmeta. Den virker, så længe ordrerne ligger der, og holder stille op med at virke, når de ikke gør. Få den gennemgået, og ret den til WooCommerce’ egne funktioner, før du skifter.
Trin 1: Slå synkronisering til
Under WooCommerce → Indstillinger → Avanceret → Funktioner slår du kompatibilitetstilstand til, mens shoppen stadig bruger den gamle lagring. WooCommerce begynder så at kopiere de eksisterende ordrer til HPOS-tabellerne i baggrunden, i portioner, og skriver nye ordrer begge steder. På samme side kan du se, hvor mange ordrer der mangler.
Har shoppen mange ordrer, kan det tage lang tid gennem køen. Har du eller din hostingudbyder adgang til WP-CLI på serveren, kan synkroniseringen køres derfra i stedet. WooCommerce’ dokumentation om HPOS-værktøjerne til WP-CLI (på engelsk) beskriver kommandoerne:
| Kommando | Hvad den gør |
|---|---|
wp wc hpos status | Viser, om HPOS og kompatibilitetstilstand er slået til, og om der mangler synkronisering |
wp wc hpos count_unmigrated | Tæller de ordrer, der endnu ikke er kopieret |
wp wc hpos sync | Kopierer ordrer fra den lagring, shoppen bruger nu, til den anden |
wp wc hpos verify_data | Sammenligner ordrerne i de to lagringer og viser forskelle |
For større shops har WooCommerce også en vejledning til store shops (på engelsk). Gå ikke videre, før alle ordrer er synkroniseret.
Trin 2: Skift på kopien, og test hele forløbet
Gør det samme på kopien, og skift så ordrelagringen til HPOS med synkroniseringen stadig slået til. Gå derefter alt igennem, der rører en ordre:
- Læg en ordre med hver betalingsmetode og hver fragtmetode.
- Åbn, ret og søg efter ordrer i admin, også gamle ordrer.
- Tjek ordremails, fakturaer og fragtlabels.
- Tjek, at ordrer når frem til regnskab, lager og andre systemer, der får dem.
- Lav en refusion, og tjek abonnementer og rapporter, hvis shoppen bruger dem.
Virker noget ikke, så skift tilbage på kopien, ret det, og prøv igen. Det er præcis det, kopien er til.
Trin 3: Skift på den rigtige shop
Når kopien virker, og alle ordrer på den rigtige shop er synkroniseret, skifter du ordrelagringen til HPOS på samme side. Shoppen behøver ikke lukke: kunderne kan handle undervejs, fordi nye ordrer skrives begge steder. Vælg alligevel et roligt tidspunkt, så færrest mulige ordrer kommer ind, mens du tjekker.
Læg en testordre lige bagefter, og følg den hele vejen: admin, mails, betaling og integrationer. Har du WP-CLI, så kør wp wc hpos verify_data for at se, at de to lagringer stemmer overens.
Trin 4: Lad synkroniseringen køre, og slå den så fra
Lad kompatibilitetstilstand være slået til et stykke tid efter skiftet, så længe at alle de ting, der sker med ordrer i en normal periode, har været igennem: refusioner, abonnementsfornyelser, eksport til regnskab. Så kan du skifte tilbage, hvis noget dukker op.
Når alt virker, slår du synkroniseringen fra. Så skriver WooCommerce kun til HPOS-tabellerne, og du får den fulde gevinst. De gamle ordredata bliver liggende i wp_posts og wp_postmeta. Lad dem ligge, til du er helt sikker, og tag en backup, før nogen rydder op i dem.
Hvis noget går galt
Er synkroniseringen stadig slået til, skifter du blot ordrelagringen tilbage til WordPress’ indlæg, og shoppen kører videre på de gamle tabeller med alle ordrer. Har du allerede slået synkroniseringen fra, har de gamle tabeller ikke fået de nyeste ordrer. Så skal synkroniseringen slås til igen og køre færdig, før du skifter tilbage.
Ofte stillede spørgsmål
Skal shoppen i vedligeholdelsestilstand under skiftet?
Nej, ikke hvis alle ordrer er synkroniseret, før du skifter. Synkroniseringen kører, mens shoppen er åben, og selve skiftet er en indstilling.
Hvor lang tid tager synkroniseringen?
Det afhænger af antallet af ordrer, hvor mange data plugins har gemt på dem, og serveren. Følg tallet over manglende ordrer under Funktioner, eller brug wp wc hpos count_unmigrated, og planlæg efter det.
Vil du have hjælp?
Det tidskrævende ved et HPOS-skifte er at finde de plugins og den kode, der går direkte til de gamle tabeller. Vil du have, at vi gennemgår shoppen og står for skiftet, så læs om optimering af din WooCommerce-shop. Vi kigger gratis på din shop først og siger, hvad der skal til.