Dit artikel is bedoeld voor klanten die CPC-configuraties (Custom Price Calculation) in XML bewerken en meer geavanceerde aanpassingen doen, en die willen leren hoe ze een toeslagvoorwaarde (fee condition) instellen. Een toeslagvoorwaarde is een voorwaarde die, als deze waar is, wordt toegevoegd aan de uiteindelijke prijs.
De toeslagvoorwaarde wordt gespecificeerd in de XML-node van de huidige indicator met behulp van samengestelde operatoren, eenvoudige operatoren en operanden.
Een voorwaarde kan worden toegevoegd aan indicatoren zoals Fee, Discount, Service, GlobalIndicator en Goodstype, maar in dit artikel leggen we uit hoe je Fee-voorwaarden configureert.
Ga naar:
De <FeeCondition> node
In CPC is het mogelijk om een fee te specificeren die alleen wordt toegepast als aan bepaalde voorwaarden wordt voldaan. Voorwaarden die op de fee worden toegepast, worden altijd binnen de <FeeCondition> node geplaatst.
Voorbeeld 1 toont een voorwaarde die alleen wordt toegepast als de pakketlengte 80 cm of meer is.
Voorbeeld 1:
<FeeCondition>
<Length GreaterThanOrEqual="800" />
</FeeCondition>
Eenvoudige operatoren
Eenvoudige operatoren zijn de wiskundige operatoren die worden gebruikt om een voorwaarde te controleren. In voorbeeld 1 hierboven gebruikten we de volgende operator: GreaterThanOrEqual.
Volledige lijst met eenvoudige operatoren:
- GreaterThan
- GreaterThanOrEqual
- LessThan
- LessThanOrEqual
- Equal
- NotEqual
- Contains
- NotContains
- In
- NotIn
Operanden
Operanden zijn de value in de zending waarnaar wordt verwezen. Voorbeeld 1 gebruikte Length, wat verwijst naar de lengte van het pakket.
De volledige lijst met operanden:
- Width (mm)
- Height (mm)
- Length (mm)
- CodAmount
- Weight (kg)
- WxHxL (mm)
- Volume (mm3)
- DangerousGoods
- CarrierAccountNumber
- InputWeight
- CustomField
Samengestelde operatoren
Samengestelde operatoren kunnen <OR> of <AND> zijn of een combinatie van beide en bepalen of alle of slechts één van de condities moet worden vervuld. In voorbeeld 2 wordt <AND> gebruikt, wat betekent dat alle condities moeten worden vervuld. Dit betekent dat alle operanden Width, Height en Length minimaal 600 mm (60 cm) moeten zijn.
Voorbeeld 2: Conditie waarbij alles moet worden vervuld
<AND>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</AND>
Dezelfde condities kunnen binnen de samengestelde operator <OR> worden geplaatst zoals in voorbeeld 2, wat betekent dat slechts één van de condities hoeft te worden vervuld. Als Width, Length of Height 600 mm (60 cm) of meer is, zal de conditie waar zijn.
Voorbeeld 3: Condities waarbij één moet worden vervuld
<OR>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</OR
In voorbeeld 4 hieronder ziet u een volledige <Fee> node met een <FeeCondition> node die zowel <OR> and als <AND> to bevat om een meer geavanceerde conditie te creëren. In dit geval betekent dit dat ofwel de lengte van het pakket 1200 mm (120 cm) of meer moet zijn, of dat ten minste 2 zijden 600 mm (60 cm) of meer moeten zijn. Als dit waar is, wordt een toeslag van 40 toegevoegd aan de prijs.
Voorbeeld 4: Gebruik van beide samengestelde operatoren
<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>