This release mainly focuses on improving existing GraphQL queries/mutations, general maintenance, and the switch from the deprecated oauth module to the new auth implementation.
product
- Switch module config to CUE
- Extended product model with loyalty earnings
- Added Rest API route to get products
- GraphQL
- Added values field of Attribute to the schema
- exposed loyalty earnings
- Added facets to fake search service
- Expose unit of product variant attributes
- fake: add loyalty pricing for
fake_simple
product, introducedfake_fixed_simple_without_discounts
product
cart
- Breaking: Moved to new flamingo auth module, breaks several interfaces which previously relied on the OAuth module
- Breaking
- Cart item validation now requires the decorated cart to be passed to assure that validators don't rely on a cart from any other source (e.g. session)
- Session added as a parameter to interface method
MaxQuantityRestrictor.Restrict
- Session added as a parameter to
RestrictionService.RestrictQty
- Changed no cache entry found error for cartCache
Invalidate
,Delete
andDeleteAll
toErrNoCacheEntry
- Switch module config to CUE
- GraphQL
- Add new mutation to set / update one or multiple delivery addresses
Commerce_Cart_UpdateDeliveryAddresses
- Add new mutation to update the shipping options (carrier / method) of an existing delivery
Commerce_Cart_UpdateDeliveryShippingOptions
- Add new mutation to clean current users cart
Commerce_Cart_Clean
- Add new query to check if a product is restricted in terms of the allowed quantity
Commerce_Cart_QtyRestriction
- Add new field
sumPaymentSelectionCartSplitValueAmountByMethods
to theCommerce_Cart_Summary
which sums up cart split amounts of the payment selection by the provided methods. - Expose PaymentSelection.CartSplit() via GraphQL, add new types
Commerce_Cart_PaymentSelection_Split
andCommerce_Cart_PaymentSelection_SplitQualifier
- Breaking: renamed the following GraphQL types
- type
Commerce_Cart_BillingAddressFormData
is nowCommerce_Cart_AddressForm
- input
Commerce_BillingAddressFormInput
is nowCommerce_Cart_AddressFormInput
- type
Commerce_Charge
is nowCommerce_Price_Charge
- type
Commerce_ChargeQualifier
is nowCommerce_Price_ChargeQualifier
- input
Commerce_ChargeQualifierInput
is nowCommerce_Price_ChargeQualifierInput
- type
- Add new mutation to set / update one or multiple delivery addresses
- Adjusted log level for cache entry not found error when trying to delete the cached cart
customer
- Breaking: renamed
GetId
toGetID
indomain.Customer
interface - introduced new
CustomerIdentityService
to retrieve authenticated customers byauth.Identity
- Breaking: removed
CustomerService
please useCustomerIdentityService
- GraphQL: Add new customer queries:
Commerce_Customer_Status
returns the customer's login statusCommerce_Customer
returns the logged-in customer
checkout
- Deprecate Sourcing service port in checkout (activate if required with setting
commerce.checkout.activateDeprecatedSourcing
) - Make cart validation before place order optional with configuration
- State Machine
- Add additional metrics to monitor place order flow
- flamingo_commerce_checkout_placeorder_starts
- flamingo_commerce_checkout_placeorder_state_run_count
- flamingo_commerce_checkout_placeorder_state_failed_count
- Add a step to validate the payment selection if needed. The step provides a port to be implemented if needed.
- Add additional metrics to monitor place order flow
- Expose place order endpoints also via rest
- Checkout controller, update to the error handling:
- In case of a payment error, the checkout controller will now redirect to the checkout/review action instead of just rendering the matching template on the current route.
- Same applies in case of an error during place order, the checkout controller will now redirect to the checkout step.
- In both cases the error will be stored as a flash message in the session before redirecting, the target action will then receive it and pass it to the template view data.
search
- Switch module config to CUE
- Update
pagination
module configuration. Usecommerce.pagination
namespace for configuration now. - GraphQL
- Breaking simplified Commerce_Search_SortOption type
- Breaking use GraphQL specific search result type
- Added facets resolver
category
- GraphQL
- Breaking moved GraphQL
dto
package tocategorydto
- Breaking moved GraphQL
docs
- Add Swagger/OpenAPI 2.0 specification to project, using swaggo/swag
sourcing - Add a new "sourcing" module that can be used standalone. See sourcing/Readme.md for more details
w3cdatalayer
- Breaking: Switch from flamingo
oauth
module to the newauth
module, to keep w3cdatalayer working please configure the newauth
module accordingly
order
- Breaking: removed interface
CustomerOrderService
please useCustomerIdentityOrderService
- Update config path:
order.useFakeAdapters
tocommerce.order.useFakeAdapter