From 93aaf569090a434829f1dec9979659c02977fbab Mon Sep 17 00:00:00 2001 From: carl Date: Sun, 29 Jun 2025 00:10:50 +0400 Subject: [PATCH 1/5] ECWID-163221 New Order Editor: Tax is automatically reset to a standard rate if a product was deleted from catalog --- .../kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt | 1 + .../com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt | 1 + .../com/ecwid/apiclient/v3/dto/order/result/FetchedOrder.kt | 3 ++- .../v3/rule/nullablepropertyrules/FetchedOrderRules.kt | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt b/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt index 5b596e69..1de541bb 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt @@ -175,6 +175,7 @@ fun FetchedOrder.OrderItem.toUpdated(): UpdatedOrder.OrderItem { discounts = discounts?.map(FetchedOrder.OrderItemDiscounts::toUpdated), externalReferenceId = externalReferenceId, isPreorder = isPreorder, + taxClassCode = taxClassCode, ) } diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt index d3fd06ba..33548888 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt @@ -180,6 +180,7 @@ data class UpdatedOrder( val discounts: List? = null, val externalReferenceId: String? = null, val isPreorder: Boolean? = null, + var taxClassCode: String? = null, ) data class OrderItemSelectedOption( diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/result/FetchedOrder.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/result/FetchedOrder.kt index bdd3abd0..e3b970f3 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/result/FetchedOrder.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/result/FetchedOrder.kt @@ -217,7 +217,8 @@ data class FetchedOrder( val discounts: List? = null, val externalReferenceId: String? = null, val isPreorder: Boolean? = null, - val attributes: List? = null + val attributes: List? = null, + val taxClassCode: String? = null ) data class RecurringChargeSettings( diff --git a/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt b/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt index b146cc8a..13f29215 100644 --- a/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt +++ b/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt @@ -99,6 +99,7 @@ val fetchedOrderNullablePropertyRules: List> = listOf IgnoreNullable(FetchedOrder.OrderItem::externalReferenceId), AllowNullable(FetchedOrder.OrderItem::isPreorder), AllowNullable(FetchedOrder.OrderItem::attributes), + IgnoreNullable(FetchedOrder.OrderItem::taxClassCode), IgnoreNullable(FetchedOrder.OrderItemDiscounts::discountInfo), IgnoreNullable(FetchedOrder.OrderItemDiscounts::total), AllowNullable(FetchedOrder.OrderItemOptionFile::id), From 0066d6835140bcbe06b5bdff6c91dec0040e5082 Mon Sep 17 00:00:00 2001 From: carl Date: Sun, 29 Jun 2025 00:18:01 +0400 Subject: [PATCH 2/5] ECWID-163221: remove extra spaces --- .../kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt b/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt index 1de541bb..8f5daa56 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt @@ -175,7 +175,7 @@ fun FetchedOrder.OrderItem.toUpdated(): UpdatedOrder.OrderItem { discounts = discounts?.map(FetchedOrder.OrderItemDiscounts::toUpdated), externalReferenceId = externalReferenceId, isPreorder = isPreorder, - taxClassCode = taxClassCode, + taxClassCode = taxClassCode, ) } From 558e338fce2903e2362b46af0ecb46cca2821acc Mon Sep 17 00:00:00 2001 From: carl Date: Sun, 29 Jun 2025 00:31:26 +0400 Subject: [PATCH 3/5] ECWID-163221: make variable immutable --- .../com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt index 33548888..8a3dcb9f 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/UpdatedOrder.kt @@ -180,7 +180,7 @@ data class UpdatedOrder( val discounts: List? = null, val externalReferenceId: String? = null, val isPreorder: Boolean? = null, - var taxClassCode: String? = null, + val taxClassCode: String? = null, ) data class OrderItemSelectedOption( From 35d4aeb2eb661d38a777a7f8dab7c7c77e811084 Mon Sep 17 00:00:00 2001 From: carl Date: Sun, 29 Jun 2025 00:48:10 +0400 Subject: [PATCH 4/5] ECWID-163221: allow nullable values --- .../v3/rule/nullablepropertyrules/FetchedOrderRules.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt b/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt index 13f29215..fc17f10e 100644 --- a/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt +++ b/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/FetchedOrderRules.kt @@ -99,7 +99,7 @@ val fetchedOrderNullablePropertyRules: List> = listOf IgnoreNullable(FetchedOrder.OrderItem::externalReferenceId), AllowNullable(FetchedOrder.OrderItem::isPreorder), AllowNullable(FetchedOrder.OrderItem::attributes), - IgnoreNullable(FetchedOrder.OrderItem::taxClassCode), + AllowNullable(FetchedOrder.OrderItem::taxClassCode), IgnoreNullable(FetchedOrder.OrderItemDiscounts::discountInfo), IgnoreNullable(FetchedOrder.OrderItemDiscounts::total), AllowNullable(FetchedOrder.OrderItemOptionFile::id), From 4746c210caf4207775732d7a59d332a6bd7b6733 Mon Sep 17 00:00:00 2001 From: carl Date: Sun, 29 Jun 2025 01:51:06 +0400 Subject: [PATCH 5/5] ECWID-163221: also adding 'taxClassCode' property to order calculation --- .../ecwid/apiclient/v3/dto/cart/request/OrderForCalculate.kt | 3 ++- .../v3/rule/nullablepropertyrules/OrderForCalculateRules.kt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/request/OrderForCalculate.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/request/OrderForCalculate.kt index a9d06926..2491540c 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/request/OrderForCalculate.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/request/OrderForCalculate.kt @@ -104,7 +104,8 @@ data class OrderForCalculate( val taxes: List? = null, val files: List? = null, val dimensions: ProductDimensions? = null, - val discounts: List? = null + val discounts: List? = null, + val taxClassCode: String? = null ) data class OrderItemOption( diff --git a/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/OrderForCalculateRules.kt b/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/OrderForCalculateRules.kt index c969c860..ec6d69fe 100644 --- a/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/OrderForCalculateRules.kt +++ b/src/test/kotlin/com/ecwid/apiclient/v3/rule/nullablepropertyrules/OrderForCalculateRules.kt @@ -91,6 +91,7 @@ val orderForCalculateNullablePropertyRules: List> = l IgnoreNullable(OrderForCalculate.OrderItem::taxes), IgnoreNullable(OrderForCalculate.OrderItem::trackQuantity), IgnoreNullable(OrderForCalculate.OrderItem::weight), + AllowNullable(OrderForCalculate.OrderItem::taxClassCode), IgnoreNullable(OrderForCalculate.OrderItemDiscountInfo::base), IgnoreNullable(OrderForCalculate.OrderItemDiscountInfo::orderTotal), IgnoreNullable(OrderForCalculate.OrderItemDiscountInfo::type),