CSR
Rodnoden i XML-dokumentet.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Condition | Bruges til at oprette en betingelse for, at en node er gyldig |
| ErrorOn | Indeholder logik for, hvornår der ikke kan vælges et produkt |
| Expressions | Ændre eller anvende data på felter |
| Prices | Indlejret prisberegning |
| SelectRules | Logik hvis kun ét produkt er gyldigt |
| ServiceLevels | Logik hvis mere end ét produkt er gyldigt |
| GoodsTypeMappings | Logik til at tildele en godstype til et produkt |
| ServiceMappings | Logik til at tildele service(r) til et produkt |
Understøtter følgende attributter (1 = sand, 0 = falsk)
- defaultservicelevel - Hvis et ServiceLevel-navn bruges, vil standardværdien blive ignoreret.
- onsubmit - Aktivér CSR ved afsendelse
- showservicelevelsinpv - Tillad brugeren at vælge ServiceLevels fra PV
- userconfirm - Viser en bekræftelsesmeddelelse i PV
- nocache - Bruges ved udvikling og test af XML-filen
- useproductnamefromfile - Brug navneattributten fra Product-node
- onimporttoinbox - Aktivér CSR ved import uden autoprint. Standard aktiveret.
- presubmit_event_validation - Aktiver PostCode / RoutingCode opslag
-
carriervalidation - Slå carrier-validering fra, når CSR kører. Bruges mest sammen med GetShipAdvise for at gøre produktvalidering hurtigere. Ud over 1 og 0 kan følgende indstillinger også bruges:
- carriervalidation="light" - springer valideringer fra opsætningselementer over, men kører stadig carrier-valideringer.
- carriervalidation="superlight"- kører kun carrier-valideringer, men ingen standardvalideringer som afsender- og modtagerland for et produkt, tomt modtagernavn og postnummer osv.
Standardindstillinger for attributterne, hvis ikke angivet
<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
Indeholder logik til håndtering af tilfælde, hvor der ikke kan vælges et produkt
Bemærk: Gælder kun ved brug af ServiceLevel node(r)
Understøtter følgende attributter (1 = sand, 0 = falsk)
- autoselectservicelevelfailed - fejler, hvis der ikke kan findes et service level baseret på indgangsproduktet
- novalidproductsfound - fejler, hvis der ikke kan findes et gyldigt produkt i et ServiceLevel
- etawebservicefailed - fejler, hvis kaldet til ETA-webservice fejler (kan kun bruges sammen med Shipment Server-metoden PreAdviseOrder)
- noproductscandeliver - fejler, hvis ingen produkter kan levere inden for den ønskede leveringstid (kan kun bruges sammen med Shipment Server-metoden PreAdviseOrder)
Standardindstillinger for attributterne, hvis ikke angivet
<CSR>
<ErrorOn autoselectservicelevelfailed="0"
novalidproductsfound="1"
etawebservicefailed="0"
noproductscandeliver="0"/>
</CSR>
SelectRules
SelectRules kan placeres under CSR og hver ServiceLevels node.
De bruges, når du ved, hvilket produkt der skal vælges under en given betingelse.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| SelectRule | Brugerdefineret validering |
Eksempel
<CSR>
<SelectRules/>
<ServiceLevels>
<ServiceLevel>
<SelectRules/>
</ServiceLevel>
</ServiceLevels>
</CSR>
SelectRule
SelectRule placeres under SelectRules-noden.
Denne node understøtter indlejring, så du kan have flere SelectRule inde i en anden SelectRule.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| SelectRule | Brugerdefineret validering |
| Expressions | Anvend brugerdefinerede data på felt |
| Product | Produktet, der skal vælges, hvis valideringen er gyldig |
Denne node kan konfigureres på forskellige måder:
stringcompare (Kun hvis feltet indeholder værdien fra comparestring)
<SelectRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
regex (Kun hvis feltet indeholder værdien fra comparestring)
<SelectRule name="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
country (Kun NO, SE er tilladt)
<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 file - Type Numeric
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric"
rangefile="file.txt"/>
</PostcodeValidations>
<Product/>
</SelectRule>// file.txt
6400,6500
7400,8000postcodevalidation - Range file - 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, der starter med "NW9 0AA", "NW9 0AB", "NW9 0AC", vil blive udelukket.
postcodevalidation - Inline - Type Numeric
<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, der starter med "BA" og "BN1", vil blive udelukket.
ServiceLevels
Noden ServiceLevels kan kun placeres under CSR-noden.
Du kan have mere end én ServiceLevel i ServiceLevels-noden, hvilket gør det muligt at køre forskellige tildelingsregler på en samling af produkter og have flere forsendelsesprocesser.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| ServiceLevel | Logik, hvis mere end ét produkt kan bruges |
Eksempel
<CSR>
<ServiceLevels>
<ServiceLevel/>
</ServiceLevels>
</CSR>
ServiceLevel
Kan kun placeres inde i en ServiceLevels-node. ServiceLevel indeholder en liste over produkter.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Products | Indeholder Product-noder |
| Expressions | Ændre eller anvende data på felter |
| SelectRules | Logik hvis kun ét produkt er gyldigt |
| ServiceLevel | Logik hvis mere end ét produkt er gyldigt |
| AllocationRules | Hvordan produkter skal tildeles |
Understøtter følgende attributter
-
name - id for ServiceLevel
- fallback - navn på et andet ServiceLevel, der skal vælges, hvis intet produkt kan passere valideringerne
Eksempel
<ServiceLevels>
<ServiceLevel name="" fallback="">
<SelectRules/>
<Products/>
<AllocationRules/>
</ServiceLevel>
</ServiceLevels>
Products
Noden Products indeholder en liste over Product-noder, og kan kun placeres én gang på hver ServiceLevel-node.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Product | Produktkonfiguration |
Eksempel
<ServiceLevels>
<ServiceLevel>
<Products/>
</ServiceLevel>
</ServiceLevels>
Product
Product-noden bruges både på SelectRule og Products-noden.
1. Underordnede noder, der understøttes når placeret under Products-noden
| Node | Beskrivelse |
|---|---|
| Expressions | Ændre eller anvende data på felter |
| GoodsTypeMapping | Logik til at aktivere en GoodsType |
| Services | Logik til at aktivere service(r) |
| ValidationRules | Brugerdefineret validering |
| PostCodeValidations | Brugerdefineret postnummer-validering |
| CustomFields | Indeholder brugerdefinerede værdier, der skal returneres for SA 2.0 |
Understøtter følgende attributter
- name - produktnavn
- conceptid - id for en koncept-carrier
- dbid - id for et brugerdefineret produkt
- adviseprice - navnet på Price-noden
- rank - bruges sammen med AllocationRule-typen highestrank
- stackid - bruges til at placere en forsendelse i en specifik stak
Følgende attributter bruges sammen med SS API-metoden GetShipAdvise
0 - Deaktiver valgmulighed (standard) | 1 - Aktiver valgmulighed
-
requireprice - ingen pris kan beregnes for produktet, produktet vil ikke blive returneret
-
requiredroppoints - returner ikke produktet, hvis der ikke er adgang til drop-points.
Kræver valgmuligheden "DropPoints":1 i GetShipAdvise-forespørgslen
Eksempel
<Products>
<Product>
<ProductGoodsType/>
<Services/>
<ValidationRules/>
<PostCodeValidations/>
<CustomFields/>
</Product>
</Products>
2. Underordnede noder, der understøttes når placeret under en SelectRule-node
| Node | Beskrivelse |
|---|---|
| Product | Produktinformation |
| Expressions | Anvend brugerdefinerede data på felt |
| GoodsTypeMapping | Logik til at aktivere en GoodsType |
| Services | Logik til at aktivere service(r) |
Understøtter følgende attributter
- name - produktnavn
- conceptid - id for en koncept-carrier
- dbid - id for et brugerdefineret produkt
- adviseprice - navnet på Price-noden
Eksempel
<SelectRule>
<Product>
<ProductGoodsType/>
<Services/>
</Product>
</SelectRule>
ProductGoodsType
Bruges til at tildele en godstype til det valgte produkt
Følgende attributter kan defineres
- goodstypename - Ikke brugt, kun til bedre læsbarhed i filen
- goodstypeid - id'et fra carrier-definitionsfilen.
- iscustom (0) - Ved brug af brugerdefinerede godstyper sættes denne til 1.
Eksempel
<SelectRule>
<Product>
<ProductGoodsType/>
</Product>
</SelectRule>
Services
Noden Services indeholder en liste over service(r), der skal aktiveres på det valgte produkt.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Service | Servicen, der skal aktiveres på et produkt |
Service
Service-noden bruges til at tildele en service til et produkt.
Følgende attributter kan defineres
- name - navnet på servicen
- serviceid - id for servicen
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
Noden PostCodeValidations indeholder en liste over PostCodeValidation-noder
Bemærk: Se også implementeringen af SelectRule for PostCodeValidations
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| PostCodeValidation | Postnummer(r), der skal køres logik på |
PostCodeValidation
Noden PostCodeValidations indeholder en liste over service(r), der skal aktiveres på det valgte produkt.
Bemærk: Se også implementeringen af SelectRule for PostCodeValidation
Følgende attributter kan defineres
- name - navnet på servicen
- serviceid - id for servicen
postcodevalidation - Range file - Type Numeric
<Product>
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric"
rangefile="file.txt"/>
</PostcodeValidations>
</Product>// file.txt
6400,6500
7400,8000postcodevalidation - Range file - 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 Numeric
<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, der starter med "BA" og "BN1", vil blive udelukket.
ValidationRules
Kan kun placeres inde i en Product-node, hvis Product-noden er placeret i en Products-node
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product>
<ValidationRules/>
</Product>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
ValidationRule
Hvis de standard carrier-valideringer ikke er tilstrækkelige, kan du tilføje flere valideringer på Produktet med denne node.
Én eller flere kan tilføjes til 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 node kan konfigureres på forskellige måder:
stringcompare (Kun hvis feltet indeholder værdien fra comparestring)
<ValidationRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
regex (Kun hvis feltet indeholder værdien fra comparestring)
<ValidationRule name="stringcompare" type="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
country (Kun NO, SE er tilladt)
<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-operation - Dette er en avanceret funktion, der tillader brug af OR-regler i valideringerne. Følgende eksempel er gyldigt for værdien YES og tom
<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
Bruges til at anvende eller ændre en indstilling på et produkt
Følgende attributter kan defineres
- function - logik der skal udføres
- name - mål-nøgle
- value - værdi der skal anvendes
Eksempel - SetOption
<Products>
<Product>
<Commands>
<Command function="SetOption" name ="Labels" value="PNG"/>
</Commands>
</Product>
</Products>* bruges i Shipment Server - SubmitShipment-metoden til at overskrive den ønskede etiketformat
Eksempel - PreAdviseOrder
<Products>
<Product>
<Commands>
<Command function="PreAdviseOrder" name="Submit" value="1"/>
</Commands>
</Product>
</Products>* bruges i Shipment Server - forcerer PreAdviseOrder til at indsende forsendelsen i stedet for at gemme den i Inbox
CustomFields
Bruges til at definere én eller flere statiske værdier, der vil blive returneret sammen med produktet.
Bemærk: Dette virker kun for ShipmentServer-metoden GetShipAdvise
Enkelt
<CustomFields customer_carrier_code="PNParcel"/>
Flere
<CustomFields key1="value" key2="value" key3="value" key4="value"/>
AllocationRules
Noden AllocationRules indeholder én eller flere AllocationRule-noder.
Tildelingen bruges til at afgøre, hvilket produkt der skal bruges, hvis mere end ét produkt er gyldigt.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| AllocationRule | Type af tildeling |
Eksempel
<CSR>
<ServiceLevels>
<ServiceLevel>
<AllocationRules>
<AllocationRule/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
AllocationRule
Én eller flere kan placeres under AllocationRules-noden
Konfigurationer
Tildelingsreglen kan konfigureres til at tildele produkter på forskellige måder:
order - Hvis alle produkter er gyldige, vil det første produkt blive brugt, f.eks. 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 produkt er gyldigt, vil det blive brugt
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x"/>
<Product conceptid="y"/>
</Products>
<AllocationRules>
<AllocationRule type="preselected"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>lowestprice - Vælg produktet med den laveste 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, vælges produktet med den højeste rang
<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.
Vil AllocationRule highestrank blive brugt til at vælge 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 af gyldige produkter vil blive returneret. Hvis kun ét produkt er gyldigt, vil en forsendelse blive oprettet. For at sikre, at der altid returneres et array, sættes attributten onsingle til 1.
For også at få prisen returneret, sættes attributten 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 -
Baseret på scope vælges et produkt x gange
Scope kan være - Installation | location | Actor
På hosted løsninger bruges kun scope actor.
I eksemplet nedenfor
Hver dag vælges Produkt C først 6 gange baseret på det definerede scope.
Derefter bruges Produkt B, indtil der findes 3 forsendelser i databasen.
Når både Produkt C og B's mincountforproduct er nået for dagen, kan alle produkter vælges.
<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 -
Brug en blanding af listede produkter for det angivne scope.
Scope kan være - Installation | location | Actor
På hosted løsninger bruges kun scope actor.
Andelen behøver ikke at summere til 100. Sådan fungerer distribution: Det fjerner det produkt, der ikke er gyldigt, beregner derefter andelen for hvert tilbageværende produkt og vælger det, der har den største forskel mellem den tilsigtede andel og den faktiske andel.
I eksemplet nedenfor, da begge produkter deler samme validering, vil begge produkter blive brugt jævnt.
<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>
NOTE: distribution virker i øjeblikket ikke, når det konfigureres via brugergrænsefladen til Shipping Rules.
Condition
For at styre en AllocationRule, Expression, ValidationRule, eller CSR-noden kan en Condition-node anvendes.
Hvis du tilføjer flere Condition-noder, skal alle være gyldige for at forældrenoden er gyldig.
Eksempel - tildel kun værdien 1000, hvis den importerede værdi er mindre end eller lig med 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 understøtter forskellige 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=""/>
Understø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 placeres under CSR, ServiceLevel, SelectRule & Product-noder.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Expressions | Type af tildeling |
Understøtter følgende attributter (1 = sand, 0 = falsk)
- prevalidation - udfør før validering
- assignresult - tildel resultat til forsendelsen
Standardindstillinger for attributterne, hvis ikke angivet
<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 node kan du tildele en værdi til et felt.
Kan kun placeres inde i Expressions-noden.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Condition | Validering |
| Item | Værdi der skal tildeles |
Understøtter følgende attributter (1 = sand, 0 = falsk)
- targetfield - feltet, der skal tildeles værdien
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 nedenfor får targetfield værdien custom_value
<Expressions>
<Expression targetfield="FIELD">
<Item expression="custom_value"/>
</Expression>
</Expressions>Expression-noden kan have én eller flere Item-noder
<Expressions>
<Expression>
<Item expression="custom"/>
<Item expression="_"/>
<Item expression="value"/>
</Expression>
</Expressions>I dette tilfælde får targetfield værdien custom_value
Item-expression kan også bruge en værdi fra et andet felt ved hjælp af @@
<Expressions>
<Expression targetfield="FIELD">
<Item expression="@@FIELD@@"/>
</Expression>
</Expressions>
GoodsTypeMappings
Med denne node kan du tildele GoodsType på et produkt. Ved brug af en importeret værdi eller indgangsproduktet.
Kan kun placeres under CSR-noden
Attributter - (1 = sand, 0 = falsk)
- mappingfield
- mappingoverride - (0) - Brug GoodsType fra GoodsTypesMappings og ikke fra Product-noden
-
key - værdi fra attributten mappingfield på GoodsTypesMappings
- productconceptid - Da godstype-ID'er kun er unikke inden for en carrier, skal du angive koncept-ID for produktet. Ved brug for custom produkt og custom godstyper, sættes det til 0.
- goodstypename - Ikke brugt, kun til bedre læsbarhed i filen
- goodstypeid - Id'et fra carrier-definitionsfilen.
- iscustom (0) - Ved brug af brugerdefinerede godstyper sættes denne til 1.
Konfigurationer
Kan konfigureres på to måder
-
Grupper efter indgangsprodukt
CSR tjekker, om det valgte produkt har en godstype inden for samme gruppe som det produkt, det blev ændret fra. Derefter bruger den denne godstype på forsendelsen før indsendelse. -
Grupper efter værdi fra et felt
CSR tjekker, om værdien fra det felt, der er konfigureret på mapping-attributten, findes i en gruppe og bruger den definerede godstype på forsendelsen før indsendelse
Grupper efter indgangsprodukt
<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 efter værdi 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 node kan du tildele Service(r) på et produkt. Ved brug af en importeret værdi eller indgangsproduktet.
Kan kun placeres under CSR-noden.
Attributter
- mappingfield - dette felt skal være et forsendelsesfelt.
- key - værdi fra attributten mappingfield på ServiceMappings
- name - navn på servicen
- serviceid - id for servicen
Konfigurationer
Kan konfigureres på to måder
-
Service efter valgt produkt
I denne tilstand konfigurerer du grupper, og når en service er inden for en gruppe på det oprindelige produkt – vil CSR tjekke, om det valgte produkt har en service inden for samme gruppe og sætte den service på forsendelsen før indsendelse.
-
Service efter værdi fra et felt
I denne tilstand konfigurerer du også grupper, men bruger nøgler til at finde gruppen i stedet for de oprindeligt valgte services.
Service efter 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>Service efter værdi 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 placeres én gang under CSR-noden.
Denne node gør det muligt at have en simpel prisberegning i din CSR.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Price | Prisberegningsnode |
Price
Indeholder én prisberegning.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Exceptions | Fast pris baseret på en betingelse |
| Ranges | Pris baseret på interval |
| Fees | En værdi, der skal lægges til enten Exception eller Range |
Understøtter følgende attributter
name - Id for noden, brugt af attributten 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 placeres én gang under Price-noden
Indeholder én eller flere Exception-noder
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Exception | Returner en fast pris |
Exception
Den første Exception-node, hvor alle valideringer er gyldige, vil returnere prisen
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| ValidationRules | Se ValidationRule-noden |
Understøtter følgende attributter
- price - Værdien, der skal returneres på produktet
Ranges
Evalueres efter Exceptions-noden; hvis der findes en matchende Exception-node, vil Ranges-noden ikke blive udført.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Ranges | Understøtter en anden Ranges-node |
| Range | Indeholder prisen for intervallet |
Understøtter følgende attributter
- field - feltet, der skal køre interval-logikken på fld_ShipmentWeightG | fld_AdrPostNo
- unit - bruges med feltet fld_ShipmentWeightG
Range
Evalueres efter Exceptions-noden; hvis der findes en matchende Exception-node, vil Ranges-noden ikke blive udført.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Range | Indeholder prisen for intervallet |
Understøtter følgende attributter
- from - startværdi
- to - slutværdi
- price - prisen der skal returneres
Fees
Fungerer på samme måde som Exceptions; det er en liste over gebyrer, og hvert gebyr har valideringsregler, der skal være gyldige for at gebyret kan anvendes. Priserne på alle gyldige Fee-noder lægges sammen, og summen lægges til summen fundet i Exceptions eller Ranges.
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| Fee | Et gebyr der skal lægges til prisen |
Fee
Hvis alle ValidationRules er gyldige, vil gebyret blive lagt til prisen fra Exceptions eller Ranges-noden
Underordnede noder, der understøttes
| Node | Beskrivelse |
|---|---|
| ValidationRules | Se ValidationRules-noden |
Understøtter følgende attributter
- price - værdien der skal lægges til prisen fra enten rækkevidde- eller undtagelsesnoden
-
Expressions - Eksempel 1
Tilføj en standard afhentningsstart- og slutdato og -tid
<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
Udfør kun Shipping Rules, når der bruges 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>