Support for fully discounted carts and GraphQL improvements
carstendietrich
released this
09 Apr 09:47
·
360 commits
to master
since this release
w3cdatalayer
- Fixed a bug that causes the datalayer to panic if it failed to build an absolute url
- Introduced a configuration option to choose between base64url and hex encoding for the hashed values
- Move config to commerce namespace, from
w3cDatalayer
tocommerce.w3cDatalayer
- Add legacy config mapping so old mappings can still be used
- Add cue based config to have config validation in place
checkout
- Controller
- Allow checkout for fully discounted carts without payment processing. Previously all checkouts needed a valid payment to continue.
In case there is nothing to pay this can be skipped.- Order ID will be reserved as soon as the user hits the checkout previously it was done before starting the payment
- Allow checkout for fully discounted carts without payment processing. Previously all checkouts needed a valid payment to continue.
- GraphQL
- Update place order process to also allow zero carts which don't need payment, this leads to a state flow that lacks the payment steps.
See module readme for further details.
- Update place order process to also allow zero carts which don't need payment, this leads to a state flow that lacks the payment steps.
- Update source service to support external location codes.
- Adds
ExternalLocationCode
to theSource
struct. - Update
SetSourcesForCartItems()
to use the newSourcingServiceDetail
functionality if the bound service implements the interface
- Adds
- Update
OrderService
to expose more metrics regarding the place order process:flamingo-commerce/checkout/orders/cart_validation_failed flamingo-commerce/checkout/orders/no_payment_selection flamingo-commerce/checkout/orders/payment_gateway_not_found flamingo-commerce/checkout/orders/payment_flow_status_error flamingo-commerce/checkout/orders/order_payment_from_flow_error flamingo-commerce/checkout/orders/payment_flow_status_failed_canceled flamingo-commerce/checkout/orders/payment_flow_status_aborted flamingo-commerce/checkout/orders/place_order_failed flamingo-commerce/checkout/orders/place_order_successful
cart
- inMemoryBehaviour: Allow custom logic for GiftCard / Voucher handling
- We introduced two new interfaces
GiftCardHandler
+VoucherHandler
- This enables users of the in-memory cart to add project specific gift card and voucher handling
- We introduced two new interfaces
- Fix
CreateInitialDeliveryIfNotPresent
so that cache gets updated now when an initial delivery is created - GraphQL: Add new cart validation query
Commerce_Cart_Validator
to check if cart contains valid items
price
- IsZero() now uses LikelyEqual() instead of Equal() to avoid issues occurring due to floating-point arithmetic
product
- product attributes:
- Added
AttributesByKey
domain method to filter attributes by key and exposed this method asgetAttributesByKey
in GraphQL - GraphQL: Exposing
codeLabel
property in theCommerce_ProductAttribute
type
- Added
payment
- Introduced error message for already used idempotency key