Skip to main content

@acromedia/gesso-shopware

8.1.0

Minor Changes

  • 0d108e1: feat: checkout hook with order placement and payment redirect

    Implement the Shopware checkout against the Store API, satisfying the @acromedia/gesso-commerce useCheckout contract. Both checkout modes ship behind one hook, branching on the payment response at runtime:

    • placeOrder runs POST /store-api/checkout/order then POST /store-api/handle-payment (with orderId + finishUrl/errorUrl) and branches on the response redirectUrlnull is a sync/on-site method (invoice/COD) that goes straight to confirmation; a string is an async/off-site method (PayPal/card) that the hook redirects out to and that returns the shopper at finishUrl/errorUrl. redirectedCheckout is derived from the runtime response, never hard-assumed.
    • get composes the pre-placement order context from the active cart, enriched with the sales-channel's available payment and shipping methods.
    • Billing/shipping/payment selection is applied to the sales-channel context via PATCH /store-api/context; address creation and guest registration remain with the customer/auth hooks.
    • New config: shopwareCheckoutFinishUrl, shopwareCheckoutErrorUrl, and an onCheckoutRedirect navigator (defaults to window.location.assign).
    • Vitest specs with MSW fixtures covering order placement and both branches of the payment-handling step.
  • 0d108e1: shopware orders plugin

  • 0d108e1: feat: cart lifecycle hook and server getter

    Implement the full Shopware cart against the Store API (/store-api/checkout/cart and /checkout/cart/line-item):

    • useCart satisfying the @acromedia/gesso-commerce contract — get (create-on-read), add, update, and remove — wired through both the client hook and the SSR getCart getter.
    • Promotions are applied as Shopware promotion line items (add(code, qty, { type: 'promotion' })) and removed by line-item id; applied promotions are surfaced under cart.data.promotions.
    • A Shopware→Gesso cart normalizer producing items plus summary adjustments (quantity / subtotal / discount / total).
    • The rotating sw-context-token is preserved across mutations via the shared Store API client, so a guest cart survives subsequent reads and mutations.
    • Vitest specs with MSW fixtures covering the lifecycle (including promotions and context-token rotation), plus opt-in live-sandbox checks.
  • 0d108e1: GESSO-2428-feat: add Shopware 6 commerce plugin

    New @acromedia/gesso-shopware package implementing the @acromedia/gesso-commerce hook surface (useCatalog, useProduct, useProductSearch, useFacet, useCart, useCustomer, useCheckout, useOrders, useAuth) on top of Shopware's REST Store API (/store-api).

    • The read paths — useCatalog, useProduct, useProductSearch, useFacet — are implemented. The write paths (useCart, useCustomer, useCheckout, useOrders, useAuth) are present as typed stubs and land in follow-up tickets.
    • Talks to the Store API through the official @shopware/api-client SDK (pinned), wrapped in a thin StoreApiClient — mirroring how gesso-shopify wraps @shopify/graphql-client. Hooks call its fully-typed invoke(...), and request/response types come from the SDK's bundled store-api-types.
    • Reads connection settings from gesso.config.json (generated from .env via the plugin CLI): requires shopwareStorefrontUrl and the public sales-channel sw-access-key; optional shopwareCurrencyCode, shopwareLanguageId, shopwareCurrencyId, and shopwareRootCategoryId.
    • Captures the rotated sw-context-token via the SDK's onContextChanged hook and persists it through a pluggable ContextTokenStore — a cookie in the browser, a no-op (anonymous) on the server, and injectable for request-scoped SSR.
    • Ships as an ESM-only package built with tsc; unit-tested with Vitest (Store API mocked with MSW).
  • 0d108e1: feat: catalog, product, search and faceted navigation

    Implement the storefront catalog surface for the Shopware plugin:

    • useProduct / useCatalog / useProductSearch / useFacet hooks satisfying the @acromedia/gesso-commerce contracts, surfaced through the SSR getters (getProduct / getCatalog / getProductSearch).
    • A Criteria translator mapping Gesso keyword/sort/page/facet/price inputs onto Shopware listing criteria (order / p / limit / manufacturer / properties / min-price / max-price), adding facet filtering and cursor-based pagination to search and category listings.
    • A Shopware→Gesso normalizer for products, categories and listing aggregations.
    • Vitest specs with MSW fixtures, plus opt-in live-sandbox smoke tests.

Patch Changes

  • Updated dependencies [cd5a6d5]
    • @acromedia/gesso-core@8.2.1