LVISnet‑tukkuhintojen tuonti#
LVISnet on suomalaisten LVI- ja sähkötukkujen yhteinen hinta‑ ja tuotekatalogi. ELT käyttää sitä saadakseen reaaliaikaiset tukkuhinnat asentajien PWA:n tuotehakuun: kun asentaja skannaa viivakoodin kohteessa, hän näkee oikean tukkuhinnan ja saatavuuden.
Tuemme näitä tukkuja: Onninen, Dahl, Ahlsell, Sonepar.
Miten tuonti toimii#
Field Service → LVISnet → Fetch Sources näyttää tukkujen listan. Jokaiselle tukulle on:
- Active-flag: pitääkö LVISnet:n hakea automaattisesti?
- Last run -tila ja päiväys
- Pricelist johon hinnat tallentuvat
- Wholesaler -kytkös (tukkukauppa Odoo-puolella)
Automaattihaku on kuukauden 1. päivä klo 21:25 (_cron_fetch_all).
Hae manuaalisesti jos LVISnetistä on tullut tieto väliaikuisesta
hinnanpäivityksestä:
- Field Service → LVISnet → Fetch Sources.
- Klikkaa Onninen / Dahl / Ahlsell / Sonepar rivi.
- Fetch now -nappi.
- Tukku merkitään “fetch_requested” -tilaan; dispatcher‑cron (joka minuutti) noukkii ja käynnistää.
Mitä yksi haku tekee#
- Listaa OpusCapita-katalogi (REST API) → lista zip-tiedostoja.
- Lataa zipin (esim.
OLTUOTE.zip— Onninen Tuotetiedosto). - Avaa ja löytää sisältä TXT-tiedoston OVT-muodossa.
- Tunnistaa tyypin:
HINTA.txt→ hinnat → siirtyy pricelist:in pricelist_item:eihinTUOTE.txt→ tuotetiedot → siirtyy product_template:iin
- Tuo rivi kerrallaan, commitoi joka 1000 riviä (200.14 alkaen).
Tuonti on iso operaatio: yhden tukun TUOTE-tiedosto voi olla 170 000+ riviä, kestää ~2 tuntia ensimmäisellä kerralla. Kun valtaosa tuotteista on jo kannassa, päivittäinen ajo on nopeampi (~20-30 min) koska monet rivit ovat UPDATE eikä CREATE.
Edistyksen seuranta#
Field Service → LVISnet → Fetch Runs:
| Sarake | Mikä |
|---|---|
| Source | Mikä tukku |
| State | running / ok / error / partial |
| Started / Finished | Aikajakso |
| Files imported | Kuinka monta tiedostoa onnistui |
| Summary | Reaaliaikainen edistyminen, esim. “Importing OLTUOTE.txt: 87 000 / 171 540 rows” — päivittyy joka ~40 s |
Summary on uusi (200.15) — aiemmin tila näytti vain “running” koko tunnin tai pari, joten ei nähnyt etenikö se vai jumissa.
Watchdog#
Jos jokin tuonti roikkuu yli 4 tuntia ilman edistystä (tyypillisesti:
worker‑prosessi kuoli SIGKILL:lla, container restartti),
_unstick_stale_runs-watchdog merkitsee sen automaattisesti
error-tilaan ja avaa muut tukut uudelleen ajoon.
Ennen (60 min watchdog) tämä tappoi terveitä pitkiä tuonteja — nyt 4 h on riittävä headroom (200.15).
Päivittäisen toiminnan tarkistus#
Aamulla:
- Avaa Fetch Runs, suodata “Päivän”.
- Tarkista että 4 tukkua kaikki: ok-tila.
- Jos joku on error, klikkaa → Summary kertoo syyn:
Stuck for >240min→ tutki onko Odoo:ssa lukko-ongelmiaXML parse error→ kerrottu PR-pyynnössä, kysele toimitusten ottajaltaConnection refused→ LVISnet on alhaalla, odota ja yritä uudestaan
- Jos
partial, jokin tiedosto onnistui mutta toinen ei. Voi yrittää uudestaan Fetch now -napilla.
Tuotteiden ja hintojen näkyvyys#
Tuonnin jälkeen:
- Tuotteet näkyvät Inventory → Products:ssä
- Tukkuhinnat näkyvät kunkin tuotteen Pricelists-tabilla
- Saatavuus näkyy
lvisnet.product.wholesaler.stock-mallin riveissä (per tuote × tukku) - PWA tuotehakuun synkkautuu automaattisesti: asentaja näkee oikean tukkuhinnan kun skannaa viivakoodin