GraphQL Enhancements & New auth module
·
356 commits
to master
since this release
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_simpleproduct, introducedfake_fixed_simple_without_discountsproduct
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,DeleteandDeleteAlltoErrNoCacheEntry
- 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
sumPaymentSelectionCartSplitValueAmountByMethodsto theCommerce_Cart_Summarywhich sums up cart split amounts of the payment selection by the provided methods. - Expose PaymentSelection.CartSplit() via GraphQL, add new types
Commerce_Cart_PaymentSelection_SplitandCommerce_Cart_PaymentSelection_SplitQualifier - Breaking: renamed the following GraphQL types
- type
Commerce_Cart_BillingAddressFormDatais nowCommerce_Cart_AddressForm - input
Commerce_BillingAddressFormInputis nowCommerce_Cart_AddressFormInput - type
Commerce_Chargeis nowCommerce_Price_Charge - type
Commerce_ChargeQualifieris nowCommerce_Price_ChargeQualifier - input
Commerce_ChargeQualifierInputis 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
GetIdtoGetIDindomain.Customerinterface - introduced new
CustomerIdentityServiceto retrieve authenticated customers byauth.Identity - Breaking: removed
CustomerServiceplease useCustomerIdentityService - GraphQL: Add new customer queries:
Commerce_Customer_Statusreturns the customer's login statusCommerce_Customerreturns 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
paginationmodule configuration. Usecommerce.paginationnamespace 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
dtopackage 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
oauthmodule to the newauthmodule, to keep w3cdatalayer working please configure the newauthmodule accordingly
order
- Breaking: removed interface
CustomerOrderServiceplease useCustomerIdentityOrderService - Update config path:
order.useFakeAdapterstocommerce.order.useFakeAdapter