Skip to main content
Hintataulukot Adminissa

Katalogi > Hintataulukot

Määritelmä

Vertaus: Hintataulukko on hinnasto. Se kokoaa yhden myyntitavan — varauksen, myynnin tai kestotilauksen — kaikki hinnat yhdeksi muokattavaksi objektiksi, joka voidaan liittää yhteen listaukseen tai jakaa monelle.
Erityistä TWICEssä: Listaus ei koskaan tallenna hintakenttää suoraan. Kaikki hinnoittelu on hintataulukoissa. Listauksella voi olla yksi oletushintataulukko sekä mikä tahansa määrä päivämäärään sidottuja taulukoita kampanjoita, kausia tai kampanjahinnoittelua varten. Taulukon availabilityRange määrittää, milloin sen rivit ovat ehdolla — se ei anna taulukolle etusijaa. Laskentahetkellä kaikkien varaukselle aktiivisten taulukoiden rivit käsitellään yhdessä (katso kohta Hinnan ratkaisu).

Missä sitä käytetään?

  • Vuokrahinnastot — määritä 1 päivä 40 €, 3 päivää 100 €, 1 viikko 180 € ja niin edelleen
  • Myyntihinnoittelu — aseta listauksen suoramyyntihinta, halutessasi vertailuhinnan kanssa
  • Kestotilaussuunnitelmat — määritä sitoutumisjakso, maksujakso ja automaattisen uusimisen rytmi
  • Kampanja- ja kausihinnoittelu — liitä lisäksi päivämäärään sidottu hintataulukko, jonka rivit ovat ehdolla sen aikaikkunan sisällä (halvempi kampanjarivi valitaan oletuksen sijaan — katso kohta Hinnan ratkaisu)
  • Varianttikohtaiset ohitukset — säädä kutakin hintariviä rateMultiplier-kertoimella tietyille varianttiarvoille
  • Massahinnoittelu — ylläpidä yhtä jaettua taulukkoa ja liitä se moneen saman kategorian listaukseen

Hintataulukon malli

API:n palauttama jaettu oletushintataulukko näyttää tältä:
catalogItemId on null jaetuissa taulukoissa, joita ei ole sidottu yhteen listaukseen, ja availabilityRange on null aina voimassa olevassa oletustaulukossa. Yksi hintataulukko sisältää kolme toisistaan riippumatonta rivijoukkoa — varaus-, myynti- ja kestotilausrivit — joita ohjaavat bookingsEnabled, salesEnabled ja subscriptionsEnabled. Poista käytöstä ne tavat, joita et myy, jotta muokkausnäkymä pysyy selkeänä.

Jaettu vs. itsenäinen

Linkitystä hallitaan omilla päätepisteillään (link-catalog-item, unlink-catalog-items), jotta listauksella on selkeä tieto siitä, mitkä jaetut taulukot siihen pätevät.

Hintarivityypit

Hintataulukko sisältää kolme rivityyppiä, joista kukin ohjaa eri ostotapaa.

Varaushintarivit

Käytetään, kun tilaus on vuokravaraus. Kertoimeen perustuvassa hinnoittelussa moottori valitsee rivit, jotka kattavat varauksen keston parhaiten (katso kohta Hinnan ratkaisu). Tunti-, päivä- ja viikkorivien avulla yksi hintataulukko kattaa minkä tahansa keston järkevällä hinnalla.

Myyntihintarivit

Käytetään suorissa myyntitilauksissa.

Kestotilaushintarivit

Käytetään kestotilaustyyppisissä tilauksissa. Katso koko laskutuksen elinkaari kohdasta Kestotilaukset.

Varianttikohtainen hinnoittelu

Jos listauksella on variantteja, hintataulukossa voi olla vapaaehtoinen variants-taulukko CatalogItemVariantPricingTable-merkintöjä. Kukin merkintä sitoo variantName-arvon ja yhden tai useamman values-arvon rateMultiplier-kertoimeen sekä rivikohtaisiin kertoimiin varaus-, myynti- ja kestotilausriveille. CatalogItemVariantPricingTable-merkinnässä on seuraavat kentät: Kukin rivikohtainen ohitus viittaa säätämäänsä perushintariviin (basePricingRowId) ja soveltaa rateMultiplier-kerrointa (ja vapaaehtoista additionalRateMultiplier-kerrointa) kyseisen perusrivin hinnan päälle. Kerroin 1.0 vastaa perustasoa; 1.2 lisää 20 %; 0.8 antaa 20 % alennuksen. Admin merkitsee jokaisen yhdistelmän, jolla on CatalogItemVariantPricingTable-merkintä, tekstillä ”Variant pricing” tekstin ”Base” sijaan.

Aloitettuihin jaksoihin perustuva hinnoittelu

Jokaisella varaushintarivillä on timeBasis-kenttä, joka määrittää, miten kestoa lasketaan laskutusta varten. Tapoja on kaksi:

Miten ”Starting at” -laskutus toimii

Hinnoittelumoottori tunnistaa jokaisen kalenterijakson, jota varaus koskettaa rivin omalla ruudukolla. Päiväyksikkö on aina keskiyöstä keskiyöhön, tuntiyksikkö tasatunnista tasatuntiin ja viikkoyksikkö alkaa asiakkaan määrittämästä viikon ensimmäisestä päivästä. Jokainen kosketettu jakso laskutetaan yhtenä yksikkönä — ellei hienojakoisempi hinta kata kyseisen jakson varattua osuutta halvemmalla. Moottori valitsee halvimman kelvollisen yhdistelmän rekursiivisesti. Esimerkki — päivä- ja viikkohinnat: 10 päivän varaus, joka alkaa torstaina, päivähinta 50 € ja viikkohinta 250 €:
  • Torstaista sunnuntaihin: 4 aloitettua päivää = 200 €
  • Maanantaista seuraavaan sunnuntaihin: 1 aloitettu viikko = 250 €
  • Yhteensä: 450 €
Viikko on kalenteriin sidottu (ma–su, kun viikko alkaa maanantaista), ei noutohetkeen ankkuroitu. Esimerkki — päivä- ja tuntihinnat: Päivähinta 100 €, tuntihinta 20 €. Varaus maanantaista klo 9.00 tiistaihin klo 9.00:
  • Maanantai: 1 aloitettu päivä = 100 €
  • Tiistai: 1 aloitettu päivä = 100 €
  • Yhteensä: 200 € (2 kalenteripäivää)
Jos tuntihinta olisi 5 €, moottori laskuttaisi 24 aloitettua tuntia = 120 €, koska hienojakoisempi yhdistelmä on halvempi.

”Starting at” kiinteän keston paketeissa

Myös kiinteän keston varausrivit tukevat timeBasis-asetusta. Kalenteriin sidottu kiinteä paketti ankkuroi palautuspäivän kalenterijaksoon eikä tarkkaan noutoaikaan. ”2 päivää” -kiinteä paketti, joka noudetaan maanantaina klo 14.00:
  • Kulunut aika (rolling): palautus keskiviikkona klo 14.00 — tasan 48 tuntia myöhemmin
  • Aloitetut jaksot (capped): palautus tiistaina viimeisimpään mahdolliseen palautusaikaan mennessä — varaus koskettaa maanantaita ja tiistaita, joten kaksi kalenteripäivää tulee katetuksi
Jos palautuspäivä osuu päivälle, jolloin sijainti on suljettu, vaihtoehtoa ei tarjota kyseiselle noutopäivälle.

Rajoitukset

  • Tuntia lyhyemmät yksiköt laskuttavat aina kuluneen ajan mukaan. timeBasis-asetus ei vaikuta riveihin, jotka käyttävät yksikköjä seconds tai minutes. Ne voivat esiintyä vapaasti ”Starting at” -taulukossa.
  • Kaikki taulukon kertoimeen perustuvat rivit jakavat saman timeBasis-arvon. Admin valvoo tätä yhdellä ”Starting at pricing” -valintaruudulla, joka koskee kaikkia kelvollisia kertoimeen perustuvia rivejä. Kiinteän keston riveillä on kullakin oma itsenäinen timeBasis-asetuksensa.
  • Viikkohinnat käyttävät asiakkaan viikon aloituspäivää. Lauantai–sunnuntai-varaus lasketaan yhdeksi viikoksi, kun viikko alkaa maanantaista (molemmat päivät ovat samassa ma–su-viikossa), mutta kahdeksi viikoksi, kun viikko alkaa sunnuntaista.
Varaushinnan osio, jossa näkyy Starting at pricing -valintaruutu

Kertoimeen perustuva varaushinnoittelu ja Starting at pricing -valintaruutu

Kiinteän rivin kestovaihtoehdot Started- ja Elapsed-muodoissa

Kiinteän hinnoittelurivin kestovaihtoehdot

Hinnan ratkaisu

availabilityRange määrittää, mitkä taulukot ovat ehdolla varaukseen — se ei anna taulukolle etusijaa. Taulukkokohtaista prioriteetti- tai ohituskenttää ei ole. Kun hinta lasketaan: Kaikki hinnoittelulaskennat suoritetaan sijainnin aikavyöhykkeellä. Päivä- ja viikkorajat, weekdays-rajoitukset ja timeOfDayRange-ikkunat arvioidaan sijainnin paikallisen kellon mukaan — ei UTC:n eikä asiakkaan aikavyöhykkeen. Paikallisen keskiyön tuntumassa oleva varaus kohdistuu oikeaan paikalliseen päivään, ja kesäaikasiirtymät hoidetaan kalenterilaskennalla sijainnin aikavyöhykkeellä.
  1. Kerää aktiiviset taulukot. Taulukko on aktiivinen, kun sillä ei ole availabilityRange-arvoa tai sen aikaväli menee päällekkäin varauspäivien kanssa. Oletustaulukko (ei aikaväliä) on siten aina aktiivinen yhdessä minkä tahansa päivämäärään sidotun taulukon kanssa, jonka ikkunaan varaus osuu.
  2. Kokoa rivit. Kaikki aktiivisten taulukoiden käytössä olevat rivit kootaan yhteen ehdokasjoukkoon. Moottori ei valitse ensin yhtä ”voittavaa” taulukkoa — eri taulukoiden rivit kilpailevat suoraan.
  3. Valitse rivi tai rivit.
    • Kertoimeen perustuvat (dynaamiset) varaukset — moottori rakentaa joukosta halvimman kelvollisen katteen varauksen kestolle. Kussakin osuudessa se suosii riviä, jolla on pisin vielä mahtuva kesto, ja tasatilanteessa halvin hinta, ja täyttää loput lyhyemmillä riveillä ja lisäaikasäännöillä (viikonpäivä-, kellonaika- ja availabilityRange-rajoitukset pätevät edelleen rivikohtaisesti). Kun rivit käyttävät aloitettuihin jaksoihin perustuvaa hinnoittelua (timeBasis: capped), moottori laskee kosketetut kalenterijaksot kuluneen ajan sijaan ja valitsee halvimman yhdistelmän eri tarkkuustasoilta.
    • Kiinteähintaiset varaukset — asiakas valitsee tietyn hintarivin (esimerkiksi 1 päivä 40 €) ja kyseisen rivin hintaa käytetään sellaisenaan.
  4. Sovella varianttikertoimia. Jos jokin CatalogItemVariantPricingTable-merkintä vastaa valittua varianttiarvojen yhdistelmää, kerro rivin osuus rivitason kertoimella (ja taulukkotason rateMultiplier-kertoimella).
  5. Palauta summat. Päätepisteet …/rate-based-price ja …/fixed-price palauttavat priceBreakdown-erittelyn sekä totalPrice-summan, jossa kukin osuus on eritelty verkkokauppaa ja tilausyhteenvetoa varten.
Päivämäärään sidottu taulukko ei ohita oletusta päivämäärän perusteella — se kilpailee samassa joukossa. Kertoimeen perustuvassa hinnoittelussa päivämäärään sidottua riviä käytetään vain, kun moottori valitsee sen (halvimman keston kattavan rivin). Halvempi kampanjarivi siis voittaa ikkunansa sisällä, mutta korkeampaa päivämääräkohtaista hintaa (esimerkiksi juhlapyhälisää) ei sovelleta, jos oletuksessa on edelleen yhtä pitkä tai pidempi rivi, joka kattaa saman keston halvemmalla.Esimerkki. Oletustaulukko: 1 päivä 100 € (ei päivämääräväliä). Juhlapyhätaulukko: 1 päivä 150 € (24.–31.12.). 24 tunnin vuokraus 25.12. hinnoitellaan 100 euroon — molemmat rivit kattavat päivän yhtä lailla, joten halvempi voittaa. Jos haluat veloittaa 150 euron juhlapyhähinnan, poista tai kytke pois kilpaileva 100 euron rivi kyseiseltä ikkunalta (tai aseta sen availabilityRange sulkemaan juhlapyhäpäivät pois), jotta vain 150 euron rivi kattaa sen.
Hintataulukkomallissa ei tällä hetkellä ole asiakastunnistekohtaista hinnoittelua — asiakassegmenttien hinnoittelua ei voi määrittää hintataulukossa. Tietyille asiakkaille tarkoitetut edut hoidetaan alennuskoodeilla, ei hintataulukoilla.

Taulukoiden soveltaminen listauksiin ja kokoelmiin

Jaettu hintataulukko liitetään listaukseen omilla päätepisteillään:
  • POST /pricing-tables/pricing-table/:pricingTableId/link-catalog-item — liitä yksi listaus
  • DELETE /pricing-tables/pricing-table/:pricingTableId/unlink-catalog-items — poista liitokset kerralla
  • POST /pricing-tables/add-pricing-table-to-catalog-item — erotteleva unioni neljälle liitostavalle:
    • mode = 'link' — liitä olemassa olevaan jaettuun taulukkoon
    • mode = 'create' — luo uusi itsenäinen taulukko suoraan
    • mode = 'sharedToShared' — korvaa yksi jaettu liitos toisella
    • mode = 'sharedToStandalone' — haaroita jaettu taulukko itsenäiseksi listauksella
    • mode = 'standaloneToShared' / 'standaloneUpdate' — vaihda omistajuutta tai nimeä paikallaan
Kokoelmia ei voi liittää suoraan hintataulukkoon. Kokoelman uudelleenhinnoittelu tehdään käymällä läpi sen listCatalogItems ja liittämällä taulukko kuhunkin listaukseen.

Keskeiset ominaisuudet (hintataulukko)

Suhteet

Jaettuun hintataulukkoon voi linkittää monta listausta. Itsenäinen hintataulukko on olemassa vain yhdellä listauksella.
Jokainen taulukko on säiliö kolmelle toisistaan riippumattomalle hinnoittelutavalle. Kytke tavat päälle ja pois rakentamatta taulukkoa uudelleen.
Varianttikohtaiset hinnoittelumerkinnät viittaavat listauksen varianttiarvoihin — katso Variantti-käsite.
Verkkokauppa ja tilausten rakentaja valitsevat oikean rivin ostotavan mukaan (varaus / myynti / kestotilaus) ja kutsuvat päätepistettä …/rate-based-price tai …/fixed-price loppusumman laskemiseksi.

Elinkaari

1

Luonti

POST /pricing-tables/ kentällä label ja (jaetuissa taulukoissa) isDefault: true. Uudet taulukot alkavat tyhjillä rivitaulukoilla.
Käytä itsenäistä, kun hinnoittelu on yhdelle listaukselle ainutlaatuista. Käytä jaettua, kun haluat käyttää samaa hinnastoa useissa saman kategorian listauksissa.
Et. Vain taulukot, joilla availabilityRange = null, voivat olla isDefault = true (Adminin käyttöliittymä valvoo tätä; malli sallii merkinnän, mutta liitoslogiikka ohittaa päivämäärään sidotut taulukot oletusta ratkaistessaan).
2

Rivien lisäys

Lisää varaus-, myynti- ja kestotilausrivejä rivikohtaisilla päätepisteillä (/pricing-table/:id/row, …/sales-row, …/subscription-row). Lisää varianttikohtaisia ohituksia päätepisteellä /pricing-table/:id/variant-pricing-table.
3

Liittäminen listaukseen

Käytä päätepistettä add-pricing-table-to-catalog-item oikealla mode-arvolla. Listauksen Hinnoittelu-välilehti näyttää liitetyt taulukot sivupalkissa ja antaa luoda uusia suoraan.
4

Varianttikohtainen ohitus

Lisää CatalogItemVariantPricingTable-lohko niille varianttiarvoille, jotka tarvitsevat eri hinnoittelun.
5

Kampanjointi tai korvaaminen

Kun haluat ottaa hintamuutoksen käyttöön rikkomatta aktiivisia tilauksia, lisää uusi päivämäärään sidottu taulukko kyseiselle ikkunalle. Sen rivit kilpailevat ikkunan sisällä oletuksen kanssa samassa joukossa — halvempi rivi valitaan automaattisesti. Korkeampi hinta tulee voimaan vasta, kun poistat kilpailevan oletusrivin tai rajaat sen päivämäärillä pois (katso kohta Hinnan ratkaisu). Olemassa olevat tilaukset säilyttävät kassalla tallennetun hintansa.
6

Poisto

DELETE /pricing-tables/delete-table/:pricingTableId. Jaetun taulukon poistaminen irrottaa sen jokaisesta listauksesta.

Usein kysytyt kysymykset

Kyllä. Voit liittää oletustaulukon sekä minkä tahansa määrän päivämäärään sidottuja taulukoita kampanjoita tai kausia varten. Tilaushetkellä kaikkien varaukselle aktiivisten taulukoiden rivit kootaan yhteen, ja moottori valitsee tästä joukosta — katso kohta Hinnan ratkaisu. availabilityRange päättää, mitkä taulukot ovat ehdolla, ei sitä, kumpi voittaa.
Siitä varaushintarivistä, joka sopii pyydettyyn kestoon parhaiten. Järjestelmä tarkastelee kunkin käytössä olevan rivin arvoa timeUnit × timeUnitAmount, valitsee lähimmän sopivan ja soveltaa loppuosaan lisäaikasääntöjä.
Luo päivämäärään sidottu hintataulukko, jonka availabilityRange kattaa viikonlopun ja jonka rivit on hinnoiteltu 20 % oletusta halvemmiksi, ja liitä se kyseisiin listauksiin. Koska kampanjarivit ovat halvempia ja kattavat samat kestot, moottori valitsee ne ikkunan sisällä ja palaa sen jälkeen oletukseen. Tämä toimii nimenomaan siksi, että kampanja on halvempi — katso seuraavasta kysymyksestä korkeampi hinnoittelu.
Koska moottori kokoaa kaikki aktiiviset taulukot yhteen ja valitsee halvimman keston kattavan rivin — se ei suosi päivämäärään sidottuja taulukoita. Korkeampaa päivämääräkohtaista hintaa ei valita, jos oletuksessa on edelleen yhtä pitkä tai pidempi rivi, joka kattaa saman keston halvemmalla. Lisän soveltamiseksi poista tai kytke pois kilpaileva oletusrivi kyseiseltä ikkunalta, tai aseta oletusrivin availabilityRange sulkemaan nuo päivät pois, jotta vain korkeampi rivi kattaa ne.
Rolling (oletus) laskee kulunutta aikaa noudosta. ”Päivä” on 24 tuntia. Varaus maanantaista klo 14.00 keskiviikkoon klo 14.00 laskuttaa tasan 2 päivää.Starting at (capped) laskee jokaisen varauksen koskettaman kalenterijakson. ”Päivä” on keskiyöstä keskiyöhön. Sama varaus maanantaista klo 14.00 keskiviikkoon klo 14.00 koskettaa maanantaita, tiistaita ja keskiviikkoa — 3 aloitettua päivää.Käytä ”Starting at” -tapaa, kun veloitat kalenteripäivittäin (kuten pysäköintihallit tai hotelliyöt). Käytä rolling-tapaa, kun veloitat tarkan kuluneen ajan mukaan (kuten tuntipohjaisessa laitevuokrauksessa).
Eivät hintataulukoiden kautta. Hintataulukkomallissa ei tällä hetkellä ole asiakassegmenttiulottuvuutta. Käytä asiakaskohtaiseen hinnoitteluun alennuskoodeja.
Sijainnin aikavyöhykettä. Päivä- ja viikkorajat, viikonpäivärajoitukset ja kellonaikaikkunat ratkaistaan sijainnin paikallisen kellon mukaan. Jos sijainnin aikavyöhykettä ei ole asetettu, käytetään asiakastason aikavyöhykettä ja viimeisenä keinona UTC:tä. Aikavyöhyke ratkaistaan valitusta noutosijainnista (tai jos yhtä sijaintia ei ole valittu, listauksen ensisijaisesta liitetystä sijainnista).
Ei. Tilaukset tallentavat hintaosuudet kassalla. Hintataulukon muokkaus vaikuttaa vain tulevien tilausten summiin.
priceContribution on se, mitä yksi rivi lisäsi summaan; totalPrice on kaikkien moottorin valitsemien rivien summa (perusrivi + lisäaikarivit + varianttikertoimet).

Kehittäjän viite

Hintataulukot näkyvät API:ssa nimellä pricing-tables.

API: Pricing Tables

Avaa päätepiste API-referenssissä.

Aiheeseen liittyvää

Listaukset

Mihin hintataulukko liitetään

Variantit

Varianttikohtaiset hinnoitteluohitukset

Kokoelmat

Ryhmittele listaukset ennen jaetun taulukon massakäyttöönottoa

Tilauksen elinkaari

Missä hintataulukon summat tallennetaan kassalla