Skip to content

Commit bd108a1

Browse files
Multiplymvantellingen
authored andcommitted
Persist shipping tier rates in state
1 parent ac2ecc2 commit bd108a1

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

commercetools/resource_shipping_zone_rate.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,50 @@ func setShippingZoneRateState(d *schema.ResourceData, shippingMethod *platform.S
503503
return err
504504
}
505505

506+
if len(shippingRate.Tiers) != 0 {
507+
tiers := []any{}
508+
509+
for _, v := range shippingRate.Tiers {
510+
switch shippingRateTier := v.(type) {
511+
case platform.CartClassificationTier:
512+
tiers = append(tiers, map[string]any{
513+
"type": string(platform.ShippingRateTierTypeCartClassification),
514+
"value": shippingRateTier.Value,
515+
"price": []any{
516+
map[string]any{
517+
"currency_code": shippingRateTier.Price.CurrencyCode,
518+
"cent_amount": shippingRateTier.Price.CentAmount,
519+
},
520+
},
521+
})
522+
case platform.CartScoreTier:
523+
tiers = append(tiers, map[string]any{
524+
"type": string(platform.ShippingRateTierTypeCartScore),
525+
"score": shippingRateTier.Score,
526+
"price": []any{
527+
map[string]any{
528+
"currency_code": shippingRateTier.Price.CurrencyCode,
529+
"cent_amount": shippingRateTier.Price.CentAmount,
530+
},
531+
},
532+
})
533+
case platform.CartValueTier:
534+
tiers = append(tiers, map[string]any{
535+
"type": string(platform.ShippingRateTierTypeCartValue),
536+
"minimum_cent_amount": shippingRateTier.MinimumCentAmount,
537+
"price": []any{
538+
map[string]any{
539+
"currency_code": shippingRateTier.Price.CurrencyCode,
540+
"cent_amount": shippingRateTier.Price.CentAmount,
541+
},
542+
},
543+
})
544+
}
545+
}
546+
547+
d.Set("shipping_rate_price_tier", tiers)
548+
}
549+
506550
if typedPrice, ok := shippingRate.Price.(platform.CentPrecisionMoney); ok {
507551
price := map[string]any{
508552
"currency_code": string(typedPrice.CurrencyCode),

0 commit comments

Comments
 (0)