Skip to content

Releases: commercetools/commercetools-dotnet-core-sdk-v2

12.1.0

02 Dec 14:01
ec18f8b
Compare
Choose a tag to compare

What's Changed

  • Update changelog by @ct-sdks in #382
  • Update generated SDKs by @ct-sdks in #383

Full Changelog: 12.0.0...12.1.0

12.0.0

26 Nov 10:48
205c6f9
Compare
Choose a tag to compare

What's Changed

  • Update changelog by @ct-sdks in #376
  • Update generated SDKs by @ct-sdks in #377
  • Update generated SDKs by @ct-sdks in #378
  • Update generated SDKs by @ct-sdks in #379
  • Update generated SDKs by @ct-sdks in #380
  • Update generated SDKs by @ct-sdks in #381
  • Version 12.0.0 preparation by @jenschude in #360

Api changes

Changed Property(s)
  • ⚠️ changed property line of type GraphQLErrorLocation from type integer to number
  • ⚠️ changed property column of type GraphQLErrorLocation from type integer to number
  • ⚠️ changed property totalPrice of type StagedOrder from type TypedMoney to CentPrecisionMoney
  • ⚠️ changed property totalPrice of type Order from type TypedMoney to CentPrecisionMoney
Added QueryParameter(s)
  • added query parameter where to method get /{projectKey}/product-selections/key={key}/products
  • added query parameter where to method get /{projectKey}/product-selections/{ID}/products

New Features

  • Improved internal logger

    • the SDKs internal HttpLogger now offers more configuration options like debug/trace logs and different LogLevels
      for specific exception types.

       services.AddSingleton<ILoggerHandlerOptions>(new LoggerHandlerOptions()
       {
           ResponseLogEvent = LogLevel.Information,
           DefaultExceptionLogEvent = LogLevel.Warning,
           ExceptionLogEvents = new Dictionary<System.Type, LogLevel>()
           {
               { typeof(NotFoundException), LogLevel.Information },
               { typeof(ConcurrentModificationException), LogLevel.Information}
           }
       });
  • ClientBuilder class

    • the ClientBuilder replaces the ClientFactory. ClientFactory calls internally invoke ClientBuilder methods
       var client = new ClientBuilder {
                       ClientName = clientName,
                       ClientConfiguration = clientConfiguration,
                       HttpClient = serviceProvider.GetService<IHttpClientFactory>().CreateClient(clientName),
                       SerializerService = serializerFactory(serviceProvider),
                       TokenProvider = tokenProviderSupplier(clientName, configuration, serviceProvider),
                       ReadResponseAsStream = options.ReadResponseAsStream,
                       CorrelationIdProvider = serviceProvider.GetService<ICorrelationIdProvider>(),
                       Middlewares = middlewares
                   }.Build();
  • NotFoundMiddleware

    • This middleware allows to return null in case a resource returns a 404 error instead of throwing an exception

       services.UseCommercetoolsApi(configuration, "Client", options: new ClientOptions() { ReadResponseAsStream = true},middlewares: new List<DelegatingMiddleware>()
       {
           new NotFoundMiddleware()
       });
  • allow adding custom middlewares to the dependency injection setup

BREAKING CHANGES

  • Updated the target framework to .NET 6.0 PR #361
  • HttpVersion is set to 2.0 in the HttpClient instead of the ApiMethod
  • Use Streams for response bodies by default PR #359 - thanks to @Henr1k80
    • The StreamCtpClient is now used by default which reduces the overall CPU & memory footprint significantly
  • Log Format has been changed PR #273
    • The log format has been changed to {HttpMethod} {Uri} {StatusCode} {Timing} {CorrelationId} {ServerTiming}. Log scopes aren't used anymore
    • by default only response information is being logged
    • raising the loglevel to debug logs request information
    • raising to loglevel trace logs request and response bodies

Full Changelog: 11.14.0...12.0.0

11.14.0

11 Nov 13:24
7e31746
Compare
Choose a tag to compare

What's Changed

Full Changelog: 11.13.0...11.14.0

11.13.0

06 Nov 15:57
f1f18cc
Compare
Choose a tag to compare

What's Changed

  • Update changelog by @ct-sdks in #364
  • Update generated SDKs by @ct-sdks in #365
  • Update generated SDKs by @ct-sdks in #366
  • Update generated SDKs by @ct-sdks in #367
  • Update generated SDKs by @ct-sdks in #368
  • Update generated SDKs by @ct-sdks in #369
  • Update generated SDKs by @ct-sdks in #370
  • Update generated SDKs by @ct-sdks in #371

Full Changelog: 11.12.0...11.13.0

11.12.0

08 Oct 07:30
16a4540
Compare
Choose a tag to compare

What's Changed

  • Update changelog by @ct-sdks in #352
  • Update generated SDKs by @ct-sdks in #353
  • Update generated SDKs by @ct-sdks in #354
  • Create config.yml by @jenschude in #355
  • Update generated SDKs by @ct-sdks in #356
  • Update generated SDKs by @ct-sdks in #357
  • Update generated SDKs by @ct-sdks in #358
  • Update generated SDKs by @ct-sdks in #362
  • Update ci.yml by @jenschude in #363

Api changes

Added Property(s)
  • added property staged to type ProductVariantDeletedMessage
  • added property staged to type ProductVariantDeletedMessagePayload
  • added property warnings to type ProductTailoring
  • added property attributes to type ProductVariantTailoring
  • added property attributes to type ProductVariantTailoringDraft
  • added property attributes to type ProductTailoringAddVariantAction
  • added property warnings to type Product
  • added property customers to type SearchIndexingConfiguration
Added Type(s)
  • added type SearchNotReadyError
  • added type GraphQLSearchNotReadyError
  • added type ProductTailoringAttribute
  • added type ProductTailoringSetAttributeAction
  • added type ProductTailoringSetAttributeInAllVariantsAction
  • added type ImageProcessingOngoingWarning
  • added type WarningObject
Removed Type(s)
  • ⚠️ removed type ProductSearchStatus
Added Enum(s)
  • added enum customer-group to type ExtensionResourceTypeId
  • added enum product-tailoring to type MessageSubscriptionResourceTypeId
  • added enum product-tailoring to type ResourceTypeId

Import changes

Added Type(s)
  • added type InvalidFieldsUpdateError

Full Changelog: 11.11.0...11.12.0

11.11.0

04 Sep 07:34
aeaba0e
Compare
Choose a tag to compare

Important Information

This major release branch will be the last compatible with .NET Standard 2.1. The major release will have .NET 6 as minimum requirement. The next major release will include a refactored logger handler. Some defaults in the client configuration may be changed.

What's Changed

  • Update changelog by @ct-sdks in #344
  • Update generated SDKs by @ct-sdks in #345
  • Update generated SDKs by @ct-sdks in #346
  • Update generated SDKs by @ct-sdks in #347
  • Update generated SDKs by @ct-sdks in #348
  • Update generated SDKs by @ct-sdks in #349
  • Update generated SDKs by @ct-sdks in #350
  • add http version middleware by @jenschude in #351

Api changes

Removed Method(s)
  • ⚠️ removed method apiRoot.withProjectKey().me().businessUnits().withId().delete()
  • ⚠️ removed method apiRoot.withProjectKey().me().businessUnits().withKey().delete()
Added Property(s)
  • added property applicationMode to type CartDiscountValueAbsolute
  • added property applicationMode to type CartDiscountValueAbsoluteDraft
Added Type(s)
  • added type DiscountApplicationMode
  • added type DeliveryCustomFieldAddedMessage
  • added type DeliveryCustomFieldChangedMessage
  • added type DeliveryCustomFieldRemovedMessage
  • added type DeliveryCustomTypeRemovedMessage
  • added type DeliveryCustomTypeSetMessage
  • added type DeliveryCustomFieldAddedMessagePayload
  • added type DeliveryCustomFieldChangedMessagePayload
  • added type DeliveryCustomFieldRemovedMessagePayload
  • added type DeliveryCustomTypeRemovedMessagePayload
  • added type DeliveryCustomTypeSetMessagePayload

Import changes

Added Type(s)
  • added type ReferencedResourceNotFound

Full Changelog: 11.10.0...11.11.0

11.10.0

05 Aug 12:24
7019a1e
Compare
Choose a tag to compare

Api changes

Removed Resource(s)
  • ⚠️ removed resource /{projectKey}/me/carts/key={key}
Added Enum(s)
  • added enum shopping-list to type ExtensionResourceTypeId
  • added enum customer-group to type AttributeReferenceTypeId
  • added enum customer-group to type CustomFieldReferenceValue
Removed Method(s)
  • ⚠️ removed method apiRoot.withProjectKey().me().carts().withKey().get()
  • ⚠️ removed method apiRoot.withProjectKey().me().carts().withKey().head()
  • ⚠️ removed method apiRoot.withProjectKey().me().carts().withKey().post()
  • ⚠️ removed method apiRoot.withProjectKey().me().carts().withKey().delete()
  • ⚠️ removed method apiRoot.withProjectKey().me().quoteRequests().withId().delete()
  • ⚠️ removed method apiRoot.withProjectKey().me().quoteRequests().withKey().delete()

Import changes

Added Enum(s)
  • added enum customer-group to type CustomFieldReferenceValue
Deprecated Property(s)
  • property PriceImport::publish is removed
  • property ProductVariantImport::publish is removed

What's Changed

  • Update changelog by @ct-sdks in #337
  • Update generated SDKs by @ct-sdks in #338
  • Update generated SDKs by @ct-sdks in #339
  • Update generated SDKs by @ct-sdks in #340
  • Update generated SDKs by @ct-sdks in #341
  • Update generated SDKs by @ct-sdks in #342
  • Update generated SDKs by @ct-sdks in #343

Full Changelog: 11.9.0...11.10.0

11.9.0

26 Jul 08:34
0f164fc
Compare
Choose a tag to compare

What's Changed

  • Update changelog by @ct-sdks in #328
  • Update generated SDKs by @ct-sdks in #329
  • Update generated SDKs by @ct-sdks in #332
  • Update generated SDKs by @ct-sdks in #333
  • Update generated SDKs by @ct-sdks in #334
  • Update generated SDKs by @ct-sdks in #335
  • fix resolving of custom fields in GraphQL module by @jenschude in #336

Api changes

Added Enum(s)
  • added enum cart-discount to type CustomFieldReferenceValue
Removed QueryParameter(s)
  • ⚠️ removed query parameter sort from method get /{projectKey}/product-projections/suggest
  • ⚠️ removed query parameter offset from method get /{projectKey}/product-projections/suggest
  • ⚠️ removed query parameter withTotal from method get /{projectKey}/product-projections/suggest
Changed Property(s)
  • ⚠️ changed property customType of type OrderSearchAnyValue from type string to OrderSearchCustomType
  • ⚠️ changed property customType of type OrderSearchDateRangeValue from type string to OrderSearchCustomType
  • ⚠️ changed property customType of type OrderSearchFullTextValue from type string to OrderSearchCustomType
  • ⚠️ changed property customType of type OrderSearchLongRangeValue from type string to OrderSearchCustomType
  • ⚠️ changed property customType of type OrderSearchNumberRangeValue from type string to OrderSearchCustomType
  • ⚠️ changed property customType of type OrderSearchQueryExpressionValue from type string to OrderSearchCustomType
  • ⚠️ changed property customType of type OrderSearchStringValue from type string to OrderSearchCustomType
Added Property(s)
  • added property addressId to type BusinessUnitAddressCustomFieldAddedMessage
  • added property addressId to type BusinessUnitAddressCustomFieldChangedMessage
  • added property addressId to type BusinessUnitAddressCustomFieldRemovedMessage
  • added property addressId to type BusinessUnitAddressCustomTypeRemovedMessage
  • added property addressId to type BusinessUnitAddressCustomTypeSetMessage
  • added property addressId to type CustomerAddressCustomFieldAddedMessage
  • added property addressId to type CustomerAddressCustomFieldChangedMessage
  • added property addressId to type CustomerAddressCustomFieldRemovedMessage
  • added property addressId to type CustomerAddressCustomTypeRemovedMessage
  • added property addressId to type CustomerAddressCustomTypeSetMessage
  • added property addressId to type BusinessUnitAddressCustomFieldAddedMessagePayload
  • added property addressId to type BusinessUnitAddressCustomFieldChangedMessagePayload
  • added property addressId to type BusinessUnitAddressCustomFieldRemovedMessagePayload
  • added property addressId to type BusinessUnitAddressCustomTypeRemovedMessagePayload
  • added property addressId to type BusinessUnitAddressCustomTypeSetMessagePayload
  • added property addressId to type CustomerAddressCustomFieldAddedMessagePayload
  • added property addressId to type CustomerAddressCustomFieldChangedMessagePayload
  • added property addressId to type CustomerAddressCustomFieldRemovedMessagePayload
  • added property addressId to type CustomerAddressCustomTypeRemovedMessagePayload
  • added property addressId to type CustomerAddressCustomTypeSetMessagePayload
  • added property active to type ShippingMethod
  • added property active to type ShippingMethodDraft
Added Type(s)
  • added type CartChangeLineItemsOrderAction
  • added type MyCartChangeLineItemsOrderAction
  • added type OrderSearchCustomType
  • added type ShippingMethodChangeActiveAction

Breaking changes

Order Search

The customtype parameter in an OrderSearch request has been changed from a String to an Enum.

GraphQL module

We released a fix for the GraphQL module. Previously Json-Values in GraphQL were tried to be deserialized to a String. This caused Runtime exceptions for example when trying to deserialize CustomFields which where not Strings. The GraphQL module now deserializes Json into a System.Text.Json.Nodes.JsonValue. So they have to be deserialized to a specific type when trying to access it. An example can be found here:

https://github.com/commercetools/commercetools-dotnet-core-sdk-v2/blob/0f164fc8bdf173b7203ff2c3d1afb2913c9b95ac/commercetools.Sdk/IntegrationTests/commercetools.Api.IntegrationTests/Type/TypeIntegrationTests.cs#L148-L151

Full Changelog: 11.8.0...11.9.0

11.8.0

03 Jul 07:19
8ca59db
Compare
Choose a tag to compare

What's Changed

  • Update changelog by @ct-sdks in #313
  • Update generated SDKs by @ct-sdks in #314
  • Update generated SDKs by @ct-sdks in #315
  • Update generated SDKs by @ct-sdks in #316
  • Update generated SDKs by @ct-sdks in #317
  • Update generated SDKs by @ct-sdks in #318
  • Update generated SDKs by @ct-sdks in #319
  • DEVX-330 add dynatrace example app by @jenschude in #320
  • Update generated SDKs by @ct-sdks in #321
  • Update generated SDKs by @ct-sdks in #322
  • Update generated SDKs by @ct-sdks in #323
  • add datadog example app by @jenschude in #324
  • Update generated SDKs by @ct-sdks in #325
  • Update generated SDKs by @ct-sdks in #326
  • Update generated SDKs by @ct-sdks in #327

Api changes

Required Property(s)
  • changed property isOnStock of type ProductVariantAvailability to be optional
Added Property(s)
  • added property approvalRuleMode to type BusinessUnit
  • added property approvalRuleMode to type BusinessUnitDraft
  • added property approvalRuleMode to type Company
  • added property approvalRuleMode to type CompanyDraft
  • added property approvalRuleMode to type Division
  • added property approvalRuleMode to type DivisionDraft
  • added property metaTitle to type ProductTailoringCreatedMessage
  • added property metaDescription to type ProductTailoringCreatedMessage
  • added property metaKeywords to type ProductTailoringCreatedMessage
  • added property variants to type ProductTailoringCreatedMessage
  • added property metaTitle to type ProductTailoringCreatedMessagePayload
  • added property metaDescription to type ProductTailoringCreatedMessagePayload
  • added property metaKeywords to type ProductTailoringCreatedMessagePayload
  • added property variants to type ProductTailoringCreatedMessagePayload
  • added property variants to type ProductTailoringData
  • added property variants to type ProductTailoringDraft
  • added property variants to type ProductTailoringInStoreDraft
  • added property store to type StagedQuote
Changed Property(s)
  • ⚠️ changed property totalPrice of type OrderLineItemDiscountSetMessage from type Money to CentPrecisionMoney
  • ⚠️ changed property value of type StandalonePriceValueChangedMessage from type Money to TypedMoney
  • ⚠️ changed property oldValue of type StandalonePriceValueChangedMessage from type Money to TypedMoney
  • ⚠️ changed property totalPrice of type OrderLineItemDiscountSetMessagePayload from type Money to CentPrecisionMoney
  • ⚠️ changed property value of type StandalonePriceValueChangedMessagePayload from type Money to TypedMoney
  • ⚠️ changed property oldValue of type StandalonePriceValueChangedMessagePayload from type Money to TypedMoney
  • ⚠️ changed property price of type ShippingRate from type TypedMoney to CentPrecisionMoney
  • ⚠️ changed property freeAbove of type ShippingRate from type TypedMoney to CentPrecisionMoney
Added Enum(s)
  • added enum attribute-group to type ChangeSubscriptionResourceTypeId
  • added enum product-tailoring to type ChangeSubscriptionResourceTypeId
Removed Enum(s)
  • ⚠️ removed enum product-price from type ChangeSubscriptionResourceTypeId
Added Method(s)
  • added method apiRoot.withProjectKey().customers().search().post()
  • added method apiRoot.withProjectKey().customers().search().head()
  • added method apiRoot.withProjectKey().customers().searchIndexingStatus().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().orders().orderQuote().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductId().productTailoring().images().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().products().withProductKey().productTailoring().images().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withKey().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withKey().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withKey().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withKey().delete()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withId().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withId().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withId().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quoteRequests().withId().delete()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withKey().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withKey().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withKey().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withKey().delete()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withId().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withId().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withId().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().stagedQuotes().withId().delete()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withKey().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withKey().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withKey().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withKey().delete()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withId().get()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withId().head()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withId().post()
  • added method apiRoot.withProjectKey().inStoreKeyWithStoreKeyValue().quotes().withId().delete()
Added Type(s)
  • added type BusinessUnitApprovalRuleMode
  • added type BusinessUnitChangeApprovalRuleModeAction
  • added type CustomerIndexingProgress
  • added type CustomerIndexingStatus
  • added type CustomerPagedSearchResponse
  • added type CustomerSearchIndexingStatusResponse
  • added type CustomerSearchRequest
  • added type CustomerSearchResult
  • added type BusinessUnitApprovalRuleModeChangedMessage
  • added type ProductPriceCustomFieldAddedMessage
  • added type ProductPriceCustomFieldChangedMessage
  • added type ProductPriceCustomFieldRemovedMessage
  • added type ProductPriceCustomFieldsRemovedMessage
  • added type ProductPriceCustomFieldsSetMessage
  • added type ProductTailoringImageAddedMessage
  • added type ProductTailoringImagesSetMessage
  • added type ProductVariantTailoringAddedMessage
  • added type ProductVariantTailoringRemovedMessage
  • added type BusinessUnitApprovalRuleModeChangedMessagePayload
  • added type ProductPriceCustomFieldAddedMessagePayload
  • added type ProductPriceCustomFieldChangedMessagePayload
  • added type ProductPriceCustomFieldRemovedMessagePayload
  • added type ProductPriceCustomFieldsRemovedMessagePayload
  • added type ProductPriceCustomFieldsSetMessagePayload
  • added type ProductTailoringImageAddedMessagePayload
  • added type ProductTailoringImagesSetMessagePayload
    ...
Read more

11.7.0

30 May 08:18
08f3f94
Compare
Choose a tag to compare

What's Changed

  • Update changelog by @ct-sdks in #306
  • Update generated SDKs by @ct-sdks in #307
  • Update generated SDKs by @ct-sdks in #308
  • Update generated SDKs by @ct-sdks in #309
  • Update generated SDKs by @ct-sdks in #310
  • Update generated SDKs by @ct-sdks in #311
  • add option to specify attribute type mapping explicit by @jenschude in #312

Full Changelog: 11.6.0...11.7.0