@congminh1254/shopee-sdk
Version:
Shopee SDK maintaining by community
320 lines (319 loc) • 17.6 kB
TypeScript
import { ShopeeConfig } from "../sdk.js";
import { BaseManager } from "./base.manager.js";
import { GetTrackingInfoParams, GetTrackingInfoResponse, GetChannelListResponse, GetPauseStatusResponse, GetShippingParameterParams, GetShippingParameterResponse, GetTrackingNumberParams, GetTrackingNumberResponse, ShipOrderParams, ShipOrderResponse, GetAddressListResponse, BatchShipOrderParams, BatchShipOrderResponse, MassShipOrderParams, MassShipOrderResponse, ShipBookingParams, ShipBookingResponse, GetBookingShippingParameterParams, GetBookingShippingParameterResponse, GetBookingTrackingInfoParams, GetBookingTrackingInfoResponse, GetBookingTrackingNumberParams, GetBookingTrackingNumberResponse, GetMassShippingParameterParams, GetMassShippingParameterResponse, GetMassTrackingNumberParams, GetMassTrackingNumberResponse, SetAddressConfigParams, SetAddressConfigResponse, SetPauseStatusParams, SetPauseStatusResponse, DeleteAddressParams, DeleteAddressResponse, CreateShippingDocumentParams, CreateShippingDocumentResponse, DownloadShippingDocumentParams, DownloadShippingDocumentResponse, GetShippingDocumentParameterParams, GetShippingDocumentParameterResponse, GetShippingDocumentResultParams, GetShippingDocumentResultResponse, GetShippingDocumentDataInfoParams, GetShippingDocumentDataInfoResponse, CreateBookingShippingDocumentParams, CreateBookingShippingDocumentResponse, DownloadBookingShippingDocumentParams, DownloadBookingShippingDocumentResponse, GetBookingShippingDocumentParameterParams, GetBookingShippingDocumentParameterResponse, GetBookingShippingDocumentResultParams, GetBookingShippingDocumentResultResponse, GetBookingShippingDocumentDataInfoParams, GetBookingShippingDocumentDataInfoResponse, CreateShippingDocumentJobParams, CreateShippingDocumentJobResponse, DownloadShippingDocumentJobParams, DownloadShippingDocumentJobResponse, GetShippingDocumentJobStatusParams, GetShippingDocumentJobStatusResponse, DownloadToLabelParams, DownloadToLabelResponse, UpdateChannelParams, UpdateChannelResponse, UpdateShippingOrderParams, UpdateShippingOrderResponse, UpdateTrackingStatusParams, UpdateTrackingStatusResponse, UpdateSelfCollectionOrderLogisticsParams, UpdateSelfCollectionOrderLogisticsResponse, GetOperatingHoursParams, GetOperatingHoursResponse, UpdateOperatingHoursParams, UpdateOperatingHoursResponse, GetOperatingHourRestrictionsParams, GetOperatingHourRestrictionsResponse, DeleteSpecialOperatingHourParams, DeleteSpecialOperatingHourResponse, GetMartPackagingInfoParams, GetMartPackagingInfoResponse, SetMartPackagingInfoParams, SetMartPackagingInfoResponse, BatchUpdateTPFWarehouseTrackingStatusParams, BatchUpdateTPFWarehouseTrackingStatusResponse, CheckPolygonUpdateStatusParams, CheckPolygonUpdateStatusResponse, UpdateAddressParams, UpdateAddressResponse, UploadServiceablePolygonParams, UploadServiceablePolygonResponse } from "../schemas/logistics.js";
export declare class LogisticsManager extends BaseManager {
constructor(config: ShopeeConfig);
/**
* Use this API to get all supported logistic channels.
*
* @returns A promise that resolves to the channel list response containing:
* - logistics_channel_list: Array of available logistics channels with:
* - logistics_channel_id: Channel identifier
* - logistics_channel_name: Channel name
* - enabled: Whether channel is enabled
* - cod_enabled: Whether COD is supported
* - fee_type: Fee calculation type
* - weight_limit: Weight restrictions
* - item_max_dimension: Size restrictions
* - and more channel details
*
* @throws {Error} When the API request fails or returns an error:
* - error_auth: Invalid access_token
* - error_permission: No permission
* - error_server: System error
*/
getChannelList(): Promise<GetChannelListResponse>;
/**
* Use this API to get the pause status of logistics channels under the shop.
*/
getPauseStatus(): Promise<GetPauseStatusResponse>;
/**
* Use this API to set the pause status of logistics channels under the shop.
*/
setPauseStatus(params: SetPauseStatusParams): Promise<SetPauseStatusResponse>;
/**
* Use this API to get the parameters required for initializing logistics for an order.
* This is also known as getParameterForInit in the documentation.
*
* @param params - Parameters for getting shipping information
* @param params.order_sn - Shopee's unique identifier for an order
* @param params.package_number - Shopee's unique identifier for the package under an order (optional)
*
* @returns A promise that resolves to the shipping parameter response containing:
* - info_needed: Required parameters based on the specific order
* - dropoff: Logistics information for dropoff mode (if applicable)
* - pickup: Logistics information for pickup mode (if applicable)
*
* @throws {Error} When the API request fails or returns an error:
* - error_auth: Invalid access_token
* - error_param: Wrong parameters
* - error_permission: No permission
* - error_server: System error
*/
getShippingParameter(params: GetShippingParameterParams): Promise<GetShippingParameterResponse>;
/**
* Use this API to get the tracking number of a shipped order.
*
* @param params - Parameters for getting tracking number
* @param params.order_sn - Shopee's unique identifier for an order
* @param params.package_number - Shopee's unique identifier for the package under an order (optional)
* @param params.response_optional_fields - Optional fields to include in response (optional)
*
* @returns A promise that resolves to the tracking number response containing:
* - tracking_number: The tracking number of the order
* - plp_number: Package identifier for BR correios (optional)
* - first_mile_tracking_number: First mile tracking (Cross Border only)
* - last_mile_tracking_number: Last mile tracking (Cross Border BR only)
* - hint: Hint information for special scenarios
* - pickup_code: Quick identification code (ID local orders only)
*
* @throws {Error} When the API request fails or returns an error:
* - error_auth: Invalid access_token
* - error_param: Wrong parameters
* - error_permission: No permission
* - error_server: System error
*/
getTrackingNumber(params: GetTrackingNumberParams): Promise<GetTrackingNumberResponse>;
/**
* Use this API to initiate logistics including arranging pickup, dropoff or shipment for non-integrated channels.
* This is also known as "Init" in the Shopee API documentation.
*
* @param params - Parameters for shipping an order
* @param params.order_sn - Shopee's unique identifier for an order
* @param params.package_number - Shopee's unique identifier for the package under an order (optional)
* @param params.pickup - Pickup information (required if get_shipping_parameter returns "pickup")
* @param params.dropoff - Dropoff information (required if get_shipping_parameter returns "dropoff")
* @param params.non_integrated - Non-integrated channel information (optional)
*
* @returns A promise that resolves to the ship order response
*
* @throws {Error} When the API request fails or returns an error:
* - error_auth: Invalid access_token
* - error_param: Wrong parameters
* - error_permission: No permission
* - error_server: System error
*
* @example
* ```typescript
* // For pickup mode
* await sdk.logistics.shipOrder({
* order_sn: 'ORDER123',
* pickup: {
* address_id: 234,
* pickup_time_id: 'slot_123',
* },
* });
*
* // For dropoff mode
* await sdk.logistics.shipOrder({
* order_sn: 'ORDER456',
* dropoff: {
* branch_id: 101,
* },
* });
* ```
*/
shipOrder(params: ShipOrderParams): Promise<ShipOrderResponse>;
/**
* Use this API to get the address list of the shop.
*
* @returns A promise that resolves to the address list response containing:
* - show_pickup_address: Whether to show pickup address
* - address_list: Array of shop addresses with full details
*
* @throws {Error} When the API request fails or returns an error:
* - error_auth: Invalid access_token
* - error_permission: No permission
* - error_server: System error
*
* @example
* ```typescript
* const response = await sdk.logistics.getAddressList();
* response.address_list.forEach((addr) => {
* console.log('Address ID:', addr.address_id);
* console.log('Address:', addr.full_address);
* console.log('Flags:', addr.address_flag);
* });
* ```
*/
getAddressList(): Promise<GetAddressListResponse>;
/**
* Use this API to get the logistics tracking information of an order.
*
* @param params - Parameters for getting tracking information
* @param params.order_sn - Shopee's unique identifier for an order
* @param params.package_number - Shopee's unique identifier for the package under an order
*
* @returns A promise that resolves to the tracking info response containing:
* - order_sn: Order identifier
* - package_number: Package identifier
* - logistics_status: Current logistics status
* - tracking_info: Array of tracking events with:
* - update_time: Time of status update
* - description: Description of the tracking event
* - logistics_status: Status code for the event
*
* @throws {Error} When the API request fails or returns an error:
* - logistics.error_param: Order allocation in progress
* - error_not_found: Wrong parameters
* - error_permission: No permission
* - error_server: System error
* - logistics.invalid_error: Order does not exist
* - logistics.error_status_limit: Invalid order status
* - logistics.package_not_exist: Package does not exist
* - logistics.package_number_not_exist: Package number required for split order
*/
getTrackingInfo(params: GetTrackingInfoParams): Promise<GetTrackingInfoResponse>;
/**
* Use this API to batch initiate logistics for multiple orders.
*/
batchShipOrder(params: BatchShipOrderParams): Promise<BatchShipOrderResponse>;
/**
* Use this API to mass ship orders.
*/
massShipOrder(params: MassShipOrderParams): Promise<MassShipOrderResponse>;
/**
* Use this API to initiate logistics for a booking.
*/
shipBooking(params: ShipBookingParams): Promise<ShipBookingResponse>;
/**
* Use this API to get shipping parameters for a booking.
*/
getBookingShippingParameter(params: GetBookingShippingParameterParams): Promise<GetBookingShippingParameterResponse>;
/**
* Use this API to get tracking info for a booking.
*/
getBookingTrackingInfo(params: GetBookingTrackingInfoParams): Promise<GetBookingTrackingInfoResponse>;
/**
* Use this API to get tracking number for a booking.
*/
getBookingTrackingNumber(params: GetBookingTrackingNumberParams): Promise<GetBookingTrackingNumberResponse>;
/**
* Use this API to get mass shipping parameters.
*/
getMassShippingParameter(params: GetMassShippingParameterParams): Promise<GetMassShippingParameterResponse>;
/**
* Use this API to get mass tracking numbers.
*/
getMassTrackingNumber(params: GetMassTrackingNumberParams): Promise<GetMassTrackingNumberResponse>;
/**
* Use this API to set address configuration.
*/
setAddressConfig(params: SetAddressConfigParams): Promise<SetAddressConfigResponse>;
/**
* Use this API to delete an address.
*/
deleteAddress(params: DeleteAddressParams): Promise<DeleteAddressResponse>;
/**
* Use this API to create shipping document.
*/
createShippingDocument(params: CreateShippingDocumentParams): Promise<CreateShippingDocumentResponse>;
/**
* Use this API to download shipping document.
*/
downloadShippingDocument(params: DownloadShippingDocumentParams): Promise<DownloadShippingDocumentResponse>;
/**
* Use this API to get shipping document parameters.
*/
getShippingDocumentParameter(params: GetShippingDocumentParameterParams): Promise<GetShippingDocumentParameterResponse>;
/**
* Use this API to get shipping document result.
*/
getShippingDocumentResult(params: GetShippingDocumentResultParams): Promise<GetShippingDocumentResultResponse>;
/**
* Use this API to get shipping document data info.
*/
getShippingDocumentDataInfo(params: GetShippingDocumentDataInfoParams): Promise<GetShippingDocumentDataInfoResponse>;
/**
* Use this API to create booking shipping document.
*/
createBookingShippingDocument(params: CreateBookingShippingDocumentParams): Promise<CreateBookingShippingDocumentResponse>;
/**
* Use this API to download booking shipping document.
*/
downloadBookingShippingDocument(params: DownloadBookingShippingDocumentParams): Promise<DownloadBookingShippingDocumentResponse>;
/**
* Use this API to get booking shipping document parameters.
*/
getBookingShippingDocumentParameter(params: GetBookingShippingDocumentParameterParams): Promise<GetBookingShippingDocumentParameterResponse>;
/**
* Use this API to get booking shipping document result.
*/
getBookingShippingDocumentResult(params: GetBookingShippingDocumentResultParams): Promise<GetBookingShippingDocumentResultResponse>;
/**
* Use this API to get booking shipping document data info.
*/
getBookingShippingDocumentDataInfo(params: GetBookingShippingDocumentDataInfoParams): Promise<GetBookingShippingDocumentDataInfoResponse>;
/**
* Use this API to create shipping document job.
*/
createShippingDocumentJob(params: CreateShippingDocumentJobParams): Promise<CreateShippingDocumentJobResponse>;
/**
* Use this API to download shipping document job.
*/
downloadShippingDocumentJob(params: DownloadShippingDocumentJobParams): Promise<DownloadShippingDocumentJobResponse>;
/**
* Use this API to get shipping document job status.
*/
getShippingDocumentJobStatus(params: GetShippingDocumentJobStatusParams): Promise<GetShippingDocumentJobStatusResponse>;
/**
* Use this API to download shipping label.
*/
downloadToLabel(params: DownloadToLabelParams): Promise<DownloadToLabelResponse>;
/**
* Use this API to update logistics channel configuration.
*/
updateChannel(params: UpdateChannelParams): Promise<UpdateChannelResponse>;
/**
* Use this API to update shipping order.
*/
updateShippingOrder(params: UpdateShippingOrderParams): Promise<UpdateShippingOrderResponse>;
/**
* Use this API to update tracking status.
*/
updateTrackingStatus(params: UpdateTrackingStatusParams): Promise<UpdateTrackingStatusResponse>;
/**
* Use this API to update self collection order logistics.
*/
updateSelfCollectionOrderLogistics(params: UpdateSelfCollectionOrderLogisticsParams): Promise<UpdateSelfCollectionOrderLogisticsResponse>;
/**
* Use this API to get operating hours.
*/
getOperatingHours(params: GetOperatingHoursParams): Promise<GetOperatingHoursResponse>;
/**
* Use this API to update operating hours.
*/
updateOperatingHours(params: UpdateOperatingHoursParams): Promise<UpdateOperatingHoursResponse>;
/**
* Use this API to get operating hour restrictions.
*/
getOperatingHourRestrictions(params: GetOperatingHourRestrictionsParams): Promise<GetOperatingHourRestrictionsResponse>;
/**
* Use this API to delete special operating hour.
*/
deleteSpecialOperatingHour(params: DeleteSpecialOperatingHourParams): Promise<DeleteSpecialOperatingHourResponse>;
/**
* Use this API to get mart packaging info.
*/
getMartPackagingInfo(params: GetMartPackagingInfoParams): Promise<GetMartPackagingInfoResponse>;
/**
* Use this API to set mart packaging info.
*/
setMartPackagingInfo(params: SetMartPackagingInfoParams): Promise<SetMartPackagingInfoResponse>;
/**
* Use this API to batch update TPF warehouse tracking status.
*/
batchUpdateTPFWarehouseTrackingStatus(params: BatchUpdateTPFWarehouseTrackingStatusParams): Promise<BatchUpdateTPFWarehouseTrackingStatusResponse>;
/**
* Only available for Brazil sellers. Use this API to check the status of polygon file uploaded for BR Entrega Turbo channel (Channel ID: 90026) by querying the task_id returned via the v2.logistics.upload_serviceable_polygon.
*/
checkPolygonUpdateStatus(params: CheckPolygonUpdateStatusParams): Promise<CheckPolygonUpdateStatusResponse>;
/**
* Use this API to update the address of a shop.
*/
updateAddress(params: UpdateAddressParams): Promise<UpdateAddressResponse>;
/**
* Only available for Brazil sellers. Use this API to upload KML file for shop level serviceability setting for BR Entrega Turbo channel (Channel ID: 90026). Please note that multiple Outlet Shops under the same Mart Shop cannot have overlapping service areas.
*/
uploadServiceablePolygon(params: UploadServiceablePolygonParams): Promise<UploadServiceablePolygonResponse>;
}