Repository navigation
v5.0.0-beta.1
Pre-releaseMinor Changes
-
#435
7a33c6bThanks @robertmoelker! - Support custom fields on addresses.BaseAddressis polymorphic between read and write, so address drafts can carry acustomfield holding aCustomFieldsDraft. Drafts and update actions carrying such an address (customer, business unit, cart, order and channel) now resolve it toCustomFieldsagainst the referenced type, returning a 400ReferencedResourceNotFoundwhen the type does not exist. In strict mode the generated draft schemas accept and validatecustomon an address.Customer and business unit creation, and the
addAddresscustomer action, now go through the sharedcreateAddresshelper, which means the addresscountryfield is enforced there as well. -
#430
2e8ae39Thanks @mvantellingen! - PersistexpansionPaths,dependenciesandadditionalContextwhen creating
an API Extension.The Extension repository only copied
key,timeoutInMs,destinationand
triggersout of the draft, so the three fields added by the 2026-03-12 API
release were silently dropped on create.POST /{projectKey}/extensionswith
expansionPathsreturned an extension without them, which made it look like
the field was rejected. ThesetExpansionPaths,setDependenciesand
setAdditionalContextupdate actions were already implemented, so only the
create path was affected.dependenciesare now resolved through the storage layer like every other
resource identifier, so they can be given bykeyas well as byid(on both
create andsetDependencies, which previously assumedidwas set) and an
unknown dependency returns aReferencedResourceNotFounderror instead of a
reference withid: undefined.
Patch Changes
-
#433
74adf7cThanks @robertmoelker! - Update astro (docs) to v7.* for security reasons -
#432
756eb56Thanks @robertmoelker! - Enforce BusinessUnit key uniqueness within a project. Creating a business unit with a key that is already taken now returns a 400DuplicateFielderror on thekeyfield instead of silently storing a second unit under the same key. -
#432
756eb56Thanks @robertmoelker! -clear()now also resets the auth store. Tokens issued before aclear()used to stay valid and keep resolving to customers and anonymous sessions that no longer existed, leaking identity between tests. Tests that issue a token (for example throughcustomerSession) must do so after eachclear(). -
#434
cb56f14Thanks @robertmoelker! - Scope customer email uniqueness to the stores a customer is assigned to. The same email can now be used in different stores, matching commercetools behaviour. Customers created through an in-store endpoint are assigned to that store, and the in-store password flow only matches customers of that store.Implement the
addStore,removeStoreandsetStorescustomer update actions, which re-validate email uniqueness for any store scope the customer newly enters (including becoming a global customer again).Store resource identifiers are now validated by
keyas well as byid, so referencing a non-existent store in a draft returns a 400ReferencedResourceNotFounderror instead of silently passing through. This also fixesgetStoreKeyReference, which previously always failed forid-based references.In-store endpoints (
/{projectKey}/in-store/key={storeKey}/...) now return a 404ResourceNotFoundwhen the store in the path does not exist, matching commercetools.