Releases: commercetools/commercetools-dotnet-core-sdk-v2
12.1.0
12.0.0
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 propertyline
of typeGraphQLErrorLocation
from typeinteger
tonumber
⚠️ changed propertycolumn
of typeGraphQLErrorLocation
from typeinteger
tonumber
⚠️ changed propertytotalPrice
of typeStagedOrder
from typeTypedMoney
toCentPrecisionMoney
⚠️ changed propertytotalPrice
of typeOrder
from typeTypedMoney
toCentPrecisionMoney
Added QueryParameter(s)
- added query parameter
where
to methodget /{projectKey}/product-selections/key={key}/products
- added query parameter
where
to methodget /{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();
- the ClientBuilder replaces the ClientFactory. ClientFactory calls internally invoke ClientBuilder methods
-
-
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
- The log format has been changed to
Full Changelog: 11.14.0...12.0.0
11.14.0
What's Changed
- add converter for product search facets by @jenschude in #375
Full Changelog: 11.13.0...11.14.0
11.13.0
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
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 typeProductVariantDeletedMessage
- added property
staged
to typeProductVariantDeletedMessagePayload
- added property
warnings
to typeProductTailoring
- added property
attributes
to typeProductVariantTailoring
- added property
attributes
to typeProductVariantTailoringDraft
- added property
attributes
to typeProductTailoringAddVariantAction
- added property
warnings
to typeProduct
- added property
customers
to typeSearchIndexingConfiguration
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 typeProductSearchStatus
Added Enum(s)
- added enum
customer-group
to typeExtensionResourceTypeId
- added enum
product-tailoring
to typeMessageSubscriptionResourceTypeId
- added enum
product-tailoring
to typeResourceTypeId
Import changes
Added Type(s)
- added type
InvalidFieldsUpdateError
Full Changelog: 11.11.0...11.12.0
11.11.0
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 methodapiRoot.withProjectKey().me().businessUnits().withId().delete()
⚠️ removed methodapiRoot.withProjectKey().me().businessUnits().withKey().delete()
Added Property(s)
- added property
applicationMode
to typeCartDiscountValueAbsolute
- added property
applicationMode
to typeCartDiscountValueAbsoluteDraft
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
Api changes
Removed Resource(s)
⚠️ removed resource/{projectKey}/me/carts/key={key}
Added Enum(s)
- added enum
shopping-list
to typeExtensionResourceTypeId
- added enum
customer-group
to typeAttributeReferenceTypeId
- added enum
customer-group
to typeCustomFieldReferenceValue
Removed Method(s)
⚠️ removed methodapiRoot.withProjectKey().me().carts().withKey().get()
⚠️ removed methodapiRoot.withProjectKey().me().carts().withKey().head()
⚠️ removed methodapiRoot.withProjectKey().me().carts().withKey().post()
⚠️ removed methodapiRoot.withProjectKey().me().carts().withKey().delete()
⚠️ removed methodapiRoot.withProjectKey().me().quoteRequests().withId().delete()
⚠️ removed methodapiRoot.withProjectKey().me().quoteRequests().withKey().delete()
Import changes
Added Enum(s)
- added enum
customer-group
to typeCustomFieldReferenceValue
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
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 typeCustomFieldReferenceValue
Removed QueryParameter(s)
⚠️ removed query parametersort
from methodget /{projectKey}/product-projections/suggest
⚠️ removed query parameteroffset
from methodget /{projectKey}/product-projections/suggest
⚠️ removed query parameterwithTotal
from methodget /{projectKey}/product-projections/suggest
Changed Property(s)
⚠️ changed propertycustomType
of typeOrderSearchAnyValue
from typestring
toOrderSearchCustomType
⚠️ changed propertycustomType
of typeOrderSearchDateRangeValue
from typestring
toOrderSearchCustomType
⚠️ changed propertycustomType
of typeOrderSearchFullTextValue
from typestring
toOrderSearchCustomType
⚠️ changed propertycustomType
of typeOrderSearchLongRangeValue
from typestring
toOrderSearchCustomType
⚠️ changed propertycustomType
of typeOrderSearchNumberRangeValue
from typestring
toOrderSearchCustomType
⚠️ changed propertycustomType
of typeOrderSearchQueryExpressionValue
from typestring
toOrderSearchCustomType
⚠️ changed propertycustomType
of typeOrderSearchStringValue
from typestring
toOrderSearchCustomType
Added Property(s)
- added property
addressId
to typeBusinessUnitAddressCustomFieldAddedMessage
- added property
addressId
to typeBusinessUnitAddressCustomFieldChangedMessage
- added property
addressId
to typeBusinessUnitAddressCustomFieldRemovedMessage
- added property
addressId
to typeBusinessUnitAddressCustomTypeRemovedMessage
- added property
addressId
to typeBusinessUnitAddressCustomTypeSetMessage
- added property
addressId
to typeCustomerAddressCustomFieldAddedMessage
- added property
addressId
to typeCustomerAddressCustomFieldChangedMessage
- added property
addressId
to typeCustomerAddressCustomFieldRemovedMessage
- added property
addressId
to typeCustomerAddressCustomTypeRemovedMessage
- added property
addressId
to typeCustomerAddressCustomTypeSetMessage
- added property
addressId
to typeBusinessUnitAddressCustomFieldAddedMessagePayload
- added property
addressId
to typeBusinessUnitAddressCustomFieldChangedMessagePayload
- added property
addressId
to typeBusinessUnitAddressCustomFieldRemovedMessagePayload
- added property
addressId
to typeBusinessUnitAddressCustomTypeRemovedMessagePayload
- added property
addressId
to typeBusinessUnitAddressCustomTypeSetMessagePayload
- added property
addressId
to typeCustomerAddressCustomFieldAddedMessagePayload
- added property
addressId
to typeCustomerAddressCustomFieldChangedMessagePayload
- added property
addressId
to typeCustomerAddressCustomFieldRemovedMessagePayload
- added property
addressId
to typeCustomerAddressCustomTypeRemovedMessagePayload
- added property
addressId
to typeCustomerAddressCustomTypeSetMessagePayload
- added property
active
to typeShippingMethod
- added property
active
to typeShippingMethodDraft
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:
Full Changelog: 11.8.0...11.9.0
11.8.0
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 typeProductVariantAvailability
to be optional
Added Property(s)
- added property
approvalRuleMode
to typeBusinessUnit
- added property
approvalRuleMode
to typeBusinessUnitDraft
- added property
approvalRuleMode
to typeCompany
- added property
approvalRuleMode
to typeCompanyDraft
- added property
approvalRuleMode
to typeDivision
- added property
approvalRuleMode
to typeDivisionDraft
- added property
metaTitle
to typeProductTailoringCreatedMessage
- added property
metaDescription
to typeProductTailoringCreatedMessage
- added property
metaKeywords
to typeProductTailoringCreatedMessage
- added property
variants
to typeProductTailoringCreatedMessage
- added property
metaTitle
to typeProductTailoringCreatedMessagePayload
- added property
metaDescription
to typeProductTailoringCreatedMessagePayload
- added property
metaKeywords
to typeProductTailoringCreatedMessagePayload
- added property
variants
to typeProductTailoringCreatedMessagePayload
- added property
variants
to typeProductTailoringData
- added property
variants
to typeProductTailoringDraft
- added property
variants
to typeProductTailoringInStoreDraft
- added property
store
to typeStagedQuote
Changed Property(s)
⚠️ changed propertytotalPrice
of typeOrderLineItemDiscountSetMessage
from typeMoney
toCentPrecisionMoney
⚠️ changed propertyvalue
of typeStandalonePriceValueChangedMessage
from typeMoney
toTypedMoney
⚠️ changed propertyoldValue
of typeStandalonePriceValueChangedMessage
from typeMoney
toTypedMoney
⚠️ changed propertytotalPrice
of typeOrderLineItemDiscountSetMessagePayload
from typeMoney
toCentPrecisionMoney
⚠️ changed propertyvalue
of typeStandalonePriceValueChangedMessagePayload
from typeMoney
toTypedMoney
⚠️ changed propertyoldValue
of typeStandalonePriceValueChangedMessagePayload
from typeMoney
toTypedMoney
⚠️ changed propertyprice
of typeShippingRate
from typeTypedMoney
toCentPrecisionMoney
⚠️ changed propertyfreeAbove
of typeShippingRate
from typeTypedMoney
toCentPrecisionMoney
Added Enum(s)
- added enum
attribute-group
to typeChangeSubscriptionResourceTypeId
- added enum
product-tailoring
to typeChangeSubscriptionResourceTypeId
Removed Enum(s)
⚠️ removed enumproduct-price
from typeChangeSubscriptionResourceTypeId
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
...
11.7.0
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