UNPKG

@congminh1254/shopee-sdk

Version:
320 lines (319 loc) 17.6 kB
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>; }