Due to an issue with the generation of the type definitions, an upcoming release of the SDK will change type definitions to include namespaces. As this is a breaking change, a new major version will be released (v3.0.0). Only the names of the types will change, not their contents or any of the exported code. If you only use JavaScript, or if you use TypeScript but only import the client classes, then your usage will not change. You will likely only need to make changes if you import the type definitions directly.
- The endpoints
getOrder
andgetOrders
have been added to the Orders API.
- The SDK now sends a custom user agent with requests,
commerce-sdk@<version>;
. If you specify your own user agent in the client config, it will be replaced. If you specify your own user agent when making a request, it will be merged with the SDK user agent.
- The Shopper Search API is now in the Discovery API family. To maintain backwards compatibility, the API is also available under the old Search family. Future changes to the Shopper Search API will only be applied to the version in the Discovery family.
- Shopper Discovery Search has been added to the SDK.
Shopper Login
- New endpoints
Endpoint Name | Description |
---|---|
getTrustedSystemAccessToken | Get a shopper JWT/access token, along with a refresh token for registered customers whose credentials are stored using a third party system. |
SLAS (Shopper Login & API Authentication Service) Administration is now supported in the SDK
Shopper Customers
- New operations
- registerExternalProfile
- getExternalProfile
Shopper Login Authentication Service is now supported in the SDK
CDN Zones API
- New operations
- getCertificates
- updateCertificates
Shopper Login BETA
-
New operation
- logoutCustomer
-
Operation changed
- authenticateCustomer changed from GET to POST
Catalogs
- New operations
- runCategoryRules
- getCategorizationStatus
- createUpdateRule
- deleteRule
- getCategoryRuleConditions
- deleteCategoryRuleConditions
Products
- New operation
- getCategorizationAttributeDefinitions
CDN Zones API
- Scopes added
Shopper Login
-
Updates made
-
Security and documentation updates made.
CDN Zones API
- Endpoints Added
- /organizations/{organizationId}/zones/{zoneId}/speed-settings Shopper Baskets
- Endpoints Added
- /organizations/{organizationId}/baskets/{basketId}/price-books
- Updated Readme with Security Information.
- Added examples to retrieve shopper auth token
- Minor documentation updates
- SDK GA Release
- All APIs are now GA except Shopper Login which is still in Beta
- Fixes an issue resolving nested data types
- Customer API now includes Shopper Login
- Types have been migrated into their corresponding class, making them easier to import.
None
Authentication was not being persisted by clients.
Shopper Stores API
- Shopper Stores API has been removed
Customer API
-
Type Name Removed
- CustomerGroupMember
- CustomerGroup type removed from Customer API
- Customer API
- CustomerGroupMemberSearchResult
- CustomerGroupMembers
- CustomerGroupSearchResult
- Rule
-
Display Name Changed
- CreateAddressForCustomerInCustomerList renamed to createAddressForCustomerInCustomerList
-
Endpoints Removed
- /organizations/{organizationId}/sites/{siteId}/customer-groups
- /organizations/{organizationId}/{customerGroupId}
- /organizations/{organizationId}/member-search
- /organizations/{organizationId}/members
- /organizations/{organizationId}/sites/{siteId}/customer-group-search
Shopper Baskets API
- Display Name Changed
- addTaxForBasketItem renamed to addTaxesForBasketItem
Shopper Login SLAS
- Shopper Login & API Access Service - SLAS renamed to Shopper Login
- Authorization header is not removed for conditional get requests
- Debug logging now prints working curl commands
- Types have been moved to a types object and 'T' postfix has been removed to avoid collisions between method and type names
Shopper Baskets API
- New endpoints
Endpoint Name | Description |
---|---|
addTaxForBasket | Enables external taxation for the specified basket |
addTaxForBasketItem | Add tax items in external tax mode |
getTaxesFromBasket | Retrieves taxes for specified basket |
Shopper Orders API
- New endpoints
Endpoint Name | Description |
---|---|
getTaxesFromOrder | Retrieves external taxes for the specified order |
- Fixed default cache issue when the HTTP response is large
- Einstein APIs have been removed from the SDK.
- Exposed logger configuration to user
import { sdkLogger } from "@commerce-sdk"
# To set log level
sdkLogger.setLevel(sdkLogger.levels.INFO);
- User-agent now defaults to
commerce-sdk@${VERSION}
- Retry settings has been exposed. README.md has more details. Example:
productClient = new Product({
retrySettings: {
// This means 3 total calls are made
retries: 2,
// Max wait between retries
maxTimeout: 200,
// Min wait between retries
minTimeout: 100
}
}
- Exchange connector has been removed from the commerce-sdk repository
- Method prototype documentation has been improved
Customer API
-
BREAKING: Removed endpoint method changes
Removed:
- getCustomerList
Product API
-
BREAKING: Endpoint method name changes
Changed:
Existing Method Name New Method Name deleteVariationGroupForMaster unassignVariationGroupFromMasterProduct updateVariationGroupInMasterProduct updateVariationGroupForMasterProduct assignVariationGroupForMasterProduct assignVariationGroupToMasterProduct deleteVariationForMaster unassignVariationFromMasterProduct updateVariationsInMasterProduct updateVariationForMasterProduct createVariationForMasterProduct assignVariationForMasterProduct
Shopper Customer API
-
BREAKING: Removed endpoint method changes
Removed:
- getCustomerAddresses
- getCustomerPaymentInstruments
- getCustomerProductListItems
Changed:
Existing Method Name New Method Name postResetPasswordToken getResetPasswordToken
- SDK does not set TTL for cached assets based on the HTTP headers
- Added logging capability
- Exchange Connector is deprecated on commerce-sdk in favor of the raml-toolkit
- Examples of client instantiations have been added to APICLIENTS.md
- Added support for Redis cache Example:
import { CacheManagerRedis } from "@commerce-apps/core"
const cacheManager = new CacheManagerRedis({ connection: "redis://localhost:6379" });
const config = {
cacheManager: cacheManager,
parameters: {
...
}
}
Product API
- BREAKING: Endpoint method name changes
Existing Method Name | New Method Name |
---|---|
deleteVariationGroupForMaster | unassignVariationGroupFromMasterProduct |
updateVariationGroupInMasterProduct | updateVariationGroupForMasterProduct |
assignVariationGroupForMasterProduct | assignVariationGroupToMasterProduct |
deleteVariationForMaster | unassignVariationFromMasterProduct |
updateVariationsInMasterProduct | updateVariationForMasterProduct |
createVariationForMasterProduct | assignVariationForMasterProduct |
- Request body of the endpoints now have data types
Example:
updateOrder( options: { parameters?: { organizationId?: string orderNo: string siteId?: string }, headers?: { [key: string]: string }, body: OrderUpdateRequestT } ): Promise<void>;
- ShopperToken now contains customer info from auth response
- Potentially breaking if you are currently instantiating a ShopperToken yourself
-
SDK now returns the cached asset on HTTP 304 response
-
SDK now closes the network connection by default
- It can be kept open by passing a Connection header set to keep-alive
-
Parameters in API methods now have specific data types
Example:
productSearch( options?: { parameters?: { organizationId?: string siteId?: string q?: string refine?: Array<string> sort?: string currency?: string locale?: string offset?: number limit?: number }, headers?: { [key: string]: string } } ): Promise<ProductSearchResultT>;
- VERSION.md has been renamed to APICLIENTS.md
- APICLIENTS.md now links to developer.commercecloud.com
CDN Zones/CDN API
-
BREAKING: API client
CdnApi
has been renamed toCdnZones
-
BREAKING: Endpoint method name changes
Existing Method Name | New Method Name |
---|---|
getZoneInfo | getZonesInfo |
updateWafGroupById | updateWafGroup |
updateWafRuleById | updateWafRule |
updateFirewallRuleById | updateFirewallRule |
- BREAKING: helpers.getAuthToken method is replaced by helpers.getShopperToken
- helpers.getShopperToken supports Client Configuration. Refer to [Sample Code](./README.md#Sample Code)
- BREAKING: API client MUST be instantiated using API name, e.g.
new Product.ShopperProduct(clientConfig)
- BREAKING: Raw response option has been moved out of the options
- Each endpoint now has overloaded method to return raw response
- Unrestricted type definitions now accepts additonal properties
- Refer to this article to learn about additional properties
Checkout/ShopperBaskets
- BREAKING: Endpoint method name changes
Existing Method Name | New Method Name |
---|---|
postBaskets | createBasket |
deleteBasketsById | deleteBasket |
getBasketsById | getBasket |
patchBasketsById | updateBasket |
putBasketsByIdBillingAddress | updateBillingAddressForBasket |
postBasketsByIdCoupons | addCouponToBasket |
deleteBasketsByIdCouponsById | removeCouponFromBasket |
putBasketsByIdCustomer | updateCustomerForBasket |
postBasketsByIdGiftCertificateItems | addGiftCertificateItemToBasket |
deleteBasketsByIdGiftCertificateItemsById | removeGiftCertificateItemFromBasket |
postBasketsByIdItems | addItemToBasket |
deleteBasketsByIdItemsById | removeItemFromBasket |
patchBasketsByIdItemsById | updateItemInBasket |
postBasketsByIdPaymentInstruments | addPaymentInstrumentToBasket |
deleteBasketsByIdPaymentInstrumentsById | removePaymentInstrumentFromBasket |
getBasketsByIdPaymentMethods | getPaymentMethodsForBasket |
postBasketsByIdShipments | createShipmentForBasket |
deleteBasketsByIdShipmentsById | removeShipmentFromBasket |
patchBasketsByIdShipmentsById | updateShipmentForBasket |
putBasketsByIdShipmentsByIdShippingAddress | updateShippingAddressForShipment |
putBasketsByIdShipmentsByIdShippingMethod | updateShippingMethodForShipment |
getBasketsByIdShipmentsByIdShippingMethods | getShippingMethodsForShipment |
Checkout/ShopperOrders
- BREAKING: Endpoint method name changes
Existing Method Name | New Method Name |
---|---|
postOrders | createOrder |
getOrdersById | getOrder |
postOrdersByIdPaymentInstruments | createPaymentInstrumentForOrder |
deleteOrdersByIdPaymentInstrumentsById | removePaymentInstrumentFromOrder |
patchOrdersByIdPaymentInstrumentsById | updatePaymentInstrumentForOrder |
getOrdersByIdPaymentMethods | getPaymentMethodsForOrder |
AI/EinsteinQuickStartGuide
- Recommender type has a new recommenderType attribute
- RecommendationsResponse type has a new recoUUID attribute
- ZoneResponse type has a new recoUUID attribute
- Added new Recommendation type
Pricing/Coupons
- getCoupon now has an optional query parameter of "expand" which accepts an array of related attributes
Search/ShopperSearch
- BREAKING refine_n query parameters have been removed from productSearch
- productSearch now has a query parameter of "refine" which accepts an array of refinements
Seller/ShopperStores
- Now uses updated standards so 'limit' is no longer a required parameter for paginated endpoints
- Max limit for paginated endpoints increased from 50 to 200
Initial public release