SyliusShopApiClient
JavaScript client on top of SyliusShopApiPlugin to build integrations
with ease.
Installation
Download the package:
$ npm install lin3s-sylius-shop-api-client
$ yarn add lin3s-sylius-shop-api-client
Import the client:
import createSyliusApiClient from 'lin3s-sylius-shop-api-client';
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';
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
}
});
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 | ~ | ✅ |