@sbatashop/client
v1.0.1
Published
API client library for SbataShop eCommerce platform. Work on browser and server.
Readme
SbataShop API client library
Allows asynchronous requests to SbataShop REST API and get results with native Promise or async/await. Work on browser and server.
Client include:
- SbataShop API
- SbataShop AJAX API
- SbataShop Web Store API
Install with:
npm i @sbatashop/clientInitialize
import SbataShopClient from '@sbatashop/client';
const api = new SbataShopClient({
apiBaseUrl: 'https://example.com/api/v1',
apiToken: '<token>'
});Usage
// fetch all categories with await
const categoriesResponse = await api.productCategories.list();
const categories = categoriesResponse.json;
for (const category of categories) {
console.log(category.name);
}
// fetch all categories with Promise
api.productCategories.list().then(({ status, json }) => {
const categories = json;
for (const category of categories) {
console.log(category.name);
}
});
// create a category
api.productCategories
.create({ name: 'Shoes', active: true })
.then(({ status, json }) => {
const categoryId = json.id;
});Error Handling
// with await
try {
const createResult = await api.productCategories.create({ name: 'Shoes' });
const newCategory = createResult.json;
} catch (e) {
console.log(e);
}
// with Promise
api.productCategories
.create({ name: 'Shoes' })
.then(({ status, json }) => {
if (status === 200) {
// success
const newCategory = json;
} else {
// 404 or bad request
}
})
.catch(err => {
console.log(err);
});Methods
api.authorize(baseUrl, user, pass)api.sitemap.list()api.sitemap.retrieve(path)api.productCategories.list()api.productCategories.retrieve(id)api.productCategories.create(data)api.productCategories.update(id, data)api.productCategories.delete(id)api.productCategories.uploadImage(categoryId, formData)api.productCategories.deleteImage(id)api.products.list({offset: 0,limit: 10,fields: 'id, name, price',category_id: '<id>',active: true,discontinued: false,search: '',on_sale: true,stock_status: 'available',price_from: 0,price_to: 100,sku: '',ids: '<id>,<id>,<id>',sort: 'regular_price,-stock_quantity'})
api.products.retrieve(id)api.products.create(data)api.products.update(id, data)api.products.delete(id)api.products.skuExists(productId, sku)api.products.slugExists(productId, slug)api.products.options.list(productId)api.products.options.retrieve(productId, optionId)api.products.options.create(productId, data)api.products.options.update(productId, optionId, data)api.products.options.delete(productId, optionId)api.products.options.values.list(productId, optionId)api.products.options.values.retrieve(productId, optionId, valueId)api.products.options.values.create(productId, optionId, data)api.products.options.values.update(productId, optionId, valueId, data)api.products.options.values.delete(productId, optionId, valueId)api.products.variants.list(productId)api.products.variants.create(productId, data)api.products.variants.update(productId, variantId, data)api.products.variants.delete(productId, variantId)api.products.variants.setOption(productId, variantId, data)api.products.images.list(productId)api.products.images.update(productId, imageId, data)api.products.images.upload(productId, formData)api.products.images.delete(productId, imageId)api.theme.export()api.theme.install(formData)api.theme.settings.retrieve()api.theme.settings.update(settings)api.theme.settings.retrieveSchema()api.theme.assets.uploadFile(formData)api.theme.assets.deleteFile(fileName)api.customers.listapi.customers.retrieveapi.customers.createapi.customers.updateapi.customers.deleteapi.customers.createAddressapi.customers.updateAddressapi.customers.deleteAddressapi.customers.setDefaultBillingAddressapi.customers.setDefaultShippingAddressapi.customerGroups.listapi.customerGroups.retrieveapi.customerGroups.createapi.customerGroups.updateapi.customerGroups.deleteapi.orders.listapi.orders.retrieveapi.orders.createapi.orders.updateapi.orders.deleteapi.orders.checkoutapi.orders.recalculateapi.orders.cancelapi.orders.closeapi.orders.updateBillingAddressapi.orders.updateShippingAddressapi.orders.discounts.create(order_id, data)api.orders.discounts.update(order_id, discount_id, data)api.orders.discounts.delete(order_id, discount_id)api.orders.transactions.create(order_id, data)api.orders.transactions.update(customer_id, transaction_id, data)api.orders.transactions.delete(order_id, transaction_id)api.orders.items.create(order_id, data)api.orders.items.update(order_id, item_id, data)api.orders.items.delete(order_id, item_id)api.orderStatuses.listapi.orderStatuses.retrieveapi.orderStatuses.createapi.orderStatuses.updateapi.orderStatuses.deleteapi.shippingMethods.listapi.shippingMethods.retrieveapi.shippingMethods.createapi.shippingMethods.updateapi.shippingMethods.deleteapi.paymentMethods.listapi.paymentMethods.retrieveapi.paymentMethods.createapi.paymentMethods.updateapi.paymentMethods.deleteapi.paymentGateways.retrieveapi.paymentGateways.updateapi.settings.retrieveapi.settings.updateapi.settings.retrieveEmailSettingsapi.settings.updateEmailSettingsapi.settings.retrieveEmailTemplateapi.settings.updateEmailTemplateapi.checkoutFields.listapi.checkoutFields.retrieveapi.checkoutFields.updateapi.pages.listapi.pages.retrieveapi.pages.createapi.pages.updateapi.pages.deleteapi.tokens.listapi.tokens.retrieveapi.tokens.createapi.tokens.updateapi.tokens.deleteapi.redirects.listapi.redirects.retrieveapi.redirects.createapi.redirects.updateapi.redirects.deleteapi.files.list(filter)api.files.upload(formData)api.files.delete(fileName)api.webhooks.listapi.webhooks.retrieveapi.webhooks.createapi.webhooks.updateapi.webhooks.deleteapi.apps.settings.retrieve(appKey)api.apps.settings.update(appKey, data)api.theme.placeholders.list()api.theme.placeholders.retrieve(placeholderKey)api.theme.placeholders.create(data)api.theme.placeholders.update(placeholderKey, data)api.theme.placeholders.delete(placeholderKey)
Web Store Methods
api.webstore.init(token)api.webstore.authorize(email, admin_url)api.webstore.account.retrieve()api.webstore.account.update(data)api.webstore.account.updateDeveloper(data)api.webstore.services.list()api.webstore.services.retrieve(serviceId)api.webstore.services.settings.retrieve(serviceId)api.webstore.services.settings.update(serviceId, settings)api.webstore.services.actions.call(serviceId, actionId)api.webstore.services.logs.list(serviceId)
