shopee-client
Version:
Shoppe Open API Client
579 lines (578 loc) • 26.6 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var BaseModule_1 = __importDefault(require("../BaseModule"));
var hmac_1 = __importDefault(require("../../helper/hmac"));
var handleReject_1 = __importDefault(require("../../helper/handleReject"));
var ItemModule = /** @class */ (function (_super) {
__extends(ItemModule, _super);
function ItemModule() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Use this call to add a product item. Should get dependency by calling below API first
* shopee.item.GetCategories
* shopee.item.GetAttributes
* shopee.logistics.GetLogistics
* @param request
*/
ItemModule.prototype.addItem = function (request) {
var full_url = this.client.defaults.baseURL + 'item/add';
var params = __assign({ partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }, request);
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/add', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to delete a product item.
* @param item_id id of an item.
*/
ItemModule.prototype.deleteItem = function (item_id) {
var full_url = this.client.defaults.baseURL + 'item/delete';
var params = {
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
item_id: item_id
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/delete', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to unlist or list items in batch.
* @param request
*/
ItemModule.prototype.unlistItem = function (items) {
var full_url = this.client.defaults.baseURL + 'items/unlist';
var params = {
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
items: items
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/unlist', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to get categories of product item
* @param request
*/
ItemModule.prototype.getCategory = function (request) {
if (request === void 0) { request = {}; }
var full_url = this.client.defaults.baseURL + 'item/categories/get';
var params = __assign({ partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }, request);
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/categories/get', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to get attributes of product item
* @param request
*/
ItemModule.prototype.getAttributes = function (request) {
var full_url = this.client.defaults.baseURL + 'item/attributes/get';
var params = __assign({ partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }, request);
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/attributes/get', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to add item variations, it only supports non-tier-variation items.
* @param request
*/
ItemModule.prototype.addVariant = function (request) {
var full_url = this.client.defaults.baseURL + 'item/add_variations';
var params = __assign({ partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }, request);
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/add_variations', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to delete item variation
* @param request
*/
ItemModule.prototype.deleteVariant = function (request) {
var full_url = this.client.defaults.baseURL + 'item/delete_variation';
var params = __assign({ partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }, request);
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/delete_variation', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to get a list of items
* @param request
*/
ItemModule.prototype.getItemsList = function (request) {
var full_url = this.client.defaults.baseURL + 'items/get';
var params = __assign({ partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }, request);
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/get', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to get detail of item
* @param request
*/
ItemModule.prototype.getItemDetail = function (item_id) {
var full_url = this.client.defaults.baseURL + 'item/get';
var params = {
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
item_id: item_id
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/get', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to update a product item.
* Should get dependency by calling below API first shopee.item.GetItemDetail
* @param request
*/
ItemModule.prototype.updateItem = function (item) {
var full_url = this.client.defaults.baseURL + 'item/update';
var params = __assign(__assign({}, item), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/update', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to add product item images.
* @param request
*/
ItemModule.prototype.addItemImg = function (request) {
var full_url = this.client.defaults.baseURL + 'item/img/add';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/img/add', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Override and update all the existing images of an item.
* @param request
*/
ItemModule.prototype.updateItemImg = function (request) {
var full_url = this.client.defaults.baseURL + 'item/img/update';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/img/update', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to add one item image in assigned position.
* @param request
*/
ItemModule.prototype.insertItemImg = function (request) {
var full_url = this.client.defaults.baseURL + 'item/img/insert';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/img/insert', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to delete a product item image.
* @param request
*/
ItemModule.prototype.deleteItemImg = function (request) {
var full_url = this.client.defaults.baseURL + 'item/img/delete';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/img/delete', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to update item price
* @param request
*/
ItemModule.prototype.updatePrice = function (item_id, price) {
var full_url = this.client.defaults.baseURL + 'items/update_price';
var params = {
item_id: item_id,
price: price,
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update_price', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to update item stock
* @param request
*/
ItemModule.prototype.updateStock = function (item_id, stock) {
var full_url = this.client.defaults.baseURL + 'items/update_stock';
var params = {
item_id: item_id,
stock: stock,
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update_stock', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to update item variation price
* @param request
*/
ItemModule.prototype.updateVariationPrice = function (request) {
var full_url = this.client.defaults.baseURL + 'items/update_variation_price';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update_variation_price', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to update item variation stock
* @param request
*/
ItemModule.prototype.updateVariationStock = function (request) {
var full_url = this.client.defaults.baseURL + 'items/update_variation_stock';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update_variation_stock', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Update items price in batch.
* @param request
*/
ItemModule.prototype.updatePriceBatch = function (request) {
var full_url = this.client.defaults.baseURL + 'items/update/items_price';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update/items_price', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Update items stock in batch.
* @param request
*/
ItemModule.prototype.updateStockBatch = function (request) {
var full_url = this.client.defaults.baseURL + 'items/update/items_stock';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update/items_stock', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Update variations price in batch.
* @param request
*/
ItemModule.prototype.updateVariationPriceBatch = function (request) {
var full_url = this.client.defaults.baseURL + 'items/update/vars_price';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update/vars_price', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Update variations price in batch.
* @param request
*/
ItemModule.prototype.updateVariationStockBatch = function (request) {
var full_url = this.client.defaults.baseURL + 'items/update/vars_stock';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/update/vars_stock', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Initialize a non-tier-variation item to a tier-variation item, upload variation image and initialize stock and price for each variation.
* This API cannot edit existed tier_variation and variation price/stock.
* @param request
*/
ItemModule.prototype.initTierVariation = function (request) {
var full_url = this.client.defaults.baseURL + 'item/tier_var/init';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/tier_var/init', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to add new tier variations in batch.
* Tier variation index of variations in the same item must be unique.
* @param request
*/
ItemModule.prototype.addTierVariation = function (request) {
var full_url = this.client.defaults.baseURL + 'item/tier_var/add';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/tier_var/add', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this call to get tier-variation basic information under an item
* @param item_id unique identifier id.
*/
ItemModule.prototype.getTierVariation = function (item_id) {
var full_url = this.client.defaults.baseURL + 'item/tier_var/get';
var params = {
item_id: item_id,
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/tier_var/get', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to update tier-variation list or upload variation image of a tier-variation item.
* @param request
*/
ItemModule.prototype.updateTierVariation = function (request) {
var full_url = this.client.defaults.baseURL + 'item/tier_var/update_list';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/tier_var/update_list', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to update existing tier index under the same variation_id.
* @param request
*/
ItemModule.prototype.updateTierVariationIndex = function (request) {
var full_url = this.client.defaults.baseURL + 'item/tier_var/update';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/tier_var/update', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to boost multiple items at once.
* @param request
*/
ItemModule.prototype.boostItem = function (item_id) {
var full_url = this.client.defaults.baseURL + 'items/boost';
var params = {
item_id: item_id,
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/boost', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to get all boosted items.
* @param request
*/
ItemModule.prototype.getBoostItem = function () {
var full_url = this.client.defaults.baseURL + 'items/get_boosted';
var params = {
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/get_boosted', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Only for TW whitelisted shop. Use this API to set the installment tenures of items.
* @param request
*/
ItemModule.prototype.setInstallment = function (request) {
var full_url = this.client.defaults.baseURL + 'item/installment/set';
var params = {
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/installment/set', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to get ongoing and upcoming promotions.
* @param request
*/
ItemModule.prototype.getPromotionInfo = function (request) {
var full_url = this.client.defaults.baseURL + 'item/promotion/get';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/promotion/get', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this API to get recommended category ids according to item name.
* @param name title of product
*/
ItemModule.prototype.getRecommendCategory = function (name) {
var full_url = this.client.defaults.baseURL + 'item/categories/get_recommend';
var params = {
name: name,
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('item/categories/get_recommend', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to get comment by shopid/itemid/comment_id
* @param name title of product
*/
ItemModule.prototype.getComment = function (name) {
var full_url = this.client.defaults.baseURL + 'items/comments/get';
var params = {
name: name,
partner_id: Number(this.config.partner_id),
shopid: Number(this.config.shop_id),
timestamp: Math.round(Date.now() / 1000),
};
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/comments/get', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
/**
* Use this api to reply comments from buyers in batch
* @param request
*/
ItemModule.prototype.replyComment = function (request) {
var full_url = this.client.defaults.baseURL + 'items/comments/reply';
var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) });
var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params));
return this.client.post('items/comments/reply', params, {
headers: {
Authorization: hmac
}
}).then(handleReject_1.default);
};
return ItemModule;
}(BaseModule_1.default));
exports.default = ItemModule;