UNPKG

shopee-client

Version:
579 lines (578 loc) 26.6 kB
"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;