> ## 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.

# Päivitykset

> TWICE Commercen päivitykset ja tiedotteet

<Update label="20. elokuuta 2026" description="Syötemaskit tekstiattribuuteille" tags={["Uusi ominaisuus"]}>
  ## `text`-attribuutti voi lukita hyväksymiensä arvojen muodon

  `text`-attribuutilla voi olla **syötemaskeja** — mallimerkkijonoja, jotka kuvaavat tarkan muodon, jonka arvo saa ottaa, esimerkiksi `123456 #### ######[#]` jäsenkortin numerolle. Maskit määritetään attribuuttipaneelissa kohdassa **Asetukset > Attribuutit ja tunnisteet**, osiossa **Hyväksytyt formaatit**, joka näkyy vain silloin, kun muoto on `text`. Jokainen rivi näyttää täytetyn esimerkin ja hyväksytyn arvon pituuden, joten yhden merkin virhe valinnaisessa lohkossa näkyy ennen tallennusta.

  Yksi maski kuvaa yhden muodon. Lisää attribuutille enintään 10 maskia, kukin enintään 100 merkkiä, kun kentän pitää hyväksyä useita muotoja — arvon on vastattava yhtä niistä. Listan maskien on oltava erotettavissa toisistaan kiinteiden alkujensa perusteella, ja TWICE hylkää listan, jossa yksi alku on toisen etuliite, nimeten kaksi ristiriitaista maskia.

  Kassalla attribuuttiin perustuva kenttä muotoilee arvon asiakkaan kirjoittaessa. Yhdellä maskilla kiinteä alku täytetään asiakkaalle valmiiksi, joten hän kirjoittaa vain oman osuutensa; useammalla maskilla ensimmäinen kirjoitettu merkki valitsee maskin. Ilman erottimia liitetty arvo normalisoidaan. Arvo, joka ei vastaa mitään maskia, pysyy kirjoitettaessa vapaana tekstinä ja hylätään lähetettäessä, joten virheellinen syöte estää vaiheen etenemisen. Maskit eivät koskaan tee kentästä pakollista — tyhjä arvo menee edelleen läpi, ellei **Pakollinen** ole valittuna.

  Maskit kuuluvat `text`-muotoon, ja ne tyhjennetään, jos vaihdat attribuutin muodon. Maskin lisääminen tai muokkaaminen tarkistaa siitä eteenpäin kirjoitettavat arvot; jo tallennettuja arvoja ei kosketa.

  [Attribuutit →](/docs/fi/concepts/admin/attributes)
</Update>

<Update label="20. elokuuta 2026" description="Ansaitun ja kertyneen erottelu tuottoraportissa" tags={["Parannus"]}>
  ## Tuottoraportti esittää luodun ja kirjatun tuoton erikseen

  Raportti kuvaa jakson kahtena joukkona yhden luvun sijaan: sillä **luodut** myynnit ja varaukset sekä sillä **kirjatut**. Kumpikin jaetaan kolmeen osaan toisen päivämäärän mukaan, ja niiden yhteinen solu esitetään erikseen, joten päällekkäisyys on näkyvissä eikä vain oletettuna. Älä laske kahta summaa yhteen — vain kirjattujen taulukko täsmää yhteenvedon myyntiriviin.

  **Laskentaperuste** on nyt **Tuoton kirjaus**, ja siinä on kolme vaihtoehtoa aiemman kahden sijaan: luotu, alkanut (oletus) ja päättynyt. Se on lukuhetken parametri, ei tallennettu määritys, joten sen vaihtaminen lukee saman kirjauksen uudelleen. Kaikki mikä seuraa sanasta ”ansaittu” seuraa valintaa — yhteenveto, jokainen erittely, siirtovelkojen liike ja maksujen täsmäytys.

  Siirtovelat ovat nyt jakson liike, raportoituna riveillä **Lisätty** ja **Purettu**. Alku- ja loppusaldot sekä kirjausaikataulu ovat poistuneet.

  Tuottojen CSV sisältää kaikki kolme päivämäärää, kunkin omalla `Yes`/`No`-merkinnällään yhden kirjauspäivän sijaan — valitse oma kirjaussääntösi valitsemalla sarake. Hyvityksellä on päivämäärä jokaisella akselilla, joten se raportoidaan kertaalleen kaikkien kolmen alla eikä putoa pois yhden takia.

  Mukana tulee kaksi lisäystä: maksuraporttiin tulee **Maksutavat**-suodatin, ja jokaisella palvelusijainnilla on vapaamuotoinen **Kustannuspaikka**, joka kulkee sijainnin nimen mukana talousvienteihin.

  [Talousraportit →](/docs/fi/concepts/reports/finance-reports)
</Update>

<Update label="20. elokuuta 2026" description="Sijaintikohtainen tilausnumerointi" tags={["Uusi ominaisuus"]}>
  ## Tilausnumeroilla on muoto, ja jokainen sijainti voi käyttää omaansa

  Tilausnumerointi määritetään tilikohtaisesti kohdassa **Asetukset → Toiminnot → Tilaukset**: etuliite, pääte, numeron vähimmäispituus ja merkki, jolla numero täytetään tuohon pituuteen. Jokainen palvelusijainti voi ohittaa sen omalta **Tilausnumerointi**-välilehdeltään.

  Sijainnin etuliite ja sen numerosarja ovat toisistaan riippumattomia valintoja. Anna sijainneille omat etuliitteensä, ja ne jakavat silti yhden laskurin — `A21`, `B22`, `A23`. Anna niille omat numerosarjansa, ja kukin laskee erikseen — `A1`, `B1`, `A2`.

  Tilauksella on nyt muotoiltu arvo **viitteenä** sen taustalla olevan numerosarjan raa'an arvon rinnalla. Tilit, jotka eivät määritä muotoa, säilyttävät muodon `#<numero>` ennallaan. Viite on se, jonka tilausvahvistukset, kuitit, kestotilausportaalin palautuslomake ja talousvientien `Order_Number`-sarake näyttävät.

  Viite varataan, kun tilaus poistuu tilasta `pending`, samalla hetkellä kuin numero, joten keskeytynyt kassatapahtuma ei kuluta kumpaakaan. Kun se on varattu, se on lukittu — muodon muuttaminen myöhemmin ei numeroi uudelleen tilauksia, joilla on jo viite.

  [Palvelusijainnit →](/docs/fi/settings/locations)
</Update>

<Update label="19. elokuuta 2026" description="Kopioi tilaukseen -merkintä varastoartikkelia liitettäessä" tags={["Korjaus"]}>
  ## Kopioi tilaukseen -dokumentit päätyvät tilaukselle riippumatta siitä, miten varastoartikkeli sinne tuli

  Listaukselle, SKU:lle tai varastoartikkelille liitetty dokumentti, joka on merkitty valinnalla **Kopioi tilaukseen**, kopioidaan tilauksen **Asiakirjat**-välilehdelle, kun kyseinen kohde liittyy tilaukseen. Kaksi hallinnan kulkua ohitti kopioinnin, eivätkä ne enää ohita:

  * Tilauksen **Lisää Varastoartikkeli** -dialogi lisäsi varastoartikkelin kopioimatta sen dokumentteja.
  * Tilauksella jo olevan rivin varastoartikkelin kohdistaminen tai vaihtaminen — varastoartikkelipaneelista, varastokoodia skannaamalla tai automaattisella kohdistuksella — ei kopioinut mitään.

  Kopiointi on nyt osa itse tilauksen kirjoitusta eikä sen rinnalla ajettu taustavaihe. Kopioitu dokumentti on välilehdellä heti, kun toiminto on valmis, ja jos toiminto epäonnistuu, kopiointi perutaan sen mukana.

  Tilauksia, joilta kopio jäi puuttumaan ennen tätä muutosta, ei korjata takautuvasti. Saat ne ajan tasalle poistamalla **Kopioi tilaukseen** -valinnan lähdedokumentilta ja ottamalla sen sitten uudelleen käyttöön — tämä polku täydentää takautuvasti jokaisen tilauksen, joka jo viittaa listaukseen, SKU:hun tai varastoartikkeliin, ja se on ennallaan.

  [Tilauksen dokumentit →](/docs/fi/orders/order-tabs/documents)
</Update>

<Update label="19. elokuuta 2026" description="Arkistointi ja pehmeä poisto" tags={["Uusi ominaisuus"]}>
  ## Arkistointi korvaa poiston koko hallintapaneelissa

  Listauksen, kokoelman, hintataulukon, alennuskoodin, varastoartikkelin, SKU:n (varastonimikkeen), tilauksen, asiakkaan tai palvelusijainnin poistaminen arkistoi sen poistamisen sijaan. Arkistoidut tietueet säilyttävät historiansa ja ne voi palauttaa kohdasta **Settings → Archived assets**.

  Jokainen arkistointi näyttää ennen vahvistusta, mihin se vaikuttaa — vaikutusten tarkistus listaa tietueet, jotka viittaavat arkistoitavaan, joten näet seuraukset vielä silloin, kun voit perua.

  Tilauksen arkistointi on eri asia kuin sen sulkeminen, ja se koskee vain suljettuja tilauksia — jos arkistoit sekalaisen valikoiman, avoimet tilaukset jäävät koskematta.

  Varastoartikkelin arkistointi poistaa sen varattavissa olevasta kapasiteetista ja vapauttaa varaukset, jotka sillä oli tulevissa ja käynnissä olevissa tilauksissa. Nämä tilaukset säilyttävät kohdistuksen mutta menettävät varauksen, joten ne nousevat esiin ristiriitatilassa ja henkilökunta näkee, että odotettu yksikkö on poissa. Jo päättyneet tilaukset säilyttävät varauksensa. Arkistoidun varastoartikkelin uudet kohdistukset hylätään.

  Jokaisella tietueella on aikaleimat `archivedAt` ja `deletedAt`, joten arkistoitu ja poistettu tila erottuvat toisistaan kaikkialla.
</Update>

<Update label="19. elokuuta 2026" description="Responsiiviset verkkokaupan kuvat" tags={["Parannus"]}>
  ## Verkkokaupan kuvat toimitetaan näyttöön sovitetuissa koissa

  Verkkokaupan kuvat toimitetaan CDN:n kautta leveysvariantteina, jotka valitaan kävijän näkymän mukaan, WebP- tai AVIF-muodossa silloin kun selain hyväksyy ne. Tämä kattaa kuvagallerian, kokoelmakortit, listauskortit, listausrivit, suosittujen listausten kortit ja hero-kuvat, joilla on erilliset mobiili- ja työpöytävariantit.

  Mitään ei tarvitse ottaa käyttöön eikä ladata uudelleen — olemassa olevat kaupat saavat tämän automaattisesti, eikä siihen ole asetusta.

  Kaksi tapausta menee läpi muuttumattomana, ja molemmat ovat odotettuja eivätkä virheitä: tiedostot, joita ei voi muuntaa (muun muassa SVG ja GIF), tarjoillaan sellaisina kuin ne on ladattu, ja jos yksittäisen kuvan CDN-pyyntö epäonnistuu, käytetään alkuperäistä.

  [Verkkokauppa →](/docs/fi/concepts/sales-channels/online-store)
</Update>

<Update label="19. elokuuta 2026" description="Käännettävät hintanimikkeet ja kassan kentät" tags={["Parannus"]}>
  ## Hintanimikkeet ja mukautetut kassakentät ovat käännettävissä

  Kolme uutta sisältötyyppiä hyväksyy käännöksiä: varausten kestonimikkeet, kestotilauspakettien otsikot sekä mukautettujen kassakenttien nimet ja ohjetekstit. Käännä ne suoraan riviltä tai kentältä itseltään, kun olet tallentanut sen, tai muun sisällön ohessa käännöseditorissa.

  Kolme rajoitusta kannattaa tietää. Vain kiinteillä varausriveillä on käännettävä kestonimike — hintaperusteisen rivin nimike ei koskaan päädy verkkokauppaan. Vain mukautetut kassakentät käännetään täällä; attribuuttiin sidottu kenttä näyttää kyseisen attribuutin nimen ja kääntyy sen kautta. Valintavaihtoehtojen nimiä tämä ei kata.

  [Monikielinen sisältö →](/docs/fi/concepts/admin/translations)
</Update>

<Update label="19. elokuuta 2026" description="Keräilyaikojen sijoittelu toimipistesivulla" tags={["Parannus"]}>
  ## Nouto- ja palautusajat ovat toimipistesivulla aukioloaikojen yläpuolella

  Toimipistesivu näyttää kohdat **Order pickup hours** ja **Order return hours** kohdan **Store opening hours** yläpuolella, joten asiakas lukee nouto- ja palautusajat ennen sijainnin aukioloaikoja. Leveillä näytöillä kaksi keräilykorttia ovat vierekkäin, kapeilla näytöillä allekkain.

  Kolme otsikkoa muuttui järjestyksen myötä — aiemmin ne olivat ”Pickup hours”, ”Return hours” ja ”Opening hours”. Kortti näkyy vain niistä ajoista, jotka sijainti on tosiasiassa määrittänyt, ja vain silloin kun toimipistesivu on asetettu näyttämään aukioloajat.

  [Keräilyajat →](/docs/fi/concepts/admin/locations)
</Update>

<Update label="19. elokuuta 2026" description="Tilaustaulukon suorituskyky" tags={["Parannus"]}>
  ## Tilaustaulukko avautuu nopeasti myös suurella tilaushistorialla

  Tileillä, joilla on paljon tilauksia, taulukon avautuminen kesti kymmeniä sekunteja. Testitilillä, jolla on 20 000 tilausta, sen kaksi kyselyä palauttavat nyt 51 ms:ssa ja 1,5 ms:ssa, kun aiemmin ne kestivät 31 s ja 48 s.

  Konepellin alla muuttui neljä asiaa. Tauluilla `orders`, `order_stock_items` ja `order_customers` on nyt indeksit listan tekemille kyselyille — aiemmin lista haki kaikista kolmesta jokaista tilausriviä kohden, kahdesti sivulatausta kohden, ilman indeksiä. Taulukko hakee rivinsä kerran taulukon avautuessa aiemman kahden tai kolmen sijaan, koska haku ei enää käynnisty uudelleen tunniste- ja attribuuttivaihtoehtojen saapuessa. Jokainen rivi kantaa vain ne varastoartikkelin kentät, joita kalenterinäkymä lukee — id, tilaus, nimi, koodi, noutopäivä ja palautuspäivä — eikä kaikkia sarakkeita. Ja sivutettu kysely pysähtyy, kun se on saanut sivullisen rivejä, sen sijaan että se kävisi ensin läpi koko suodatetun joukon.

  Taulukko itsessään on ennallaan: samat sarakkeet, samat suodattimet, sama järjestäminen, samat tallennetut näkymät. Mitään ei tarvitse ottaa käyttöön.

  [Tilaukset →](/docs/fi/orders/overview)
</Update>

<Update label="13. elokuuta 2026" description="Nimikkeelliset osoiterivit kassalla" tags={["Parannus"]}>
  ## Jokaisella kassan osoiterivillä on oma nimikkeensä

  Kassan laskutus- ja toimitusosoitekentät nimeävät jokaisen rivin: **Street address**, **ZIP / Postal code**, **City** ja **Country**. Aiemmin vain katuosoiterivi oli tunnistettavissa — siinä näkyi kentälle määrittämäsi ohjeteksti, kun taas postinumero-, kaupunki- ja maakentissä ei ollut nimikettä eikä ohjetekstiä, joten asiakkaan piti päätellä ne sijainnista.

  Kentälle määrittämäsi nimike on nyt neljän rivin ryhmän otsikkona sen sijaan, että se olisi ensimmäisen kentän yläpuolella, ja ruudunlukijat lukevat sen koko ryhmän nimenä.

  Katuosoiterivi edustaa edelleen koko osoitetta kentän määrityksessä ja tarkistuksissa: vain siinä on määritetty ohjeteksti, pakollisuusmerkintä ja rivinsisäinen virheilmoitus. Rivinimikkeet ovat käännettävissä muun kassan tapaan.

  [Yhteystiedot-vaiheen kentät →](/docs/fi/settings/checkouts/steps)
</Update>

<Update label="13. elokuuta 2026" description="Kassan paluunavigointi" tags={["Parannus"]}>
  ## Jokaisesta kassan vaiheesta pääsee takaisin

  Jokaisessa ensimmäistä seuraavassa kassan vaiheessa on **Takaisin**-painike, joka palaa edelliseen vaiheeseen.

  Ensimmäisessä vaiheessa näkyy sen sijaan **Takaisin verkkokauppaan**, joka poistuu kassalta ostoskoriin — samaan kohteeseen kuin kassan ylätunnisteen logo. Se, mikä vaihe on ensimmäinen, riippuu käyttöön ottamistasi vaiheista, joten se ei ole aina Yhteystiedot.

  Ostoskoriin siirtyminen on täysi sivunlataus ja hylkää kassan tilan: aiemmassa vaiheessa lähettämäsi tiedot on tallennettu kassalle, nykyisessä vaiheessa kirjoitettuja ei.

  Kassalinkistä avatuissa kassoissa ensimmäisessä vaiheessa ei näy painiketta — kyseinen asiakas ei ole tullut ostoskorista — ja **Jatka** on yksin oikealla.

  Molemmat nimikkeet voi ohittaa kassakohtaisesti kassaeditorin **Käännökset**-välilehdellä yhdessä **Jatka**-nimikkeen kanssa.

  [Kassan vaiheet →](/docs/fi/settings/checkouts/steps)
</Update>

<Update label="13. elokuuta 2026" description="Webhookien hallinta, allekirjoitus ja toimitusloki" tags={["Uusi ominaisuus"]}>
  ## Webhookien hallinta hallintapaneelissa, allekirjoitetut keräilyt ja toimitusloki

  Webhookeja hallitaan kohdassa **Settings → Integrations & API → Webhooks**. Luo webhook valitsemalla tapahtumatyyppi ja HTTPS-päätepiste, ja ota se sitten käyttöön, poista käytöstä tai poista taulukosta.

  Hyötykuorman muoto muuttui. Keräilyn runko on nyt kirjekuori — `eventId`, `eventType`, `eventTime`, `resource`, `resourceId`, `apiVersion` ja kohteena oleva resurssi kentässä `data` — paljaan Order-objektin sijaan. Jokainen webhook on kiinnitetty siihen API-versioon, joka oli voimassa luontihetkellä, ja versio raportoidaan kentässä `apiVersion`, joten myöhempi API-versio ei koskaan muuta jo vastaanottamaasi muotoa.

  Keräilyt allekirjoitetaan. Jokaisella webhookilla on allekirjoitussalaisuus etuliitteellä `whsec_`, ja jokainen keräily sisältää raakapyynnön rungon HMAC-SHA256-tiivisteen otsakkeessa `X-Twice-Signature` muodossa `sha256=<hex>`. Näytä, kopioi ja vaihda salaisuus rivitoiminnolla **View signing secret**.

  Jokainen lähetetty keräily tallennetaan. **View deliveries** avaa webhookin lokin, jota voi suodattaa tuloksen, tapahtuman, tapahtumatunnuksen, käynnistysajan, yritysten määrän ja viimeisimmän vastauksen perusteella. Rivin avaaminen näyttää yritysten aikajanan ja tarkan lähetetyn hyötykuorman, ja toiminto **Redeliver** lähettää hyötykuorman uudelleen kohdeosoitteeseen.

  <Note>Webhookeilla, jotka on luotu ennen allekirjoitusten käyttöönottoa, ei ole salaisuutta, ja niiden keräilyt pysyvät allekirjoittamattomina, kunnes luot salaisuuden allekirjoitusikkunan toiminnolla **Generate secret**.</Note>

  [Webhookit →](/docs/fi/concepts/integrations/webhooks)
</Update>

<Update label="13. elokuuta 2026" description="Kiinteän keston kalenteriesikatselu ja noutoajat" tags={["Korjaus"]}>
  ## Kalenteriesikatselu ja noutoajat kiinteän keston vaihtoehdoissa

  Kaksi korjausta verkkokaupan listaussivun varauswidgetiin. Molemmat koskevat varausvaihtoehtoja, joilla on **kiinteä kesto** — eli niitä, joissa palautusaika johdetaan noudosta sen sijaan, että se valittaisiin erikseen.

  Kun viet hiiren saatavuuskalenterin päivän päälle, korostus näyttää nyt sen aikavälin, jonka napsautus valitsee. Korostus lasketaan osoitetusta päivästä plus vaihtoehdon kesto, samalla tavalla kuin napsautuskin. Aiemmin se ankkuroitui jo valittuun palautuspäivään ja näytti aikavälin, jota napsautus ei tuottaisi.

  Noutoaikoja ei enää poisteta käytöstä kiinteän keston vaihtoehdoissa, joiden palautus osuu noutoa myöhemmälle päivälle — 12 tunnin vaihtoehdon iltanoudossa palautus on seuraavana päivänä. Pelkkiin iltoihin rajatuilla keräilyajoilla (katso [Sijainnit](/docs/fi/concepts/admin/locations)) tämä saattoi poistaa käytöstä kaikki vaihtoehdot noutoaikojen valikosta. Vaihtoehtoihin, joissa asiakas valitsee palautusajan, tämä ei vaikuta: niiden noutoajat tarkistetaan edelleen valittua palautuspäivää vasten.

  [Verkkokauppa →](/docs/fi/concepts/sales-channels/online-store)
</Update>

<Update label="13. elokuuta 2026" description="Päivämäärätietoiset varausvaihtoehdot" tags={["Parannus"]}>
  ## Varausvaihtoehdot huomioivat valitun päivämäärän

  Verkkokaupan listaussivulla **Booking options** -valikko merkitsee nyt ne vaihtoehdot, jotka eivät voi alkaa valittuna päivänä. Sen sijaan että vaihtoehto epäonnistuisi vasta valinnan jälkeen, se näkyy harmaana ja kertoo ensimmäisen mahdollisen aloituspäivän — *”Not available for selected dates — next available Mon 18.8”*.

  Harmaat vaihtoehdot pysyvät valittavissa: kun valitset sellaisen, aloituspäivä siirtyy kyseisen vaihtoehdon seuraavaan mahdolliseen aloituspäivään ja kalenteri seuraa mukana.

  [Varausvaihtoehdot ja valittu päivämäärä →](/docs/fi/concepts/sales-channels/online-store)
</Update>

<Update label="10. elokuuta 2026" description="Kokoelmasuodattimien säilyminen" tags={["Korjaus"]}>
  ## Suodattimet ja lajittelu säilyvät kokoelmien välillä siirryttäessä

  Verkkokaupan kokoelmasuodattimet — varauspäivät, hintahaarukka, kategoria ja haku — sekä lajitteluvalinta säilyvät nyt, kun siirryt kokoelmasta toiseen, myös ”kaikki tuotteet”- ja murupolkulinkkien kautta. Aiemmin nämä nollautuivat jokaisella kokoelmanvaihdolla. Sivunumero nollautuu edelleen, koska yhden kokoelman sivunumero ei tarkoita mitään toisessa.

  [Kokoelmat →](/docs/fi/catalog/collections/overview)
</Update>

<Update label="10. elokuuta 2026" description="Rivitiedon muokkauksen saatavuus" tags={["Korjaus"]}>
  ## Rivitieto ei enää estä oman päivämääränsä muokkausta

  Kun muutat rivitiedon päivämääriä, sen jo pitämä varastoartikkelin varaus vapautetaan muokkauksen ajaksi — koko varattu jalanjälki puskuriaikoineen. Aiemmin rivitieto laskettiin itseään vastaan: palautusajan siirtäminen tunnilla myöhemmäksi varastoartikkelilla, jolla oli kahden tunnin jälkipuskuri, epäonnistui ilman selitystä, ja ainoa ratkaisu oli peruuttaa rivitieto ja rakentaa se uudelleen.

  Tämä koskee hallintapaneelin rivitietoeditoria, jossa vapautus kattaa myös muokattavan rivitiedon lisäosat, sekä verkkokaupan ostoskorin muokkauskulkua. Se koskee vain muokattavaa rivitietoa — saman tilauksen muut rivitiedot säilyttävät varauksensa.

  Ostoskorissa jo olevat vuokrattavat tuotteet pitävät nyt puskuriaikansa muuta ostoskoria vastaan, joten kahta peräkkäistä saman varastoartikkelin vuokrausta puskurin sisällä ei enää tarjota.

  [Saatavuus →](/docs/fi/concepts/catalog/availability)
</Update>

<Update label="5. elokuuta 2026" description="Alennuskoodien käyttörajaus ja kassalinkkien alennukset" tags={["Uusi ominaisuus"]}>
  ## Alennuskoodien käyttörajaus ja kassalinkkien alennukset

  Alennuskoodeilla on nyt **käyttöoikeusasetus**: **public** (oletus) sallii kenen tahansa, jolla koodi on, lunastaa sen kassalla, ja **internal** rajaa lunastuksen henkilökunnalle ja integraatioille — asiakas, joka kirjoittaa sisäisen koodin kassalla, saa sen hylätyksi virheellisenä. Sisäiset koodit näkyvät alennuskooditaulukossa **Staff only** -merkinnällä.

  Alennuskoodeja voi nyt soveltaa myös kassalinkkeihin — eli olemassa olevaan tilaukseen perustuviin kassoihin — kunhan tilauksella ei ole aiempia koodeja ja jokainen kelpoinen tuote on edelleen kokonaan maksamatta.

  [Alennuskoodit →](/docs/fi/catalog/discount-codes)
</Update>

<Update label="5. elokuuta 2026" description="Kauppiastilien vaihtajan haku" tags={["Parannus"]}>
  ## Kauppiastilien haku tilinvaihtajassa

  Jos kuulut useampaan kuin yhteen kauppiastiliin, tilinvaihtajassa on nyt hakukenttä — suodata nimen tai tunnisteen perusteella profiilivalikon kohdassa **Switch Merchant Account** tai kohdassa **Profile → General → Merchant accounts**. Kenttä ilmestyy vasta, kun valittavia tilejä on useampi kuin yksi.

  [Profiiliasetukset →](/docs/fi/settings/profile)
</Update>

<Update label="5. elokuuta 2026" description="Kokoelmakortin tekstivärit" tags={["Parannus"]}>
  ## Kokoelmakortin tekstivärien mukautus

  Teemaeditorin kokoelmakorttipaneeliin lisättiin väriasetukset **Text** ja **Text secondary**, jotka ohjaavat kokoelman otsikon ja kuvauksen värejä sivuston yleisestä linkkiväristä riippumatta.

  [Kokoelmakortin asetukset →](/docs/fi/sales-channels/online-store/theme-editor/settings/collection-card)
</Update>

<Update label="31. heinäkuuta 2026" description="Tilaustaulukon Listaukset-sarake" tags={["Parannus"]}>
  ## Listaukset-sarake tilaustaulukossa

  Tilaustaulukossa on **Listings**-sarake, jossa näkyvät kunkin tilauksen rivitietojen erilliset listausnimet. Saraketta voi suodattaa valitsemalla yhden tai useamman listauksen pudotusvalikosta.

  [Tilaustaulukon sarakkeet →](/docs/fi/orders/overview)
</Update>

<Update label="31. heinäkuuta 2026" description="Check-in-kanava poistettu" tags={["Poistuma"]}>
  ## Myymäläkioskin Check-in-kanava poistettu

  Myymäläkioskin **Check-in**-myyntikanava ei ole enää yleisesti saatavilla, ja sen valinta on poistettu sijaintien asetuksista. Muihin kanaviin tämä ei vaikuta.

  [Listausten myyntikanavat →](/docs/fi/catalog/listings/publishing)
</Update>

<Update label="29. heinäkuuta 2026" description="Talousraportit" tags={["Uusi ominaisuus"]}>
  ## Myynti- ja Maksut-talousraportit

  Kaksi uutta talousraporttia korvaa aiemman kirjanpitoraportin kohdassa **Reports > Finances**.

  **Myyntiraportti** perustuu suoriteperusteeseen — se näyttää, mitä jaksolla ansaittiin riippumatta siitä, milloin asiakas maksoi. Kirjausperuste (luovutuspäivä tai tilauksen luontipäivä) määrää, milloin tuotto kirjataan. Raportti sisältää siirtovelkojen seurannan (alku- ja loppusaldot sekä kuukausikohtaisen kirjausaikataulun) ja täsmäytyssillan, joka kulkee suoriteperusteisesta tuotosta vastaanotettuihin käteismaksuihin.

  **Maksut-raportti** perustuu maksuperusteeseen — se näyttää jaksolla vastaanotetut rahat (myynnit, panttien veloitukset, hyvitysten peruutukset) miinus palautetut rahat (hyvitykset, vapautetut pantit). Alustan tapahtumamaksut raportoidaan erikseen omalla veroerittelyllään.

  Molemmat raportit tukevat useita valuuttoja ja sijaintisuodatusta, tulostettavia A4-tilinpäätöksiä sekä CSV-vientiä pysyvillä rivitunnisteilla idempotenttia tuontia varten. Kaksi vientiä yhdistyvät jaetun `Revenue_Row_ID`-sarakkeen kautta.

  [Talousraportit →](/docs/fi/concepts/reports/finance-reports)
</Update>

<Update label="29. heinäkuuta 2026" description="Lisäosien varausjakson synkronointi" tags={["Parannus"]}>
  ## Lisäosien varausjaksot seuraavat pääkohdetta

  Kun muutat rivitiedon varauspäiviä tilauksella, siihen liitetyt varauslisäosat päivittävät nyt jaksonsa automaattisesti vastaamaan pääkohteen uusia päivämääriä.

  [Lisäosat tilauksilla →](/docs/fi/catalog/listings/addons)
</Update>

<Update label="29. heinäkuuta 2026" description="Yrityksen osoite" tags={["Uusi ominaisuus"]}>
  ## Yrityksen osoite

  Lisää yrityksesi osoite kohdassa **Settings → Account**. Osoite näkyy kirjanpitovienneissä ja muodostetuissa talousdokumenteissa.

  [Tilin asetukset →](/docs/fi/settings/account)
</Update>

<Update label="29. heinäkuuta 2026" description="Panttien automaattinen vanheneminen" tags={["Parannus"]}>
  ## Pantin pidätysten automaattinen vanheneminen

  Stripen pantin pidätykset, jotka saavuttavat korttiverkoston vanhenemisrajan, näkyvät nyt tilauksen Maksut-välilehdellä merkinnällä **Vapautettu (vanhentunut)**, joten erotat vanhentuneen pantin pidätyksen käsin vapauttamastasi.

  [Tilauksen maksut →](/docs/fi/orders/order-tabs/payment)
</Update>

<Update label="23. heinäkuuta 2026" description="Ylätunnistepalkin teemoitus" tags={["Uusi ominaisuus"]}>
  ## Ylätunnistepalkin teema-asetukset

  Teemaeditoriin lisättiin oma **Header bar** -paneeli — aseta verkkokaupan yläpalkin tausta-, teksti- ja kuvakevärit muusta teemasta riippumatta.

  [Ylätunnistepalkin asetukset →](/docs/fi/sales-channels/online-store/theme-editor/settings/header-bar)
</Update>

<Update label="23. heinäkuuta 2026" description="Alatunnisteen DOM-tunnisteet" tags={["Uusi ominaisuus"]}>
  ## Pysyvät DOM-tunnisteet alatunnisteessa

  Verkkokaupan alatunniste tarjoaa nyt pysyvät DOM-elementtitunnisteet, joten mukautetut skriptit voivat lisätä sisältöä — esimerkiksi evästeasetusten linkin — tunnettuun paikkaan, joka säilyy teemapäivitysten yli.

  [Mukautetut skriptit →](/docs/fi/sales-channels/online-store/custom-scripts)
</Update>

<Update label="23. heinäkuuta 2026" description="Kassan valintakentät" tags={["Uusi ominaisuus"]}>
  ## Valintakentät (pudotusvalikot) kassalla

  Kassan yhteystietolomakkeet tukevat **select**-kenttiä — määritä vaihtoehdot, ja asiakkaat valitsevat yhden pudotusvalikosta kassalla.

  [Kassan vaiheet →](/docs/fi/settings/checkouts/steps)
</Update>

<Update label="22. heinäkuuta 2026" description="Alkaen-hinnoittelu" tags={["Uusi ominaisuus"]}>
  ## ”Alkaen”-hinnoittelu (kalenterijaksoon perustuva laskutus)

  Kiinteiden pakettien hinnat voivat kiinnittyä kalenterilaskutusikkunoihin: paketti, joka ”alkaa” ikkunan rajalta, laskutetaan sen kalenterijakson mukaan, johon varaus osuu, eikä aloitusajasta juoksevan keston mukaan.

  [Listausten hinnoittelu →](/docs/fi/catalog/listings/pricing)
</Update>

<Update label="22. heinäkuuta 2026" description="Rivitiedon hinnan vahvistus" tags={["Parannus"]}>
  ## Hinnan vahvistus rivitiedon päivämääriä muokattaessa

  Varausrivitiedon alku- tai päättymispäivän muokkaus säilyttää sen alkuperäisen yksikköhinnan. Jos hinta ei tallennettaessa enää vastaa katalogin listahintaa uusille päiville, vahvistusikkuna näyttää molemmat hinnat ja antaa valita listahinnan tai säilyttää käsin asetetun hinnan.

  [Tilauksen rivitiedot →](/docs/fi/orders/order-tabs/line-items)
</Update>

<Update label="9. heinäkuuta 2026" description="Apple Pay ja Google Pay" tags={["Uusi ominaisuus"]}>
  ## Apple Pay ja Google Pay Stripessä

  Verkkokaupat, joissa on Stripe-maksut, tarjoavat nyt Apple Payn ja Google Payn automaattisesti kassalla — määrityksiä ei tarvita. Tuetuilla laitteilla asiakkaat näkevät lompakkopainikkeet korttimaksun rinnalla.

  [Maksuasetukset →](/docs/fi/settings/payments)
</Update>

<Update label="7. heinäkuuta 2026" description="Tilausten takaraja" tags={["Uusi ominaisuus"]}>
  ## Listausten tilausten takaraja

  Aseta listaukselle tilausten takaraja, jolloin varauksia ei enää oteta vastaan tietyn ajan ennen alkua — voit esimerkiksi vaatia tilaukset vähintään 12 tuntia ennen noutoa.

  [Listausten rajoitukset →](/docs/fi/catalog/listings/limits)
</Update>

<Update label="7. heinäkuuta 2026" description="Mukautetut URL-tunnisteet" tags={["Uusi ominaisuus"]}>
  ## Mukautetut URL-tunnisteet

  Listaukset ja kokoelmat tukevat mukautettuja verkkokaupan URL-tunnisteita, ja aiemmista tunnisteista ohjataan automaattisesti uusiin, joten jaetut linkit toimivat edelleen.

  [Listausten markkinointi →](/docs/fi/catalog/listings/marketing)
</Update>

<Update label="7. heinäkuuta 2026" description="order.updated-webhook" tags={["Parannus"]}>
  ## order.updated laukeaa alataulujen muutoksista

  `order.updated`-webhook laukeaa nyt myös silloin, kun tilauksen alatietueet muuttuvat — rivitiedot, asiakkaat, kommentit, tunnisteet, dokumentit, alennukset ja attribuutit — eikä pelkästään itse tilausrivin muuttuessa.

  [Webhookit →](/docs/fi/concepts/integrations/webhooks)
</Update>

<Update label="3. heinäkuuta 2026" description="Varausta edeltävä puskuri" tags={["Uusi ominaisuus"]}>
  ## Varausta edeltävä puskuriaika

  Varauksen jälkeisen puskurin lisäksi SKU:t ja varastoartikkelit tukevat **varausta edeltävää** puskuria — valmisteluaikaa, joka varataan ennen kutakin varausta. Sama perintämalli pätee: aseta se SKU:lle ja ohita varastoartikkelikohtaisesti.

  [Varastoartikkelin keräily →](/docs/fi/inventory/stock-items/fulfillment)
</Update>

<Update label="2. heinäkuuta 2026" description="Varauksen keston porrastus" tags={["Uusi ominaisuus"]}>
  ## Varauksen keston porrastus

  Hintaperusteiset listaukset voivat pakottaa varauksen keston porrastuksen — asiakkaat valitsevat keston kokonaisin askelin (esimerkiksi täysin tunnein), yhdistettynä itsenäisesti olemassa oleviin vähimmäis- ja enimmäiskestorajoihin.

  [Listausten hinnoittelu →](/docs/fi/catalog/listings/pricing)
</Update>

<Update label="2. heinäkuuta 2026" description="Välilehtikohtainen näkyvyys ja Unicode-alennuskoodit" tags={["Uusi ominaisuus", "Korjaus"]}>
  ## Välilehtikohtaiset ”Show in UI” -käyttöoikeudet

  Mukautetut roolit voivat nyt piilottaa yksittäisiä sivun sisäisiä välilehtiä, eivät pelkästään sivupalkin osioita. Välilehtien näkyvyys käyttää leikkaussemantiikkaa käyttäjän roolien yli, riippumatta datan käyttöoikeuksista.

  [Näkyvät alueet →](/docs/fi/concepts/admin/visible-areas)

  ## Alennuskoodit hyväksyvät Unicoden

  Alennuskoodit eivät ole enää rajattu ASCII-merkkeihin — koodit kuten `KESÄ15` toimivat. Vain aidosti turvattomat merkit hylätään.

  [Alennuskoodit →](/docs/fi/catalog/discount-codes)
</Update>

<Update label="2. heinäkuuta 2026" description="Kestotilaukset" tags={["Uusi ominaisuus"]}>
  ## Kestotilaukset

  Myy jatkuvaa käyttöoikeutta tuotteisiin [toistuvalla laskutuksella](/docs/fi/concepts/catalog/subscriptions). Määritä kestotilauspaketit hintataulukoihin jaksokohtaisine hintoineen, sitoutumisjaksoineen ja automaattisine uusiutumisineen. Asiakkaat valitsevat paketin ja aloituspäivän verkkokaupassa, ja TWICE Commerce hoitaa loput — tallentaa kortin kassalla, muodostaa laskut jokaisella laskutusjaksolla, perii maksut istunnon ulkopuolella (Stripe tai Adyen) ja yrittää epäonnistuneita veloituksia uudelleen nousevalla aikataululla.

  Kestotilausten hallinta hallintapaneelissa sisältää statusseurannan (active, past due, failed, completed, cancelled), laskutaulukon Maksut-välilehdellä ja peruutusten ajoituksen, joka huomioi sekä sitoutumis- että irtisanomisajat.

  Viisi elinkaarisähköpostia kattaa kestotilauksen matkan: maksu tulossa, maksu vahvistettu, maksu epäonnistui, peruutettu ja päättyy pian. Alennuskoodit tukevat kestotilauskohtaisia kestoja (kerran, toistuva tai ikuinen).

  [Määritä kestotilaukset →](/docs/fi/concepts/catalog/subscriptions)
</Update>

<Update label="2. heinäkuuta 2026" description="Keräilyajat" tags={["Uusi ominaisuus"]}>
  ## Keräilyajat

  Määritä erilliset nouto- ja palautusajat palvelusijainneittain, riippumatta sijainnin aukioloajoista.

  Kunkin palvelusijainnin **Fulfillment**-välilehdellä on käytettävissä kolme lähdetilaa:

  * **Follow opening hours** — nouto- ja palautusajat vastaavat sijainnin aukioloaikoja
  * **Offset from opening hours** — siirrä noudon tai palautuksen saatavuutta puskurin verran (esim. viimeinen nouto 30 minuuttia ennen sulkemista)
  * **Custom schedule** — määritä täysin itsenäiset tavalliset, kausikohtaiset ja poikkeusajat erikseen noudolle ja palautukselle

  Verkkokauppa noudattaa keräilyaikoja, kun asiakkaat valitsevat varausaikoja. Hallintapaneelin käyttäjät voivat ohittaa ne lisätessään tai muokatessaan tilauksen rivitietoja.

  [Määritä sijainnit →](/docs/fi/settings/locations)
</Update>

<Update label="2. heinäkuuta 2026" description="Käännösten kattavuus" tags={["Parannus"]}>
  ## Enemmän käännettävää sisältöä

  Keskitetty käännöseditori kattaa entistä useampia sisältötyyppejä: navigaation nimikkeet, lisäosien nimet ja kuvaukset, tuotesivujen mukautetut osiot (otsikko ja sisältö) sekä ehtodokumenttien nimet — listausten, kokoelmien, sijaintien, attribuuttien ja varianttien lisäksi.

  [Käännökset →](/docs/fi/settings/translations)
</Update>

<Update label="2. heinäkuuta 2026" description="Tilaustaulukko, toimipisteen valinta, takautuva päiväys" tags={["Uusi ominaisuus", "Parannus"]}>
  ## Tilaustaulukon sarakkeet

  Tilaustaulukkoon lisättiin sarake **Earliest start date** (rajattuna varauksiin ja kestotilauksiin) sekä suodatettava **Purchase Type** -sarake.

  [Tilausten yleiskuva →](/docs/fi/orders/overview)

  ## Toimipisteen valinnan asetukset

  Teemaeditori ohjaa sitä, miltä verkkokaupan toimipisteen valintavaihe näyttää — noudon saatavuuskortit, ostoskorin toimipistevalitsin ja saatavuuden ilmaisimet ovat kaikki teemoitettavissa.

  [Toimipisteen valinta →](/docs/fi/sales-channels/online-store/theme-editor/settings/store-selection)

  ## Rivitietojen takautuva päiväys

  Hallintapaneelin käyttäjät voivat asettaa rivitiedon aloituspäivän menneisyyteen tilausta muokatessaan — kätevää jo alkaneiden vuokrausten kirjaamiseen. Päällekkäiset varaukset rajataan hylkäämisen sijaan.

  [Tilauksen rivitiedot →](/docs/fi/orders/order-tabs/line-items)
</Update>

<Update label="2. heinäkuuta 2026" description="Käännösten valmiusaste" tags={["Korjaus"]}>
  ## Todelliset käännösten valmiusprosentit

  Käännösasetusten sivu näyttää todelliset kielikohtaiset valmiusprosentit, jotka lasketaan käännetyn ja käännettävissä olevan sisällön suhteesta.

  [Käännökset →](/docs/fi/settings/translations)
</Update>

<Update label="2. heinäkuuta 2026" description="Kielikohtaiset pohjat" tags={["Uusi ominaisuus"]}>
  ## Kielikohtaiset sähköposti- ja dokumenttipohjat

  Sähköposti- ja dokumenttipohjia voi muokata kielikohtaisesti. Ratkaisu seuraa asiakkaan kieltä: kielikohtainen ohitus → pohjan sisältö → oletus.

  [Sähköpostiasetukset →](/docs/fi/settings/emails)
</Update>

<Update label="22. kesäkuuta 2026" description="Kanoniset osoitteet" tags={["Uusi ominaisuus"]}>
  ## Kanoniset osoitteet omissa verkkotunnuksissa

  Verkkokaupat, joilla on ensisijainen oma verkkotunnus, tuottavat automaattisesti siihen osoittavat `canonical`- ja `og:url`-tagit, mikä keskittää hakukonesignaalit silloin, kun kauppa on saavutettavissa sekä TWICE-aliverkkotunnuksessa että omassa verkkotunnuksessasi.

  [Verkkotunnukset →](/docs/fi/settings/domains)
</Update>

<Update label="22. kesäkuuta 2026" description="Kielivalitsin" tags={["Uusi ominaisuus"]}>
  ## Verkkokaupan kielivalitsin

  Kaupat, joissa on käytössä useampi kuin yksi kieli, näyttävät kielivalitsimen verkkokaupan yläpalkissa. Valinta säilyy sivulta toiselle osoitteen kautta.

  [Lokalisointi →](/docs/fi/concepts/admin/localization)
</Update>

<Update label="15. kesäkuuta 2026" description="v2.0" tags={["Julkaisu"]}>
  ## TWICE Commerce 2.0 — koko alustan uudelleenrakennus

  TWICE Commerce 2.0 on alustan täydellinen uudelleenrakennus uuden taustajärjestelmän ja infrastruktuurin päälle. Se on nopeampi, monipuolisemmin määritettävä ja rakennettu [käyttöjärjestelmälähestymistavan](/docs/fi/concepts/os-approach) ympärille — yhteen kytketyt tietomallit täydellä elinkaariseurannalla, taulukkolähtöinen hallintapaneeli, määrityskerros automaatiolle ja julkinen API, joka pyörittää tuotteen jokaista toimintoa.

  ### Uusi taustajärjestelmä ja infrastruktuuri

  * Rakennettu alusta asti uudelleen suorituskykyä ja luotettavuutta varten
  * Suunniteltu yhteen kytkettyjen tietomallien ympärille täydellä elinkaariseurannalla — jokaisella kohteella (varastoartikkelit, listaukset, tilaukset, asiakkaat) on yhtenäinen historia, attribuutit ja suhteet
  * Monipuolisemmin määritettävissä työtilakohtaisesti, ja usean sijainnin ja usean verokannan toiminnot pyörivät rinnakkain

  ### Mukautettava yhden pohjan verkkokauppa

  * Uusi whitelabel-verkkokauppa, joka perustuu yhteen määritettävään teemapohjaan
  * Visuaalinen [teemaeditori](/docs/fi/sales-channels/online-store/theme-editor/overview) värien, typografian, asettelun, painikkeiden, syöttökenttien, kalentereiden ja listauskorttien mukauttamiseen
  * Muokkaa jokaista sivupohjaa visuaalisesti — etusivu, tietoa, kokoelma, listaus, toimipisteet, ostoskori, kassa
  * [Mukautettu CSS](/docs/fi/sales-channels/online-store/theme-editor/settings/custom-css) kaikkeen, mihin visuaalinen editori ei taivu

  ### Mukautettavat kassat

  * Määritä useita [kassoja](/docs/fi/settings/checkouts) työtilaa kohti — eri kulut B2B:lle ja B2C:lle, myymälälle ja verkolle tai eri markkinoille
  * Rakenna yhteystietolomake, suostumukset, keräilyvaihtoehdot ja mukautettu vahvistusnäkymä kassakohtaisesti
  * Valitse tarjottavat maksutavat (myös offline-tavat), ja jokaisella kassalla on oma ulkoasunsa

  ### Yksilöity varasto ja artikkelikohtainen kirjanpito

  * [Varastoartikkeleita](/docs/fi/concepts/inventory/stock-items) seurataan yksilöllisesti — yksilölliset koodit, elinkaarihistoria, taloustiedot
  * [SKU:t](/docs/fi/concepts/inventory/skus) erottavat tuotemäärittelyn yksittäisistä yksiköistä — yhdellä SKU:lla voi olla monta varastoartikkelia
  * Artikkelikohtainen kirjanpito tallentaa tulot ja kulut jokaiselle varastoartikkelille

  ### Listaukset, kokoelmat, hintataulukot

  * [Listaukset](/docs/fi/concepts/catalog/listings) ovat asiakkaille näkyviä tuotetarjoamia — erillään varastosta
  * Yksi SKU voi pyörittää useaa listausta (vuokraus vs. myynti, B2B vs. B2C) omine hinnoitteluineen ja kanavasääntöineen
  * [Kokoelmat](/docs/fi/catalog/collections/overview) — manuaaliset tai älykkäät — verkkokaupan tuote-esittelyyn
  * [Hintataulukot](/docs/fi/catalog/price-tables) uudelleenkäytettävään ja jaettavaan hinnoittelulogiikkaan

  ### Tapahtumalokit kaikkialla

  * Jokaisella keskeisellä kohteella (tilaukset, varastoartikkelit, SKU:t, listaukset, asiakkaat) on täydellinen [tapahtumaloki](/docs/fi/concepts/admin/activity-logs)
  * Jokainen muutos on jäljitettävissä — kuka, mitä, milloin

  ### Julkinen API ja webhookit

  * Jokainen hallintapaneelin toiminto pyörii julkisen REST-API:n päällä — katso [API](https://server.twicecommerce.com/api/internal)-välilehti
  * [Webhookit](/docs/fi/concepts/integrations/webhooks) lähettävät tilaustapahtumia (`order.created`, `order.updated`, `order.deleted`), jotta ulkoiset järjestelmät pysyvät synkronissa

  ### Työnkulkumoottori (API)

  Automaatiomoottori liiketoimintaprosesseille: ketjuta valinnaisia [suodattimia ja viiveitä](/docs/fi/workflows) yhdessä toiminnon kanssa — lähetä sähköposti pohjasta tai tee HTTP-pyyntö ulkoiseen järjestelmään — putkeksi, joka ajetaan tilauksen hyötykuormaa vasten. Käytettävissä API:n kautta; tapahtumakäynnistimet ja visuaalinen rakennustyökalu ovat [kehitteillä](/docs/fi/roadmap).

  ### Alennuskoodit

  Luo [alennuskoodeja](/docs/fi/concepts/catalog/discount-codes), joita asiakkaat lunastavat kassalla — prosenttialennus, kiinteä summa tilauksesta tai kiinteä summa jokaisesta kelpoisesta tuotteesta.

  Aseta valinnainen käyttöraja, voimassaoloikkuna (alku- ja päättymispäivä) ja erillinen vuokra-aikaikkuna, joka rajaa, mihin tuotteiden aloituspäiviin koodi pätee. Rajaa koodi tiettyihin ostotyyppeihin (varaus, myynti, kestotilaus) tai tiettyihin listauksiin ja kokoelmiin — jätä rajaus tyhjäksi, jos se koskee kaikkia.

  Hallitse koodeja kohdassa [**Catalog → Discount Codes**](/docs/fi/catalog/discount-codes). Käytetyt koodit näkyvät tilauksella tuotekohtaisine alennusjakoineen.

  ### Tilausattribuutit ja kassan profiilikentät

  Kerää mukautettua tietoa tilauksille — ja kerää sisäänrakennettuja asiakasprofiilin kenttiä kassalla.

  **Tilausattribuutit** ovat itse määrittämiäsi mukautettuja kenttiä tilauksille (teksti, numero, päivämäärä, valinta, totuusarvo ja muita). Määritä ne kohdassa **Settings → Attributes & Tags → Orders** ja lisää ne sitten kassan yhteystietolomakkeeseen kohdassa **Settings → Checkouts → Add field**. Kerätyt arvot:

  * Näkyvät tilauksen tietosivulla omalla attribuuttikortillaan
  * Näkyvät suodatettavina ja lajiteltavina sarakkeina tilaustaulukossa
  * Muodostuvat tilausvahvistussähköpostiin

  **Asiakasprofiilin kentillä** keräät sisäänrakennettua profiilitietoa kassalla: syntymäaika, laskutusosoite, toimitusosoite, kieli, yrityksen nimi, verotunniste ja asiakastyyppi. Arvot kirjoittuvat asiakasprofiiliin automaattisesti.

  [Määritä attribuutit →](/docs/fi/concepts/admin/attributes)

  ### Lisäosien hallinta tilauksilla

  Liitä lisäosatuotteita tilaukseen sen luomisen jälkeen — tilausta ei tarvitse peruuttaa ja rakentaa uudelleen.

  Napsauta tilaussivulla **+ Add** ja valitse **Add-on product**. Valitse lisäosa ja sitten rivitieto, johon se liitetään — esimerkiksi kypärän lisääminen olemassa olevaan polkupyörän vuokraukseen. Lisäosien rivitiedoilla on oma hintansa, joka voi poiketa lisäosan itsenäisestä katalogihinnasta.

  ### Sijaintikohtainen kassamääritys

  Kohdista eri [kassoja](/docs/fi/settings/checkouts) eri palvelusijainneille, jotta asiakkaat näkevät oikean kulun sen mukaan, mistä he tilaavat.

  Avaa verkkokaupan editorissa **Checkout**-sivu ja lisää rivi kohtaan **Location overrides**: valitse kassa ja sitten sijainnit, joita se koskee. TWICE Commerce ratkaisee asiakkaalle näytettävän kassan tässä järjestyksessä: sijainnille kohdistettu kassa, sitten verkkokaupan oletuskassa ja lopuksi tilin oletus. Sijainnille kohdistettua kassaa ei voi poistaa käytöstä tai poistaa, ennen kuin kohdistus on poistettu.

  ### Omat verkkotunnukset

  Liitä oma verkkotunnuksesi verkkokauppaasi. Asiakkaat selaavat ja maksavat brändisi alla TWICE-aliverkkotunnuksen sijaan.

  Siirry kohtaan **Settings → Domains**, napsauta **Connect a domain** ja syötä verkko-osoitteesi. TWICE Commerce näyttää rekisterinpitäjälle lisättävät DNS-tietueet — CNAME aliverkkotunnuksille tai A-tietue juuriverkkotunnuksille. Kun DNS on levinnyt, TLS hankitaan automaattisesti. Seuraa verkkotunnuksen tilaa (`needs setup → pending → active`) ja aseta yksi verkkotunnus ensisijaiseksi.

  <Note>Oman verkkotunnuksen saatavuus riippuu paketistasi. Katso hinnoitteluosio sivulla [TWICE Commerce -yleiskuva](/docs/fi/twice-commerce-overview).</Note>

  [Määritä verkkotunnukset →](/docs/fi/settings/domains)

  ### Varauksen jälkeiset puskuriajat

  Estä saatavuus varauksen päättymisen jälkeen — siivousta, tarkastusta tai tilausten välistä kuljetusta varten.

  Aseta puskuriaika **SKU:lle**, jolloin se koskee oletuksena kaikkia sen varastoartikkeleita. Ohita se yksittäisen **varastoartikkelin** kohdalla, kun tietty yksikkö tarvitsee eri ikkunan. Puskuri pidentää artikkelin varattuna oloa muuttamatta itse tilausta — asiakkaat näkevät estetyn jakson ei-saatavana selatessaan.

  Määritä puskuriaika SKU:n tai varastoartikkelin **Fulfillment**-välilehdellä.

  ### Verkkokaupan sisällön käännökset

  Käännä kirjoittamasi verkkokaupan sisältö kielikohtaisesti suoraan teemaeditorista.

  Avaa teemaeditori ja siirry sivupalkin **Käännökset**-tilaan. Valitse kohdekieli ja käännä sitten hero-tekstit, sivujen tekstit, osioiden nimikkeet ja hakukonemetatiedot. Asiakkaat, jotka selaavat tuetulla kielellä, näkevät käännetyn sisällön automaattisesti; kääntämättömien kenttien tilalla käytetään lähdekieltä.

  Tuettu sisältö: hero-otsikot ja -alaotsikot, sisältölohkojen tekstit, Tietoa-, Ehdot- ja Tietosuoja-sivujen tekstit sekä hakukoneotsikko- ja kuvauskentät.

  <Note>Kassan sisällöllä on oma erillinen käännöseditorinsa kohdassa **Settings → Checkouts** — katso alta.</Note>

  [Hallitse kaupan kieliä →](/docs/fi/settings/translations)

  ### Kassan sisällön käännökset

  Käännä kassan sisältö kielikohtaisesti, verkkokaupasta erillään.

  Avaa kassamääritys kohdassa **Settings → Checkouts** ja siirry **Käännökset**-välilehdelle. Valitse kohdekieli ja käännä sitten yhteystietolomakkeen nimikkeet, suostumustekstit, keräily- ja maksuvaiheiden tekstit sekä tilausvahvistusnäkymä. Asiakkaat, jotka asioivat kassalla tuetulla kielellä, näkevät käännetyn sisällön automaattisesti; kääntämättömien kenttien tilalla käytetään kassan lähdekieltä.

  [Määritä kassat →](/docs/fi/settings/checkouts)

  ### Laajennettu kalenterin mukautus

  [Teemaeditorin](/docs/fi/sales-channels/online-store/theme-editor/overview) kalenteripaneeliin lisättiin lisää säätimiä siihen, miltä saatavuus näyttää verkkokaupassa.

  Varastotasojen väreillä on nyt erilliset tausta- ja tekstivärit tiloille Low, Limited ja High sekä uudelle Out of stock -tilalle, ja lisäksi säädettävät kynnysarvot sille, milloin Low ja Limited pätevät (oletukset: Low ≤ 25 %, Limited ≤ 60 %). Uudet osiot kattavat valitun päivän värit, päiväsolun kulmien pyöristyksen ja kuluvan päivän reunavärin. Varastotasojen selite voi myös näyttää asiakkaille, mitä kukin väri tarkoittaa.

  [Kalenterin asetukset →](/docs/fi/sales-channels/online-store/theme-editor/settings/calendar)

  ### Laajennettu tilaustaulukon haku

  Tilaustaulukon haku osuu nyt useampiin kenttiin.

  Tilausnumeron ja statuksen lisäksi haku kattaa nyt:

  * Kaikki tilauksen asiakkaat — etunimen, sukunimen, koko nimen ja yrityksen nimen perusteella
  * Tilaukselle kohdistetut varastoartikkelikoodit

  Käytä tilaustaulukon yläreunan hakupalkkia.

  ### Tiedostojen uudelleennimeäminen dokumenttivälilehdillä

  Nimeä mikä tahansa ladattu tiedosto uudelleen suoraan sen dokumenttivälilehdeltä — käytettävissä tilauksilla, asiakkailla, varastoartikkeleilla, SKU:illa ja listauksilla.

  Avaa tiedostorivin kolmen pisteen valikko ja valitse **Rename**. Valintaikkuna esitäyttää nykyisen nimen tiedostopäätteineen. Muokkaa nimeä ja tallenna. Vain omistamasi tiedostot voi nimetä uudelleen — listauspohjalta perittyjä ei.

  ### Tulossa pian

  * **Tehtävät** — kohdista ja seuraa operatiivista työtä tiimissäsi
  * Lisää kolmannen osapuolen myyntikanavaintegraatioita
  * Vastuullisuuden ja koostettavuuden seuranta varastoartikkeleille

  Koko kuvan näet [tiekartasta](/docs/fi/roadmap).
</Update>
