> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Näin tuot varaston CSV-tiedostosta

> Tuo olemassa oleva varasto TWICEen joukkona — pakolliset sarakkeet, miten riveistä tulee varastoartikkeleita ja mitä tuonti luo samalla.

<Frame caption="Inventaario > Varastoartikkelit">
  <img src="https://mintcdn.com/twicecommerce/5ARkyCTk5wMAizBn/images/inventory-stock-items-list.webp?fit=max&auto=format&n=5ARkyCTk5wMAizBn&q=85&s=d2a1eceae6c8d7703ea1187be5aa336a" alt="Varastoartikkelit-taulukko, jonka oikeassa yläkulmassa on Rekisteröi kohteet -painike" width="1920" height="1080" data-path="images/inventory-stock-items-list.webp" />
</Frame>

<Card title="Avaa TWICE-hallintapaneelissa" icon="external-link" href="https://admin.twicecommerce.com/inventory/stock-items" horizontal>
  inventory/stock-items
</Card>

Tuonti muuttaa jokaisen taulukon rivin varastoartikkeliksi. Se on nopein tapa tuoda olemassa oleva varasto TWICEen, ja tuonti tekee muutakin kuin luo artikkeleita: tuntemattomista SKU:ista, sijainneista ja sarakkeista tulee uusia SKU:ita, uusia sijainteja ja uusia attribuutteja. Se on kätevää silloin kun tarkoitat sitä ja kallista silloin kun et, joten alla olevat sudenkuopat kannattaa lukea ennen aloitusta eikä jälkikäteen.

## Edellytykset

<Warning>
  **Vaaditut käyttöoikeudet:** tuonti vaatii oikeuden `inventory:stock_item_general:create`. Tiedoston sisällöstä riippuen tuonti koskee myös näitä:

  * `inventory:stock_item_fulfilment:create` — rivit, joiden määrä on yli 1
  * `inventory:stock_item_attributes:create` — rivin attribuuttiarvot
  * `inventory:sku_general:create` — SKU:n nimi tai koodi, jota ei vielä ole
  * `location_settings:contact_info:create` — sijainnin nimi, jota ei vielä ole

  Neljä ensimmäistä ovat kaikilla järjestelmärooleilla. Viimeinen ei ole: **Memberillä on vain `location_settings:contact_info:view`**, joten Memberin tekemä tuonti epäonnistuu kokonaan, jos Sijainti-sarakkeessa on nimi, jota ei vielä ole sijaintina.
</Warning>

<Info>
  **Päätä ennen aloitusta:**

  * **Yksi rivi per artikkeli vai per ryhmä?** Rivin Määrä ratkaisee, eikä oletus ole sama kuin rekisteröintidialogissa — katso vaiheittainen ohje.
  * **Mitkä sarakkeet ovat jo attribuutteja.** Olemassa olevat attribuutit tarjotaan sarakkeiksi automaattisesti; kaikesta muusta, jonka yhdistät, tulee uusi attribuutti.
  * **Sijaintien tarkat nimet.** Täsmää ne olemassa oleviin sijainteihin merkilleen.
  * **Tilisi päivämäärämuoto.** **Saatavilla alkaen** luetaan sillä, ei ISO-muodossa.
</Info>

## Sarakkeet

Pakollisia sarakkeita on vain kaksi. Kaikki muut ovat valinnaisia, ja jokainen sarake voidaan yhdistää eri nimiseen otsikkoon tiedostossasi.

| Sarake                    | Pakollinen | Oletus                  | Huomioita                                                    |
| ------------------------- | :--------: | ----------------------- | ------------------------------------------------------------ |
| **Kohteen nimi**          |    Kyllä   | —                       | Artikkelin nimi. Ei voi olla tyhjä.                          |
| **Sijainti**              |    Kyllä   | —                       | Täsmättävä olemassa olevaan sijaintiin, muuten luodaan uusi. |
| **Koodi**                 |     Ei     | luodaan automaattisesti | Oltava yksilöllinen tiedostossa *ja* uusi varastossasi.      |
| **Varastonimike-koodi**   |     Ei     | —                       | Liittää artikkelin SKU:hun. Luo SKU:n, jos sitä ei ole.      |
| **Varastonimikkeen nimi** |     Ei     | —                       | Kuten yllä. Kumpi tahansa sarake tunnistaa SKU:n.            |
| **Tila**                  |     Ei     | `active`                | `active` tai `inactive`.                                     |
| **Määrä**                 |     Ei     | `1`                     | Välillä 1–9999.                                              |
| **Saatavilla alkaen**     |     Ei     | nyt                     | Luetaan tilisi päivämäärämuodossa.                           |

Tuonti tunnistaa tavallisia otsikkokirjoitusasuja itse: `qty` ja `count` vastaavat Määrää, `store` ja `warehouse` Sijaintia, `sku` Varastonimike-koodia, `title` ja `label` Kohteen nimeä sekä `id` ja `identifier` Koodia. Voit korjata mitä tahansa sen arvausta käsin.

## Vaiheittainen ohje

<Steps>
  <Step title="Avaa Varastoartikkelit-näkymä">
    Valitse sivupalkista **Inventaario > Varastoartikkelit**.
  </Step>

  <Step title="Aloita tuonti">
    Valitse oikeasta yläkulmasta **Rekisteröi kohteet** ja sitten **Tuo CSV**.
  </Step>

  <Step title="Lataa tiedosto">
    Valitse tiedostosi. Ohjattu toiminto etenee viidessä vaiheessa, jotka näkyvät englanniksi myös suomenkielisessä hallintapaneelissa: **Upload** (lataus), **Select header** (otsikkorivin valinta), **Match Columns** (sarakkeiden vastaavuus), **Validate data** (tietojen tarkistus) ja **Complete** (valmis).
  </Step>

  <Step title="Valitse otsikkorivi">
    Osoita tuonnille rivi, jolla sarakkeiden nimet ovat, jotta otsikkolohko tai tyhjät rivit datan yläpuolella eivät päädy artikkeleiksi.
  </Step>

  <Step title="Yhdistä sarakkeet">
    Yhdistä tiedostosi jokainen sarake TWICEn sarakkeeseen. **Kohteen nimi** ja **Sijainti** on molemmat yhdistettävä, ennen kuin voit jatkaa.

    Jokaisen sarakkeen, jota et yhdistä valmiiseen kenttään, voi tuoda **uutena attribuuttina**. Valitset tässä vaiheessa sen attribuuttiryhmän ja muodon, ja attribuutti luodaan tilillesi — eli ylimääräinen sarake, jonka jätät yhdistetyksi, lisää pysyvän attribuutin, joka pitää siivota myöhemmin.
  </Step>

  <Step title="Päätä, miten kutakin riviä seurataan">
    Tämä vaihe yllättää. Rivin **Määrä** ratkaisee, syntyykö yksi tietue vai useampi, ja CSV-tuonti toimii *päinvastoin* kuin rekisteröintidialogi:

    | Rivin Määrä   | Lopputulos                                                                                |
    | ------------- | ----------------------------------------------------------------------------------------- |
    | 1 tai tyhjä   | Yksi varastoartikkeli, seurataan yksilöllisesti                                           |
    | 2 tai enemmän | **Yksi yhteiskäyttöinen varastoartikkeli**, jonka varastosaldo on tämä, yhden koodin alla |

    Rekisteröintidialogi seuraa oletuksena yksilöllisesti ja luo yhden tietueen per yksikkö. Tuonti ei koskaan tee niin: jokaisesta rivistä, jonka määrä on yli 1, tulee yksi yhteiskäyttöinen tietue. Jos tarvitset jokaiselle yksikölle oman seurannan — oman koodin, historian ja kulut — anna kullekin yksikölle oma rivi, jonka määrä on 1.
  </Step>

  <Step title="Tarkista tiedot">
    Tuonti tarkistaa jokaisen solun ja raportoi virheet. Korjaa ne ohjatussa toiminnossa tai tiedostossasi ja lataa uudelleen.
  </Step>

  <Step title="Vie tuonti loppuun">
    Suorita tuonti. Suuret tiedostot lähetetään 1 000 rivin erissä, joten iso tuonti kestää hetken.
  </Step>
</Steps>

## Mistä tiedän, että se onnistui?

Avaa **Inventaario > Varastoartikkelit**. Uudet rivit ovat taulukossa, ja otsikkorivin yhteenveto — varastotietueiden kokonaismäärä ja **Viimeksi luotu** — vastaa tuontia.

Tarkista sitten, mitä tuonti loi artikkeleiden ohella:

* **SKU:t** — jokainen SKU:n nimi tai koodi, jota ei ollut, on nyt näkymässä **Inventaario > Varastonimikkeet**.
* **Sijainnit** — jokainen sijainnin nimi, jota ei ollut, on nyt kohdassa **Asetukset > Toimipisteet**, ilman osoitetta ja aukioloaikoja.
* **Attribuutit** — uusina attribuutteina tuodut sarakkeet ovat nyt kohdassa **Asetukset > Attribuutit ja Tagit**.

## Vianmääritys ja yleiset sudenkuopat

<AccordionGroup>
  <Accordion title="Toin 50 yksikköä, mutta sain vain yhden tietueen">
    **Syy:** rivin Määrä oli 50, ja tuonti käsittelee yli 1:n määrän yhtenä yhteiskäyttöisenä tietueena — päinvastoin kuin rekisteröintidialogin oletus.

    **Ratkaisu:** anna kullekin yksikölle oma rivi, jonka määrä on 1, ja tee tuonti uudelleen. Arkistoi yhteiskäyttöinen tietue, jota et halua.

    Lue lisää: [Varaston seuranta](/docs/fi/concepts/inventory/inventory-tracking)
  </Accordion>

  <Accordion title="Kirjoitusvirhe Sijainti-sarakkeessa loi uuden sijainnin">
    **Milloin näin käy:** tuonti hyväksyy minkä tahansa sijainnin nimen ja luo ne, joita se ei tunnista. ”Helsingin myymälä” ja ”Helsingin myymälä ” ovat sille kaksi eri sijaintia.

    **Mitä tehdä:** tarkista **Asetukset > Toimipisteet** jokaisen tuonnin jälkeen. Näin luodulla sijainnilla ei ole osoitetta eikä aukioloaikoja, ja se perii aikavyöhykkeen ensimmäiseltä olemassa olevalta sijainniltasi — se ei siis toimi oikean sijainnin tavoin, ennen kuin täydennät sen. Sijainnit voivat myös vaikuttaa pakettisi laskutukseen, joten vahingossa syntynyt sijainti kannattaa poistaa.

    Lue lisää: [Sijainnit](/docs/fi/settings/locations)
  </Accordion>

  <Accordion title="Koodi on jo olemassa inventaariossa">
    **Syy:** kohteiden koodit ovat yksilöllisiä koko tililläsi, ja tuonti vertaa tiedostoasi sekä olemassa olevaan varastoon että itseensä.

    **Ratkaisu:** poista tai muuta kaksoiskappaleina olevat koodit, tai jätä Koodi-sarake kokonaan pois ja anna TWICEn luoda koodit.
  </Accordion>

  <Accordion title="Virheellinen päivämäärämuoto">
    **Syy:** **Saatavilla alkaen** luetaan tilisi päivämäärämuodossa, ei ISO-muodossa. Muodossa `2026-03-14` kirjoitettu tiedosto epäonnistuu tilillä, jonka muoto on `DD/MM/YYYY`.

    **Ratkaisu:** muuta tiedosto tilisi muotoon tai vaihda muoto kohdassa **Asetukset > Yleiset** ennen tuontia.
  </Accordion>

  <Accordion title="Sarakkeesta, jota en halunnut, tuli attribuutti">
    **Milloin näin käy:** jokainen yhdistämätön sarake, joka tarjotaan uudeksi attribuutiksi, luodaan tilillesi — ei vain tuotuihin riveihin.

    **Mitä tehdä:** poista se kohdassa **Asetukset > Attribuutit ja Tagit**. Ohita sarake Match Columns -vaiheessa ensi kerralla sen sijaan, että yhdistät sen.
  </Accordion>

  <Accordion title="”Jotain meni pieleen” ja vain osa tiedostosta tuli tuoduksi">
    **Milloin näin käy:** tuonti lähettää rivit erissä. Jos myöhempi erä epäonnistuu, aiemmat erät on jo luotu, joten tuloksena voi olla osittainen tuonti.

    **Mitä tehdä:** tarkista taulukosta, mikä ehti mennä läpi, ennen kuin ajat tuonnin uudelleen, ja suodata **Luotu**-sarakkeen mukaan löytääksesi osittaisen erän. Yleisin syy on Member, joka törmää uuteen sijainnin nimeen — katso käyttöoikeudet yllä.
  </Accordion>
</AccordionGroup>

## Seuraavat askeleet

<CardGroup cols={2}>
  <Card title="Rekisteröi varastoartikkeleita" icon="plus" href="/docs/fi/guides/inventory/register-stock-items">
    Dialogin kautta, yksi artikkeli tai muutama kerrallaan.
  </Card>

  <Card title="Varaston seuranta" icon="barcode" href="/docs/fi/concepts/inventory/inventory-tracking">
    Sarjanumeroitu ja yhteiskäyttöinen seuranta, ja milloin kumpikin sopii.
  </Card>

  <Card title="SKU:t" icon="layer-group" href="/docs/fi/inventory/skus/overview">
    Tuotemäärittelyt, joihin tuodut artikkelit liittyvät.
  </Card>

  <Card title="Attribuutit" icon="tag" href="/docs/fi/concepts/admin/attributes">
    Miten attribuuttien muodot ja ryhmät toimivat, ennen kuin luot lisää.
  </Card>
</CardGroup>
