Š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](/hc/help2/articles/ecomlink-veikala-atjaunosana-palaisana), bet fāzes, ko tā izpilda, — rakstā [Veikala atjaunošana — fāzes un kas tajās notiek](/hc/help2/articles/ecomlink-veikala-atjaunosanas-fazes).

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**:

1. Kreisajā izvēlnē atveriet **Integrāciju centrāle** (kodā un adresēs — EcomLink) → cilne **Piegādātāji**.
2. Atveriet vajadzīgo piegādātāju rediģēšanai.
3. Cilnē **Vispārējie** atrodiet lauku **Atjaunošanas biežums** un izvēlieties vērtību.
4. Turpat zemāk ir **Pilnā importa biežums** — tas ir neatkarīgs lauks ar savu sarakstu.
5. **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](/hc/help2/articles/ecomlink-importa-uzvediba).

> 📷 **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

1. 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ž.
2. 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.
3. Tiem tiek palaisti importi **pēc kārtas, gaidot katra beigas** (nevis fonā — citādi atjaunošana publicētu iepriekšējās reizes datus).
4. 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.
5. 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ā

1. 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.
2. 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.)
3. Ja laiks nemainās, atveriet [Žurnālus](/hc/help2/articles/ecomlink-zurnali-un-diagnostika) 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; `--full` salīdzina pilno;
- `--sample=N` nosaka, 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](/hc/help2/articles/ecomlink-zurnali-un-diagnostika).

**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](/hc/help2/articles/ecomlink-veikala-atjaunosana-palaisana); 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](/hc/help2/articles/ecomlink-veikala-atjaunosanas-fazes).
