lin3s-sylius-shop-api-client

0.9.4 • Public • Published

SyliusShopApiClient

JavaScript client on top of SyliusShopApiPlugin to build integrations with ease.

Installation

Download the package:

  • Using npm

$ npm install lin3s-sylius-shop-api-client

  • Using yarn

$ yarn add lin3s-sylius-shop-api-client

Import the client:

  • Using import:

import createSyliusApiClient from 'lin3s-sylius-shop-api-client';

  • Using require():

const createSyliusApiClient = require('lin3s-sylius-shop-api-client');

Initialize the client

const api = createSyliusApiClient({
    baseUrl: 'localhost',
    channel: 'default',
    cookieDomain: '.myapp.com',
    locale: 'en_US',
    cartCookieExpiration: 604800000,
    userCookieExpiration: 2592000000,
    cartTokenCookie: 'cart-token',
})

Usage

For example to use the productsByTaxonSlug using the parameters as described in the API docs bellow ({slug} = an object containing slug property and its value):

const products = api.taxon.productsByTaxonSlug({slug: 'some-slug'});

Adding custom endpoints

In case a new endpoint is created in shop-api you can still use the configuration of the client. Your custom function will receive the config via parameters and it must return a function. This function has to be passed in the constructor. An example:

import axios from 'axios';
// You can make use of requestConfig helpers and session values
import createSyliusShopApiClient, {requestConfig} from 'lin3s-sylius-shop-api-client';
 
const myCustomEndpoint = config => () => new Promise(resolve => {
  axios.get(`${config.baseUrl}/shop-api/my-custom-endpoint`)
    .then(response => resolve(response.data));
});
 
const api = createSyliusApiClient({
  baseUrl: 'localhost',
  channel: 'default',
  locale: 'en_US',
  customEndpoints: {
    myCustomEndpoint
  }
});
 
// Usage
const response = api.custom.myCustomEndpoint();
api.Session.Cart.remove();

API

Cart api.cart

Method Params Status
api.cart.pickup ~
api.cart.summary {cartId} (optional)
api.cart.drop
api.cart.addItem {productCode, variantCode, quantity}
api.cart.addItems [{productCode, variantCode, quantity}]
api.cart.changeItemQuantity
api.cart.removeItem {orderItemId}
api.cart.estimatedShippingCost
api.cart.addCoupon
api.cart.removeCoupon

Checkout api.checkout

Method Params Status
api.checkout.summary
api.checkout.address {shippingAddress, billingAddress}
api.checkout.chooseShippingMethod {shipmentId, methodCode}
api.checkout.choosePaymentMethod {paymentId, methodCode}
api.checkout.availableShippingMethods ~
api.checkout.availablePaymentMethods ~
api.checkout.complete {notes}

Product api.product

Method Params Status
api.product.bySlug {slug}
api.product.byCode
api.product.reviewsBySlug
api.product.reviewsByCode
api.product.addReviewBySlug
api.product.addReviewByCode

Taxon api.taxon

Method Params Status
api.taxon.all
api.taxon.byCode
api.taxon.productsByTaxonCode
api.taxon.productsByTaxonSlug {slug}

User api.user

Method Params Status
api.user.register {email, firstname, lastname, plainPassword}
api.user.resendVerificationLink
api.user.verifyAccount
api.user.requestPasswordReset {email}
api.user.passwordReset {password}
api.user.login {_username, _password}
api.user.me ~

Package Sidebar

Install

npm i lin3s-sylius-shop-api-client

Weekly Downloads

30

Version

0.9.4

License

MIT

Unpacked Size

61 kB

Total Files

52

Last publish

Collaborators

  • anderrv
  • benatespina
  • gorkalaucirica