CSR
Rotnoden i XML-dokumentet.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Condition | Används för att skapa ett villkor för att en nod ska vara giltig |
| ErrorOn | Innehåller logik för när ingen produkt kan väljas |
| Expressions | Ändra eller applicera data på fält |
| Prices | Inline-prisberäkning |
| SelectRules | Logik om endast en produkt är giltig |
| ServiceLevels | Logik om mer än en produkt är giltig |
| GoodsTypeMappings | Logik för att tilldela en varutyp på en produkt |
| ServiceMappings | Logik för att tilldela tjänst(er) på en produkt |
Stöder följande attribut (1 = sant, 0 = falskt)
- defaultservicelevel - Om ett ServiceLevel-namn används, kommer standardvärdet att ignoreras.
- onsubmit - Aktivera CSR vid inskickning
- showservicelevelsinpv - Tillåt användaren att välja ServiceLevels från PV
- userconfirm - Visar ett bekräftelsemeddelande i PV
- nocache - Används vid utveckling och testning av XML-filen
- useproductnamefromfile - Använd namn-attributet från Product-noden
- onimporttoinbox - Aktivera CSR vid import utan autoutskrift. Standard aktiverad.
- presubmit_event_validation - Aktivera PostCode / RoutingCode-uppslagning
-
carriervalidation - Stäng av transportörsvalidering när CSR körs. Detta används mest tillsammans med GetShipAdvise för att göra valideringen av produkter snabbare. Förutom 1 och 0 kan följande inställningar användas:
- carriervalidation="light" - hoppar över valideringar från inställningsobjekt men kör fortfarande transportörsvalideringar.
- carriervalidation="superlight"- kör endast transportörsvalideringar men inga standardvalideringar som avsändar- och mottagarland för en produkt, tomt mottagarnamn och postnummer, etc.
Standardinställningar för attributen om de inte anges
<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
Innehåller logik för att hantera fall där ingen produkt kan väljas
Notera: Gäller endast vid användning av ServiceLevel-nod(er)
Stöder följande attribut (1 = sant, 0 = falskt)
- autoselectservicelevelfailed - misslyckas om ingen servicelevel kunde hittas baserat på inmatningsprodukten
- novalidproductsfound - misslyckas om ingen giltig produkt kunde hittas i en ServiceLevel
- etawebservicefailed - misslyckas om anropet till ETA-webbtjänsten misslyckas (Kan endast användas tillsammans med Shipment Server-metoden PreAdviseOrder)
- noproductscandeliver - misslyckas om inga produkter kan leverera inom önskad leveranstid (Kan endast användas tillsammans med Shipment Server-metoden PreAdviseOrder)
Standardinställningar för attributen om de inte anges
<CSR>
<ErrorOn autoselectservicelevelfailed="0"
novalidproductsfound="1"
etawebservicefailed="0"
noproductscandeliver="0"/>
</CSR>
SelectRules
SelectRules kan placeras under CSR och varje ServiceLevels-nod.
De används när du vet vilken produkt som ska väljas givet ett villkor.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| SelectRule | Anpassad validering |
Exempel
<CSR>
<SelectRules/>
<ServiceLevels>
<ServiceLevel>
<SelectRules/>
</ServiceLevel>
</ServiceLevels>
</CSR>
SelectRule
SelectRule placeras under SelectRules-noden.
Denna nod stöder nästling så du kan ha flera SelectRule inom en annan SelectRule.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| SelectRule | Anpassad validering |
| Expressions | Applicera anpassad data på fält |
| Product | Produkten som ska väljas om valideringen är giltig |
Denna nod kan konfigureras på olika sätt:
stringcompare (Endast om field innehåller värdet från comparestring)
<SelectRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
regex (Endast om field innehåller värdet från comparestring)
<SelectRule name="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
country (Endast NO, SE är tillåtet)
<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 - Typ 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 - Typ 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,Alla postnummer som börjar med "NW9 0AA", "NW9 0AB", "NW9 0AC" kommer att uteslutas.
postcodevalidation - Inline - Typ Numerisk
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric">
<Range min="6400" max="6500"/>
</PostcodeValidation>
</PostcodeValidations>
<Product/>
</SelectRule>postcodevalidation - Inline - Typ UK
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK">
<Range min="BA" max=""/>
<Range min="BN1" max=""/>
</PostcodeValidation>
</PostcodeValidations>
<Product/>
</SelectRule>
Alla postnummer som börjar med "BA" och "BN1" kommer att uteslutas.
ServiceLevels
Noden ServiceLevels kan endast placeras under CSR-noden.
Du kan ha mer än en ServiceLevel i ServiceLevels-noden, vilket gör det möjligt att köra olika allokeringsregler på en samling produkter och ha flera fraktprocesser.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| ServiceLevel | Logik om mer än en produkt kan användas |
Exempel
<CSR>
<ServiceLevels>
<ServiceLevel/>
</ServiceLevels>
</CSR>
ServiceLevel
Kan endast placeras inuti en ServiceLevels-nod. ServiceLevel innehåller en lista med produkter.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Products | Innehåller Product-noderna |
| Expressions | Ändra eller applicera data på fält |
| SelectRules | Logik om endast en produkt är giltig |
| ServiceLevel | Logik om mer än en produkt är giltig |
| AllocationRules | Hur produkter ska allokeras |
Stöder följande attribut
-
name - id för ServiceLevel
- fallback - namn på en annan ServiceLevel att rikta mot om ingen produkt klarar valideringarna
Exempel
<ServiceLevels>
<ServiceLevel name="" fallback="">
<SelectRules/>
<Products/>
<AllocationRules/>
</ServiceLevel>
</ServiceLevels>
Products
Noden Products innehåller en lista med Product-noder, och kan endast placeras en gång på varje ServiceLevel-nod.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Product | Produktkonfiguration |
Exempel
<ServiceLevels>
<ServiceLevel>
<Products/>
</ServiceLevel>
</ServiceLevels>
Product
Product-noden används både i SelectRule och i Products-noden.
1. Stödda barnnoder när den placeras under Products-noden
| Nod | Beskrivning |
|---|---|
| Expressions | Ändra eller applicera data på fält |
| GoodsTypeMapping | Logik för att aktivera en varutyp |
| Services | Logik för att aktivera tjänst(er) |
| ValidationRules | Anpassad validering |
| PostCodeValidations | Anpassad postnummervalidering |
| CustomFields | Innehåller anpassade värden som ska returneras för SA 2.0 |
Stöder följande attribut
- name - produktens namn
- conceptid - id för ett koncepttransportör
- dbid - id för en anpassad produkt
- adviseprice - namnet på Price-noden
- rank - används tillsammans med highestrank AllocationRule-typen
- stackid - används för att placera en försändelse i en specifik stack
Följande attribut används tillsammans med SS API-metoden GetShipAdvise
0 - Inaktivera alternativet (standard) | 1 - Aktivera alternativet
-
requireprice - om inget pris kan beräknas för produkten, kommer produkten inte att returneras
-
requiredroppoints - returnera inte produkten om inga droppunkter är tillgängliga.
Kräver alternativet "DropPoints":1 i GetShipAdvise-förfrågan
Exempel
<Products>
<Product>
<ProductGoodsType/>
<Services/>
<ValidationRules/>
<PostCodeValidations/>
<CustomFields/>
</Product>
</Products>
2. Stödda barnnoder när den placeras under en SelectRule-nod
| Nod | Beskrivning |
|---|---|
| Product | Produktinformation |
| Expressions | Applicera anpassad data på fält |
| GoodsTypeMapping | Logik för att aktivera en varutyp |
| Services | Logik för att aktivera tjänst(er) |
Stöder följande attribut
- name - produktens namn
- conceptid - id för ett koncepttransportör
- dbid - id för en anpassad produkt
- adviseprice - namnet på Price-noden
Exempel
<SelectRule>
<Product>
<ProductGoodsType/>
<Services/>
</Product>
</SelectRule>
ProductGoodsType
Används för att tilldela en varutyp till den valda produkten
Följande attribut kan definieras
- goodstypename - Används inte, endast för bättre läsbarhet i filen
- goodstypeid - id från transportörens definitionsfil.
- iscustom (0) - När anpassade varutyper används, sätt detta till 1.
Exempel
<SelectRule>
<Product>
<ProductGoodsType/>
</Product>
</SelectRule>
Services
Noden Services innehåller en lista med tjänst(er) som ska aktiveras på den valda produkten.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Service | Tjänsten som ska aktiveras på en produkt |
Service
Noden Service används för att tilldela en tjänst till en produkt.
Följande attribut kan definieras
- name - tjänstens namn
- serviceid - Id för tjänsten
Exempel
<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 innehåller en lista med PostCodeValidation-noder
Notera: Se även SelectRule implementering av PostCodeValidations
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| PostCodeValidation | Postnummer att köra logik på |
PostCodeValidation
Noden PostCodeValidations innehåller en lista med tjänst(er) som ska aktiveras på den valda produkten.
Notera: Se även SelectRule implementering av PostCodeValidation
Följande attribut kan definieras
- name - tjänstens namn
- serviceid - Id för tjänsten
postcodevalidation - Range-fil - Typ Numerisk
<Product>
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric"
rangefile="file.txt"/>
</PostcodeValidations>
</Product>// file.txt
6400,6500
7400,8000postcodevalidation - Range-fil - Typ 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 - Typ Numerisk
<Product>
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric">
<Range min="6400" max="6500"/>
</PostcodeValidation>
</PostcodeValidations>
</Product>postcodevalidation - Inline - Typ UK
<Product>
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK">
<Range min="BA" max=""/>
<Range min="BN1" max=""/>
</PostcodeValidation>
</PostcodeValidations>
</Product>
Alla postnummer som börjar med "BA" och "BN1" kommer att uteslutas.
ValidationRules
Kan endast placeras inuti en Product-nod om Product-noden är placerad i en Products-nod
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product>
<ValidationRules/>
</Product>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
ValidationRule
Om standardvalideringarna från transportören inte är tillräckliga, kan du lägga till fler valideringar på produkten med denna nod.
En eller flera kan läggas till i en ValidationRules-nod
<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
Denna nod kan konfigureras på olika sätt:
stringcompare (Endast om field innehåller värdet från comparestring)
<ValidationRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
regex (Endast om field innehåller värdet från comparestring)
<ValidationRule name="stringcompare" type="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
country (Endast NO, SE är tillåtet)
<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 - Detta är en avancerad funktion som tillåter användning av OR-regler i valideringarna. Följande exempel är giltigt för värdet YES och tomt
<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
Används för att applicera eller ändra en inställning på en produkt
Följande attribut kan definieras
- function - logik att utföra
- name - mål-nyckel
- value - värde att applicera
Exempel - SetOption
<Products>
<Product>
<Commands>
<Command function="SetOption" name ="Labels" value="PNG"/>
</Commands>
</Product>
</Products>* Används i Shipment Server - SubmitShipment-metoden för att skriva över önskat etikettformat
Exempel - PreAdviseOrder
<Products>
<Product>
<Commands>
<Command function="PreAdviseOrder" name="Submit" value="1"/>
</Commands>
</Product>
</Products>* Används i Shipment Server - tvingar PreAdviseOrder att skicka in försändelsen istället för att spara den i Inbox
CustomFields
Används för att definiera ett eller flera statiska värden som kommer att returneras tillsammans med produkten.
Notera: Detta fungerar endast för ShipmentServer-metoden GetShipAdvise
Enkelt
<CustomFields customer_carrier_code="PNParcel"/>
Flera
<CustomFields key1="value" key2="value" key3="value" key4="value"/>
AllocationRules
Noden AllocationRules innehåller en eller flera AllocationRule-noder.
Allokeringen används för att avgöra vilken produkt som ska användas om mer än en är giltig.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| AllocationRule | Typ av allokering |
Exempel
<CSR>
<ServiceLevels>
<ServiceLevel>
<AllocationRules>
<AllocationRule/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
AllocationRule
En eller flera kan placeras under AllocationRules-noden
Konfigurationer
Allokeringsregeln kan konfigureras för att allokera produkter på olika sätt:
order - Om alla produkter är giltiga, används den första produkten t.ex 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 -Om den valda produkten är giltig, kommer den att användas
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x"/>
<Product conceptid="y"/>
</Products>
<AllocationRules>
<AllocationRule type="preselected"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>lowestprice - Välj produkten med lägst pris
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x"/>
<Product conceptid="y"/>
<Product conceptid="z"/>
</Products>
<AllocationRules>
<AllocationRule type="lowestprice"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
highestrank - Om flera produkter är giltiga, väljs produkten med högst rankning
<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 och highestrank -
Om flera produkter är giltiga, eller om flera produkter har samma pris eller priset är 0.
Används AllocationRule highestrank för att välja produkten.
<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 -
En lista med giltiga produkter kommer att returneras. Om endast en produkt är giltig, skapas en försändelse. För att alltid tvinga fram en lista, sätt attributet onsingle till 1.
För att även få priset returnerat, sätt attributet price till 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 -
Baserat på omfattningen, kommer en produkt att väljas x gånger
Omfattningen kan vara - Installation | location | Actor
På hostade lösningar, använd endast omfattningen actor.
I exemplet nedan
Varje dag kommer Produkt C först att väljas 6 gånger baserat på definierad omfattning.
Sedan kommer Produkt B att användas tills 3 försändelser finns i databasen.
När både Produkt C och B:s mincountforproduct har uppnåtts för dagen, kan alla produkter väljas.
<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 -
Använd en blandning av listade produkter för angiven omfattning.
Omfattningen kan vara - Installation | location | Actor
På hostade lösningar, använd endast omfattningen actor.
Andelen behöver inte summera till 100. Så här fungerar distribution: den tar bort ogiltiga produkter, beräknar andelen för varje kvarvarande produkt och väljer den med störst skillnad mellan avsedd andel och faktisk andel.
I exemplet nedan, eftersom båda produkterna har samma validering, kommer båda produkterna att användas jämnt.
<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>
OBS: distribution fungerar för närvarande inte när det konfigureras via användargränssnittet för Shipping Rules.
Condition
För att styra en AllocationRule, Expression, ValidationRule, eller CSR-noden kan en Condition-nod appliceras.
Om du lägger till flera Condition-noder måste alla vara giltiga för att föräldranoden ska vara giltig.
Exempel - tilldela endast värdet 1000 om det importerade värdet är mindre än eller lika 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 stöder olika valideringar
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ödda 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 placeras under CSR, ServiceLevel, SelectRule & Product-noder.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Expressions | Typ av allokering |
Stöder följande attribut (1 = sant, 0 = falskt)
- prevalidation - kör före validering
- assignresult - tilldela resultat till försändelsen
Standardinställningar för attributen om de inte anges
<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 denna nod kan du tilldela ett värde till ett fält.
Kan endast placeras inuti Expressions-noden.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Condition | Validering |
| Item | Värde att tilldela |
Stöder följande attribut (1 = sant, 0 = falskt)
- targetfield - fältet som värdet ska tilldelas
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 exemplet nedan kommer targetfield att få värdet custom_value
<Expressions>
<Expression targetfield="FIELD">
<Item expression="custom_value"/>
</Expression>
</Expressions>Expression-noden kan ha en eller flera Item-noder
<Expressions>
<Expression>
<Item expression="custom"/>
<Item expression="_"/>
<Item expression="value"/>
</Expression>
</Expressions>I detta fall kommer targetfield att få värdet custom_value
Item-uttrycket kan också använda ett värde från ett annat fält med hjälp av @@
<Expressions>
<Expression targetfield="FIELD">
<Item expression="@@FIELD@@"/>
</Expression>
</Expressions>
GoodsTypeMappings
Med denna nod kan du tilldela varutyp på en produkt. Använder ett importerat värde eller inmatningsprodukten.
Kan endast placeras under CSR-noden
Attribut - (1 = sant, 0 = falskt)
- mappingfield
- mappingoverride - (0) - Använd varutyp från GoodsTypeMappings och inte från Product-noden
-
key - värde från attributet mappingfield på GoodsTypeMappings
- productconceptid - Eftersom varutyp-ID endast är unika inom en transportör, behöver du ange koncept-ID för produkten. Vid användning för anpassad produkt och anpassade varutyper, sätt till 0.
- goodstypename - Används inte, endast för bättre läsbarhet i filen
- goodstypeid - Id från transportörens definitionsfil.
- iscustom (0) - När anpassade varutyper används, sätt detta till 1.
Konfigurationer
Kan konfigureras på två sätt
-
Grupper efter inmatningsprodukt
CSR kontrollerar om den valda produkten har en varutyp inom samma grupp som produkten den ändrades från. Sedan används denna varutyp på försändelsen innan inskickning. -
Grupper efter värde från ett fält
CSR ser om värdet från fältet konfigurerat på mapping-attributet finns i en grupp och använder den definierade varutypen på försändelsen innan inskickning
Grupper efter inmatningsprodukt
<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ärde från ett fält
<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 denna nod kan du tilldela tjänst(er) på en produkt. Använder ett importerat värde eller inmatningsprodukten.
Kan endast placeras under CSR-noden.
Attribut
- mappingfield - detta fält måste vara ett försändelsefält.
- key - värde från attributet mappingfield på ServiceMappings
- name - tjänstens namn
- serviceid - Id för tjänsten
Konfigurationer
Kan konfigureras på två sätt
-
Tjänst efter vald produkt
I detta läge konfigurerar du grupper, och när en tjänst finns inom en grupp på originalprodukten – kontrollerar CSR om den valda produkten har en tjänst inom samma grupp och sätter den tjänsten på försändelsen innan inskickning.
-
Tjänst efter värde från ett fält
I detta läge konfigurerar du också grupper, men använder nycklar för att hitta gruppen istället för de ursprungligen valda tjänsterna.
Tjänst efter vald 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>Tjänst efter värde från ett fält
<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 endast placeras en gång under CSR-noden.
Denna nod möjliggör enkel prisberäkning i din CSR.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Price | Prisberäkningsnod |
Price
Innehåller en prisberäkning.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Exceptions | Fast pris baserat på ett villkor |
| Ranges | Pris baserat på intervall |
| Fees | Ett värde som läggs till antingen på Exception eller Range |
Stöder följande attribut
name - Nodens id, används av attributet adviseprice på Product-noden
currency - t.ex EUR, SEK, NOK
Exempel
<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 endast placeras en gång under Price-noden
Innehåller en eller flera Exception-noder
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Exception | Returnerar ett fast pris |
Exception
Den första Exception-noden där alla valideringar är giltiga kommer att returnera priset
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| ValidationRules | Se ValidationRule-noden |
Stöder följande attribut
- price - Värdet som ska returneras på produkten
Ranges
Detta utvärderas efter Exceptions-noden, om det finns en matchande Exception-nod kommer Ranges-noden inte att köras.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Ranges | Stöder en annan Ranges-nod |
| Range | Innehåller priset för intervallet |
Stöder följande attribut
- field - fältet som intervallogiken ska köras på fld_ShipmentWeightG | fld_AdrPostNo
- unit - används med fältet fld_ShipmentWeightG
Range
Detta utvärderas efter Exceptions-noden, om det finns en matchande Exception-nod kommer Ranges-noden inte att köras.
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Range | Innehåller priset för intervallet |
Stöder följande attribut
- from - startvärde
- to - slutvärde
- price - priset som ska returneras
Fees
Fungerar liknande som Exceptions, det är en lista med avgifter, och varje avgift måste ha giltiga valideringsregler för att avgiften ska tillämpas. Priserna på alla giltiga Fee-noder läggs ihop. Summan läggs till summan från Exceptions eller Ranges
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| Fee | En avgift som ska läggas till priset |
Fee
Om alla ValidationRules är giltiga kommer avgiften att läggas till priset från Exceptions eller Ranges-noden
Stödda barnnoder
| Nod | Beskrivning |
|---|---|
| ValidationRules | Se ValidationRules-noden |
Stöder följande attribut
- price - värdet som ska läggas till priset från antingen Range- eller Exception-nod
-
Expressions - Exempel 1
Lägg till ett standard start- och slutdatum för upphämtning
<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 - Exempel 1
Kör endast Shipping Rules när Produkt 1782 eller 1783 används
<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>