
Katalogi > Hintataulukot
Määritelmä
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
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.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 vapaaehtoinenvariants-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:
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ä ontimeBasis-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 €
- Maanantai: 1 aloitettu päivä = 100 €
- Tiistai: 1 aloitettu päivä = 100 €
- Yhteensä: 200 € (2 kalenteripäivää)
”Starting at” kiinteän keston paketeissa
Myös kiinteän keston varausrivit tukevattimeBasis-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
Rajoitukset
- Tuntia lyhyemmät yksiköt laskuttavat aina kuluneen ajan mukaan.
timeBasis-asetus ei vaikuta riveihin, jotka käyttävät yksikköjäsecondstaiminutes. 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äinentimeBasis-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.

Kertoimeen perustuva varaushinnoittelu ja Starting at pricing -valintaruutu

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ä.
- 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. - 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.
- 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.
- 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
- Sovella varianttikertoimia. Jos jokin
CatalogItemVariantPricingTable-merkintä vastaa valittua varianttiarvojen yhdistelmää, kerro rivin osuus rivitason kertoimella (ja taulukkotasonrateMultiplier-kertoimella). - Palauta summat. Päätepisteet
…/rate-based-priceja…/fixed-pricepalauttavatpriceBreakdown-erittelyn sekätotalPrice-summan, jossa kukin osuus on eritelty verkkokauppaa ja tilausyhteenvetoa varten.
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 listausDELETE /pricing-tables/pricing-table/:pricingTableId/unlink-catalog-items— poista liitokset kerrallaPOST /pricing-tables/add-pricing-table-to-catalog-item— erotteleva unioni neljälle liitostavalle:mode = 'link'— liitä olemassa olevaan jaettuun taulukkoonmode = 'create'— luo uusi itsenäinen taulukko suoraanmode = 'sharedToShared'— korvaa yksi jaettu liitos toisellamode = 'sharedToStandalone'— haaroita jaettu taulukko itsenäiseksi listauksellamode = 'standaloneToShared'/'standaloneUpdate'— vaihda omistajuutta tai nimeä paikallaan
listCatalogItems ja liittämällä taulukko kuhunkin listaukseen.
Keskeiset ominaisuudet (hintataulukko)
Suhteet
Liitetty yhteen tai useampaan listaukseen
Liitetty yhteen tai useampaan listaukseen
Sisältää varaus-, myynti- ja kestotilausrivit
Sisältää varaus-, myynti- ja kestotilausrivit
Lisää varianttihinnoittelun listauksen varianttien päälle
Lisää varianttihinnoittelun listauksen varianttien päälle
Arvioidaan listauksen ostotapaa vasten kassalla
Arvioidaan listauksen ostotapaa vasten kassalla
…/rate-based-price tai …/fixed-price loppusumman laskemiseksi.Elinkaari
Luonti
POST /pricing-tables/ kentällä label ja (jaetuissa taulukoissa) isDefault: true. Uudet taulukot alkavat tyhjillä rivitaulukoilla.Itsenäinen vai jaettu?
Itsenäinen vai jaettu?
Voinko tehdä päivämäärään sidotusta taulukosta oletuksen?
Voinko tehdä päivämäärään sidotusta taulukosta oletuksen?
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).Rivien lisäys
/pricing-table/:id/row, …/sales-row, …/subscription-row). Lisää varianttikohtaisia ohituksia päätepisteellä /pricing-table/:id/variant-pricing-table.Liittäminen listaukseen
add-pricing-table-to-catalog-item oikealla mode-arvolla. Listauksen Hinnoittelu-välilehti näyttää liitetyt taulukot sivupalkissa ja antaa luoda uusia suoraan.Varianttikohtainen ohitus
CatalogItemVariantPricingTable-lohko niille varianttiarvoille, jotka tarvitsevat eri hinnoittelun.Kampanjointi tai korvaaminen
Poisto
DELETE /pricing-tables/delete-table/:pricingTableId. Jaetun taulukon poistaminen irrottaa sen jokaisesta listauksesta.Usein kysytyt kysymykset
Voiko yhdellä listauksella olla useita hintataulukoita?
Voiko yhdellä listauksella olla useita hintataulukoita?
availabilityRange päättää, mitkä taulukot ovat ehdolla, ei sitä, kumpi voittaa.Mistä vuokra-ajan hinta tulee?
Mistä vuokra-ajan hinta tulee?
timeUnit × timeUnitAmount, valitsee lähimmän sopivan ja soveltaa loppuosaan lisäaikasääntöjä.Miten toteutan 20 %:n viikonloppukampanjan?
Miten toteutan 20 %:n viikonloppukampanjan?
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.Miksi korkeampi kausi- tai juhlapyhähintani ei mene läpi?
Miksi korkeampi kausi- tai juhlapyhähintani ei mene läpi?
availabilityRange sulkemaan nuo päivät pois, jotta vain korkeampi rivi kattaa ne.Mikä ero on rolling- ja Starting at -hinnoittelulla?
Mikä ero on rolling- ja Starting at -hinnoittelulla?
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).Voivatko hinnat vaihdella asiakassegmentin mukaan?
Voivatko hinnat vaihdella asiakassegmentin mukaan?
Mitä aikavyöhykettä hinnoittelumoottori käyttää?
Mitä aikavyöhykettä hinnoittelumoottori käyttää?
Hinnoitellaanko olemassa olevat tilaukset uudelleen, kun muokkaan taulukkoa?
Hinnoitellaanko olemassa olevat tilaukset uudelleen, kun muokkaan taulukkoa?
Mikä ero on vastauksen kentillä `priceContribution` ja `totalPrice`?
Mikä ero on vastauksen kentillä `priceContribution` ja `totalPrice`?
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.