From 017eaa77b4a8fbe4afdac60dd6bd0def56f42477 Mon Sep 17 00:00:00 2001 From: Marat Amirov Date: Wed, 25 Feb 2026 18:59:24 +0400 Subject: [PATCH] =?UTF-8?q?ECOM-663=20Omni=20Store=20Credit=20=E2=80=94=20?= =?UTF-8?q?3.=20Apply=20in=20Cart=20and=20at=20Checkout,=20add=20store=20c?= =?UTF-8?q?redit=20data=20to=20FetchedOrder.kt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ecwid/apiclient/v3/converter/FetchedOrder.kt | 16 ++++++++++++++++ .../apiclient/v3/dto/cart/result/FetchedCart.kt | 2 +- .../v3/dto/order/request/UpdatedOrder.kt | 12 ++++++++++++ .../v3/dto/order/result/FetchedOrder.kt | 12 ++++++++++++ .../nullablepropertyrules/FetchedOrderRules.kt | 6 ++++++ 5 files changed, 47 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 27e06ccbd..555b9b826 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/converter/FetchedOrder.kt @@ -97,6 +97,7 @@ fun FetchedOrder.toUpdated(): UpdatedOrder { electronicInvoiceSdiCode = electronicInvoiceSdiCode, commercialRelationshipScheme = commercialRelationshipScheme, lang = lang, + storeCredit = storeCredit?.toUpdated(), ) } @@ -346,3 +347,18 @@ fun FetchedOrder.LoyaltyRedemption.toUpdated(): UpdatedOrder.LoyaltyRedemption { cancelled = this.cancelled, ) } + +fun FetchedOrder.StoreCredit.toUpdated(): UpdatedOrder.StoreCredit { + return UpdatedOrder.StoreCredit( + redemption = this.redemption?.toUpdated(), + balance = this.balance, + ) +} + +fun FetchedOrder.StoreCreditRedemption.toUpdated(): UpdatedOrder.StoreCreditRedemption { + return UpdatedOrder.StoreCreditRedemption( + id = this.id, + amount = this.amount, + cancelled = this.cancelled, + ) +} diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/result/FetchedCart.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/result/FetchedCart.kt index 296cdc32e..8c9a34504 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/result/FetchedCart.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/cart/result/FetchedCart.kt @@ -124,7 +124,7 @@ data class FetchedCart( ) data class OrderItem( - val id: Int? = null, + val id: Long? = null, val productId: Int? = null, val categoryId: Int? = null, 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 83330d0c7..9ad9a12ac 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 @@ -104,6 +104,7 @@ data class UpdatedOrder( @JsonFieldName("b2b_b2c") val commercialRelationshipScheme: CommercialRelationshipScheme? = null, val lang: String? = null, + val storeCredit: StoreCredit? = null, ) : ApiUpdatedDTO { @@ -380,6 +381,17 @@ data class UpdatedOrder( val cancelled: Boolean? = null, ) + data class StoreCredit( + val redemption: StoreCreditRedemption? = null, + val balance: Double? = null + ) + + data class StoreCreditRedemption( + val id: String? = null, + val amount: Double? = null, + val cancelled: Boolean? = null, + ) + companion object { const val FACEBOOK_ORDER_REFERENCE_ID = "FACEBOOK" } 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 e9907b273..aef85ee24 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 @@ -127,6 +127,7 @@ data class FetchedOrder( @JsonFieldName("b2b_b2c") val commercialRelationshipScheme: CommercialRelationshipScheme? = CommercialRelationshipScheme.b2c, val lang: String? = null, + val storeCredit: StoreCredit? = null, ) : ApiFetchedDTO, ApiResultDTO { @@ -539,4 +540,15 @@ data class FetchedOrder( val amount: Double? = null, val cancelled: Boolean? = null, ) + + data class StoreCredit( + val redemption: StoreCreditRedemption? = null, + val balance: Double? = null + ) + + data class StoreCreditRedemption( + val id: String? = null, + val amount: Double? = null, + val cancelled: Boolean? = null, + ) } 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 9d0c045a0..7aae1547c 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 @@ -331,4 +331,10 @@ val fetchedOrderNullablePropertyRules: List> = listOf AllowNullable(FetchedOrder::electronicInvoiceSdiCode), AllowNullable(FetchedOrder::commercialRelationshipScheme), AllowNullable(FetchedOrder::lang), + AllowNullable(FetchedOrder::storeCredit), + AllowNullable(FetchedOrder.StoreCredit::balance), + AllowNullable(FetchedOrder.StoreCredit::redemption), + AllowNullable(FetchedOrder.StoreCreditRedemption::id), + AllowNullable(FetchedOrder.StoreCreditRedemption::amount), + AllowNullable(FetchedOrder.StoreCreditRedemption::cancelled), )