You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement Sylius Shop API Client into your app in just One Step!
Easy to configure API client for quick use
All API Plugin endpoints are supported!
Very simple way to add custom endpoints.
Well-Organized and scalable project.
All query params, paths and bodies are documented within the code using jsDoc.
Instalation
npm i sylius-shop-api-client- OR -yarn add sylius-shop-api-client
Usage
API_Client
import{API_Client}from"sylius-shop-api-client"// Configuration// Initialize API BaseURL ( Required ) Don't forget trailing /API_Client.baseURL="https://my.web.site/api/"// Set / Clear API Cart Identifier (token), used in all cart requests.// After Picking Cart => Set tokenAPI_Client.cartToken="xxxxxxxxxxxxxxx"// After Dropping Cart => Clear tokenAPI_Client.cartToken=""// Set API LocaleAPI_Client.locale="en_US"// Set API default pagination limitAPI_Client.limit="10"// Set API Default Headers ( Optional ), below values are already defaults.constmyDefaultHeaders={"Accept": "application/json","Content-Type": "application/json",}API_Client.defaultHeaders=myDefaultHeaders// Append New Header (name, value) pair, Any where in your code,API_Client.appendHeader("Authorization","Bearer xxxxx")// Remove header from default headers, Any where in your code,API_Client.removeHeader("Authorization")// Set onResponseStatus handler,// to invoke your custom functions in certain response status codesAPI_Client.onResponseStatus=(status)=>{switch(status){case403:
// Do something, etc Clear UserData, Remove Auth Headersbreakcase500:
// Do something elsebreakdefault:
// Unhandled casesconsole.log("Unhandled case for status ",status)}}
ShopAPI
import{ShopAPI}from"sylius-shop-api-client"// Async / Await approachasyncloadTaxons(){try{consttaxons=awaitShopAPI.taxons.show_tree()// then use taxon constant}catch(error){// handle errors}}// Callbacks approachShopAPI.taxons.show_tree().then((response)=>{// handle response}).catch((error)=>{// handle errors})
Cart ShopAPI.cart
Method
Status
ShopAPI.cart.pick
✅
ShopAPI.cart.show
✅
ShopAPI.cart.drop
✅
ShopAPI.cart.add
✅
ShopAPI.cart.add_multiple
✅
ShopAPI.cart.change_quantitiy
✅
ShopAPI.cart.remove_item
✅
ShopAPI.cart.shipping_cost
✅
ShopAPI.cart.add_coupon
✅
ShopAPI.cart.remove_coupon
✅
Products ShopAPI.products
Method
Status
ShopAPI.products.by_slug
✅
ShopAPI.products.by_code
✅
ShopAPI.products.by_taxon_slug
✅
ShopAPI.products.by_taxon_code
✅
ShopAPI.products.reviews_by_slug
✅
ShopAPI.products.reviews_by_code
✅
ShopAPI.products.add_review_by_slug
✅
ShopAPI.products.add_review_by_code
✅
ShopAPI.products.latest
✅
Taxons ShopAPI.taxon
Method
Status
ShopAPI.taxons.show_tree
✅
ShopAPI.taxons.show_subtree
✅
Checkout ShopAPI.checkout
Method
Status
ShopAPI.checkout.summary
✅
ShopAPI.checkout.address
✅
ShopAPI.checkout.get_shipping_methods
✅
ShopAPI.checkout.set_shipping_method
✅
ShopAPI.checkout.get_payment_methods
✅
ShopAPI.checkout.set_payment_method
✅
ShopAPI.checkout.complete
✅
Orders ShopAPI.orders
Method
Status
ShopAPI.orders.list_orders
✅
ShopAPI.orders.order_details
✅
User ShopAPI.user
Method
Status
ShopAPI.user.request_reset_password
✅
ShopAPI.user.password_reset
✅
ShopAPI.user.register
✅
ShopAPI.user.login
✅
ShopAPI.user.verify_account
✅
ShopAPI.user.me
✅
ShopAPI.user.update_me
✅
ShopAPI.user.change_password
✅
Addresses ShopAPI.addresses
Method
Status
ShopAPI.addresses.list
✅
ShopAPI.addresses.create
✅
ShopAPI.addresses.update
✅
ShopAPI.addresses.delete
✅
ShopAPI.addresses.set_default
✅
Custom Endpoint Extending
import{ShopAPI,API_Client}from"sylius-shop-api-client"constMyShopAPI={// Spread defaults endpoints
...ShopAPI,// Create your own enpoints using API_client.// Get Method, without query paramsmyEndpoint: ()=>API_Client.get("endpoint"),// Get Method, query params object (will be converted to string)myEndpointCallMethod: (params)=>API_Client.get("endpoint",params),// Get Method, with changable path and paramsmyEndpointPathMethod: (path,params)=>API_Client.get(`endpoint/${path}`,params),// Post Method, body object (will be stringified inside)myEndpointPostMethod: (body)=>API_Client.post("endpoint",body),// And so on, for put, patch and delete }// Then use it anywhere in your code,// Async / Await approachasyncloadMyData(){try{constdata=awaitMyShopAPI.myEndpoint()// then use data constant}catch(error){// handle errors}}// Callbacks approachMyShopAPI.myEndpoint().then((response)=>{// handle response}).catch((error)=>{// handle errors})