https://github.com/cezerin/client
JavaScript client for Cezerin REST API
https://github.com/cezerin/client
api-client e-commerce
Last synced: 2 months ago
JSON representation
JavaScript client for Cezerin REST API
- Host: GitHub
- URL: https://github.com/cezerin/client
- Owner: cezerin
- License: mit
- Created: 2016-10-28T07:43:45.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-05-12T21:43:22.000Z (about 4 years ago)
- Last Synced: 2025-03-18T11:31:52.363Z (3 months ago)
- Topics: api-client, e-commerce
- Language: JavaScript
- Homepage: https://cezerin.com
- Size: 191 KB
- Stars: 22
- Watchers: 9
- Forks: 25
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cezerin API client library
Allows asynchronous requests to Cezerin REST API and get results with native Promise or async/await. Work on browser and server.
Client include:
- Cezerin API
- Cezerin AJAX API
- Cezerin Web Store APIInstall with:
```
npm i cezerin-client
```## Initialize
```javascript
import CezerinClient from 'cezerin-client';const api = new CezerinClient({
apiBaseUrl: 'https://website.com/api/v1',
apiToken: ''
});
```## Usage
```javascript
// 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
```javascript
// 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: '',`
- `active: true,`
- `discontinued: false,`
- `search: '',`
- `on_sale: true,`
- `stock_status: 'available',`
- `price_from: 0,`
- `price_to: 100,`
- `sku: '',`
- `ids: ',,',`
- `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.list`
* `api.customers.retrieve`
* `api.customers.create`
* `api.customers.update`
* `api.customers.delete`
* `api.customers.createAddress`
* `api.customers.updateAddress`
* `api.customers.deleteAddress`
* `api.customers.setDefaultBillingAddress`
* `api.customers.setDefaultShippingAddress`
* `api.customerGroups.list`
* `api.customerGroups.retrieve`
* `api.customerGroups.create`
* `api.customerGroups.update`
* `api.customerGroups.delete`
* `api.orders.list`
* `api.orders.retrieve`
* `api.orders.create`
* `api.orders.update`
* `api.orders.delete`
* `api.orders.checkout`
* `api.orders.recalculate`
* `api.orders.cancel`
* `api.orders.close`
* `api.orders.updateBillingAddress`
* `api.orders.updateShippingAddress`
* `api.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.list`
* `api.orderStatuses.retrieve`
* `api.orderStatuses.create`
* `api.orderStatuses.update`
* `api.orderStatuses.delete`
* `api.shippingMethods.list`
* `api.shippingMethods.retrieve`
* `api.shippingMethods.create`
* `api.shippingMethods.update`
* `api.shippingMethods.delete`
* `api.paymentMethods.list`
* `api.paymentMethods.retrieve`
* `api.paymentMethods.create`
* `api.paymentMethods.update`
* `api.paymentMethods.delete`
* `api.paymentGateways.retrieve`
* `api.paymentGateways.update`
* `api.settings.retrieve`
* `api.settings.update`
* `api.settings.retrieveEmailSettings`
* `api.settings.updateEmailSettings`
* `api.settings.retrieveEmailTemplate`
* `api.settings.updateEmailTemplate`
* `api.checkoutFields.list`
* `api.checkoutFields.retrieve`
* `api.checkoutFields.update`
* `api.pages.list`
* `api.pages.retrieve`
* `api.pages.create`
* `api.pages.update`
* `api.pages.delete`
* `api.tokens.list`
* `api.tokens.retrieve`
* `api.tokens.create`
* `api.tokens.update`
* `api.tokens.delete`
* `api.redirects.list`
* `api.redirects.retrieve`
* `api.redirects.create`
* `api.redirects.update`
* `api.redirects.delete`
* `api.files.list(filter)`
* `api.files.upload(formData)`
* `api.files.delete(fileName)`
* `api.webhooks.list`
* `api.webhooks.retrieve`
* `api.webhooks.create`
* `api.webhooks.update`
* `api.webhooks.delete`
* `api.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)`## Contributing
If you can, please contribute by reporting issues, discussing ideas, or submitting pull requests with patches and new features. We do our best to respond to all issues and pull requests within a day or two, and make patch releases to npm regularly.