Den här artikeln riktar sig till kunder som redigerar och gör mer avancerade CPC-konfigurationer (Custom Price Calculation) i XML och som vill lära sig hur man ställer in ett avgiftsvillkor (fee conditition) . Ett avgiftsvillkor är ett villkor som, om det är sant, kommer att läggas till det slutliga priset.
Avgiftsvillkoret anges i XML-noden för den aktuella indikatorn med hjälp av sammansatta operatorer, enkla operatorer och operander.
Ett villkor kan läggas till indikatorer som Fee, rabatt, tjänst, GlobalIndicator och Goodstype, men i den här artikeln kommer vi att förklara hur man konfigurerar avgiftsvillkor.
Gå till:
Den <FeeCondition> node
I CPC är det möjligt att ange en avgift som bara tillämpas om vissa villkor är uppfyllda. Villkor som tillämpas på avgiften placeras alltid inuti <FeeCondition> node.
Exempel 1 visar ett villkor som endast tillämpas om paketlängden är 80 cm eller mer.
Exempel 1:
<FeeCondition>
<Length GreaterThanOrEqual="800" />
</FeeCondition>
Enkla operatorer
Enkla operatorer är de matematiska operatorer som används för att kontrollera ett villkor. I exempel 1 ovan använde vi följande operator: GreaterThanOrEqual.
Fullständig lista över enkla operatorer:
- GreaterThan
- GreaterThanOrEqual
- LessThan
- LessThanOrEqual
- Equal
- NotEqual
- Contains
- NotContains
- In
- NotIn
Operatorer
Operatorer är de value i försändelsen som refereras till. Exempel 1 använde Length, vilket avser paketets längd.
Den fullständiga listan över operatorer:
- Width (mm)
- Height (mm)
- Length (mm)
- CodAmount
- Weight (kg)
- WxHxL (mm)
- Volume (mm3)
- DangerousGoods
- CarrierAccountNumber
- InputWeight
- CustomField
Sammansatta operatorer
Sammansatta operatorer kan vara <OR> eller <AND> eller en kombination av båda och definierar om alla eller bara ett av villkoren måste uppfyllas. I Exempel 2 används <AND>, vilket innebär att alla villkor måste uppfyllas. Detta betyder att alla operanderna Width, Height och Length måste vara minst 600 mm (60 cm).
Exempel 2: Villkor där alla måste uppfyllas
<AND>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</AND>
Samma villkor kan placeras i den sammansatta operatorn <OR> som i exempel 2, vilket innebär att bara ett av villkoren måste uppfyllas. Om antingen Width, Length eller Height är 600 mm (60 cm) eller mer, kommer villkoret att vara sant.
Exempel 3: Villkor där ett måste uppfyllas
<OR>
<Width GreaterThanOrEqual="600"/>
<Height GreaterThanOrEqual="600"/>
<Length GreaterThanOrEqual="600"/>
</OR
I Exempel 4 nedan ser du en fullständig <Fee> node med en <FeeCondition> node som innehåller både <OR> and <AND> to för att skapa ett mer avancerat villkor. I detta fall innebär det att antingen måste längden på paketet vara 1200 mm (120 cm) eller mer, eller så måste minst 2 sidor vara 600 mm (60 cm) eller mer. Om detta är sant kommer en avgift på 40 att läggas till priset.
Exempel 4: Användning av båda sammansatta operatorerna
<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>