Spletna trgovina

Opis

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:

php panstore_daemon.php

Da zagotovimo kontinuirano izvajanje je potrebno izvajanje datoteke dodati v cron opravilo, ki se izvaja npr. 1x/5min. Ko se panstore_daemon.php zažene se izvaja kontinuirano neodvisno od cron opravila. Cron opravilo samo periodično preverja ali je sinhronizacija aktivna in 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.

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.

 

max-execution-time

This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30. When running PHP from the command line the default setting is 0.

http://php.net/manual/en/info.configuration.php#ini.max-execution-time

 cron job...

Večkratni simultani zagon 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 namene 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.

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.

user@host:/var/www/public_html/panstore# killall panstore_daemon.php

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)

 

 

Ocena besedila

Vprašanja in komentarje lahko vpišete spodaj