ordereazi / commerce-sdk
Build a fully custom headless storefront - your own web app, mobile app, or POS - against a single OE Commerce store. Every endpoint below is namespaced under `/api/v1/store/...`. Building admin/back-office tooling instead? See [/docs/admin](/docs/admin). New her
Requires
- php: ^8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Build a fully custom headless storefront - your own web app, mobile app, or POS - against a
single OE Commerce store. Every endpoint below is namespaced under `/api/v1/store/...`. Building
admin/back-office tooling instead? See [/docs/admin](/docs/admin).
New here? [/guides/store](/guides/store) walks through getting a key, the anonymous cart
session, and calling your first endpoints step by step - this page is the field-level reference
to come back to afterward.
## Getting Started
1. Click the **Authorize** button at the top of this page.
2. Provide credentials:
- **X-Commerce-Key** (always required) - your store's Store Access Key from Backoffice >
Settings > Application APIs. `pk_store_...` (publishable) is safe for browser/mobile code;
`sk_store_...` (secret) is server-to-server only and is rejected outright if a browser
Origin header is present.
- **Bearer** (only for endpoints acting on a specific customer - Account, Orders, Wishlists,
etc.) - the token from **Auth > register** or **Auth > login**.
Once authorized, you can explore and test all available endpoints directly from this interface.
## Anonymous Carts
A guest cart is tracked by an `X-Session-Ref` header, not a cookie - the server generates one on
your first request and echoes it back on every response after. Keep sending back whatever value
you last received. Logging in carries that same cart forward onto the customer's account
automatically, with no separate merge step.
## Errors
Failures use RFC 9457 Problem Details (`application/problem+json`) with a stable `code` field
for programmatic handling, e.g. `store_key_invalid`, `store_key_revoked`, `store_key_scope_denied`,
`rate_limited`. A rejected *business* action (e.g. adding fewer than a product's minimum order
quantity to the cart) instead comes back as HTTP 200 with `\"success\": false` and a human-readable
`message` - always check `success` in the body, not just the HTTP status code.
## Rate Limits
Requests are limited per Store Access Key (200/minute). The credential-stuffing surface
(register/login/forgot-password/reset-password) is limited more tightly per caller IP (10 per 5
minutes). A 429 response includes a `Retry-After` header.
Installation & Usage
Requirements
PHP 8.1 and later.
Composer
To install the bindings via Composer, add the following to composer.json:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git"
}
],
"require": {
"GIT_USER_ID/GIT_REPO_ID": "*@dev"
}
}
Then run composer install
Manual Installation
Download the files and include autoload.php:
<?php require_once('/path/to/ordereazi-commerce-sdk/vendor/autoload.php');
Getting Started
Please follow the installation procedure and then run the following:
<?php require_once(__DIR__ . '/vendor/autoload.php'); // Configure API key authorization: X-Commerce-Key $config = OrderEaziCommerceApi\Configuration::getDefaultConfiguration()->setApiKey('X-Commerce-Key', 'YOUR_API_KEY'); // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed // $config = OrderEaziCommerceApi\Configuration::getDefaultConfiguration()->setApiKeyPrefix('X-Commerce-Key', 'Bearer'); // Configure Bearer (JWT) authorization: Bearer $config = OrderEaziCommerceApi\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN'); $apiInstance = new OrderEaziCommerceApi\Api\AccountApi( // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`. // This is optional, `GuzzleHttp\Client` will be used as default. new GuzzleHttp\Client(), $config ); $change_password_request = new \OrderEaziCommerceApi\Model\ChangePasswordRequest(); // \OrderEaziCommerceApi\Model\ChangePasswordRequest try { $result = $apiInstance->profileChangePasswordApi($change_password_request); print_r($result); } catch (Exception $e) { echo 'Exception when calling AccountApi->profileChangePasswordApi: ', $e->getMessage(), PHP_EOL; }
API Endpoints
All URIs are relative to http://commerce-api.ordereazi.com
| Class | Method | HTTP request | Description |
|---|---|---|---|
| AccountApi | profileChangePasswordApi | POST /api/v1/store/profile/change-password | Changes the current customer's password given their current one. Reuses the exact hashing scheme ResetPasswordService already applies (salt + single-pass SHA-256, base64) rather than inventing new crypto, and the same password-policy checks (min length/lower/upper/number/special) it enforces. |
| AccountApi | profileDeleteProfileApi | DELETE /api/v1/store/profile | Deletes (obfuscates) the current customer's profile. Blocked with warnings if the account is corporate or still holds wallet funds - see IDeleteUserService. |
| AccountApi | profileGetProfileApi | GET /api/v1/store/profile | Returns the current customer's profile. |
| AccountApi | profileUpdateProfileApi | PATCH /api/v1/store/profile | Updates the current customer's profile. Only fields present in the request are changed. |
| AccountAddressesApi | accountAddressesCreateAddressApi | POST /api/v1/store/account/addresses | Saves a new address to the current customer's address book. |
| AccountAddressesApi | accountAddressesDeleteAddressApi | DELETE /api/v1/store/account/addresses/{id} | Removes a saved address (soft delete, matching how the address book already treats removal). |
| AccountAddressesApi | accountAddressesGetAddressesApi | GET /api/v1/store/account/addresses | Lists the current customer's saved addresses. |
| AccountAddressesApi | accountAddressesUpdateAddressApi | PATCH /api/v1/store/account/addresses/{id} | Updates a saved address. Only fields present in the request are changed. |
| AccountCouponsApi | accountListCouponsApi | GET /api/v1/store/account/coupons | Lists the customer's coupons. |
| AccountGiftVouchersApi | accountListGiftVouchersApi | GET /api/v1/store/account/gift-vouchers | Lists the customer's gift vouchers. |
| AccountMembersB2BApi | membersAcceptMembershipRequestApi | POST /api/v1/store/account/members/membership-requests/{requestId}/accept | Accepts a pending membership request (joining a corporate account as a member). |
| AccountMembersB2BApi | membersCancelInvitationApi | POST /api/v1/store/account/members/invitations/{invitationId}/cancel | Cancels a pending invitation belonging to the current account. |
| AccountMembersB2BApi | membersDeclineMembershipRequestApi | POST /api/v1/store/account/members/membership-requests/{requestId}/decline | Declines a pending membership request. |
| AccountMembersB2BApi | membersDeleteMemberApi | DELETE /api/v1/store/account/members/{personId} | Removes a member from this corporate account. |
| AccountMembersB2BApi | membersGetMembersApi | GET /api/v1/store/account/members | Lists the current account's members, pending invitations, and pending membership requests. |
| AccountMembersB2BApi | membersGetSwitchableAccountsApi | GET /api/v1/store/account/members/switchable-accounts | Lists the accounts the current login can switch into. |
| AccountMembersB2BApi | membersInviteMembersApi | POST /api/v1/store/account/members/invitations | Invites one or more emails to join this corporate account. |
| AccountMembersB2BApi | membersResendInvitationApi | POST /api/v1/store/account/members/invitations/{invitationId}/resend | Resends a pending invitation's email, belonging to the current account. |
| AccountMembersB2BApi | membersSwitchAccountApi | POST /api/v1/store/account/members/switch/{accountId} | Switches the logged-in customer's active account. Unlike StoreApp's cookie/session model (which re-reads the active account server-side on every request), a JWT is immutable once issued - so this both switches the server-side session AND re-mints the access token, since that's the only place the client's AccountId is actually asserted. |
| AccountMembersB2BApi | membersUpdateMemberApi | PATCH /api/v1/store/account/members/{personId} | Updates a member's role, budget, or approval settings. |
| AuthApi | authForgotPasswordApi | POST /api/v1/store/auth/forgot-password | Starts a password reset - always returns success regardless of whether the email is registered, so this endpoint can't be used to enumerate accounts. |
| AuthApi | authLoginApi | POST /api/v1/store/auth/login | Authenticates a customer and returns a JWT bearer token carrying their store_id/store_ref. |
| AuthApi | authLogoutApi | POST /api/v1/store/auth/logout | Logs out the current customer. Access-token invalidation is still client-side (drop the token) - there is no server-side access-token blacklist. Pass RefreshToken to also revoke its rotation family, so it (and any token already issued from it) can't be used to get a new access token later. |
| AuthApi | authRefreshTokenApi | POST /api/v1/store/auth/refresh-token | Exchanges a refresh token for a new access token, without requiring the (possibly already expired) access token itself - the whole point of a refresh token is to work after the access token has expired. Rotation + reuse detection: every successful refresh revokes the presented token and issues a new one in the same family; presenting a token that's already been used (already revoked) is treated as theft and revokes the entire family, forcing a full re-login. |
| AuthApi | authRegisterApi | POST /api/v1/store/auth/register | Registers a new customer account and, unless merchant approval is required, logs them in. |
| AuthApi | authResetPasswordApi | POST /api/v1/store/auth/reset-password | Completes a password reset using the hash issued by forgot-password. |
| CartApi | cartAddCustomItemApi | POST /api/v1/store/cart/items/custom | Adds a one-off custom (non-catalog) line item to the cart. |
| CartApi | cartAddItemApi | POST /api/v1/store/cart/items | Adds a catalog product (by ProductId or Sku) to the cart. |
| CartApi | cartAddNoteApi | POST /api/v1/store/cart/notes | Attaches a note to the cart. |
| CartApi | cartAddPromoCodeApi | POST /api/v1/store/cart/promo-codes | Applies a promo code to the cart. |
| CartApi | cartAddSaveForLaterItemApi | POST /api/v1/store/cart/save-for-later/items | Moves a product to the save-for-later hold list. |
| CartApi | cartClearCartApi | DELETE /api/v1/store/cart | Clears the entire cart, releasing any save-for-later lock. |
| CartApi | cartClearSaveForLaterItemsApi | DELETE /api/v1/store/cart/save-for-later | Clears the entire save-for-later list. |
| CartApi | cartGetCartApi | GET /api/v1/store/cart | Gets the current cart. |
| CartApi | cartGetSaveForLaterItemsApi | GET /api/v1/store/cart/save-for-later | Lists items on hold ("saved for later" - a lightweight, non-shareable list, distinct from Wishlist/GiftRegistry). Returns bare ProductId/Qty pairs - enrich with the catalog product endpoints (e.g. GET api/store/products/{id}) for display, same as the cart items themselves. |
| CartApi | cartGetSaveForLaterMessagingApi | GET /api/v1/store/cart/save-for-later/messaging | UI messaging flags (item count, free-shipping/expiry banners) for the save-for-later list. |
| CartApi | cartMoveItemToWishlistApi | POST /api/v1/store/cart/items/{id}/move-to-wishlist | Moves some or all of a cart line's quantity to the customer's Wishlist (a saved, shareable registry - distinct from save-for-later above). Requires login. Defaults to the customer's first/default wishlist, creating "My Wishlist" if they have none. |
| CartApi | cartRemoveItemApi | DELETE /api/v1/store/cart/items/{id} | Removes a line from the cart. |
| CartApi | cartRemoveNoteApi | DELETE /api/v1/store/cart/notes/{id} | Removes a note from the cart. |
| CartApi | cartRemovePromoCodeApi | DELETE /api/v1/store/cart/promo-codes/{code} | Removes a promo code from the cart. |
| CartApi | cartRemoveSaveForLaterItemApi | DELETE /api/v1/store/cart/save-for-later/items/{productId} | Removes a single item from the save-for-later list. |
| CartApi | cartUpdateItemApi | PATCH /api/v1/store/cart/items/{id} | Updates the quantity of an existing cart line. |
| CartApi | cartValidateCartApi | GET /api/v1/store/cart/validate | Validates the cart (stock, pricing, policy issues) without mutating it. |
| CatalogApi | catalogGetCategoriesApi | GET /api/v1/store/catalog/categories | The full category tree - only categories with products (directly or via a descendant) are included, mirroring StoreApp's own category listing. |
| CatalogApi | catalogGetCategoryApi | GET /api/v1/store/catalog/categories/{id} | A single category's detail, including its immediate subtree - same CategoryModel shape as GetCategories (not the heavier Admin-oriented CategoryGet, which nests an unpaginated product list, sitemap entries, and admin metadata), so a category looked up individually looks identical to one found by walking the tree. |
| CatalogApi | catalogGetMenuApi | GET /api/v1/store/catalog/menu/{type} | The CMS-managed nav menu - "main" or "footer". |
| CatalogBrandsApi | brandsGetBrandApi | GET /api/v1/store/brands/{id} | A single brand/manufacturer's detail - same shape as the list. |
| CatalogBrandsApi | brandsGetBrandsApi | GET /api/v1/store/brands | Lists brands/manufacturers visible in this store's product filters, paged. |
| CatalogProductListsApi | productListsCompareApi | POST /api/v1/store/products/compare | Hydrates a client-supplied list of product ids into full comparison-grid cards - for a "compare products" page. The frontend owns tracking which ids are being compared (e.g. in local storage); this just resolves ids to display data. |
| CatalogProductListsApi | productListsRecentlyViewedApi | POST /api/v1/store/products/recently-viewed | Hydrates a client-supplied list of product ids into full display cards - for a "recently viewed" rail. The frontend owns tracking which ids the customer has viewed (e.g. in local storage); this just resolves ids to display data. |
| CatalogProductListsApi | productListsTrendingApi | POST /api/v1/store/products/trending | Hydrates a client-supplied list of product ids into full display cards - for a "trending now" rail. Which ids count as trending is decided by the caller (e.g. a merchant-curated list, or data from another source), not tracked server-side. |
| CatalogProductsApi | productGetByIdApi | GET /api/v1/store/products/{id} | Gets a single product's full detail by its id. |
| CatalogProductsApi | productGetBySkuApi | GET /api/v1/store/products/by-sku/{sku} | Gets a single product's full detail by its SKU - same response shape as GetById. |
| CatalogProductsApi | productGetPricingTiersApi | GET /api/v1/store/products/{id}/pricing-tiers | Gets a product's quantity-break pricing table (e.g. "10-49 units at R45.00 each"), if it has one - empty Tiers means the product has no bulk/tiered pricing configured. Resolved against the caller's own pricelist (same account/session pricing already used for GetById/GetBySku), so a B2B account with a special pricelist sees its own tier prices, not the store default. |
| CheckoutApi | checkoutAddGiftCardApi | POST /api/v1/store/checkout/gift-cards | Redeems a gift card against the cart. Uses the same voucher engine as promo codes (see CartController), just a different VoucherType. |
| CheckoutApi | checkoutApplyWalletApi | POST /api/v1/store/checkout/wallet | Applies wallet points to the cart as payment. |
| CheckoutApi | checkoutCreateOrderApi | POST /api/v1/store/checkout/orders | The cart-to-order handoff - creates the order from the current cart. Storefront never collects card details itself: on success, RequiresPayment/RedirectUrl tell the frontend whether anything further is needed and, if so, the URL to send the browser to - that provider's own hosted payment page, whether that's Stripe Checkout or one of the store's other configured gateways. Never an embedded card form. This moves money (or at least commits stock and creates an order) - mobile networks retry, so an optional Idempotency-Key header is honoured (see IdempotentAttribute): the same key with the same request replays the original response instead of creating a second order; the same key with a different request is rejected (422) rather than silently creating a different order under a key the client thinks it already used. |
| CheckoutApi | checkoutGetCollectionAddressesApi | GET /api/v1/store/checkout/collection-addresses | Lists the store's click-and-collect points valid for the current cart. |
| CheckoutApi | checkoutGetDeliveryAddressesApi | GET /api/v1/store/checkout/addresses/delivery | Lists the logged-in customer's saved delivery addresses. |
| CheckoutApi | checkoutGetPaymentOptionsApi | GET /api/v1/store/checkout/payment-options | Lists the payment methods available for the current cart. |
| CheckoutApi | checkoutGetShippingOptionsApi | GET /api/v1/store/checkout/shipping-options | Whether shipping is available to the cart's current delivery address, and what's configured. |
| CheckoutApi | checkoutGetShippingQuoteApi | POST /api/v1/store/checkout/shipping-quote | Gets a live shipping quote for a specific provider against the cart's delivery address. |
| CheckoutApi | checkoutRemoveGiftCardApi | DELETE /api/v1/store/checkout/gift-cards/{code} | Removes a redeemed gift card from the cart. |
| CheckoutApi | checkoutRemoveWalletApi | DELETE /api/v1/store/checkout/wallet | Removes wallet points applied to the cart. |
| CheckoutApi | checkoutSetCollectionAddressApi | POST /api/v1/store/checkout/collection-address | Sets a click-and-collect point as the cart's collection address. |
| CheckoutApi | checkoutSetContactDetailsApi | POST /api/v1/store/checkout/contact-details | Sets contact details on the cart (Email required; Name/Phone/Instructions/CustomerTax/ PurchaseOrderNumber/NewsletterSubscribe recognised, anything else stored as a custom key-value). |
| CheckoutApi | checkoutSetDeliveryAddressApi | POST /api/v1/store/checkout/delivery-address | Sets the cart's delivery address, from a saved AddressId or guest address fields. When a logged-in customer supplies guest fields (no AddressId) rather than picking a saved one, the address is also persisted to their address book first - matching StoreApp's add-delivery-address behaviour - so it shows up in GetDeliveryAddresses on a future order instead of only ever living on this one cart. |
| CheckoutApi | checkoutSetPaymentOptionApi | POST /api/v1/store/checkout/payment-option | Selects a payment method for the cart. |
| CheckoutApi | checkoutSetShippingOptionApi | POST /api/v1/store/checkout/shipping-option | Selects a shipping method/quote for the cart. |
| ConfigurationApi | storeGetConfigurationApi | GET /api/v1/store/configuration | Gets the store's public configuration. |
| EnquiriesApi | enquiryCreateEnquiryApi | POST /api/v1/store/enquiries | Creates an enquiry (RFQ) from the current cart - the cart's lines/quote become the enquiry's, the cart itself is emptied from the session, and the customer + merchant are notified. Unlike checkout, this never takes payment: PaymentStatus is set to NotRequired and the enquiry is immediately Complete. |
| EnquiriesApi | enquiryGetEnquiriesApi | GET /api/v1/store/enquiries | Lists the current customer's enquiries, most recent first. |
| EnquiriesApi | enquiryGetEnquiryApi | GET /api/v1/store/enquiries/{enquiryId} | Gets a single enquiry's full detail. 404s (rather than 403s) one that exists but isn't the customer's. |
| GiftRegistriesApi | giftRegistryAddItemApi | POST /api/v1/store/gift-registries/{id}/items | Adds a product to a gift registry. |
| GiftRegistriesApi | giftRegistryCreateGiftRegistryApi | POST /api/v1/store/gift-registries | Creates a new gift registry. |
| GiftRegistriesApi | giftRegistryDeleteGiftRegistryApi | DELETE /api/v1/store/gift-registries/{id} | Deletes a gift registry entirely. |
| GiftRegistriesApi | giftRegistryGetGiftRegistriesApi | GET /api/v1/store/gift-registries | Lists the current customer's gift registries. |
| GiftRegistriesApi | giftRegistryGetGiftRegistryApi | GET /api/v1/store/gift-registries/{documentRef} | Gets a single gift registry's full detail by its reference - anonymous, since anyone with the link should be able to view (and buy from) it. |
| GiftRegistriesApi | giftRegistryMarkItemPurchaseApi | POST /api/v1/store/gift-registries/{id}/items/{lineId}/purchase | Records that a gift-giver is buying (or has bought) an item off someone else's registry. Deliberately not owner-gated - only login is required, not that the caller owns this registry - since the whole point of a gift registry is that other people buy from it. |
| GiftRegistriesApi | giftRegistryRemoveItemApi | DELETE /api/v1/store/gift-registries/{id}/items/{lineId} | Removes an item from a gift registry. |
| GiftRegistriesApi | giftRegistryUpdateGiftRegistryApi | PATCH /api/v1/store/gift-registries/{id} | Renames a gift registry or updates its occasion. Only fields present in the request are changed. |
| GiftRegistriesApi | giftRegistryUpdateItemQtyApi | PATCH /api/v1/store/gift-registries/{id}/items/{lineId} | Updates an item's desired quantity on a gift registry. |
| NewsletterApi | newsletterSubscribeApi | POST /api/v1/store/newsletter/subscribe | Subscribes an email address to the store's newsletter. |
| NewsletterApi | newsletterUnsubscribeApi | GET /api/v1/store/newsletter/unsubscribe/{email}/{token} | Unsubscribes an email address using the signed token from an unsubscribe link (e.g. the one included in a newsletter email) - not something a frontend calls directly with arbitrary input, since the token is only ever valid when issued by the store itself. |
| OrdersApi | ordersCancelOrderApi | POST /api/v1/store/orders/{orderId}/cancel | Cancels an order. Blocked (409) if it already has a payment recorded, has expired, or is already Complete/Cancelled - ICancelOrderService.Cancel itself does not check any of that (it will happily flip a paid order to Cancelled with no refund), so this mirrors the MayCancel rule StoreApp's own order view enforces. |
| OrdersApi | ordersGetOrderApi | GET /api/v1/store/orders/{orderId} | Gets a single order's full detail. 404s (rather than 403s) an order that exists but isn't the customer's, so this can't be used to enumerate order IDs. |
| OrdersApi | ordersGetOrderStatusApi | GET /api/v1/store/orders/{orderId}/status | A lightweight status-only view of an order - for a client that just wants to poll order progress without pulling the full detail (line items, addresses, etc.) on every check. |
| OrdersApi | ordersGetOrdersApi | GET /api/v1/store/orders | Lists the current customer's orders, most recent first by default. |
| OrdersApi | ordersReorderApi | POST /api/v1/store/orders/{orderId}/reorder | Adds a past order's items back to the current cart. Omit Items to reorder everything at the original quantities. Bundle lines are skipped (not reconstructible generically); Batch lines are reconstructed by IReOrderService itself. |
| PaymentsApi | paymentGetStatusApi | GET /api/v1/store/payments/{orderRef}/status | Polls an order's current payment/fulfillment status - for the frontend's own success page to confirm payment landed, particularly for redirect-based gateways with no synchronous confirmation. Not a substitute for the webhook, which is what actually marks the order paid. |
| PaymentsApi | paymentStripeWebhookApi | POST /api/v1/store/payments/stripe/webhook | Stripe webhook - the source of truth for "paid". Configure this store's Stripe webhook URL as .../api/store/payments/stripe/webhook?key=<this store's Store Access Key> (Stripe can't be configured to send our normal X-Commerce-Key header, so the key travels in the URL instead - see StoreApiKeyMiddleware). Verifies the signature before trusting anything in the payload. |
| SearchApi | searchClearSearchHistoryApi | DELETE /api/v1/store/search/history | Clears the current customer's (or guest session's) search history. |
| SearchApi | searchGetProductsApi | GET /api/v1/store/search/products | Faceted/filtered product listing - the category/search results page. Falls back to a plain database keyword query (no facets - those need Solr's index) when the store has no Solr instance configured, or the configured one is unreachable, instead of surfacing an opaque 500. Callers can detect this via the SearchDegraded flag on the response. |
| SearchApi | searchGetSearchHistoryApi | GET /api/v1/store/search/history | Recent search terms for the current customer (or guest session), most recent first. |
| SearchApi | searchGetSuggestionsApi | GET /api/v1/store/search/suggestions | Lightweight search-box suggestions (term + weight), no product/category hydration. |
| SearchApi | searchPredictiveSearchApi | GET /api/v1/store/search/predictive-search | Predictive search - as-you-type results combining products, categories, and manufacturers. |
| StoreLocationsApi | branchesGetBranchesApi | GET /api/v1/store/branches | Lists the store's physical branches/locations, each with its current open/closed status and full weekly operating hours - for a store-locator page or click-and-collect point picker. Pass a branch's StoreBranchId back as the X-Branch-Id header on subsequent requests to scope stock and (at checkout) stock reservation to that branch. |
| WalletApi | walletGetBalanceApi | GET /api/v1/store/wallet | Gets the current customer's wallet balance - either the store's core wallet, or a third-party wallet extension's balance when one is active for this store (see IWalletProviderService.HasThirdPartyWallet) - and redeemable via Checkout's wallet actions. |
| WishlistsApi | wishlistAddItemApi | POST /api/v1/store/wishlists/{id}/items | Adds a product to a wishlist. |
| WishlistsApi | wishlistCreateWishlistApi | POST /api/v1/store/wishlists | Creates a new named wishlist. |
| WishlistsApi | wishlistDeleteWishlistApi | DELETE /api/v1/store/wishlists/{id} | Deletes a wishlist entirely. |
| WishlistsApi | wishlistGetWishlistApi | GET /api/v1/store/wishlists/{documentRef} | Gets a single wishlist's full detail by its reference - this is the "share" URL: anonymous, keyed only by an unguessable reference, matching StoreApp's own share mechanism (no separate token). |
| WishlistsApi | wishlistGetWishlistsApi | GET /api/v1/store/wishlists | Lists the current customer's wishlists. |
| WishlistsApi | wishlistRemoveItemApi | DELETE /api/v1/store/wishlists/{id}/items/{lineId} | Removes an item from a wishlist. |
| WishlistsApi | wishlistUpdateItemQtyApi | PATCH /api/v1/store/wishlists/{id}/items/{lineId} | Updates an item's quantity on a wishlist. |
| WishlistsApi | wishlistUpdateWishlistApi | PATCH /api/v1/store/wishlists/{id} | Renames a wishlist or updates its occasion. Only fields present in the request are changed. |
Models
- AccountBaseModel
- AddCartItemResponseModel
- AddGiftCardResponseModel
- AddGiftRegistryItemRequest
- AddPromoCodeResponseModel
- AddSaveForLaterItemResponseModel
- AddToCartRequest
- AddWishlistItemRequest
- AddressKeyValueModel
- AddressModel
- AddressViewModel
- ApplyWalletRequest
- ApplyWalletResponseModel
- BranchesResponseModel
- BrandMetadata
- BrandPicture
- BrandSeo
- BrandSitemap
- BrandSitemapCrud
- BrandStore
- CartDimensionModel
- CartFulfillmentRowModel
- CartFulfillmentSplitModel
- CartItemModel
- CartItemPhysicalPropertiesModel
- CartItemWarningModel
- CartMinimumAmountSettings
- CartModel
- CartNoteModel
- CartNoteRequest
- CartPictureModel
- CartValidationIssueModel
- CategoryModel
- ChangePasswordRequest
- ClearCartResponseModel
- CollectionAddressModel
- CountryModel
- CouponListModel
- CouponModel
- CreateAddressResponseModel
- CreateEnquiryRequest
- CreateGiftRegistryRequest
- CreateGiftRegistryResponseModel
- CreateOrderRequest
- CreateOrderResponseModel
- CreateWishlistRequest
- CreateWishlistResponseModel
- CustomCartItemRequest
- DeclineMembershipRequestRequest
- DeliveryAddressModel
- EnquiryItemModel
- EnquiryModel
- EnquiryNoteCrud
- FacetProductResponseModel
- FilterProductBadgeGroupModel
- FilterProductBadgeImage
- FilterProductBadgeModel
- FilterProductBadgeStyle
- FilterProductInventoryModel
- FilterProductModel
- FilterProductPictureModel
- FilterProductPriceModel
- FilterProductStockLocation
- ForgotPasswordRequest
- ForgotPasswordResponseModel
- GetCategoriesResponseModel
- GetOrderStatusResponseModel
- GetShippingOptionsQuoteModel
- GetSwitchableAccountsResponseModel
- GiftCardRequest
- GiftCardUseModel
- GiftRegistryDetailModel
- GiftRegistryItemModel
- GiftRegistryModel
- GiftVoucherListModel
- GiftVoucherModel
- GroupedHoursRow
- HolidayDisplayRow
- InviteMembersRequest
- InviteMembersResponseModel
- LoginRequest
- LoginResponse
- LogoutResponseModel
- ManufacturerFullModel
- MarkGiftRegistryItemRequest
- MemberInvitationModel
- MemberModel
- MembersModel
- MembershipRequestModel
- MenuItemModel
- MenuModel
- MoveToWishlistRequest
- OrderItemModel
- OrderModel
- PaymentModel
- PaymentOptionModel
- PaymentStatusResponseModel
- PersonModel
- PricingTiersResponseModel
- ProductAttributeModel
- ProductAttributeSetModel
- ProductBadgeGroupModel
- ProductBadgeImage
- ProductBadgeModel
- ProductBadgeStyle
- ProductCategoryModel
- ProductCategoryPictureModel
- ProductDocumentModel
- ProductIdsRequest
- ProductInventoryLocationDisplayModel
- ProductInventoryModel
- ProductLabelModel
- ProductManufacturerModel
- ProductManufacturerPictureModel
- ProductModel
- ProductPictureModel
- ProductPriceModel
- ProductPricingTier
- ProductSegmentModel
- ProductSegmentOptionModel
- ProductSegmentValueModel
- ProductShippingModel
- ProductsListResponseModel
- ProfileModel
- PromoCodeRequest
- RefreshTokenRequest
- RefreshTokenResponse
- RegisterRequest
- RemovePromoCodeResponseModel
- ReorderItem
- ReorderRequest
- ResetPasswordRequest
- ResetPasswordResponseModel
- SaveForLaterItemModel
- SaveForLaterItemRequest
- SaveForLaterMessagingState
- SetCollectionAddressModel
- SetCollectionAddressResponseModel
- SetContactDetailsResponseModel
- SetDeliveryAddressModel
- SetDeliveryAddressResponseModel
- SetPaymentOptionModel
- SetPaymentOptionResponseModel
- SetShippingOptionModel
- SetShippingOptionResponseModel
- ShippingMethodSettingsModel
- ShippingOptionModel
- ShippingProviderModel
- ShippingQuoteRequest
- ShippingQuoteResponse
- StoreBranchCurrentOperatingHours
- StoreBranchDisplayItem
- StoreBranchHolidayOverrideDisplay
- StoreBranchOperatingHourDisplay
- StoreConfigurationModel
- StoreCurrencyModel
- StoreIdentityModel
- StoreLocaleModel
- StorePermalinkModel
- StorePricingModel
- StoreProblemDetails
- SuccessResponseModel
- SwitchAccountResponseModel
- UpdateCartItemRequest
- UpdateGiftRegistryItemRequest
- UpdateGiftRegistryRequest
- UpdateMemberRequest
- UpdateProfileRequest
- UpdateWishlistItemRequest
- UpdateWishlistRequest
- UserInfo
- ValidateCartResponseModel
- WalletModel
- WalletTransactionModel
- WishlistDetailModel
- WishlistItemModel
- WishlistModel
Authorization
Authentication schemes defined for the API:
X-Commerce-Key
- Type: API key
- API key parameter name: X-Commerce-Key
- Location: HTTP header
Bearer
- Type: Bearer authentication (JWT)
Tests
To run the tests, use:
composer install vendor/bin/phpunit
Author
About this package
This PHP package is automatically generated by the OpenAPI Generator project:
- API version:
v1- Package version:
1.1.2 - Generator version:
7.17.0
- Package version:
- Build package:
org.openapitools.codegen.languages.PhpClientCodegen