Transsmart tarjoaa kustannusennusteita asiakkaan yhden tai useamman kuljetusliikkeen kanssa tekemien kuljetussopimusten perusteella. Yhdistettyjen kuljetusliikkeiden määrän kasvaessa myös käytettyjen sopimustyyppien määrä on kasvanut. Jotta kuljetuskustannukset voidaan laskea tehokkaasti, kehitimme tariffimoottorin. Tässä artikkelissa kerrotaan, miten moottori toimii ja miten asiakkaat voivat määrittää ja ylläpitää omia hintojaan.
Tämän artikkelin osiot:
Process description
Alla oleva kaavio näyttää, miten hintalaskentaprosessi on rakennettu.
Kaaviomainen yleiskuva Transsmartin hintalaskentaprosessista:
Tämän prosessin aikana kuljetuskustannukset lasketaan tai ennustetaan. Sen avulla voidaan myös verrata ennustettuja kustannuksia toteutuneisiin kustannuksiin. Koska kuljetusmaksut ja lisämaksut esitetään erikseen, kokonaishinnan täydellinen erittely on mahdollista analysoida.
Basic configuration
Seuraavat taulukot liittyvät hintalaskentaprosessiin:
| Previous table name (<2022) | Current table name |
| Client-carrier | Client Carriers |
| Zone Lookup | Zones |
| Weight Determination Lookup | Buy Weights |
| Sales Weight Determination Lookup | Sell Weights |
| Tariff Determination [DEV] | Buy Rates |
| Sales Tariff Determination [DEV] | Sell Rates |
| Sales Margins [DEV] | Sell Margins |
Vain Buy Rates, Sell Rates ja Sell Margins voidaan määrittää asiakkaiden toimesta. Kaikkia muita taulukoita voi hallinnoida vain nShiftin työntekijä.
Pääpaino on Buy Rates -taulukossa. Järjestelmän kokonaisvaltaisen ymmärtämisen tueksi kaikki taulukot selitetään kuitenkin lyhyesti Other Tables -osiossa.
Buy Rates
Buy Rates -taulukko on tariffimoottorin perusta. Toisin kuin aiemmassa asetuksessa, jossa käytettiin vain yhtä vastaavaa tariffiriviä, moottori arvioi nyt kaikki soveltuvat rivit ja laskee ne yhteen lopullisen hinnan määrittämiseksi. Näin collo-, package- tai shipment-tasolla määritellyt säännöt voivat kaikki vaikuttaa laskentaan.
Seuraavassa osiossa selitetään Buy Rates -taulukon sarakkeet ja esitetään esimerkkejä.
| # | Element | Mandatory | Description |
| 1 | Identity | N | Tämä kenttä sisältää tietueen yksilöllisen tietokanta-ID:n. Jos lataat olemassa olevia tietueita, kenttä on täytetty. Jos haluat ladata ja korvata olemassa olevia tietueita, tämän kentän on pysyttävä täytettynä. Jos haluat lisätä uusia rivejä, varmista että tämä kenttä on tyhjä. |
| 2 | customerId | N | Tässä sarakkeessa voidaan käyttää kaikkia asiakashierarkian arvoja: customer_id, group_id ja organisation_id. |
| 3 | costcenter | N | Jos kustannuspaikalla on eri hinnat, tämä voidaan määrittää täyttämällä tämä sarake. |
| 4 | level | Y | Hinnat voidaan määrittää eri tasoilla: COLLO, PACKAGE ja SHIPMENT. Tämän arvon perusteella hinnat lasketaan eri tavalla. Katso alta selitys eri tasojen eroista. |
| 5 | carrier | Y | Kuljetusliike tulee määrittää tähän. |
| 6 | serviceLevelTime | N | Serviceleveltime voidaan määrittää tässä, jos eri serviceleveltime-arvoille sovelletaan eri hintoja. |
| 7 | serviceLevelOther | N | Servicelevelother voidaan määrittää tässä, jos eri servicelevelother-arvoille sovelletaan eri hintoja. |
| 8 | packageType | N | Pakkaustyyppi voidaan määrittää tässä, jos eri pakkaustyypeille sovelletaan eri hintoja. |
| 9 | carrierAccountno | N | Kuljetusliikkeen tilinumero voidaan määrittää tässä, jos eri tilinumeroille sovelletaan eri hintoja. |
| 10 | inbound | N | Tässä voidaan määrittää, koskevatko hinnat inbound-lähetyksiä. Oletusarvo on '0', mikä tarkoittaa outbound-lähetystä. |
| 11 | zone | N | Alue voidaan määrittää tässä, jos eri alueille sovelletaan eri hintoja. |
| 12 | minTotalWeight | N | Tässä ilmoitetaan määritellyn tason (#3) vähimmäiskokonaispaino kilogrammoina. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 13 | maxTotalWeight | N | Tässä ilmoitetaan määritellyn tason (#3) enimmäiskokonaispaino kilogrammoina. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 14 | minLength | N | Tässä määritetään jokaisen collon vähimmäispituus senttimetreinä. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 15 | maxLength | N | Tässä määritetään jokaisen collon enimmäispituus senttimetreinä. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 16 | minWidth | N | Tässä määritetään jokaisen collon vähimmäisleveys senttimetreinä. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 17 | maxWidth | N | Tässä määritetään jokaisen collon enimmäisleveys senttimetreinä. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 18 | minHeight | N | Tässä määritetään jokaisen collon vähimmäiskorkeus senttimetreinä. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 19 | maxHeight | N | Tässä määritetään jokaisen collon enimmäiskorkeus senttimetreinä. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 20 | minConveyDimension | N | Tässä määritetään tason (collo, package, shipment) vähimmäismitta senttimetreinä. Se lasketaan kaavalla pituus + 2*leveys + 2*korkeus. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 21 | maxConveyDimension | N | Tässä määritetään tason (collo, package, shipment) enimmäismitta senttimetreinä. Se lasketaan kaavalla pituus + 2*leveys + 2*korkeus. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 22 | minLoadmeter | N | Tässä määritetään lähetyksen, paketin tai collon vähimmäiskuormametri. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 23 | maxLoadmeter | N | Tässä määritetään lähetyksen, paketin tai collon enimmäiskuormametri. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 24 | minVolume | N | Tässä määritetään tason (collo, package, shipment) vähimmäistilavuus senttimetreinä CM3. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 25 | maxVolume | N | Tässä määritetään tason (collo, package, shipment) enimmäistilavuus senttimetreinä CM3. Monicolli-lähetyksissä jokainen collo tarkistetaan erikseen. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 26 | minValue | N | Tässä määritetään lähetyksen, paketin tai collon vähimmäiskaupallinen arvo. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 27 | maxValue | N | Tässä määritetään lähetyksen, paketin tai collon enimmäiskaupallinen arvo. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 28 | colloQuantityFrom | N | Tässä voidaan määrittää collien vähimmäismäärä. |
| 29 | colloQuantityTo | N | Tässä voidaan määrittää collien enimmäismäärä. |
| 30 | calcType | Y | Tässä määritetään hinnan laskentamenetelmä. Katso lisätietoja alta kohdasta ”Calculation Type”. |
| 31 | queryType | N | Tässä määritetään hinnan laskentaan käytettävä menetelmä. Katso lisätietoja alta kohdasta ”Query Type”. |
| 32 | tariffValue | Y | Tässä määritetään varsinainen hinta. Se voi olla kiinteä hinta, prosenttiosuus tai kilogrammahinta. Arvo voidaan määrittää neljän desimaalin tarkkuudella. |
| 33 | currency | Y | Tässä määritetään käytettävä valuutta. |
| 34 | chargeGroup | N | Tässä määritetään käytettävä veloitusryhmä. Katso lisätietoja alta kohdasta ”Charge Group”. |
| 35 | chargeType | N | Tässä määritetään käytettävä veloitustyyppi. Katso lisätietoja alta kohdasta ”Charge Type”. |
| 36 | boundaryType | N | Tässä elementissä voidaan määrittää lisärajoituksia, jotka tulee ottaa huomioon, kuten COLLOWEIGHT, PALLETWEIGHT tai LOADMETER. |
| 37 | boundaryMin | N | Jos elementissä #25 on määritetty rajoitus, tämä parametri määrittää sen vähimmäisarvon. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 38 | boundaryMax | N | Jos elementissä #25 on määritetty rajoitus, tämä parametri määrittää sen enimmäisarvon. Arvo voidaan määrittää kolmen desimaalin tarkkuudella. |
| 39 | validFrom | Y | Tässä määritetään hinnan voimassaolon alkamispäivä. |
| 40 | validUntil | Y | Tässä määritetään hinnan voimassaolon päättymispäivä. |
Calculation Type
| # | Calculation Type | Level | Description |
| 1 | BASE |
Shipment Collo Package |
Tällä tyypillä määritetään kiinteä hinta kyseiselle riville. Arvo voidaan määrittää neljän desimaalin tarkkuudella. |
| 2 | PIECE |
Shipment Collo Package |
Tällä tyypillä määritetään hinta per collo. Käytettävä kaava on relevant amount * tariffValue. Arvo voidaan määrittää neljän desimaalin tarkkuudella. |
| 3 | KG |
Shipment Collo Package |
Tämä mahdollistaa hinnan per kilogramma. Buy Weights -taulukon perusteella käytetään joko laskettua painoa tai bruttopainoa (sen mukaan kumpi on suurempi), ja jos määritetty, käytetään myös pyöristyskerrointa. On tärkeää asettaa queryType-arvoksi STAFFEL. Tämä laskentatyyppi johtaa todennäköisesti aina useisiin hintatuloksiin, koska eri painoille sovelletaan yleensä hintaporrasta ja sen lisäksi lisätään KG-hinta: jos lähetys painaa 73,26 kg, syntyy tulos BASE-hintaportaalta 70.01–9999.00 kg sekä tulos KG – STAFFEL -riviltä 70.01–9999.00 kg. Käytettävä kaava on tariffValue (euroa per kg) * amount kg. Arvo voidaan määrittää neljän desimaalin tarkkuudella. |
| 4 | PERCENT_VALUE | Shipment | Tällä tavalla lasketaan prosenttiosuus suhteessa lähetyksen kaupalliseen arvoon. Prosentin asettamistapa on 0.01 = 1 %. Prosenttiosuus voidaan määrittää kolmen desimaalin tarkkuudella. |
| 5 | PERCENT_SERVICE | Shipment | Tämä laskentatyyppi käyttää samanlaista toiminnallisuutta kuin PERCENT_VALUE, mutta tällöin lisätään prosenttiosuus ostohinnasta. Esimerkki tästä tyypistä on polttoainelisä ja/tai ylisuuruuslisä. Prosenttiosuus voidaan määrittää kolmen desimaalin tarkkuudella. |
| 6 | LOADMETER |
Shipment Package Collo |
Tässä tapauksessa laskettuja kuormametrejä käytetään kuljetuskustannusten määrittämiseen. |
| 7 | VOLUME |
Shipment Package Collo |
Tässä tapauksessa laskettua tilavuutta käytetään kuljetuskustannusten määrittämiseen. |
| 8 | MINIMUM |
Shipment Collo Package |
Tällä tyypillä voidaan määrittää vähimmäistulos yhdistettynä määritettyyn chargeGroup-arvoon. |
| 9 | MAXIMUM |
Shipment Collo Package |
Tällä tyypillä voidaan määrittää enimmäistulos yhdistettynä määritettyyn chargeGroup-arvoon. |
| 10 | MIN_PRICE_PIECE | Shipment | Tätä laskentatyyppiä voidaan käyttää osoittamaan vähimmäishinta koko lähetykselle. |
Below is **PART 4 translated into Finnish**. HTML structure is fully preserved. --- ```html
Query Type
Query Type -parametri on tarpeen tiettyjen poikkeusten laskemiseksi. Oletusarvoisesti se on asetettu arvoon SINGLE, mutta myös kaksi muuta arvoa ovat mahdollisia:
- OR
- STAFFEL
OR
Käytä OR-arvoa lisämaksuille, joissa lähetys tai collo tarkistetaan useita raja-arvoja vasten, kuten:
- Total weight
- Total length
- Total width
- Total height
- Total convey_dimension
Jos mikä tahansa näistä rajoista ylittyy, lisämaksu veloitetaan. Esimerkki tästä on PostNL:n kuljetinhihnalisä.
STAFFEL
Käytä STAFFEL-arvoa KG-pohjaisissa sopimuksissa, jotka sisältävät useita painoportaita. Tämä mahdollistaa useiden hintatasojen yhteenlaskemisen.
Esimerkki: DHL Express -hintarakenne:
- Perushinta enintään 10 kg
- Lisäportaat (10–30 kg, 30–70 kg, 70–200 kg, 200–2500 kg)
Kun käytetään STAFFEL-arvoa, perushinta ja sovellettava porrashinta lasketaan yhteen lopullisen hinnan muodostamiseksi.
Charge Group
Maksuryhmiä on kaksi: SHIPPING ja SURCHARGE.
- SHIPPING kattaa kuljetuksen peruskustannukset.
- SURCHARGE kattaa lisämaksut, kuten polttoaine-, tulli- tai ylisuuruuslisät. Maksuryhmiä voidaan tarkentaa edelleen Charge Type -määrityksillä.
Charge Type
Jokainen tariffimoottorin rivi sisältää myös Charge Type -määrityksen, joka määrittää tarkan kustannuskomponentin. Näitä komponentteja hallitaan Generics-taulukossa.
Löydät esimerkin Fuel Rates -taulukosta täältä .
Other Tables
Client Carriers
Mahdolliset parametrit Client Carriers -taulukossa:
Client Carriers -taulukossa määritellään asiakkaan ja kuljetusliikkeen parametrit. Hintalaskennan kannalta seuraavat parametrit ovat olennaisia:
SHOWRATES: Määrittää, mitkä hinnat näkyvät verkkopalvelussa ja API:ssa.
- BUY – näyttää vain ostohinnat
- SELL – näyttää vain myyntihinnat
-
BUYSELL – näyttää sekä osto- että myyntihinnat
USERATES: Määrittää käytetäänkö ostohintoja (BUY) vai myyntihintoja (SELL) sovellettaessa CHEAPEST-logiikkaa (halvimman kuljetusvaihtoehdon valinta). Jompikumpi näistä on valittava.
TARIFFLOOKUP: Määrittää hintalaskennan lähteen.
- ENGINE – käyttää tariffimoottoria (vaaditaan, jotta tariffimoottori toimii)
- NONE – hintoja ei lasketa
-
CARRIER – hakee hinnat suoraan kuljetusliikkeeltä, jos saatavilla
TARIFF_LEVEL: Määrittää hierarkiatason, jolla ostohinnat (BUY) lasketaan.
- customer_id
- group_id
-
organisation_id
SALES_TARIFF_LEVEL: Sama toiminto kuin TARIFF_LEVEL, mutta koskee myyntihintoja.
CALC_SALES_MARGINS: Kun asetetaan arvoon ACTUAL, mahdollistaa hintojen uudelleenlaskennan ostolaskujen perusteella.
Zones
Zones-taulukko määrittää toimitusvyöhykkeen jokaiselle varaukselle. Vyöhyke voidaan määritellä useilla tasoilla:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Tai näiden yhdistelmä
Saatua vyöhykettä käytetään hintalaskennassa, koska eri vyöhykkeillä voi olla eri hinnat.
Buy Weights
Buy Weights -taulukko määrittää, mitä painoa käytetään hintalaskennassa. Koska lähetykset voivat sisältää sekä raskaita että tilaa vieviä tuotteita, bruttopaino ei aina ole oikea peruste.
Kun tilavuuspainon ja/tai kuormametripainon kertoimia sovelletaan, järjestelmä laskee kolme painotyyppiä — gross, volume ja load meter — ja käyttää suurinta arvoa.
Huomaa, että jotkin hintarakenteet (esimerkiksi collomäärään perustuvat) eivät välttämättä riipu painosta, joten tämä taulukko ei aina vaikuta laskentaan.
Painosääntöjä voidaan määrittää useilla tasoilla:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Packagetype
- Tai näiden yhdistelmä
Sell Weights
Sell Weights -taulukko toimii samalla tavalla kuin Buy Weights, mutta sitä käytetään myyntihintojen ja/tai katteiden laskentaan.