Šajā rakstā: kā piegādātājam uzlikt automātisko atjaunošanas grafiku, kā serveris to izpilda, kuras komandas ar roku palaiž sistēmas administrators un kam kura darbība ir pieejama. Pati atjaunošana un tās palaišana ar roku ir rakstā Veikala atjaunošana — kā to palaist, bet fāzes, ko tā izpilda, — rakstā Veikala atjaunošana — fāzes un kas tajās notiek.
Divi vārdi, kas te atkārtojas: krājumu gājiens ir biežais un īsais (to palaiž poga pārlūkā un atjaunošanas grafiks), pilnais gājiens — retais un garais, kas nāk tikai no komandrindas vai no lauka Pilnā importa biežums.
Automātiskais grafiks
Grafiku uzliek katram piegādātājam atsevišķi:
- Kreisajā izvēlnē atveriet Integrāciju centrāle (kodā un adresēs — EcomLink) → cilne Piegādātāji.
- Atveriet vajadzīgo piegādātāju rediģēšanai.
- Cilnē Vispārējie atrodiet lauku Atjaunošanas biežums un izvēlieties vērtību.
- Turpat zemāk ir Pilnā importa biežums — tas ir neatkarīgs lauks ar savu sarakstu.
- Saglabājiet formu. Bez saglabāšanas grafiks nesāk darboties.
| Lauks | Pieejamās vērtības |
|---|---|
| Atjaunošanas biežums | Tikai manuāli (bez automātiskas atjaunošanas) (noklusējums), Katru stundu, Ik pēc 2 stundām, Ik pēc 4 stundām, Ik pēc 8 stundām, Ik pēc 12 stundām, Reizi dienā |
| Pilnā importa biežums | Tikai manuāli (bez automātiskas atjaunošanas) (noklusējums), Reizi dienā, Reizi nedēļā, Reizi mēnesī |
Saraksti ir atšķirīgi ar nolūku: krājumiem nav «Reizi nedēļā», pilnajam importam nav «Katru stundu». Vienīgā kopīgā vērtība ir Reizi dienā — tad abi darbi notiek neatkarīgi viens no otra, katrs lasot savu lauku.
⚠️ Saglabājot piegādātāja formu, pārbaudiet arī cilni «Importa uzvedība». Saglabāšana var atiestatīt grupas Atjaunot atjaunošanas laikā rūtiņas — visbiežāk Apraksti. Reāls gadījums: pēc formas saglabāšanas 1371 prece palika bez apraksta un veikalā neredzama. Pirms un pēc grafika uzlikšanas pārskatiet šo cilni: Importa uzvedība — ko datu plūsma drīkst pārrakstīt.
📷 Ekrānattēls: ecomlink/vendor — piegādātāja forma, cilne «Vispārējie», redzami lauki «Atjaunošanas biežums» un «Pilnā importa biežums» ar atvērtu sarakstu
Kā to izpilda serveris
- Katram laukam ir savas kāpnes un savi servera uzdevumi — krājumiem stundas / 2 h / 4 h / 8 h / 12 h / dienas, pilnajam importam dienas / nedēļas / mēneša. Daļā veikalu dienas krājumu uzdevums ir «vieglais» variants, kas pilno gājienu nepalaiž.
- Uzdevums paņem visus ieslēgtos piegādātājus, kuriem attiecīgais lauks atbilst tieši šim biežumam. Nesaprotama vai tukša vērtība nozīmē manuāli — tādu piegādātāju neviens uzdevums nepaņem.
- Tiem tiek palaisti importi pēc kārtas, gaidot katra beigas (nevis fonā — citādi atjaunošana publicētu iepriekšējās reizes datus).
- Kad visi importi pabeigti, vienu reizi tiek palaista veikala atjaunošana attiecīgajā gājienā: krājumu uzdevums palaiž krājumu gājienu, pilnā importa uzdevums — pilno.
- Ja neviens piegādātājs uz šo reizi nav gatavs, netiek palaists nekas — arī veikala atjaunošana ne.
Divas praktiskas sekas. Jauns piegādātājs nekad nesāk importēties pats — noklusējums ir «Tikai manuāli (bez automātiskas atjaunošanas)». Un pilnais imports pēc grafika ir nakts darbs: dienas uzdevums sākas agrās rīta stundās un tam atvēlēta atlikusī nakts, tāpēc datu plūsmu, kas līdz rītam nepaspēj, labāk likt uz Reizi nedēļā.
Kā pārbaudīt, vai grafiks strādā
- Pēc saglabāšanas pagaidiet vienu intervālu (uzlikāt «Katru stundu» — gaidiet stundu; «Reizi dienā» — nākamo rītu). Uzdevumi sākas savā laikā, nevis uzreiz pēc saglabāšanas.
- Vadības panelī skatieties piegādātāja rindas kolonnu Pēdējais imports, bet veikala atjaunošanas logā — rindu pie statusa zīmītes Pēdējā palaišana: <datums un laiks>. Ja laiks ir pavirzījies, grafiks strādā. (Tāda paša nosaukuma lauks grupā Laiks te neder: tas rāda iepriekšējās izpildes ilgumu, nevis laiku, kad tā notika.)
- Ja laiks nemainās, atveriet Žurnālus un meklējiet šī piegādātāja izpildi. Ja arī tur nekā nav, rakstiet atbalstam — pievienojiet piegādātāja kodu, uzlikto biežumu un laiku, kad izpildi gaidījāt.
📷 Ekrānattēls: ecomlink/ecomlink — veikala atjaunošanas logs dīkstāvē: statusa zīmīte «Pabeigts», tvērums un blakus «Pēdējā palaišana: <datums un laiks>»
Atsevišķs gadījums: ja Pilnā importa biežums ir uzlikts uz «Reizi dienā», bet pilnie importi tā arī nenotiek, tas var būt servera uzdevumu konfigurācijas jautājums — daļā veikalu dienas uzdevums ir aizstāts ar vieglāku variantu, kas pilno gājienu nepalaiž. Pēc 3. punkta izpildes to var apstiprināt atbalsts.
Komandas ar roku (sistēmas administratoram)
Šīs komandas palaiž EcomCart atbalsts vai sistēmas administrators ar SSH pieeju serverim. Ja jums vajag pilno gājienu — uzrakstiet atbalstam, norādot piegādātāja kodu; no pārlūka to palaist nevar.
Visas komandas palaiž no veikala saknes: php oc_cli.php admin <maršruts> <argumenti>. Karogu secība nav svarīga: viss, kas sākas ar --, ir karogs, viss pārējais — pozicionāls arguments.
Maršrutā ecomlink/cli ir piecas komandas. Trīs no tām — shopupdate, run un claimlinks — maina datus (divām ir arī drošais režīms: --plan un claimlinks bez --apply). Divas pēdējās — cutover un pim — neraksta neko nekad: tās tikai lasa un izdrukā, un tieši tāpēc ar tām piegādātāju var pārbaudīt, neaiztiekot ne veikalu, ne moduļa tabulas. Tabulas beigās ir vēl divas cli_master komandas — tās nav Integrāciju centrāles komandas, bet servera uzdevumu ietinamie, ko palaiž cron.
| Komanda | Ko dara |
|---|---|
ecomlink/cli/shopupdate |
veikala atjaunošana, krājumu gājiens, viss katalogs |
ecomlink/cli/shopupdate <kods> |
tas pats, tikai viena piegādātāja tvērumā |
ecomlink/cli/shopupdate --full |
pilnā caurule ar dzēsējfāzi — ar roku palaižama tikai šeit |
ecomlink/cli/shopupdate --plan |
izdrukā fāžu plānu un neveic nevienu izmaiņu veikala katalogā |
ecomlink/cli/run <kods> |
krājumu imports vienam piegādātājam |
ecomlink/cli/run <kods> --full |
pilnais imports vienam piegādātājam |
ecomlink/cli/claimlinks [<kods>] |
saskaita vecās kategoriju saites, ko modulis drīkstētu pārņemt; ar --apply tās pārņem |
ecomlink/cli/cutover <kods> [--full] [--sample=N] |
neko nemaina: izdrukā, kas veikalā mainītos, ja šis piegādātājs pārņemtu preces, kuras šodien uztur kas cits |
ecomlink/cli/pim [<kods>] |
neko nemaina: pārbauda, vai veikals ir pareizi savienots ar EcomCart PIM, un, ja nav, izdrukā rindu, kas jāpieliek konfigurācijā |
shop4rent/cli_master/ecomlink_stock [<biežums>] |
visu ieslēgto piegādātāju krājumu imports + viena atjaunošana |
shop4rent/cli_master/ecomlink_full [<biežums>] |
tas pats pilnajā gājienā |
<biežums> ir servera uzdevuma nosaukums (hourly, daily_2h, …, daily krājumiem; daily, weekly, monthly pilnajam) — tieši to padod cron. Bez biežuma nosaukuma abas cli_master komandas paņem visus ieslēgtos piegādātājus, arī tos, kuriem grafiks ir «Tikai manuāli (bez automātiskas atjaunošanas)».
Izpildes beigās komandrindā parādās kopsavilkums Done (ok): inserted=… updated=… images=… total=… peak=… MB. Divos gadījumos šīs rindas vietā ir viens teikums: kad slēdzeni tur cita izpilde un kad kopš pēdējās reizes nekas nav mainījies — abos izejas kods joprojām ir 0. Izejas kods 1 nozīmē, ka bija kļūda. --plan ir drošs veids, kā apskatīt, ko konkrētais gājiens darītu: tas izdrukā visas fāzes secībā, atzīmējot izlaistās un tās, kuru izpilde ir atkarīga no izmaiņām. Veikala katalogā tas neko nemaina; vienīgais, ko tas var izdarīt, ir izlīdzināt moduļa paša tabulu shēmu, ja tā ir atpalikusi.
cutover — ko veikalā mainītu šī piegādātāja pārņemšana
ecomlink/cli/cutover <kods> [--full] [--sample=N] atbild uz jautājumu, ko nevar uzdot nevienam ekrānam: ja šo piegādātāju tagad ieslēgs, kādi skaitļi veikalā mainīsies? Tas ir domāts precēm, kas veikalā jau ir, bet tur nonākušas citādi — no vecā moduļa, no cita savienotāja vai ar roku —, un tagad tās pārņems Integrāciju centrāle.
Komanda neko neraksta un neko nelejupielādē. Tā nolasa to datu plūsmas failu, kas jau ir veikala krātuvē no pēdējās lejupielādes, un salīdzina to ar veikala rindām. Tāpēc to drīkst palaist cik reižu grib, arī piegādātājam ar lejupielāžu ierobežojumu.
- bez piegādātāja koda komanda izdrukā lietojumu un beidzas ar kļūdu;
- bez karogiem tā salīdzina krājumu gājienu — tas ir vienīgais, ko palaiž grafiks;
--fullsalīdzina pilno; --sample=Nnosaka, cik atšķirīgās rindas izdrukāt paraugam (noklusējums 40,--sample=0— nevienu).
Ko izdrukā:
| Izdrukas daļa | Ko tur meklēt |
|---|---|
| Galvene | avota faila nosaukums, izmērs, vecums un parsētāja ID |
Currency: |
plūsmas, cenošanas un veikala valūta, un pārrēķina koeficients |
read un četras apakšrindas |
cik rindu plūsmā, un cik no tām nav salīdzināmas: nesagatavotas (unstaged), variantu bērni (child), sagatavotas bez veikala preces (unlinked), piesaistītas veikala precei, kuras vairs nav (dangling) |
REPEATED IDENTITY |
parādās tikai tad, ja plūsmā viens artikuls ir vairākās rindās. Imports patur vienu rindu un daudzumus nesaskaita — izdruka nosauc, cik rindu cena un daudzums tiek izmesti |
COMPARED |
cik preces tiešām salīdzinātas, un cik no tām atšķiras daudzums, statuss un cena |
price ratio |
cenu attiecības sadalījums (min / p25 / p50 / p75 / max) |
Rinda vendor state: |
piegādātāja pašreizējais stāvoklis: enabled, stage_new, publish_new, pēdējais krājumu imports; aiz tās vēl var sekot WARNING rinda un atšķirīgo rindu paraugs |
🔴 Divas vietas šajā izdrukā ir brīdinājumi, ne statistika. Ja cenu attiecība ir ap 1,00, veikalā jau ir šīs plūsmas cenas — uzlikt tām virsū uzcenojuma plānu nozīmē uzcenot otrreiz. Un, ja publish_new ir ieslēgts, kamēr ir unlinked rindas, komanda to pasaka atsevišķā rindā ar vārdu WARNING: nākamā veikala atjaunošana šīs rindas publicēs kā jaunas preces blakus tām, kas veikalā jau ir. Abos gadījumos vispirms jārunā ar atbalstu, nevis jāieslēdz grafiks.
pim — vai veikals ir savienots ar EcomCart PIM
ecomlink/cli/pim [<kods>] pārbauda to pašu savienojumu, ko ekrāns Integrācija rāda ar vienu joslu augšpusē. Arī šī komanda neraksta neko — ne moduļa tabulās, ne PIM pusē.
Ja PIM šim veikalam nav konfigurēts, komanda to nesauc par kļūdu, bet izdrukā tieši to rindu, kas jāpieliek veikala local-config.php failā (EC_PIM_API_KEY, un atsevišķos veikalos arī EC_PIM_TENANT_SLUG). Tā ir visa atbilde uz jautājumu «kāpēc Ņemt saturu neko neatnes».
Ja PIM ir konfigurēts, izdrukā ir: galapunkta adrese un gaidītais tenants; meta rinda ar API versiju, tenanta nosaukumu un numuru; ierobežojumi (lapas izmērs, pieprasījumi minūtē, notikumu glabāšanas dienas); notikumu veidu saraksts; un rinda boundary:, kas apliecina, ka veikala atslēga PIM pusē neko nedrīkst rakstīt — ne kanonisko preci, ne piedāvājumu.
Ja pieliek piegādātāja kodu, komanda papildus parāda, uz kuru PIM piegādātāju un kontu šis piegādātājs ir sasaistīts, nolasa vienu lapu tā piedāvājumu (ar kategoriju ceļiem) un vienu kanonisko preci no gala līdz galam — ar tās SKU, GTIN, MPN, ražotāju un tekstu, vērtību, attēlu, kategoriju un izcelsmes ierakstu skaitu. Ja piegādātāja konta nosaukums ir kļūdains, tieši šeit tas atklājas — un atbilde uzskaita nosaukumus, kas šim piegādātājam tiešām ir. Bez šīs komandas tas pats atklātos stundas vēlāk, pilnā importa PIM posmā.
Kas ko drīkst
| Darbība | Kam pieejama |
|---|---|
| Redzēt pogu Palaist veikala atjaunošanu | rediģēšanas tiesības uz vadības paneli |
| Palaist vai apturēt atjaunošanu | rediģēšanas tiesības uz darbību ecomlink/shop_update — tā ir atsevišķa tiesību rinda |
| Redzēt saiti Skatīt logu | piešķirta piekļuve ecomlink/logs |
| Atvērt ekrānu Žurnāli | tikai sistēmas administrators — pārējos saite nosūta atpakaļ uz vadības paneli |
| Palaist pilno cauruli ar roku | vajadzīga piekļuve serverim (SSH); atsevišķas admin tiesību pārbaudes komandrindā nav |
Palaist cutover vai pim |
vajadzīga piekļuve serverim (SSH); pašas komandas neko nemaina, tāpēc tās drīkst palaist arī dzīvā veikalā |
Ja kaut kas nestrādā
Grafiks uzlikts, bet nekas nenotiek. Izejiet pārbaudi pa soļiem sadaļā Kā pārbaudīt, vai grafiks strādā šī raksta augšā — vispirms nogaidiet vienu intervālu, tad skatiet kolonnu Pēdējais imports un loga rindu Pēdējā palaišana: …, un tikai pēc tam Žurnālus.
Kļūmes pašā atjaunošanā ir aprakstītas blakus rakstos: palaišanas un slēdzenes ziņojumi («Neizdevās sākt veikala atjaunošanu.», «Veikala atjaunošana jau notiek.») — Veikala atjaunošana — kā to palaist; preces, kas veikalā neparādījās, vecās cenas, izlaistas fāzes un «Apstājās fāzē: …» — Veikala atjaunošana — fāzes un kas tajās notiek.