Šis raksts ir par to, kas notiek ar sasaistītā atribūta vērtību: kā no teksta tiek izlasīts skaitlis, kā tiek atpazīta mērvienība, uz ko to pārrēķina un kad rezultāts nonāk veikalā. Pašu cilni **Izmēri**, tās ekrānu un sasaistīšanas soļus apraksta [Izmēri — atribūtu sasaiste](/hc/help2/articles/ecomlink-izmeri-un-normalizacija).

Divi jēdzieni, ko šeit lieto: **sagatavotā prece** ir importa ielasītais ieraksts, ko redz cilnē **Produkti**; **veikala prece** ir tā, ko redz pircējs un ko rediģē sadaļā **Katalogs → Produkti**. Veikala atjaunošana sastāv no soļiem, ko sauc par **fāzēm**.

## Kā tiek izlasīts skaitlis

Normalizētājs no vērtības vispirms izmet **visu, kas nav cipars, komats, punkts vai atstarpe** — tātad ne tikai burtus, bet arī defises, slīpsvītras, reizināšanas un plusa zīmes. Atstarpes tiek uzskatītas par tūkstošu atdalītāju un izmestas. Tālāk darbojas viena kārtula:

> Ja vērtībā ir **gan komats, gan punkts**, tiek salīdzināts **pēdējais punkts** ar **pirmo komatu**: ja pēdējais punkts ir aiz pirmā komata, decimālzīme ir **punkts**; pretējā gadījumā — **komats**. Otra zīme ir tūkstošu atdalītājs. Ja ir tikai komats — tas ir decimālzīme.

| Vērtība datu plūsmā | Kā tiek izlasīta |
|---|---|
| `1200` | 1200 |
| `1 200 mm` | 1200 (atstarpe = tūkstošu atdalītājs, burti izmesti) |
| `1,2 m` | 1,2 |
| `0.5 kg` | 0,5 |
| `10,987.78` | 10987,78 |
| `10.2324,99` | 102324,99 |
| `10-20 cm` | **1020** — defise tiek izmesta un diapazons salīmējas vienā skaitlī |
| `1/2 m` | **12** — slīpsvītra tiek izmesta un daļskaitlis salīmējas vienā skaitlī |
| `n/a`, `—`, tukšs, teksts bez cipariem | 0 |

Vērtība, kas izlasās kā **0, tiek klusi izmesta** — tā neko neaizpilda un neko nepārraksta. Prece ar tādu atribūta vērtību vienkārši paliek bez izmēra.

## Kā tiek atpazīta mērvienība

No vērtības tiek paņemti **tikai latīņu alfabēta burti**, pārvērsti mazajos, un salīdzināti ar divām tabulām. Tabulas ir **secīgas: uzvar pirmā sakritība**.

**Garums** (pārrēķina bāze — centimetri):

| Atpazīst | Piemēri |
|---|---|
| `mm`, `milim`, `millim` | mm, milimetri, millimeter |
| `cm`, `centim` | cm, centimetri |
| `dm`, `decim` | dm, decimetri |
| `m` | m, meter, metre, metri — **tikai pēc tam, kad mm/cm/dm ir izslēgti** |

**Svars** (pārrēķina bāze — kilogrami):

| Atpazīst | Piemēri |
|---|---|
| `kg`, `kilogr` | kg, kilogrami |
| `mg`, `milligr` | mg, milligram |
| `t`, `ton` | t, tonnas |
| `g` | g, gr, gram — **tikai pēc tam, kad kg/mg ir izslēgti** |

Svara tabulā ir viena asimetrija, kas maksā dārgi: latviskais vārds **miligrami** te **netiek atpazīts**, jo tajā nav ne `mg`, ne `milligr` (ar diviem «l»). Tāda vērtība izkrīt līdz `g` rindai un tiek nolasīta kā **grami** — skaitlis iznāk **1000 reižu par smagu**. Garumam šādas problēmas nav, jo tur tabulā ir gan `milim`, gan `millim`.

Ja mērvienība netiek atpazīta, tiek pieņemts, ka vērtība **jau ir bāzes mērvienībā** — centimetros vai kilogramos (bāzes mērvienība ir tā, caur kuru notiek pārrēķins: cm garumam, kg svaram).

### Divi likumi, kas izšķir rezultātu

**1. Pašā vērtībā ierakstītā mērvienība vienmēr uzvar.** Izvēlne **Avota mērvienība** — cilnes **Izmēri** redaktora trešā kolonna, pa vienai katrā mēra rindā — ir tikai rezerve vērtībai, kurai savas mērvienības nav. Atribūts, kura vērtības ir `12 cm`, `340 mm`, `1,2 m`, tiks pārrēķināts pareizi neatkarīgi no tā, kas izvēlnē izvēlēts — tātad viena atribūta iekšienē drīkst būt jauktas mērvienības.

**2. Pietiek ar jebkuriem burtiem, lai izvēlne vairs nestrādātu.** Rezerve tiek lietota **tikai tad, ja vērtībā nav neviena latīņu burta**. Vērtība `12 gab.` garuma rindā satur burtus, tie netiek atpazīti kā mērvienība — un tāpēc vērtība tiek uzskatīta par **12 centimetriem**, nevis par 12 milimetriem, lai gan izvēlnē ir izvēlēts `mm`.

> 📷 **Ekrānattēls:** ecomlink/dimension — atvērta «Avota mērvienība» izvēlne svara rindā ar vērtībām g / kg / mg / t

## Uz ko tas tiek pārrēķināts

Mērķa mērvienība **nenāk no šī ekrāna**. To nosaka pats veikals: kreisajā izvēlnē **Mans veikals → Vispārīgie iestatījumi**, cilne **Pamats**, lauki **Garuma mērvienība** un **Svara klase**. Tas ir **visa veikala** iestatījums — tas attiecas uz visiem piegādātājiem vienlaikus, un to mainīt drīkst tikai veikala administrators (bez tiesībām uz šo ekrānu izvēlnes punkta nav vispār). Ja veikalā ir izvēlēti centimetri un kilogrami, `1200mm` kļūst par `120`, bet `500 g` — par `0,5`.

> 📷 **Ekrānattēls:** shop4rent/wd_settings — cilne «Pamats», lauki «Garuma mērvienība» un «Svara klase»

Divas sekas, ko vērts zināt:

- **Mērķa klases apzīmējums tiek atpazīts pēc tās pašas tabulas.** Klase, kuras apzīmējums šajās tabulās nav (piemēram, collas), netiek atpazīta, un skaitlis paliek bāzes mērvienībā — centimetros vai kilogramos.
- **Veikala klases maiņa neko nepārrēķina atpakaļ.** Jaunā klase attieksies tikai uz turpmāk aizpildītajām vērtībām; jau ierakstītie skaitļi paliek tādi, kādi tie ir.

## Kad un kā rezultāts nonāk veikalā

Sasaiste tiek piemērota **veikala atjaunošanas** fāzē **Produktu izmēri un svars** — nevis importa laikā. Ceļš ir šāds:

1. Fāze paņem katru sasaistes rindu un normalizē **visas** sasaistītā atribūta atšķirīgās vērtības uz veikala klases mērvienību. Vērtības, kas izlasās kā 0, tiek izmestas.
2. Skaitļi tiek ierakstīti sagatavotajā precē — **tikai tur, kur attiecīgais mērs vēl ir tukšs**. Jau esošs izmērs (no plūsmas lauka vai no augstākas prioritātes sasaistes) netiek pārrakstīts.
3. Garums, platums un augstums tiek pārbīdīti uz veikala preci. Tas notiek **tikai tiem piegādātājiem, kuriem ieslēgts slēdzis «Izmēri un svars»** (piegādātāja forma, cilne [Importa uzvedība](/hc/help2/articles/ecomlink-importa-uzvediba)) — jaunam piegādātājam tas ir **izslēgts**.
4. Svars tiek pārbīdīts atsevišķā piegājienā tūlīt pēc tam, ar to pašu slēdzi.
5. Veikala precē vērtība tiek ierakstīta, ja tur vēl ir 0 **vai** ja šī prece attiecīgo lauku datu plūsmā tiešām atsūtīja. Tādēļ ar roku ievadīts izmērs veikala precē netiek nosists — un tukša vērtība plūsmā nekad neaizvieto esošo ar nulli.

Ja izmēru sasaistes nav nevienam piegādātājam, fāze tiek izlaista pavisam. Ja sasaiste nav mainīta un arī piegādātāju iestatījumi nav mainīti, atjaunošana šo fāzi var izlaist kā nemainītu — vadības panelī tas parādās kā «Izpildītas … fāzes, … izlaistas kā nemainītas». Sasaistes saglabāšana un notīrīšana abas atzīmē izmaiņu, tāpēc pēc tām nākamā atjaunošana fāzi izpilda.

> 📷 **Ekrānattēls:** ecomlink/ecomlink — vadības panelis tūlīt pēc veikala atjaunošanas ar rindu «Izpildītas … fāzes, … izlaistas kā nemainītas»

## Ko darīt ar nesaprastām vērtībām

Neatpazīta vērtība ir divu veidu, un tās ir ļoti nevienlīdzīgas:

**Nekaitīgais gadījums — vērtība izlasās kā 0.** `n/a`, tukša rinda, `pēc pieprasījuma`. Tāda vērtība tiek izmesta, prece paliek bez izmēra, neviens cits skaitlis netiek aizskarts. Darīt nekas nav jādara.

**Bīstamais gadījums — vērtība izlasās nepareizi.** To rada nevis pats skaitlis, bet zīmes tam blakus — gan burti, gan pieturzīmes:

- **Jebkurš `t`, kurā nav `kg` un `mg`, svara rindā nozīmē tonnas.** Vērtība `2 st` (divi gabali) tiks izlasīta kā **2 tonnas**. Tas pats attiecas uz jebkuru vērtību ar burtu `t`.
- **Jebkurš `m`, kurā nav `mm`, `cm` un `dm`, garuma rindā nozīmē metrus.**
- **`g` burts svara rindā nozīmē gramus** — `5 gab.` kļūst par 0,005 kg.
- **Latviskais «miligrami»** netiek atpazīts kā miligrami un tiek nolasīts kā **grami** — vērtība iznāk 1000 reižu par smagu.
- **Defise un slīpsvītra** tiek vienkārši izmestas, tāpēc diapazoni un daļskaitļi salīmējas vienā skaitlī: `10-20` kļūst par `1020`, `1/2` — par `12`. Atribūts, kura vērtības ir diapazoni, izmēram neder vispār.
- **Burti, kas neatbilst nevienai mērvienībai**, atslēdz izvēlni **Avota mērvienība** un liek vērtību uzskatīt par centimetriem vai kilogramiem.

Ko ar to darīt:

1. **Izvēlieties citu atribūtu.** Piemērots ir tāds, kura vērtībās ir tikai skaitlis (vai skaitlis ar mērvienību), bez gabaliem, iepakojumiem, diapazoniem un piezīmēm.
2. **Ja tāda atribūta nav, atstājiet mēru nesasaistītu.** Nesasaistīts mērs nedara neko: atribūts paliek parasts atribūts, izmērs paliek tukšs. Tas ir labāks stāvoklis nekā nepareizi skaitļi, jo izmērus veikalā lieto piegādes cenas aprēķins.
3. **Ja nepareizie skaitļi jau ir ierakstīti** — ņemiet vērā, ka sasaistes labošana tos **neizlabo**. Aizpildīšana notiek tikai tukšās vietās, un šajā ekrānā nav pogas, kas liktu pārrēķināt visu no jauna. Sasaistes maiņa attieksies uz precēm, kurām mērs vēl ir tukšs; pārējām vajadzīga palīdzība no atbalsta.

## Ja kaut kas nestrādā

**Svars veikalā ir absurds — tonnas vai tūkstoši.** Skatieties, kas ir sasaistītā atribūta vērtībās. Jebkura vērtība ar burtu `t` (piemēram, `2 st`) tiek izlasīta kā tonnas, burts `g` (piemēram, `5 gab.`) — kā grami, bet vārds «miligrami» — arī kā grami. Tāpat rīkojas diapazoni: `10-20` kļūst par `1020`. Atsaistiet šo mēru vai izvēlieties citu atribūtu; jau ierakstītos skaitļus sasaistes maiņa neizlabo.

**Izvēlēju «Avota mērvienību» mm, bet iznākums ir kā centimetros.** Vērtībās ir burti. Rezerves mērvienība tiek lietota tikai tad, ja vērtībā nav neviena latīņu burta; ja burti ir, bet mērvienība netiek atpazīta, skaitlis tiek uzskatīts par centimetriem (vai kilogramiem).

**Veikala mērvienība ir collas, un skaitļi izskatās kā centimetros.** Mērķa klase tiek atpazīta pēc tās pašas tabulas, kas vērtības. Klase, kuras apzīmējums tabulā nav, netiek atpazīta, un skaitlis paliek bāzes mērvienībā — centimetros vai kilogramos. Šādā veikalā izmēru sasaisti labāk nelietot vispār.

**Daļai preču izmērs ir, daļai nav.** Tas ir normāli divos gadījumos: precei nav šī atribūta vispār, vai arī tās vērtība izlasās kā 0 (tukša, `n/a`, teksts bez cipariem). Šādas vērtības tiek klusi izmestas.

Ekrāna un saglabāšanas problēmas — piegādātāja nav izvēlnē, pārskata tabulā mērā ir svītra «—», sagatavotajā precē izmēri ir, bet veikala precē nav — apraksta [Izmēri — atribūtu sasaiste](/hc/help2/articles/ecomlink-izmeri-un-normalizacija).
