- Vaša košarica je trenutno prazna
WooCommerce staging: prenos podatkov na produkcijo
Eden izmed najbolj priljubljenih vtičnikov za vzpostavitev testnega okolja v WordPressu je WP STAGING. Marsikateri razvijalec ga uporablja tudi za delo s spletno trgovino WooCommerce, kjer pa je treba biti nekoliko previden. Ob pošiljanju podatkov iz testnega v produkcijsko okolje namreč lahko pride do težav s prepisovanjem podatkov, povezanih z naročili, kupci in izdelki.
Omenjeni podatki morajo ob pushu s staging na live okolje ostati nedotaknjeni, kar lahko dosežemo na tri načine. V nadaljevanju vam bomo vse tri načine na kratko predstavili, najboljšega pa tudi podrobno opisali.
Kazalo
Kje WordPress shranjuje podatke?
Še preden se poglobimo v možnosti prenosa podatkov iz testnega v produkcijsko okolje, si poglejmo, kje WordPress oz. WooCommerce shranjuje naročila, izdelke, informacije o uporabnikih ter druge podatke, kot so denimo prispevki in strani.
Vsi podatki so shranjeni v podatkovni bazi, ki je sestavljena iz več tabel, npr.:
- Naročila in izdelki so shranjeni v tabelah
wp_posts
inwp_postmeta
, ločeni s poljem vrste objave po meri (ang. custom post type) z imenom “order“. - Tudi večina drugih podatkov, na primer prispevki, strani, elementi navigacije in podobno, je shranjenih v tabelah
wp_posts
inwp_postmeta
. - Podatki o uporabnikih pa so shranjeni v tabelah
wp_users
inwp_usermeta
.
V podatkovni bazi se nahajajo tudi druge tabele, vezane na WooCommerce, ki vsebujejo podatke, kot so davčne stopnje, postavke naročil in splošne nastavitve spletne trgovine.
Tabele v testnem okolju se začnejo s predpono wpstg(x)_
. V primeru spletne trgovine WooCommerce je omenjeni predponi dodan še zapis woocommerce_
, kar skupaj tvori wpstg(x)_woocommerce_
.
Znak x
v predponi tabele predstavlja zaporedno številko testnega okolja. Če bomo uporabljali več testnih okolij, se bodo imena tabel torej pričenjala z wpstg1_
, wpstg2_
in tako dalje.
Tri možnosti prenosa podatkov
Če želimo prenesti določene podatke iz testnega okolja v produkcijsko, ne da bi to vplivalo na podatke o naročilih, kupcih ipd., imamo na voljo tri možnosti.
1. Naročila, informacije o strankah in druge transakcijske podatke izvozimo iz produkcijskega spletnega mesta in jih uvozimo v testno okolje, preden testno okolje migriramo na produkcijo. Na ta način namreč lahko spletno trgovino s testnega okolja prenesemo v celoti.
Če nimate znanja o notranji strukturi baze podatkov, je ta način prenosa podatkov vsekakor priporočljiv. To je tudi način, ki ga bomo v naslednjem poglavju predstavili podrobneje.
2. Izključimo vse tabele v podatkovni bazi, razen tabele _options
, in izberemo le direktorije vtičnikov in grafične predloge, ki jih želimo prenesti v testno okolje. Na ta način poskrbimo za to, da ne prepišemo ali izgubimo podatkov na produkcijski spletni strani, ko podatke s staging strani prenesemo na live stran. Večina vtičnikov svoje nastavitve shranjuje v tabelo _options
, zato bodo ob pushu tudi te nastavitve prenesene na produkcijsko mesto.
Vsi ostali manjkajoči podatki, ki so zapisani v tabelah _posts
in _postmeta
, morajo biti na produkcijski strani ponovno kreirani. To uredimo ročno, in sicer po prenosu podatkov iz testnega v produkcijsko okolje.
3. Iz procesa prenosa iz testnega v produkcijsko okolje izključimo vse modificirane tabele v podatkovni bazi. Če se odločimo za ta način, ne bomo prenesli celotnega testnega okolja.
Odvisno od izključenih tabel (npr. _posts
, _postmeta
) lahko to vodi do manjkajočih slik ali layout elementov na produkcijski strani. Največkrat do omenjenih težav pride, če uporabljamo vizualni urejevalnik spletne strani, kot sta denimo WPBakery in Elementor, saj se v tem primeru dizajni shranjujejo v tabelah _posts
in _postmeta
.
Izvoz in uvoz podatkov v WooCommerce
Najboljši način za izvoz naročil in podatkov o izdelkih in kupcih je, da uporabimo vtičnik za izvoz/uvoz na produkcijski strani, nato pa uvozimo podatke v testno okolje, preden izvedemo push.
Preden izvozimo naročila in druge podatke iz produkcijskega okolja, je priporočljivo, da kreiramo dodatno testno okolje. Na ta način lahko pred izvozom in uvozom v primarno testno okolje celoten proces najprej testiramo.
Zdaj pa si poglejmo, kako v sedmih korakih opravimo postopek sinhronizacije testnega okolja s produkcijo.
1. Najprej spletno trgovino nastavimo v način vzdrževanja (ang. Under Maintenance).
2. V produkcijsko in testno okolje namestimo vtičnik Sequential Order Number for WooCommerce, ki poskrbi za to, da se zaporedne številke naročil ob uvozu ne spremenijo.
Do spremembe številke bi sicer lahko prišlo, ker ID WooCommerce naročila (ang. order ID) temelji na ID-ju WordPress prispevka (ang. post ID), ta pa predstavlja unikatno številko. Če bi bil ID prispevka na testnem okolju že uporabljen, bi bil uvoženemu naročilu dodan nov ID.
Vtičnik v bazo podatkov doda nov vnos, ki ID naročila shrani v ločeno polje. To omogoča, da spletna trgovina hrani ID-je naročil ločeno in neodvisno od ID-jev objav.
3. Tako v produkcijsko kot testno okolje namesimo še vtičnik Order Export & Order Import for WooCommerce, ki nam bo omogočil enostaven izvoz in uvoz podatkov o naročilih.
4. Zdaj je čas, da iz produkcijskega okolja izvozimo naročila. V administraciji spletne trgovine na produkciji se pomaknemo na WebToffee Import Export -> Export, kot vrsto prispevka izberemo Order in kliknemo na gumb Select an Export method.
Nato izberemo način izvoza Quick ter v naslednjem koraku kliknemo na Export. S tem se generira CSV datoteka, ki jo shranimo na računalnik.
5. Vpišemo se v administracijo staging okolja, kjer bomo pobrisali vsa naročila. To naredimo tako, da se pomaknemo v WooCommerce -> Orders, izberemo vsa naročila in jih prestavimo v koš (ang. Trash).
Pomembno je, da izbrišemo vsa naročila, saj jih bomo ponovno uvozili v naslednjem koraku, in sicer prek prej generirane CSV datoteke.
6. Zdaj bomo v testno okolje uvozili naročila. Pomaknemo se na WebToffee Import Export -> Import, kjer kot tip prispevka zopet izberemo Order ter kliknemo na gumb Select import method.
Ponovno določimo metodo Quick, nato pa izberemo datoteko CSV, ki smo jo pred kratkim shranili na računalnik. S klikom na gumb Import potrdimo proces uvoza.
Po tem koraku bi morala biti vsa naročila uvožena v testno okolje.
Ob uvozu naročil v testno okolje lahko pride do konflikta med ID-ji naročil ter ID-ji prispevkov, strani ali priponk. To se zgodi, če smo v testnem okolju dodajali nove prispevke, strani ipd. Pojavi se napaka Importing order(ID) conflicts with an existing post, prikazana na spodnji sliki.
Kaj lahko naredimo, če pride do omenjene težave? Odpreti moramo CSV datoteko, ki smo jo izvozili in shranili na računalnik (npr. s programom Excel ali LibreOffice) ter spremeniti ID naročila, zaradi katerega je prišlo do konflikta.
Kot prikazuje zgornja slika, številko ID naročila povečamo na višjo številko, ki še ni v uporabi. Nato CSV datoteko shranimo in jo ponovno uvozimo v testno okolje. Zdaj bi morala biti vsa naročila uspešno uvožena.
Pogledali smo si, kako opraviti izvoz in uvoz naročil (ang. Orders) v WooCommerce. Morda pa bomo morali izvoziti in uvoziti tudi izdelke (ang. Products) in uporabnike (ang. Users). Pri tem si lahko pomagamo z vtičnikoma Product Import Export for WooCommerce (brezplačna različica ne podpira spremenljivih izdelkov) in Import Export WordPress Users.
7. Zdaj imamo vse pripravljeno, da prenesemo podatke iz testega v produkcijsko okolje ter izključimo način vzdrževanja.
KOMENTARJI
Dodatna vprašanja?
KOMENTIRAJTE OBJAVO
Vaš komentar je bil uspešno oddan
Komentar bo viden na strani, ko ga naši moderatorji potrdijo.