CSR
Rotnoden i XML-dokumentet.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Condition | Brukes for å lage en betingelse for at en node skal være gyldig |
| ErrorOn | Inneholder logikk for når ingen produkt kan velges |
| Expressions | Endre eller anvende data på felter |
| Prices | Inline prisberegning |
| SelectRules | Logikk hvis kun ett produkt er gyldig |
| ServiceLevels | Logikk hvis mer enn ett produkt er gyldig |
| GoodsTypeMappings | Logikk for å tildele en godstype på et produkt |
| ServiceMappings | Logikk for å tildele tjeneste(r) på et produkt |
Støtter følgende attributter (1 = sant, 0 = usant)
- defaultservicelevel - Hvis et ServiceLevel-navn brukes, vil standarden bli ignorert.
- onsubmit - Aktiver CSR ved innsending
- showservicelevelsinpv - Tillat brukeren å velge ServiceLevels fra PV
- userconfirm - Viser en bekreftelsesmelding i PV
- nocache - Brukes ved utvikling og testing av XML-filen
- useproductnamefromfile - Bruk navnet fra Product-noden
- onimporttoinbox - Aktiver CSR ved import uten autoutskrift. Standard aktiv.
- presubmit_event_validation - Aktiver PostCode / RoutingCode oppslag
-
carriervalidation - Slå av transportørvalidering når CSR kjører. Dette brukes mest sammen med GetShipAdvise for å gjøre validering av produkter raskere. I tillegg til 1 og 0, er det også mulig å bruke en av følgende innstillinger:
- carriervalidation="light" - vil hoppe over valideringer fra oppsettsobjekter, men kjøre transportørvalideringer.
- carriervalidation="superlight"- vil kun kjøre transportørvalideringer, men ingen standardvalideringer som avsender- og mottakerland for et produkt, tomt mottakernavn og postnummer, osv.
Standardinnstillinger for attributtene hvis ikke spesifisert
<CSR defaultservicelevel="" nocache="0" showservicelevelsinpv="0"
onsubmit="1" userconfirm="0" carriervalidation="1"
useproductnamefromfile="0" onimporttoinbox="1"
presubmit_event_validation="0">
<ErrorOn/>
<Condition/>
<Prices/>
<SelectRules/>
<ServiceLevels/>
</CSR>
ErrorOn
Inneholder logikk for å håndtere tilfeller der ingen produkt kan velges
Merk: Gjelder kun ved bruk av ServiceLevel-noder
Støtter følgende attributter (1 = sant, 0 = usant)
- autoselectservicelevelfailed - feiler hvis ingen service level kunne finnes basert på inndata produkt
- novalidproductsfound - feiler hvis ingen gyldig produkt kunne finnes i et ServiceLevel
- etawebservicefailed - feiler hvis kall til ETA webservice feiler (Kan kun brukes sammen med Shipment Server-metoden PreAdviseOrder)
- noproductscandeliver - feiler hvis ingen produkter kan levere innen ønsket leveringstid (Kan kun brukes sammen med Shipment Server-metoden PreAdviseOrder)
Standardinnstillinger for attributtene hvis ikke spesifisert
<CSR>
<ErrorOn autoselectservicelevelfailed="0"
novalidproductsfound="1"
etawebservicefailed="0"
noproductscandeliver="0"/>
</CSR>
SelectRules
SelectRules kan plasseres under CSR og hver ServiceLevels-node.
De brukes når du vet hvilket produkt som skal velges gitt en betingelse.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| SelectRule | Egendefinert validering |
Eksempel
<CSR>
<SelectRules/>
<ServiceLevels>
<ServiceLevel>
<SelectRules/>
</ServiceLevel>
</ServiceLevels>
</CSR>
SelectRule
SelectRule plasseres under SelectRules-noden.
Denne noden støtter nesting slik at du kan ha flere SelectRule inne i en annen SelectRule.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| SelectRule | Egendefinert validering |
| Expressions | Bruk egendefinerte data på felt |
| Product | Produktet som skal velges hvis valideringen er gyldig |
Denne noden kan konfigureres på forskjellige måter:
stringcompare (Kun hvis field inneholder verdien fra comparestring)
<SelectRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
regex (Kun hvis field inneholder verdien fra comparestring)
<SelectRule name="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
country (Kun NO, SE er tillatt)
<SelectRule name="country" allowcountries="NO,SE"
field="COUNTRY_FIELDS" custommessage="">
<Product/>
</SelectRule>
datelimits
<SelectRule name="datelimits" min="dd.MM.YYYY" max="dd.MM.YYYY"
field="DATE_FIELDS" custommessage="">
<Product/>
</SelectRule>
datetimelimits
<SelectRule name="datetimelimits"
min="dd.MM.YYYY hh:mm" max="dd.MM.YYYY hh:mm"
field="DATE_FIELDS" custommessage="">
<Product/>
</SelectRule>timelimits
<SelectRule name="timelimits" min="hh:mm" max="hh:mm"
field="DATE_FIELDS" custommessage="">
<Product/>
</SelectRule>
intlimits
<SelectRule name="intlimits" min="0" max="1"
unit="UNITS" field="INT_FIELDS" custommessage="">
<Product/>
</SelectRule>
floatlimits
<SelectRule name="floatlimits" min="0.0" max="10.5"
unit="UNITS" field="FLOAT_FIELDS" custommessage="">
<Product/>
</SelectRule>
postcodevalidation - Range-fil - Type Numerisk
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric"
rangefile="file.txt"/>
</PostcodeValidations>
<Product/>
</SelectRule>// file.txt
6400,6500
7400,8000postcodevalidation - Range-fil - Type UK
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK"
rangefile="file.txt"/>
</PostcodeValidations>
<Product/>
</SelectRule>// file.txt
NW9 0AA,
NW9 0AB,
NW9 0AC,Alle postnumre som begynner med "NW9 0AA", "NW9 0AB", "NW9 0AC" vil bli ekskludert.
postcodevalidation - Inline - Type Numerisk
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric">
<Range min="6400" max="6500"/>
</PostcodeValidation>
</PostcodeValidations>
<Product/>
</SelectRule>postcodevalidation - Inline - Type UK
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK">
<Range min="BA" max=""/>
<Range min="BN1" max=""/>
</PostcodeValidation>
</PostcodeValidations>
<Product/>
</SelectRule>
Alle postnumre som begynner med "BA" og "BN1" vil bli ekskludert.
ServiceLevels
ServiceLevels-noden kan kun plasseres under CSR-noden.
Du kan ha mer enn ett ServiceLevel i ServiceLevels-noden, noe som gjør det mulig å kjøre forskjellige allokeringsregler på en samling av produkter og ha flere fraktprosesser.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| ServiceLevel | Logikk, hvis mer enn ett produkt kan brukes |
Eksempel
<CSR>
<ServiceLevels>
<ServiceLevel/>
</ServiceLevels>
</CSR>
ServiceLevel
Kan kun plasseres inne i en ServiceLevels-node. ServiceLevel inneholder en liste med produkter.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Products | Inneholder Product-nodene |
| Expressions | Endre eller anvende data på felter |
| SelectRules | Logikk hvis kun ett produkt er gyldig |
| ServiceLevel | Logikk hvis mer enn ett produkt er gyldig |
| AllocationRules | Hvordan allokere produkter |
Støtter følgende attributter
-
name - ID for ServiceLevel
- fallback - navnet på et annet ServiceLevel som skal brukes hvis ingen produkt kan passere valideringene
Eksempel
<ServiceLevels>
<ServiceLevel name="" fallback="">
<SelectRules/>
<Products/>
<AllocationRules/>
</ServiceLevel>
</ServiceLevels>
Products
Products inneholder en liste med Product-noder, kan kun plasseres én gang på hver ServiceLevel-node.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Product | Produktkonfigurasjon |
Eksempel
<ServiceLevels>
<ServiceLevel>
<Products/>
</ServiceLevel>
</ServiceLevels>
Product
Product-noden brukes både på SelectRule- og Products-noden.
1. Støttede underordnede noder når plassert under Products-noden
| Node | Beskrivelse |
|---|---|
| Expressions | Endre eller anvende data på felter |
| GoodsTypeMapping | Logikk for å aktivere en GoodsType |
| Services | Logikk for å aktivere tjeneste(r) |
| ValidationRules | Egendefinert validering |
| PostCodeValidations | Egendefinert postnummer-validering |
| CustomFields | Inneholder egendefinerte verdier som skal returneres for SA 2.0 |
Støtter følgende attributter
- name - navnet på produktet
- conceptid - ID for en konsept-transportør
- dbid - ID for et egendefinert produkt
- adviseprice - navnet på Price-noden
- rank - brukes sammen med highestrank AllocationRule-type
- stackid - brukes for å plassere en forsendelse i en spesifikk stabel
Følgende attributter brukes sammen med SS API-metoden GetShipAdvise
0 - Deaktiver alternativet (standard) | 1 - Aktiver alternativet
-
requireprice - ingen pris kan beregnes for produktet, produktet vil ikke bli returnert
-
requiredroppoints - returner ikke produktet hvis ingen droppunkter er tilgjengelige.
Krever alternativet "DropPoints":1 i GetShipAdvise-forespørselen
Eksempel
<Products>
<Product>
<ProductGoodsType/>
<Services/>
<ValidationRules/>
<PostCodeValidations/>
<CustomFields/>
</Product>
</Products>
2. Støttede underordnede noder når plassert under en SelectRule-node
| Node | Beskrivelse |
|---|---|
| Product | Produktinformasjon |
| Expressions | Bruk egendefinerte data på felt |
| GoodsTypeMapping | Logikk for å aktivere en GoodsType |
| Services | Logikk for å aktivere tjeneste(r) |
Støtter følgende attributter
- name - navnet på produktet
- conceptid - ID for en konsept-transportør
- dbid - ID for et egendefinert produkt
- adviseprice - navnet på Price-noden
Eksempel
<SelectRule>
<Product>
<ProductGoodsType/>
<Services/>
</Product>
</SelectRule>
ProductGoodsType
Brukes for å tildele en godstype til det valgte produktet
Følgende attributter kan defineres
- goodstypename - Ikke brukt, kun for bedre lesbarhet i filen
- goodstypeid - ID hentet fra transportørens definisjonsfil.
- iscustom (0) - Når du bruker egendefinerte godstyper, sett denne til 1.
Eksempel
<SelectRule>
<Product>
<ProductGoodsType/>
</Product>
</SelectRule>
Services
Services-noden inneholder en liste med tjeneste(r) som skal aktiveres på det valgte produktet.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Service | Tjenesten som skal aktiveres på et produkt |
Service
Service-noden brukes for å tildele en tjeneste til et produkt.
Følgende attributter kan defineres
- name - navnet på tjenesten
- serviceid - ID for tjenesten
Eksempel
<CSR>
<SelectRules>
<SelectRule>
<Product>
<Services>
<Service/>
</Services>
</Product>
</SelectRule>
</SelectRules>
<ServiceLevels>
<ServiceLevel>
<SelectRules>
<SelectRule>
<SelectRule>
<Product>
<Services>
<Service/>
</Services>
</Product>
</SelectRule>
</SelectRule>
</SelectRules>
<Products>
<Product>
<Services>
<Service/>
</Services>
</Product>
</Products>
<AllocationRules>
<AllocationRule/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
PostCodeValidations
PostCodeValidations-noden inneholder en liste med PostCodeValidation-noder
Merk: Se også SelectRule implementasjonen av PostCodeValidations
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| PostCodeValidation | Postnummeret/postnumrene som logikken skal kjøre på |
PostCodeValidation
PostCodeValidation-noden inneholder en liste med tjeneste(r) som skal aktiveres på det valgte produktet.
Merk: Se også SelectRule implementasjonen av PostCodeValidation
Følgende attributter kan defineres
- name - navnet på tjenesten
- serviceid - ID for tjenesten
postcodevalidation - Range-fil - Type Numerisk
<Product>
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric"
rangefile="file.txt"/>
</PostcodeValidations>
</Product>// file.txt
6400,6500
7400,8000postcodevalidation - Range-fil - Type UK
<Product>
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK"
rangefile="file.txt"/>
</PostcodeValidations>
</Product>// file.txt
NW9 0AA,
NW9 0AB,
NW9 0AC,postcodevalidation - Inline - Type Numerisk
<Product>
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric">
<Range min="6400" max="6500"/>
</PostcodeValidation>
</PostcodeValidations>
</Product>postcodevalidation - Inline - Type UK
<Product>
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK">
<Range min="BA" max=""/>
<Range min="BN1" max=""/>
</PostcodeValidation>
</PostcodeValidations>
</Product>
Alle postnumre som begynner med "BA" og "BN1" vil bli ekskludert.
ValidationRules
Kan kun plasseres inne i en Product-node hvis Product-noden er plassert i en Products-node
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product>
<ValidationRules/>
</Product>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
ValidationRule
Hvis standard transportørvalideringer ikke er tilstrekkelige, kan du legge til flere valideringer på Produktet med denne noden.
En eller flere kan legges til i en ValidationRules-node
<Products>
<Product>
<ValidationRules>
<ValidationRule/>
</ValidationRules>
</Product>
</Products>
STRING_FIELDS
fld_LMarking, fld_LContents, fld_LGoodsType, fld_AdrName1, fld_AdrName2, fld_AdrAddress1, fld_AdrAddress2, fld_AdrPostNo, fld_AdrCity, fld_AdrCountry, fld_AdrState, fld_AdrPhone, fld_AdrMobile, fld_AdrEmail, fld_AdrAttention, fld_AdrReceiverRef, fld_AdrSenderCustNo, fld_AdrSenderName1, fld_AdrSenderName2, fld_AdrSenderAddress1, fld_AdrSenderAddress2, fld_AdrSenderPostNo, fld_AdrSenderCity, fld_AdrSenderCountry, fld_AdrSenderCountryName, fld_AdrSenderState, fld_AdrSenderPhone, fld_AdrSenderMobile, fld_AdrSenderEmail, fld_AdrSenderAttention, fld_RefOrderNumber, fld_RefProject, fld_MsgDriver, fld_MsgCarrier, fld_MsgReceiver, fld_CustomField1, fld_CustomField2, fld_CustomField3, fld_CustomField4, fld_CustomField5, fld_CustomField6, fld_CustomField7, fld_CustomField8, fld_CustomField9, fld_CustomField10
COUNTRY_FIELDS
fld_AdrCountry, fld_AdrSenderCountry, fld_AdrPayerCountry
FLOAT_FIELDS
fld_LWeight, fld_LLineWeight, fld_LHeight, fld_LLength, fld_LWidth, fld_LVolume, fld_LLineVolume, fld_LLoadmeter, fld_ShipmentVolumeMM3, fld_ShipmentWeightG, fld_ShipmentLoadmeter, fld_ShipmentMaxPackageLengthPlusCircumference
INT_FIELDS
fld_LNumber, fld_LRecycleNo, fld_DGNumber, fld_ShipmentCountPackages, fld_ShipmentCountLines
DATE_FIELDS
fld_RefDeliveryDate, fld_PickupDate, fld_RefPickupStart, fld_RefPickupEnd, fld_RefDeliveryStart, fld_RefDeliveryEnd
UNITS
mm3, dm3, m3, g, kg, mm, cm, dm, m
Denne noden kan konfigureres på forskjellige måter:
stringcompare (Kun hvis field inneholder verdien fra comparestring)
<ValidationRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
regex (Kun hvis field inneholder verdien fra comparestring)
<ValidationRule name="stringcompare" type="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
country (Kun NO, SE er tillatt)
<ValidationRule name="country" allowcountries="NO,SE"
field="COUNTRY_FIELDS" custommessage=""/>
datelimits
<ValidationRule name="datelimits" min="dd.MM.YYYY" max="dd.MM.YYYY"
field="DATE_FIELDS" custommessage=""/>
datetimelimits
<ValidationRule name="datetimelimits"
min="dd.MM.YYYY hh:mm" max="dd.MM.YYYY hh:mm"
field="DATE_FIELDS" custommessage=""/>timelimits
<ValidationRule name="timelimits" min="hh:mm" max="hh:mm"
field="DATE_FIELDS" custommessage=""/>
intlimits
<ValidationRule name="intlimits" min="0" max="1"
unit="UNITS" field="INT_FIELDS" custommessage=""/>
floatlimits
<ValidationRule name="floatlimits" min="0.0" max="10.5"
unit="UNITS" field="FLOAT_FIELDS" custommessage=""/>
OR-operasjon - Dette er en avansert funksjon som tillater bruk av OR-regler i valideringene. Følgende eksempel er gyldig for verdien YES og tom verdi
<ValidationRule name="stringcompare" comparestring="YES" suboperation="or" equal="1" casesensitive="0" field="fld_CustomField1">
<ValidationRule name="stringcompare" equal="1" casesensitive="0" field="fld_CustomField1"/>
</ValidationRule>
Commands
Brukes for å anvende eller endre en innstilling på et Produkt
Følgende attributter kan defineres
- function - logikk som skal utføres
- name - mål-nøkkel
- value - verdi som skal anvendes
Eksempel - SetOption
<Products>
<Product>
<Commands>
<Command function="SetOption" name ="Labels" value="PNG"/>
</Commands>
</Product>
</Products>* brukt i Shipment Server - SubmitShipment-metoden for å overstyre ønsket etikettformat
Eksempel - PreAdviseOrder
<Products>
<Product>
<Commands>
<Command function="PreAdviseOrder" name="Submit" value="1"/>
</Commands>
</Product>
</Products>* brukt i Shipment Server - tvinger PreAdviseOrder til å sende inn forsendelsen i stedet for å lagre den i innboksen
CustomFields
Brukes til å definere en eller flere statiske verdier som vil bli returnert sammen med produktet.
Merk: Dette fungerer kun for ShipmentServer-metoden GetShipAdvise
Enkelt
<CustomFields customer_carrier_code="PNParcel"/>
Flere
<CustomFields key1="value" key2="value" key3="value" key4="value"/>
AllocationRules
AllocationRules-noden inneholder en eller flere AllocationRule-noder.
Allokeringen brukes for å avgjøre hvilket produkt som skal brukes hvis mer enn ett produkt er gyldig.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| AllocationRule | Type av allokering |
Eksempel
<CSR>
<ServiceLevels>
<ServiceLevel>
<AllocationRules>
<AllocationRule/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
AllocationRule
En eller flere kan plasseres under AllocationRules-noden
Konfigurasjoner
Allocation-regelen kan konfigureres for å allokere produkter på forskjellige måter:
order - Hvis alle produkter er gyldige, brukes det første produktet, for eksempel Produkt A
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" conceptid="x"/>
<Product name="Product B" conceptid="y"/>
<Product name="Product C" conceptid="z"/>
</Products>
<AllocationRules>
<AllocationRule type="order"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
preselected -Hvis det valgte produktet er gyldig, vil det bli brukt
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x"/>
<Product conceptid="y"/>
</Products>
<AllocationRules>
<AllocationRule type="preselected"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>lowestprice - Velg produktet med lavest pris
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x"/>
<Product conceptid="y"/>
<Product conceptid="z"/>
</Products>
<AllocationRules>
<AllocationRule type="lowestprice"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
highestrank - Hvis flere produkter er gyldige, velges produktet med høyest rangering
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x" rank="2"/>
<Product conceptid="y" rank="3"/>
<Product conceptid="z" rank="1"/>
</Products>
<AllocationRules>
<AllocationRule type="highestrank"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>lowestprice og highestrank -
Hvis flere produkter er gyldige, eller hvis flere produkter har samme pris eller prisen er 0.
Allokeringsregelen highestrank vil bli brukt for å velge produktet.
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product C" dbid="x" rank="3"/>
<Product name="Product A" dbid="y" rank="2"/>
<Product name="Product B" dbid="z" rank="1"/>
</Products>
<AllocationRules>
<AllocationRule type="lowestprice"/>
<AllocationRule type="highestrank"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
userselect -
Et array av gyldige produkter vil bli returnert. Hvis kun ett produkt er gyldig, vil en forsendelse bli opprettet. For å tvinge et array til alltid å bli returnert, sett attributtet onsingle til 1.
For også å få pris returnert, sett attributtet price til 1
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product C" dbid="x">
<Product name="Product A" dbid="y">
<Product name="Product B" dbid="z">
</Products>
<AllocationRules>
<AllocationRule type="userselect"
price="0" onsingle="0"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
mincountforproduct -
Basert på omfanget, vil et produkt bli valgt x ganger
Omfanget kan være - Installation | location | Actor
På hostede løsninger, bruk kun omfang actor.
I eksemplet under
Hver dag vil Produkt C først bli valgt 6 ganger basert på definert omfang.
Deretter vil Produkt B bli brukt inntil 3 forsendelser finnes i databasen.
Når både Produkt C og B har nådd mincountforproduct for dagen, kan alle produkter velges.
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product C" dbid="y"/>
<Product name="Product B" dbid="z"/>
</Products>
<AllocationRules>
<AllocationRule type="mincountforproduct" scope="actor"
name="Product C" dbid="y" mincount="6"/>
<AllocationRule type="mincountforproduct" scope="actor"
name="Product B" dbid="z" mincount="3"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
distribution -
Bruk en miks av listede produkter for angitt omfang.
Omfanget kan være - Installation | location | Actor
På hostede løsninger, bruk kun omfang actor.
Andelen trenger ikke å summere til 100. Fordelingen fungerer ved å fjerne produkter som ikke er gyldige, deretter beregne andelen hvert gjenværende produkt skal ha, og velge det som har størst differanse mellom ønsket andel og faktisk andel.
I eksemplet under, siden begge produktene deler samme validering, vil begge produktene bli brukt jevnt.
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product B" dbid="y"/>
</Products>
<AllocationRules>
<AllocationRule type="distribution" scope="actor">
<Product name="Product B" dbid="x" share="50"/>
<Product name="Product A" dbid="y" share="50"/>
</AllocationRule>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
MERK: distribution fungerer for øyeblikket ikke når konfigurert via Shipping Rules brukergrensesnitt.
Condition
For å kontrollere en AllocationRule, Expression, ValidationRule, eller CSR-noden, kan en Condition-node brukes.
Hvis du legger til flere Condition-noder, må alle være gyldige for at overordnet node skal være gyldig.
Eksempel - tilordne kun verdien 1000 hvis importert verdi er mindre eller lik 999
<Expressions>
<Expression targetfield="fld_LWeight">
<Condition name="floatlimits" field="fld_LWeight"
min="0" max="999" unit="gram"/>
<Item expression="1000"/>
</Expression>
</Expressions>Condition-noden støtter forskjellige valideringer
stringcompare
<Condition name="stringcompare" field="fld_CustomField1"
comparestring="a_value" equal="1" casesensitive="0"/>receivercontries
<Condition name="receivercontries" countries="SE,NO" exclude="1"/>stringnotempty
<Condition name="stringnotempty" field="fld_RefOrderNumber"/>floatlimits
<Condition name="floatlimits" min="0.0" max="10.5"
unit="UNITS" field="FLOAT_FIELDS" custommessage=""/>
Støttede noder
<CSR>
<ErrorOn/>
<Condition/>
<SelectRules>
<SelectRule>
<Expressions>
<Expression>
<Condition/>
<Item/>
</Expression>
</Expressions>
<Product/>
</SelectRule>
</SelectRules>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product>
<ValidationRules>
<ValidationRule>
<Condition/>
</ValidationRule>
</ValidationRules>
</Product>
</Products>
<AllocationRules>
<AllocationRule>
<Condition/>
</AllocationRule>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
Expressions
Kan plasseres under CSR, ServiceLevel, SelectRule og Product-noder.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Expressions | Type av allokering |
Støtter følgende attributter (1 = sant, 0 = usant)
- prevalidation - utfør før validering
- assignresult - tilordne resultat til forsendelsen
Standardinnstillinger for attributtene hvis ikke spesifisert
<CSR>
<Expressions prevalidation="0" assignresult="0"/>
<SelectRules>
<Expressions/>
<SelectRule>
<Product>
<Expressions/>
</Product>
</SelectRule>
</SelectRules>
<ServiceLevels>
<ServiceLevel>
<Expressions/>
<Products>
<Product>
<Expressions/>
</Product>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
Expression
Med denne noden kan du tilordne verdi til et felt.
Kan kun plasseres inne i Expressions-noden.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Condition | Validering |
| Item | Verdi som skal tilordnes |
Støtter følgende attributter (1 = sant, 0 = usant)
- targetfield - feltet som verdien skal tilordnes
FIELD
fld_LMarking, fld_LContents, fld_LGoodsType, fld_AdrName1, fld_AdrName2, fld_AdrAddress1, fld_AdrAddress2, fld_AdrPostNo, fld_AdrCity, fld_AdrCountry, fld_AdrState, fld_AdrPhone, fld_AdrMobile, fld_AdrEmail, fld_AdrAttention, fld_AdrReceiverRef, fld_AdrSenderCustNo, fld_AdrSenderName1, fld_AdrSenderName2, fld_AdrSenderAddress1, fld_AdrSenderAddress2, fld_AdrSenderPostNo, fld_AdrSenderCity, fld_AdrSenderCountry, fld_AdrSenderCountryName, fld_AdrSenderState, fld_AdrSenderPhone, fld_AdrSenderMobile, fld_AdrSenderEmail, fld_AdrSenderAttention, fld_RefOrderNumber, fld_RefProject, fld_MsgDriver, fld_MsgCarrier, fld_MsgReceiver, fld_CustomField1, fld_CustomField2, fld_CustomField3, fld_CustomField4, fld_CustomField5, fld_CustomField6, fld_CustomField7, fld_CustomField8, fld_CustomField9, fld_CustomField10
I eksemplet under vil targetfield få verdien custom_value
<Expressions>
<Expression targetfield="FIELD">
<Item expression="custom_value"/>
</Expression>
</Expressions>Expression-noden kan ha en eller flere Item-noder
<Expressions>
<Expression>
<Item expression="custom"/>
<Item expression="_"/>
<Item expression="value"/>
</Expression>
</Expressions>I dette tilfellet vil targetfield få verdien custom_value
Item expression kan også bruke en verdi fra et annet felt ved å bruke @@
<Expressions>
<Expression targetfield="FIELD">
<Item expression="@@FIELD@@"/>
</Expression>
</Expressions>
GoodsTypeMappings
Med denne noden kan du tildele GoodsType på et produkt. Ved å bruke en importert verdi eller inndata produkt.
Kan kun plasseres under CSR-noden
Attributter - (1 = sant, 0 = usant)
- mappingfield
- mappingoverride - (0) - Bruk GoodsType fra GoodsTypesMappings og ikke fra Product-noden
-
key - verdi fra attributtet mappingfield på GoodsTypesMappings
- productconceptid - Siden godstype-IDer kun er unike innenfor en transportør, må du spesifisere konsept-IDen til produktet. Når dette brukes for egendefinerte produkter og godstyper, sett den til 0.
- goodstypename - Ikke brukt, kun for bedre lesbarhet i filen
- goodstypeid - ID hentet fra transportørens definisjonsfil.
- iscustom (0) - Når du bruker egendefinerte godstyper, sett denne til 1.
Konfigurasjoner
Kan konfigureres på to måter
-
Grupper etter inndata produkt
CSR vil sjekke om det valgte produktet har en godstype innen samme gruppe som produktet det ble endret fra. Deretter vil denne godstypen brukes på forsendelsen før innsending. -
Grupper etter verdi fra et felt
CSR vil sjekke om verdien fra feltet konfigurert på mapping-attributtet finnes i en gruppe, og bruke definert godstype på forsendelsen før innsending
Grupper etter inndata produkt
<CSR>
<GoodsTypeMappings>
<GoodsTypeMapping>
<ProductGoodsType goodstypeid="2" dbid="2139" iscustom="1"
goodstypename="2"/>
<ProductGoodsType goodstypeid="3" productconceptid="112"
goodstypename="PL4"/>
</GoodsTypeMapping>
<GoodsTypeMapping>
<ProductGoodsType goodstypeid="1" dbid="2139" iscustom="1"
goodstypename="1"/>
<ProductGoodsType goodstypeid="13" productconceptid="112"
goodstypename="K25"/>
</GoodsTypeMapping>
</GoodsTypeMappings>
<ServiceLevels>
<ServiceLevel name="default">
<Products>
<Product name="Product A" dbid="2139"/>
<Product name="Product B" conceptid="112"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>Grupper etter verdi fra et felt
<CSR>
<GoodsTypeMappings mappingfield="fld_LMarking">
<GoodsTypeMapping key="parcel">
<ProductGoodsType goodstypeid="1" productconceptid="113"
goodstypename="P"/>
<ProductGoodsType goodstypeid="13" productconceptid="112"
goodstypename="K25"/>
</GoodsTypeMapping>
<GoodsTypeMapping key="pallet">
<ProductGoodsType goodstypeid="0" productconceptid="113"
goodstypename="A"/>
<ProductGoodsType goodstypeid="3" productconceptid="112"
goodstypename="PL4"/>
</GoodsTypeMapping>
</GoodsTypeMappings>
<ServiceLevels>
<ServiceLevel name="default">
<Products>
<Product name="PRODUCT A" conceptid="113"/>
<Product name="PRODUCT B" conceptid="112"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
ServiceMappings
Med denne noden kan du tildele tjeneste(r) på et produkt. Ved å bruke en importert verdi eller inndata produkt.
Kan kun plasseres under CSR-noden.
Attributter
- mappingfield - dette feltet må være et forsendelsesfelt.
- key - verdi fra attributtet mappingfield på ServiceMappings
- name - navn på tjenesten
- serviceid - ID for tjenesten
Konfigurasjoner
Kan konfigureres på to måter
-
Tjeneste etter valgt produkt
I denne modusen konfigurerer du grupper, og når en tjeneste er innenfor en gruppe på det opprinnelige produktet – vil CSR sjekke om det valgte produktet har en tjeneste i samme gruppe og sette den tjenesten på forsendelsen før innsending.
-
Tjeneste etter verdi fra et felt
I denne modusen konfigurerer du også grupper, men bruker nøkler for å finne gruppen i stedet for de opprinnelig valgte tjenestene.
Tjeneste etter valgt produkt
<CSR>
<ServiceMappings>
<ServiceMapping>
<Service serviceid="y"/>
<Service serviceid="x"/>
</ServiceMapping>
<ServiceMapping>
<Service serviceid="x"/>
<Service serviceid="y"/>
</ServiceMapping>
</ServiceMappings>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product A" dbid="y"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>Tjeneste etter verdi fra et felt
<CSR>
<ServiceMappings mappingfield="fld_CustomField1">
<ServiceMapping key="notification">
<Service serviceid="y"/>
<Service serviceid="x"/>
</ServiceMapping>
</ServiceMappings>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product A" dbid="y"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
Prices
Kan kun plasseres én gang under CSR-noden.
Denne noden lar deg ha en enkel prisberegning i din CSR.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Price | Prisberegningsnode |
Price
Inneholder én prisberegning.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Exceptions | Fast pris basert på en betingelse |
| Ranges | Pris basert på intervall |
| Fees | En verdi som skal legges til enten Exception eller Range |
Støtter følgende attributter
name - ID for noden, brukt av attributtet adviseprice på Product-noden
currency - f.eks EUR, SEK, NOK
Eksempel
<CSR>
<Prices>
<Price name="" currency="">
<Exceptions>
<Exception price="">
<ValidationRules/>
</Exception>
</Exceptions>
<Ranges field="fld_AdrPostNo">
<Range from="" to="" price="">
<Ranges field="fld_ShipmentWeightG" unit="gram">
<Range from="" to="" price=""/>
</Ranges>
</Range>
<Range from="" to="" price=""/>
</Ranges>
<Fees>
<Fee price="">
<ValidationRules/>
</Fee>
</Fees>
</Price>
</Prices>
</CSR>
Exceptions
Kan kun plasseres én gang under Price-noden
Inneholder en eller flere Exception-noder
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Exception | Returner en fast pris |
Exception
Den første Exception-noden hvor alle valideringer er gyldige vil returnere prisen
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| ValidationRules | Se ValidationRule-noden |
Støtter følgende attributter
- price - Verdien som skal returneres på produktet
Ranges
Evalueres etter Exceptions-noden. Hvis det finnes en matchende Exception-node, vil ikke Ranges-noden bli utført.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Ranges | Støtter en annen Ranges-node |
| Range | Inneholder prisen for intervallet |
Støtter følgende attributter
- field - feltet som intervall-logikken skal kjøres på fld_ShipmentWeightG | fld_AdrPostNo
- unit - brukes sammen med feltet fld_ShipmentWeightG
Range
Evalueres etter Exceptions-noden. Hvis det finnes en matchende Exception-node, vil ikke Ranges-noden bli utført.
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Range | Inneholder prisen for intervallet |
Støtter følgende attributter
- from - startverdi
- to - sluttverdi
- price - prisen som skal returneres
Fees
Fungerer på samme måte som Exceptions, det er en liste med Fees, og hver har valideringsregler som må være gyldige for at gebyret skal bli lagt til. Prisene på alle gyldige Fee-noder vil bli lagt sammen. Summen her vil bli lagt til summen funnet i Exceptions eller Ranges
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| Fee | Et gebyr som skal legges til prisen |
Fee
Hvis alle ValidationRules er gyldige, vil gebyret bli lagt til prisen fra Exceptions eller Ranges-noden
Støttede underordnede noder
| Node | Beskrivelse |
|---|---|
| ValidationRules | Se ValidationRules-noden |
Støtter følgende attributter
- price - verdien som skal legges til prisen fra enten range- eller exception-noden
-
Expressions - Eksempel 1
Legg til standard hentestart- og sluttidspunkt
<Expressions prevalidation="1" assignresult="1">
<Expression targetfield="fld_RefPickupStart">
<Item special="datenow" addhours="0" format="YYYY-MM-DD 05:00:00" />
</Expression>
<Expression targetfield="fld_RefPickupEnd">
<Item special="datenow" addhours="0" format="YYYYY-MM-DD 21:00:00" />
</Expression>
</Expressions>-
AllocationRules UserSelect - Eksempel 1
Kjør kun Shipping Rules når du bruker Produkt 1782 eller 1783
<CSR defaultservicelevel="default" nocache="1" showservicelevelsinpv="1">
<Expressions prevalidation="1" assignresult="0">
<Expression targetfield="fld_CustomField1">
<Item expression="C-"/>
<Item expression="@@fld_ProductConceptID@@"/>
</Expression>
</Expressions>
<Condition name="stringcompare" type="regex" comparestring="^(C-1782|C-1783)" equal="1"
casesensitive="0" field="fld_CustomField1" />
<ServiceLevels>
<ServiceLevel name="default">
<Products>
<Product name="Generic Sweden - Generic 1" conceptid="1782">
<ProductGoodsType name="EUR 1 - 08 m × 12 m" goodstypeid="0"/>
<Services>
<Service name="0 - Service1" serviceid="227030" />
<Service name="2 - 013 (CIP)" serviceid="227013" />
</Services>
</Product>
<Product name="Generic Sweden - Generic 2" conceptid="1783" />
</Products>
<AllocationRules>
<AllocationRule type="userselect" price="1" onsingle="1"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>