Denne artikkelen er rettet mot kunder som redigerer og gjør mer avanserte CPC (Custom Price Calculation) konfigurasjoner i XML, og som ønsker å lære hvordan man setter opp en gebyrbetingelse (fee condition). En gebyrbetingelse er en betingelse som, hvis den er sann, vil bli lagt til sluttprisen.
Gebyrbetingelser er spesifisert i XML-noden til den aktuelle indikatoren ved bruk av sammensatte operatorer, enkle operatorer og operander.
En betingelse kan legges til indikatorer som Fee, Discount, Service, GlobalIndicator og Goodstype, men i denne artikkelen vil vi forklare hvordan du konfigurerer gebyrbetingelser.
Gå til:
The <FeeCondition> node
I CPC er det mulig å angi et gebyr som bare blir brukt dersom visse betingelser er oppfylt. Betingelser som brukes på gebyret plasseres alltid inne i <FeeCondition> node.
Eksempel 1 viser en betingelse som bare brukes hvis pakkelengden er 80 cm eller mer.
Eksempel 1:
<FeeCondition>
<Length GreaterThanOrEqual="800" />
</FeeCondition>
Enkle operatorer
Enkle operatorer er de matematiske operatorene som brukes til å kontrollere en betingelse. I eksempel 1 over brukte vi følgende operator: GreaterThanOrEqual.
Fullstendig liste over enkle operatorer:
- GreaterThan
- GreaterThanOrEqual
- LessThan
- LessThanOrEqual
- Equal
- NotEqual
- Contains
- NotContains
- In
- NotIn
Operatorer
Operatorer er value i forsendelsen det refereres til. Eksempel 1 brukte Length, som refererer til lengden på pakken.
Den fullstendige listen 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 kombinasjon av begge, og definerer om alle eller bare én av betingelsene må være oppfylt. I eksempel 2 brukes <AND>, noe som betyr at alle betingelsene må være oppfylt. Dette betyr at alle operandene Width, Height og Length må være minst 600 mm (60 cm).
Eksempel 2: Betingelse der alle må være oppfylt
<AND>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</AND>
De samme betingelsene kan settes inn i den sammensatte operatoren <OR> som i eksempel 2, noe som betyr at bare én av betingelsene må være oppfylt. Hvis enten Width, Length eller Height er 600 mm (60 cm) eller mer, vil betingelsen være sann.
Eksempel 3: Betingelser der én må være oppfylt
<OR>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</OR
I eksempel 4 nedenfor vil du se en full <Fee> node med en <FeeCondition> node som inneholder både <OR> and <AND> to for å lage en mer avansert betingelse. I dette tilfellet betyr det at enten må lengden på pakken være 1200 mm (120 cm) eller mer, eller at minst 2 sider må være 600 mm (60 cm) eller mer. Hvis dette er sant, vil et gebyr på 40 bli lagt til prisen.
Eksempel 4: Bruk av 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>