Package Exports
- channelape-sdk
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (channelape-sdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ChannelApe SDK
TypeScript and JavaScript SDK for the ChannelApe REST API
Features
Getting Started
The ChannelApe SDK is asynchronous and all functions return promises.
Using in a browser based app?
Make sure when you install the SDK you install with the --no-optional flag
npm i channelape-sdk --save --no-optional
Creating a client
Create a new instance of the ChannelApeClient with your sessionId.
const channelApeClient = new ChannelApeClient({
sessionId: '4674b668-c4d2-4270-bf9b-ebaab78c378d'
});
Optional client configurations
- timeout - Number of milliseconds to wait for the API to send response headers. Defaults to 180000 (3 minutes). Cannot be set lower than 2000 (2 seconds).
- endpoint - Envrionment endpoint you would like to hit. Defaults to https://api.channelape.com
- logLevel - Level of logs you wish to see from the SDK. Defaults to OFF.
- maximumRequestRetryTimeout - Number of milliseconds to keep retrying a request for when an undesired response status code is received. Defaults to 180000 (3 minutes). Cannot be set lower than 2000 (2 seconds).
- minimumRequestRetryRandomDelay - Minimum number of milliseconds to randomly delay by when an undesired response status code is received. Defaults to 1000 (1 second). Cannot be set lower than 1000 (1 second).
- maximumRequestRetryRandomDelay - Maximum number of milliseconds to randomly delay by when an undesired response status code is received. Defaults to 5000 (5 seconds). Cannot be set lower than 2000 (2 seconds).
Sessions
Get Session
A User Account session will include your userId
which is useful when retrieving Businesses. API Account sessions will return an apiAccountId
instead.
channelApeClient.sessions().get(sessionId)
.then((session: Session) => {
// do what you need to do with session data here
// session will also include your userId or apiAccountId
});
Actions
Get action
channelapeClient.actions().get(actionId)
.then((action: Action) => {
// do what you need to do with action data here
});
Complete action
channelapeClient.actions().complete(actionId)
.then((action: Action) => {
// do what you need to do with action data here
});
Update action with error
channelapeClient.actions().error(actionId)
.then((action: Action) => {
// do what you need to do with action data here
});
Update action health check
channelapeClient.actions().updateHealthCheck(actionId)
.then((action: Action) => {
// do what you need to do with action data here
});
Channels
Get channel
channelapeClient.channels().get(channelId)
.then((channel: Channel) => {
// do what you need to do with channel data here
});
Get all channels for a business
channelapeClient.channels().get({ businessId: 'some-valid-business-id' })
.then((channels: Channel[]) => {
// do what you need to do with channel data here
});
Orders
Get order
channelapeClient.orders().get(orderId)
.then((order: Order) => {
// do what you need to do with order data here
});
Update order
channelapeClient.orders().update(order)
.then((updatedOrder: Order) => {
// do what you need to do with updatedOrder data here
});
Create order
const orderToCreate: OrderCreateRequest = {
additionalFields: [
{ name: 'name', value: 'CA1001' },
{ name: 'order_number', value: '1001' }
],
totalPrice: 295.99,
alphabeticCurrencyCode: 'USD',
channelId: 'your-channel-id',
channelOrderId: 'specify-your-channel-order-id',
customer: {
firstName: 'John',
lastName: 'Smith',
name: 'John Smith',
additionalFields: [
{ name: 'extraCustomerData', value: 'Put whatever you would like here' }
]
},
status: OrderStatus.OPEN,
purchasedAt: new Date(),
lineItems: [{
id: 'some-line-item-id',
quantity: 1,
sku: 'NCC1701D',
title: 'A model space ship',
additionalFields: [
{ name: 'extraLineItemData', value: 'Put whatever you would like here' }
]
}]
};
channelapeClient.orders().create(orderCreateRequest)
.then((createdOrder: Order) => {
// do what you need to do with the createdOrder data here
});
Variants
Get Variant
const variantsRequest: VariantsRequest = {
productId,
inventoryItemValue
};
channelApeClient.variants().get(variantsRequest)
.then((variant: Variant) => {
// do what you need to do with variant data here
});
Get Variants for a Product
const variantsRequestByProductId: VariantsRequestByProductId = {
productId
};
channelApeClient.variants().get(variantsRequestByProductId)
.then((variants: Variant[]) => {
// do what you need to do with variant array
})
Get Variant Search Results for a Vendor
const variantsRequest: VariantsSearchRequestByVendor = {
vendor,
businessId
};
channelApeClient.variants().search(variantsRequest)
.then((variantSearchResults: VariantSearchResults[]) => {
// do what you need to do with Variant Search Results array
});
Get Variant Search Results using a Product Filter
const variantsRequest: VariantsSearchRequestByProductFilterId = {
productFilterId
};
channelApeClient.variants().search(variantsRequest)
.then((variantSearchResults: VariantSearchResults[]) => {
// do what you need to do with Variant Search Results array
});
Get Variant Search Results for a SKU
const variantsRequest: VariantsSearchRequestBySku = {
sku,
businessId
};
channelApeClient.variants().search(variantsRequest)
.then((variantSearchResults: VariantSearchResults[]) => {
// do what you need to do with Variant Search Results array
});
Get Variant Search Results for a UPC
const variantsRequest: VariantsSearchRequestByUpc = {
upc,
businessId
};
channelApeClient.variants().search(variantsRequest)
.then((variantSearchResults: VariantSearchResults[]) => {
// do what you need to do with Variant Search Results array
});
Get Variant Search Results for a Tag
const variantsRequest: VariantsSearchRequestByTag = {
tag,
businessId
};
channelApeClient.variants().search(variantsRequest)
.then((variantSearchResults: VariantSearchResults[]) => {
// do what you need to do with Variant Search Results array
});
Businesses
Get Business
const businessesQueryRequestByBusinessId: BusinessesQueryRequestByBusinessId = {
businessId
}
channelApeClient.businesses().get(businessesQueryRequestByBusinessId)
.then((business: Business) => {
// do what you need to do with business data here
});
Get Businesses
const businessesQueryRequestByUserId: BusinessesQueryRequestByUserId = {
userId
}
channelApeClient.businesses().get(businessesQueryRequestByUserId)
.then((businesses: Business[]) => {
// do what you need to do with businesses array data here
});
See Sessions for how to retrieve your userId