Denne artikel henvender sig til kunder, der redigerer og laver mere avancerede CPC (Custom Price Calculation)-konfigurationer i XML og som ønsker at lære, hvordan man opsætter en gebyrbetingelse (fee condition). En gebyrbetingelse er en betingelse, der, hvis den er sand, bliver lagt til den endelige pris.
Gebyrbetingelsen angives i XML-noden for den aktuelle indikator ved hjælp af sammensatte operatorer, simple operatorer og operander.
En betingelse kan tilføjes til indikatorer som Fee, Discount, Service, GlobalIndicator og Goodstype, men i denne artikel forklarer vi, hvordan man konfigurerer gebyrbetingelser.
Gå til:
The <FeeCondition> node
I CPC er det muligt at angive et gebyr, som kun anvendes, hvis bestemte betingelser er opfyldt. Betingelser, der anvendes på gebyret, placeres altid inde i <FeeCondition> node.
Eksempel 1 viser en betingelse, der kun anvendes, hvis pakkens længde er 80 cm eller derover.
Eksempel 1:
<FeeCondition>
<Length GreaterThanOrEqual="800" />
</FeeCondition>
Simple operators
Simple operatorer er de matematiske operatorer, der bruges til at kontrollere en betingelse. I eksempel 1 ovenfor brugte vi følgende operator: GreaterThanOrEqual.
Fuld liste over simple operatorer:
- GreaterThan
- GreaterThanOrEqual
- LessThan
- LessThanOrEqual
- Equal
- NotEqual
- Contains
- NotContains
- In
- NotIn
Operatorer
Operatorer er de value i forsendelsen, der refereres til. Eksempel 1 brugte Length, som refererer til pakkens længde.
Den fulde liste over operatorer:
- Width (mm)
- Height (mm)
- Length (mm)
- CodAmount
- Weight (kg)
- WxHxL (mm)
- Volume (mm3)
- DangerousGoods
- CarrierAccountNumber
- InputWeight
- CustomField
Sammensatte operatorer
Sammensatte operatorer kan være <OR> eller <AND> eller en kombination af begge og definerer, om alle eller kun én af betingelserne skal være opfyldt. I eksempel 2 bruges <AND>, hvilket betyder, at alle betingelser skal være opfyldt. Det betyder, at alle operanderne Width, Height og Length skal være mindst 600 mm (60 cm).
Eksempel 2: Betingelse hvor alle skal være opfyldt
<AND>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</AND>
De samme betingelser kan placeres inde i den sammensatte operator <OR> som i eksempel 2, hvilket betyder, at kun én af betingelserne skal være opfyldt. Hvis enten Width, Length eller Height er 600 mm (60 cm) eller mere, vil betingelsen være sand.
Eksempel 3: Betingelser hvor én skal være opfyldt
<OR>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</OR
I eksempel 4 nedenfor kan du se en fuld <Fee> node med en <FeeCondition> node der indeholder både <OR> and <AND> to for at skabe en mere avanceret betingelse. I dette tilfælde betyder det, at enten skal pakkens længde være 1200 mm (120 cm) eller mere, eller mindst 2 sider skal være 600 mm (60 cm) eller mere. Hvis dette er sandt, vil et gebyr på 40 blive lagt til prisen.
Eksempel 4: Brug af begge sammensatte operatorer
<Fees>
<Fee Name="Fee1" IndicatorType="Value" Order="100" IndicatorBasis="ToBaseValue">
<FeeEntryInterval ValueFrom="*" ValueTo="*">
<FeeValue RouteName="*" Value="40">
<FeeCondition>
<OR>
<OR>
<Width GreaterThanOrEqual="1200"/>
<Height GreaterThanOrEqual="1200"/>
<Length GreaterThanOrEqual="1200"/>
</OR>
<OR>
<AND>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
</AND>
<AND>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</AND>
<AND>
<Width GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</AND>
</OR>
</OR>
</FeeCondition>
</FeeValue>
</FeeEntryInterval>
</Fee>
</Fees>