Further GraphQL improvements, clean up of JSON API
carstendietrich
released this
11 Feb 14:56
·
221 commits
to master
since this release
cart
-
Added desired time to DeliveryForm
-
InMemoryCartStorage: initialize lock and storage already in Inject() to avoid potential race conditions
-
API
- Add endpoints for deleting / updating a item in the cart (DELETE/PUT: /api/v1/cart/delivery/{deliveryCode}/item)
- Breaking: Affects v1 prefixed routes, switched to a more RESTful naming and use of the correct HTTP verbs to mark idempotent operations
-
old HTTP verb old route new HTTP verb new route POST /api/v1/cart/delivery/{deliveryCode}/additem POST /api/v1/cart/delivery/{deliveryCode}/item POST/PUT /api/v1/cart/applyvoucher POST /api/v1/cart/voucher POST/DELETE /api/v1/cart/removevoucher DELETE /api/v1/cart/voucher POST/PUT /api/v1/cart/applygiftcard POST /api/v1/cart/gift-card POST /api/v1/cart/applycombinedvouchergift POST /api/v1/cart/voucher-gift-card POST /api/v1/cart/removegiftcard DELETE /api/v1/cart/gift-card POST /api/v1/cart/billing PUT /api/v1/cart/billing POST /api/v1/cart/delivery/{deliveryCode}/deliveryinfo PUT /api/v1/cart/delivery/{deliveryCode} PUT /api/v1/cart/updatepaymentselection PUT /api/v1/cart/payment-selection
-
-
GraphQL
- Update schema and resolver regarding desired time
category
- Added cue config to module
- Update fake service documentation
- FakeService
- The category fake service was added which can return a project specific category tree and categories
- Added configuration options are
fakeService.enabled
andfakeService.testDataFolder
to enable the fake category service and to use json files as fake categories and tree. You can find examples in the documentation of the module
checkout
- Checkout Controller, update handling of aborted/canceled payments:
- Cancel the order / restore the cart before generating the new idempotency key of the payment selection
- Resolve goroutine leak in redis locker
- Breaking Change StartPlaceOrder behaviour to always start a new one.
- Breaking Change ClearPlaceOrderProcess behaviour to be always possible (no matter on which state)
- API
- Breaking: Affects v1 prefixed routes, switched to a more RESTful naming and use of the correct HTTP verbs to mark idempotent operations
-
old HTTP verb old route new HTTP verb new route POST /api/v1/checkout/placeorder/refreshblocking POST /api/v1/checkout/placeorder/refresh-blocking
-
- Breaking: Affects v1 prefixed routes, switched to a more RESTful naming and use of the correct HTTP verbs to mark idempotent operations
customer
- GraphQL
- Extend
Commerce_Customer_Address
with some useful fields - Extend
Commerce_Customer_Result
with a field for querying a specific address - Breaking:
Commerce_Customer_Address
: rename fieldStreetNr
toStreetNumber
,lastname
tolastName
andfirstname
tofirstName
Commerce_Customer_Result
:defaultShippingAddress
anddefaultBillingAddress
now can return null if there is no default addressCommerce_Customer_PersonData
: fieldbirthday
is now nullable and of typeDate
.
- Extend
payment
- Introduced wallet payment method
product
- Add support for product badges
- GraphQL
- Breaking New schema for products:
Commerce_Product
has been restructured and now has three subtypes:Commerce_Product_SimpleProduct
,Commerce_Product_ConfigurableProduct
,Commerce_Product_ActiveVariantProduct
- Product variant data, that has previously been buried in
Commerce_ConfigurableProduct.variants
, has been mapped to the toplevel of each product and can be accessed directly. - Both
ActiveVariantProduct
andConfigurableProduct
provide a new property namedvariationSelections
which exposes a list of possible attribute combinations for the configurable.
- Breaking New schema for products:
- FakeService
- The product fake search service is now able to return products with an active variant via
fake_configurable_with_active_variant
. Variation attributes have been changed to only includecolor
andsize
. - Added configuration option
jsonTestDataFolder
to use json files as fake products. You can find an example product under:test/integrationtest/projecttest/tests/graphql/testdata/products/json_simple.json
- Added fakservice documentation to the product module.
- The product fake search service is now able to return a specific product if the given query matches the marketplace code / name of the json file of the product
- The product fake search service returns no products if it is queried with
no-results
- The product fake search service is now able to return products with an active variant via
- Expose
VariantVariationAttributesSorting
ondomain.ConfigurableProductWithActiveVariant
- Breaking: Update stock handling: Remove magic alwaysInStock product attribute. Just Rely BasicProductData.StockLevel field instead.
sourcing
- Breaking
- Optional pointer
DeliveryInfo
added as parameter toStockProvider.GetStock
- Optional pointer
docs
- Embed swagger.json via go-bindata, so it can be used from the outside