sylius-shop-api-client

1.0.2 • Public • Published

Sylius Shop API Client

npm npm npm

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 token
API_Client.cartToken = "xxxxxxxxxxxxxxx"

// After Dropping Cart => Clear token
API_Client.cartToken = ""


// Set API Locale
API_Client.locale = "en_US"


// Set API default pagination limit
API_Client.limit = "10"


// Set API Default Headers ( Optional ), below values are already defaults.
const myDefaultHeaders = {
  "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 codes
API_Client.onResponseStatus = (status) => {

  switch(status){

    case 403:
      // Do something, etc Clear UserData, Remove Auth Headers
      break

    case 500:
      // Do something else
      break

    default:
      // Unhandled cases
      console.log("Unhandled case for status ", status)

  }
}

ShopAPI

import { ShopAPI } from "sylius-shop-api-client"


// Async / Await approach
async loadTaxons() {
  
  try {

    const taxons = await ShopAPI.taxons.show_tree()

    // then use taxon constant

  } catch (error) {

    // handle errors

  }

}

// Callbacks approach
ShopAPI.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"

const MyShopAPI = {

  // Spread defaults endpoints
  ...ShopAPI,


  // Create your own enpoints using API_client.

  // Get Method, without query params
  myEndpoint: () => 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 params
  myEndpointPathMethod: (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 approach
async loadMyData() {
  
  try {

    const data = await MyShopAPI.myEndpoint()

    // then use data constant

  } catch (error) {

    // handle errors

  }

}

// Callbacks approach
MyShopAPI.myEndpoint().then((response) => {

// handle response

}).catch((error) => {

  // handle errors

})

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i sylius-shop-api-client

      Weekly Downloads

      11

      Version

      1.0.2

      License

      MIT

      Unpacked Size

      27.2 kB

      Total Files

      17

      Last publish

      Collaborators

      • dev-yas