1.0.1 • Published 7 years ago
@sbatashop/client v1.0.1
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)