Opis
Delovanje panstore sinhronizatorja v spletni trgovini
Na strani spletne trgovine mora biti zagnana datoteka panstore_daemon.php, ki poskrbi da se izvajajo spremembe v trgovini. To naredimo tako da jo dodamo Hiter opis namestitve in načina delovanja sinhronizacije v spletni trgovni.
Namestitev
- V root mapi spletne trgovine kreirajte novo mapo panstore. Npr. če je root /var/www/public_html potem kreirajte mapo /var/www/public_html/panstore. V to mapo prenesete vse datoteke, ki se nahajajo v datoteki WebStore.zip
- V datoteki settings.php se nahajajo osnovne nastavitve trgovine, kot je tip trgovine in prijavni podatki na bazo podatkov (v primeru Magenta prijavnih podatkov ni potrebno vpisati)
Zagon
Za pričetek sinhronizacije je dovolj zagon datoteke panstore_daemon.php, npr:
Code Block |
---|
|
php panstore_daemon.php |
Da zagotovimo kontinuirano izvajanje je potrebno izvajanje datoteke dodati v cron opravilo, ki se izvaja npr. 1x/uro5min. Ko se panstore_daemon.php zažene se izvaja kontinuirano neodvisno od cron opravila. Cron opravilo samo preveri periodično preverja ali je sinhronizacija aktivna in se jo ponovno zažene če ni (npr. pri ponovnem zagonu računalnika, če se ustavi mysql baza podatkov, če zapade v timeout, če se izvajanje sinhronizacije ustavi zaradi kakršnegakoli drugega razloga). Tudi če panstore_daemon.php v trgovini v času spremembe v poslovno informacijskem sistemu ni zagnan, se bodo vse spremembe izvedle v trenutku ko ga boste zagnali.Zagon izvedemo preprosto preko ukaza.
Izvajanje skripte lahko zaradi časovne omejitve (timeout) prepreči tudi spletni strežnik, zato preverite kakšne so nastavitve. Privzeto v CLI načinu (cron) ni omejitev.
Expand |
---|
|
Localtabgroup |
---|
Localtab |
---|
| Image Added Image Added Code Block |
---|
| /usr/local/bin/php /home/naracami/public_html/NOVO/panstore/panstore_daemon.php >/dev/null 2>&1 |
|
Localtab |
---|
| Code Block |
---|
| */5 * * * * root cd / && run-parts --report /var/www/public_html/panstore/panlab_daemon.php >/dev/null 2>&1 |
|
|
|
Večkratni simultani zagon iste datoteke ni mogoč, v tem primeru se javi napaka in izvajanje se prekine.
Prekinitev/Ustavitev
Če želite sinhronizacijo ustaviti to lahko naredite tako da v direktoriju kreirate datoteko exit.txt ali stop.txt. Stop.txt prepreči tudi zagon sinhronizatorja medtem ko exit.txt omogoča enkratno izvajanje sinhronizacije (ena iteracija), kar je koristno predvsem za testiranjenamene testiranja. Ko se panstore_daemon.php ustavi kreira datoteko ok.txt, ko se zažene se ta datoteka izbriše. Tak način je uporaben predvsem ko nimamo neposrednega SSH dostopa in je potrebno sinhronizacijo uravnavati na nivoju FTP strežnika.
Code Block |
---|
|
user@host:/var/www/public_html/panstore# > stop.txt
oz.
user@host:/var/www/public_html/panstore# > exit.txt |
V primeru dostopa do SSH terminala, lahko panstore ustavimo tudi preko ukaza, vendar priporočamo ustavljanje na zgornji način.
Code Block |
---|
|
user@host:/var/www/public_html/panstore# killall panstore_daemon.php |
Note |
---|
title | Sprememba PanStore datotek |
---|
|
Ker je panstore_daemon.php zagnan kot service (teče kontinuirano), ga je potrebno v primeru spremembe panstore datotek (datoteke, ki se nahajajo v direktoriju panstore) ponovno zagnati. Postopek ponovnega zagona je opisan zgoraj. |
Opis datotek
- panstore_daemon.php
"Osnovna" datoteka, ki povezuje vse ostale in izvaja neskončen loop iteracije. - settings.php
Nastavitve vezane na sinhronizacijo (v prihodnosti se bodo nastavitve prestavile na nivo SQL baze podatkov) - global_sql.php
Celotna logika SQL stavkov se nahaja v tej datoteki in sicer v obliki funkcij. Za izvedbo kakršnegakoli SQL ukaza se pokliče funkcijo definirano tukaj, katera vrne dejanski SQL ukaz, tudi glede na vhodne parametre funkcije.- global_sql_user.php
Uporabniške funkcije, ki prepisujejo funkcije v global_sql.php. V primeru nadgradnje se datoteka global_sql.php prepiše, medtem ko se te datoteke ne prepisuje
- load_header.php
Poskrbi za inicializacijo povezave, kreiranje osnovnih SQL tabel in nalaganje podpornih funkcij za modul - product_class_xxx.php
Vsebuje celotno logiko posodabljanja artiklov v spletni trgovini (kakšen SQL stavek se izvede da se izvede določena posodobitev v trgovini) - sync_price.php, sync_stock.php, sync_item.php
Osnovna logika posodabljanja cen/zaloge/artiklov na nivoju predprocesiranja podatkov v PanStore tabelah (označevanej neobstoječih artiklov, brisanje duplikatov, ...). Znotraj teh datotek se kreira instanca produkta in preko funkcij posodablja posamezne podatke spletnega artikla (class in funkcije so definirane v product_class_xxx.php)