@shopnex/cj-plugin 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/api-client.d.ts +2 -0
  2. package/dist/api-client.js +27 -0
  3. package/dist/api-client.js.map +1 -0
  4. package/dist/auth.d.ts +15 -0
  5. package/dist/auth.js +47 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/cj-settings.d.ts +2 -0
  8. package/dist/cj-settings.js +51 -0
  9. package/dist/cj-settings.js.map +1 -0
  10. package/dist/error-handler.d.ts +12 -0
  11. package/dist/error-handler.js +41 -0
  12. package/dist/error-handler.js.map +1 -0
  13. package/dist/error-types.d.ts +20 -0
  14. package/dist/error-types.js +7 -0
  15. package/dist/error-types.js.map +1 -0
  16. package/dist/index.d.ts +8 -0
  17. package/dist/index.js +36 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/sdk/access-token.d.ts +8 -0
  20. package/dist/sdk/access-token.js +22 -0
  21. package/dist/sdk/access-token.js.map +1 -0
  22. package/dist/sdk/cj-sdk.d.ts +4 -0
  23. package/dist/sdk/cj-sdk.js +6 -0
  24. package/dist/sdk/cj-sdk.js.map +1 -0
  25. package/dist/sdk/dispute/dispute-types.d.ts +64 -0
  26. package/dist/sdk/dispute/dispute-types.js +4 -0
  27. package/dist/sdk/dispute/dispute-types.js.map +1 -0
  28. package/dist/sdk/dispute/dispute.d.ts +4 -0
  29. package/dist/sdk/dispute/dispute.js +52 -0
  30. package/dist/sdk/dispute/dispute.js.map +1 -0
  31. package/dist/sdk/inventory/inventory-types.d.ts +7 -0
  32. package/dist/sdk/inventory/inventory-types.js +3 -0
  33. package/dist/sdk/inventory/inventory-types.js.map +1 -0
  34. package/dist/sdk/inventory/inventory.d.ts +3 -0
  35. package/dist/sdk/inventory/inventory.js +41 -0
  36. package/dist/sdk/inventory/inventory.js.map +1 -0
  37. package/dist/sdk/orders/order-types.d.ts +135 -0
  38. package/dist/sdk/orders/order-types.js +3 -0
  39. package/dist/sdk/orders/order-types.js.map +1 -0
  40. package/dist/sdk/orders/orders.d.ts +16 -0
  41. package/dist/sdk/orders/orders.js +167 -0
  42. package/dist/sdk/orders/orders.js.map +1 -0
  43. package/dist/sdk/products/product-types.d.ts +186 -0
  44. package/dist/sdk/products/product-types.js +5 -0
  45. package/dist/sdk/products/product-types.js.map +1 -0
  46. package/dist/sdk/products/products.d.ts +9 -0
  47. package/dist/sdk/products/products.js +96 -0
  48. package/dist/sdk/products/products.js.map +1 -0
  49. package/dist/sdk/settings/settings-api.d.ts +2 -0
  50. package/dist/sdk/settings/settings-api.js +20 -0
  51. package/dist/sdk/settings/settings-api.js.map +1 -0
  52. package/dist/sdk/settings/settings-types.d.ts +22 -0
  53. package/dist/sdk/settings/settings-types.js +3 -0
  54. package/dist/sdk/settings/settings-types.js.map +1 -0
  55. package/dist/sdk/variants/variant-types.d.ts +18 -0
  56. package/dist/sdk/variants/variant-types.js +3 -0
  57. package/dist/sdk/variants/variant-types.js.map +1 -0
  58. package/dist/sdk/variants/variants.d.ts +8 -0
  59. package/dist/sdk/variants/variants.js +76 -0
  60. package/dist/sdk/variants/variants.js.map +1 -0
  61. package/dist/service/convert-html-to-lexical.d.ts +0 -0
  62. package/dist/service/convert-html-to-lexical.js +75 -0
  63. package/dist/service/convert-html-to-lexical.js.map +1 -0
  64. package/dist/service/create-order.hook.d.ts +12 -0
  65. package/dist/service/create-order.hook.js +64 -0
  66. package/dist/service/create-order.hook.js.map +1 -0
  67. package/dist/service/sync-products.d.ts +4 -0
  68. package/dist/service/sync-products.js +147 -0
  69. package/dist/service/sync-products.js.map +1 -0
  70. package/dist/types.d.ts +74 -0
  71. package/dist/types.js +3 -0
  72. package/dist/types.js.map +1 -0
  73. package/dist/ui/refund-button.d.ts +3 -0
  74. package/dist/ui/refund-button.js +24 -0
  75. package/dist/ui/refund-button.js.map +1 -0
  76. package/package.json +1 -1
@@ -0,0 +1,135 @@
1
+ export interface OrderProduct {
2
+ quantity: number;
3
+ vid: string;
4
+ unitPrice?: number;
5
+ }
6
+ export interface CreateOrderPayload {
7
+ orderNumber: string;
8
+ shippingZip: string;
9
+ shippingCountryCode: string;
10
+ shippingCountry: string;
11
+ shippingProvince: string;
12
+ shippingCity: string;
13
+ shippingCounty?: string;
14
+ shippingPhone: string;
15
+ shippingCustomerName: string;
16
+ shippingAddress: string;
17
+ shippingAddress2?: string;
18
+ houseNumber?: string;
19
+ email?: string;
20
+ taxId?: string;
21
+ remark?: string;
22
+ consigneeID?: string;
23
+ payType?: 2 | 3;
24
+ shopAmount?: number;
25
+ logisticName: string;
26
+ fromCountryCode: string;
27
+ platform?: string;
28
+ iossType?: 1 | 2 | 3;
29
+ iossNumber?: string;
30
+ products: OrderProduct[];
31
+ podProperties?: {
32
+ areaName: string;
33
+ links: string[];
34
+ type: string;
35
+ layer?: unknown[];
36
+ }[];
37
+ }
38
+ interface ProductInfo {
39
+ isGroup: boolean;
40
+ lineItemId: string;
41
+ quantity: number;
42
+ subOrderProducts: {
43
+ lineItemId: string;
44
+ quantity: number;
45
+ variantId: string;
46
+ }[];
47
+ variantId: string;
48
+ }
49
+ interface InterceptOrderReason {
50
+ code: number;
51
+ message: string;
52
+ }
53
+ export interface CreateOrderResponse {
54
+ actualPayment?: number;
55
+ cjPayUrl?: string;
56
+ interceptOrderReasons: InterceptOrderReason[];
57
+ iossAmount?: number;
58
+ iossTaxHandlingFee?: number;
59
+ logisticsMiss?: boolean;
60
+ orderAmount?: number;
61
+ orderId: string;
62
+ orderNumber: string;
63
+ orderOriginalAmount?: number;
64
+ orderStatus: string;
65
+ postageAmount?: number;
66
+ postageDiscountAmount?: number;
67
+ postageOriginalAmount?: number;
68
+ productAmount?: number;
69
+ productDiscountAmount?: number;
70
+ productInfoList: ProductInfo[];
71
+ productOriginalAmount?: number;
72
+ shipmentOrderId: string;
73
+ totalDiscountAmount?: number;
74
+ }
75
+ export interface Order {
76
+ cjOrderId: null | string;
77
+ createDate: string;
78
+ logisticName?: string;
79
+ orderAmount?: number;
80
+ orderId: string;
81
+ orderNum: string;
82
+ orderStatus: string;
83
+ orderWeight: number;
84
+ paymentDate?: string;
85
+ postageAmount?: number;
86
+ productAmount: number;
87
+ productList?: any[];
88
+ remark?: string;
89
+ shippingAddress: string;
90
+ shippingCity: string;
91
+ shippingCountryCode: string;
92
+ shippingCustomerName: string;
93
+ shippingPhone: string;
94
+ shippingProvince: string;
95
+ trackNumber?: string;
96
+ }
97
+ export interface ListOrderResponse {
98
+ list: Order[];
99
+ pageNum: number;
100
+ pageSize: number;
101
+ total: number;
102
+ }
103
+ export interface QueryOrderParams {
104
+ orderId?: string;
105
+ orderNum?: string;
106
+ }
107
+ export interface ProductListEntry {
108
+ quantity: number;
109
+ sellPrice: number;
110
+ vid: string;
111
+ }
112
+ export interface QueryOrderResponse {
113
+ cjOrderId: null | string;
114
+ createDate: string;
115
+ isComplete: number;
116
+ logisticName?: string;
117
+ orderAmount: number;
118
+ orderId: string;
119
+ orderNum: string;
120
+ orderStatus: string;
121
+ orderWeight: number;
122
+ paymentDate?: string;
123
+ postageAmount: number;
124
+ productAmount: number;
125
+ productList: ProductListEntry[];
126
+ remark?: string;
127
+ shippingAddress: string;
128
+ shippingCity: string;
129
+ shippingCountryCode: string;
130
+ shippingCustomerName: string;
131
+ shippingPhone: string;
132
+ shippingProvince: string;
133
+ trackNumber?: string;
134
+ }
135
+ export {};
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=order-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sdk/orders/order-types.ts"],"sourcesContent":["export interface OrderProduct {\n quantity: number;\n vid: string;\n unitPrice?: number;\n}\n\nexport interface CreateOrderPayload {\n orderNumber: string;\n shippingZip: string;\n shippingCountryCode: string;\n shippingCountry: string;\n shippingProvince: string;\n shippingCity: string;\n shippingCounty?: string;\n shippingPhone: string;\n shippingCustomerName: string;\n shippingAddress: string;\n shippingAddress2?: string;\n houseNumber?: string;\n email?: string;\n taxId?: string;\n remark?: string;\n consigneeID?: string;\n payType?: 2 | 3;\n shopAmount?: number;\n logisticName: string;\n fromCountryCode: string;\n platform?: string;\n iossType?: 1 | 2 | 3;\n iossNumber?: string;\n products: OrderProduct[];\n podProperties?: {\n areaName: string;\n links: string[];\n type: string;\n layer?: unknown[];\n }[];\n}\n\ninterface ProductInfo {\n isGroup: boolean;\n lineItemId: string;\n quantity: number;\n subOrderProducts: {\n lineItemId: string;\n quantity: number;\n variantId: string;\n }[];\n variantId: string;\n}\n\n// Define the order interception reasons structure\ninterface InterceptOrderReason {\n code: number;\n message: string;\n}\n\nexport interface CreateOrderResponse {\n actualPayment?: number;\n cjPayUrl?: string;\n interceptOrderReasons: InterceptOrderReason[];\n iossAmount?: number;\n iossTaxHandlingFee?: number;\n logisticsMiss?: boolean;\n orderAmount?: number;\n orderId: string;\n orderNumber: string;\n orderOriginalAmount?: number;\n orderStatus: string;\n postageAmount?: number;\n postageDiscountAmount?: number;\n postageOriginalAmount?: number;\n productAmount?: number;\n productDiscountAmount?: number;\n productInfoList: ProductInfo[];\n productOriginalAmount?: number;\n shipmentOrderId: string;\n totalDiscountAmount?: number;\n}\n\nexport interface Order {\n cjOrderId: null | string;\n createDate: string;\n logisticName?: string;\n orderAmount?: number;\n orderId: string;\n orderNum: string;\n orderStatus: string;\n orderWeight: number;\n paymentDate?: string;\n postageAmount?: number;\n productAmount: number;\n productList?: any[]; // You may replace `any` with a more specific type if known\n remark?: string;\n shippingAddress: string;\n shippingCity: string;\n shippingCountryCode: string;\n shippingCustomerName: string;\n shippingPhone: string;\n shippingProvince: string;\n trackNumber?: string;\n}\n\nexport interface ListOrderResponse {\n list: Order[];\n pageNum: number;\n pageSize: number;\n total: number;\n}\n\nexport interface QueryOrderParams {\n orderId?: string;\n orderNum?: string;\n}\n\nexport interface ProductListEntry {\n quantity: number;\n sellPrice: number;\n vid: string;\n}\n\nexport interface QueryOrderResponse {\n cjOrderId: null | string;\n createDate: string;\n isComplete: number;\n logisticName?: string;\n orderAmount: number;\n orderId: string;\n orderNum: string;\n orderStatus: string;\n orderWeight: number;\n paymentDate?: string;\n postageAmount: number;\n productAmount: number;\n productList: ProductListEntry[];\n remark?: string;\n shippingAddress: string;\n shippingCity: string;\n shippingCountryCode: string;\n shippingCustomerName: string;\n shippingPhone: string;\n shippingProvince: string;\n trackNumber?: string;\n}\n"],"names":[],"mappings":"AAyHA,WAsBC"}
@@ -0,0 +1,16 @@
1
+ import type { APIResponse } from '../../error-types';
2
+ import type { CreateOrderPayload, CreateOrderResponse, ListOrderResponse, QueryOrderParams, QueryOrderResponse } from './order-types.ts';
3
+ interface ListOrderParams {
4
+ orderIds?: string[];
5
+ pageNum?: number;
6
+ pageSize?: number;
7
+ status?: string;
8
+ }
9
+ export declare function createOrder(orderData: CreateOrderPayload): Promise<APIResponse<CreateOrderResponse>>;
10
+ export declare function listOrders(accessToken: string, params?: ListOrderParams): Promise<APIResponse<ListOrderResponse>>;
11
+ export declare function queryOrder(params: QueryOrderParams): Promise<APIResponse<QueryOrderResponse>>;
12
+ export declare function deleteOrder(orderId: string): Promise<APIResponse<{
13
+ data: string;
14
+ }>>;
15
+ export declare function confirmOrder(orderId: string): Promise<APIResponse<string>>;
16
+ export {};
@@ -0,0 +1,167 @@
1
+ import { cjApiClient } from '../../api-client';
2
+ import { getCurrentAccessToken } from '../access-token';
3
+ export async function createOrder(orderData) {
4
+ try {
5
+ const accessToken = await getCurrentAccessToken();
6
+ const response = await cjApiClient.post('shopping/order/createOrderV2', orderData, {
7
+ headers: {
8
+ 'CJ-Access-Token': accessToken,
9
+ 'Content-Type': 'application/json'
10
+ }
11
+ });
12
+ if (!response.data.result) {
13
+ return {
14
+ error: response.data.message || 'Failed to create order'
15
+ };
16
+ }
17
+ if (!response.data.data) {
18
+ return {
19
+ error: 'No order created'
20
+ };
21
+ }
22
+ return {
23
+ data: response.data.data
24
+ };
25
+ } catch (error) {
26
+ console.error(`Error creating order [${error.code}]: ${error.message}`);
27
+ return {
28
+ error: error.message || 'An unknown error occurred'
29
+ };
30
+ }
31
+ }
32
+ export async function listOrders(accessToken, params = {}) {
33
+ try {
34
+ const response = await cjApiClient.get('shopping/order/list', {
35
+ headers: {
36
+ 'CJ-Access-Token': accessToken
37
+ },
38
+ params
39
+ });
40
+ if (!response.data.result) {
41
+ return {
42
+ error: response.data.message || 'Failed to retrieve orders'
43
+ };
44
+ }
45
+ if (!response.data.data) {
46
+ return {
47
+ error: 'No orders found'
48
+ };
49
+ }
50
+ return {
51
+ data: response.data.data
52
+ };
53
+ } catch (error) {
54
+ console.error(`Error listing orders [${error.code}]: ${error.message}`);
55
+ return {
56
+ error: error.message || 'An unknown error occurred'
57
+ };
58
+ }
59
+ }
60
+ export async function queryOrder(params) {
61
+ if (!params.orderId && !params.orderNum) {
62
+ return {
63
+ error: 'Either orderId or orderNum must be provided.'
64
+ };
65
+ }
66
+ try {
67
+ const accessToken = await getCurrentAccessToken();
68
+ const response = await cjApiClient.get('shopping/order/getOrderDetail', {
69
+ headers: {
70
+ 'CJ-Access-Token': accessToken
71
+ },
72
+ params
73
+ });
74
+ if (!response.data.result) {
75
+ return {
76
+ error: response.data.message || 'Failed to retrieve order details'
77
+ };
78
+ }
79
+ if (!response.data.data) {
80
+ return {
81
+ error: 'No order details found'
82
+ };
83
+ }
84
+ return {
85
+ data: response.data.data
86
+ };
87
+ } catch (error) {
88
+ console.error(`Error querying order [${error.code}]: ${error.message}`);
89
+ return {
90
+ error: error.message || 'An unknown error occurred'
91
+ };
92
+ }
93
+ }
94
+ export async function deleteOrder(orderId) {
95
+ if (!orderId) {
96
+ return {
97
+ error: 'orderId must be provided.'
98
+ };
99
+ }
100
+ try {
101
+ const accessToken = await getCurrentAccessToken();
102
+ const response = await cjApiClient.delete('shopping/order/deleteOrder', {
103
+ headers: {
104
+ 'CJ-Access-Token': accessToken
105
+ },
106
+ params: {
107
+ orderId
108
+ }
109
+ });
110
+ if (!response.data.result) {
111
+ return {
112
+ error: response.data.message || 'Failed to delete order'
113
+ };
114
+ }
115
+ if (!response.data.data) {
116
+ return {
117
+ error: 'Order deletion not confirmed, no data returned'
118
+ };
119
+ }
120
+ return {
121
+ data: response.data.data
122
+ };
123
+ } catch (error) {
124
+ console.error(`Error deleting order [${error.code}]: ${error.message}`);
125
+ return {
126
+ error: error.message || 'An unknown error occurred'
127
+ };
128
+ }
129
+ }
130
+ export async function confirmOrder(orderId) {
131
+ if (!orderId) {
132
+ return {
133
+ error: 'orderId must be provided.'
134
+ };
135
+ }
136
+ try {
137
+ const accessToken = await getCurrentAccessToken();
138
+ const response = await cjApiClient.patch('shopping/order/confirmOrder', {
139
+ orderId
140
+ }, {
141
+ headers: {
142
+ 'CJ-Access-Token': accessToken,
143
+ 'Content-Type': 'application/json'
144
+ }
145
+ });
146
+ if (!response.data.result) {
147
+ return {
148
+ error: response.data.message || 'Failed to confirm order'
149
+ };
150
+ }
151
+ if (!response.data.data) {
152
+ return {
153
+ error: 'Order confirmation not confirmed, no data returned'
154
+ };
155
+ }
156
+ return {
157
+ data: response.data.data
158
+ };
159
+ } catch (error) {
160
+ console.error(`Error confirming order [${error.code}]: ${error.message}`);
161
+ return {
162
+ error: error.message || 'An unknown error occurred'
163
+ };
164
+ }
165
+ }
166
+
167
+ //# sourceMappingURL=orders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sdk/orders/orders.ts"],"sourcesContent":["import type { APIResponse } from '../../error-types'\nimport type { CJApiResponse } from '../../types'\nimport type {\n CreateOrderPayload,\n CreateOrderResponse,\n ListOrderResponse,\n QueryOrderParams,\n QueryOrderResponse,\n} from './order-types.ts'\n\nimport { cjApiClient } from '../../api-client'\nimport { getCurrentAccessToken } from '../access-token'\n\ninterface ListOrderParams {\n orderIds?: string[]\n pageNum?: number\n pageSize?: number\n status?: string\n}\n\nexport async function createOrder(\n orderData: CreateOrderPayload,\n): Promise<APIResponse<CreateOrderResponse>> {\n try {\n const accessToken = await getCurrentAccessToken()\n const response = await cjApiClient.post<CJApiResponse<CreateOrderResponse>>(\n 'shopping/order/createOrderV2',\n orderData,\n {\n headers: {\n 'CJ-Access-Token': accessToken,\n 'Content-Type': 'application/json',\n },\n },\n )\n\n if (!response.data.result) {\n return {\n error: response.data.message || 'Failed to create order',\n }\n }\n\n if (!response.data.data) {\n return { error: 'No order created' }\n }\n\n return { data: response.data.data }\n } catch (error: any) {\n console.error(`Error creating order [${error.code}]: ${error.message}`)\n return { error: error.message || 'An unknown error occurred' }\n }\n}\n\nexport async function listOrders(\n accessToken: string,\n params: ListOrderParams = {},\n): Promise<APIResponse<ListOrderResponse>> {\n try {\n const response = await cjApiClient.get<CJApiResponse<ListOrderResponse>>(\n 'shopping/order/list',\n {\n headers: {\n 'CJ-Access-Token': accessToken,\n },\n params,\n },\n )\n\n if (!response.data.result) {\n return {\n error: response.data.message || 'Failed to retrieve orders',\n }\n }\n\n if (!response.data.data) {\n return { error: 'No orders found' }\n }\n\n return { data: response.data.data }\n } catch (error: any) {\n console.error(`Error listing orders [${error.code}]: ${error.message}`)\n return { error: error.message || 'An unknown error occurred' }\n }\n}\n\nexport async function queryOrder(\n params: QueryOrderParams,\n): Promise<APIResponse<QueryOrderResponse>> {\n if (!params.orderId && !params.orderNum) {\n return { error: 'Either orderId or orderNum must be provided.' }\n }\n\n try {\n const accessToken = await getCurrentAccessToken()\n const response = await cjApiClient.get<CJApiResponse<QueryOrderResponse>>(\n 'shopping/order/getOrderDetail',\n {\n headers: {\n 'CJ-Access-Token': accessToken,\n },\n params,\n },\n )\n\n if (!response.data.result) {\n return {\n error: response.data.message || 'Failed to retrieve order details',\n }\n }\n\n if (!response.data.data) {\n return { error: 'No order details found' }\n }\n\n return { data: response.data.data }\n } catch (error: any) {\n console.error(`Error querying order [${error.code}]: ${error.message}`)\n return { error: error.message || 'An unknown error occurred' }\n }\n}\n\nexport async function deleteOrder(orderId: string): Promise<APIResponse<{ data: string }>> {\n if (!orderId) {\n return { error: 'orderId must be provided.' }\n }\n\n try {\n const accessToken = await getCurrentAccessToken()\n const response = await cjApiClient.delete<CJApiResponse<{ data: string }>>(\n 'shopping/order/deleteOrder',\n {\n headers: {\n 'CJ-Access-Token': accessToken,\n },\n params: { orderId },\n },\n )\n\n if (!response.data.result) {\n return {\n error: response.data.message || 'Failed to delete order',\n }\n }\n\n if (!response.data.data) {\n return { error: 'Order deletion not confirmed, no data returned' }\n }\n\n return { data: response.data.data }\n } catch (error: any) {\n console.error(`Error deleting order [${error.code}]: ${error.message}`)\n return { error: error.message || 'An unknown error occurred' }\n }\n}\n\nexport async function confirmOrder(orderId: string): Promise<APIResponse<string>> {\n if (!orderId) {\n return { error: 'orderId must be provided.' }\n }\n\n try {\n const accessToken = await getCurrentAccessToken()\n const response = await cjApiClient.patch<CJApiResponse<string>>(\n 'shopping/order/confirmOrder',\n { orderId },\n {\n headers: {\n 'CJ-Access-Token': accessToken,\n 'Content-Type': 'application/json',\n },\n },\n )\n\n if (!response.data.result) {\n return {\n error: response.data.message || 'Failed to confirm order',\n }\n }\n\n if (!response.data.data) {\n return {\n error: 'Order confirmation not confirmed, no data returned',\n }\n }\n\n return { data: response.data.data }\n } catch (error: any) {\n console.error(`Error confirming order [${error.code}]: ${error.message}`)\n return { error: error.message || 'An unknown error occurred' }\n }\n}\n"],"names":["cjApiClient","getCurrentAccessToken","createOrder","orderData","accessToken","response","post","headers","data","result","error","message","console","code","listOrders","params","get","queryOrder","orderId","orderNum","deleteOrder","delete","confirmOrder","patch"],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ import type { CJApiResponse } from '../../types';
2
+ /**
3
+ * API Request Parameters for CJ Dropshipping Product List
4
+ */
5
+ export interface ProductListParams {
6
+ /** Brand ID filter */
7
+ brandOpenId?: number;
8
+ /** Category ID for filtering */
9
+ categoryId?: string;
10
+ /** Country code, e.g., CN, US */
11
+ countryCode?: string;
12
+ /** Start creation time, format: yyyy-MM-dd hh:mm:ss */
13
+ createTimeFrom?: string;
14
+ /** End creation time, format: yyyy-MM-dd hh:mm:ss */
15
+ createTimeTo?: string;
16
+ /** Delivery time in hours, values: 24, 48, 72 */
17
+ deliveryTime?: string;
18
+ /** Maximum inventory filter */
19
+ endInventory?: number;
20
+ /** Maximum listed number */
21
+ maxListedNum?: number;
22
+ /** Maximum price filter */
23
+ maxPrice?: number;
24
+ /** Minimum listed number */
25
+ minListedNum?: number;
26
+ /** Minimum price filter */
27
+ minPrice?: number;
28
+ /** Sort field: createAt/listedNum, default is createAt */
29
+ orderBy?: string;
30
+ /** Page number
31
+ * @default 1
32
+ * @example 1
33
+ */
34
+ pageNum?: number;
35
+ /** Quantity of results on each page, default is 20 */
36
+ pageSize?: number;
37
+ /** Product ID for specific lookup */
38
+ pid?: string;
39
+ /** Product name for search */
40
+ productName?: string;
41
+ /** Product name in English */
42
+ productNameEn?: string;
43
+ /** Product SKU for specific lookup */
44
+ productSku?: string;
45
+ /** Product type, values: ORDINARY_PRODUCT, SUPPLIER_PRODUCT */
46
+ productType?: string;
47
+ /** Search type: 0 = All, 2 = Trending, 21 = Trending View More */
48
+ searchType?: number;
49
+ /** Sort order: asc/desc, default is desc */
50
+ sort?: string;
51
+ /** Minimum inventory filter */
52
+ startInventory?: number;
53
+ /** Verified inventory type: 1 = Verified, 2 = Unverified */
54
+ verifiedWarehouse?: number;
55
+ }
56
+ /**
57
+ * Product Data Structure
58
+ */
59
+ export interface Product {
60
+ addMarkStatus?: boolean;
61
+ categoryId: string;
62
+ categoryName: string;
63
+ createTime?: string;
64
+ isVideo?: number;
65
+ listedNum?: number;
66
+ listingCount?: number;
67
+ pid: string;
68
+ productImage: string;
69
+ productName: string[];
70
+ productNameEn: string;
71
+ productSku: string;
72
+ productType: null | string;
73
+ productUnit: string;
74
+ productWeight: number;
75
+ saleStatus?: number;
76
+ sellPrice: number;
77
+ sourceFrom?: string;
78
+ supplierId?: string;
79
+ supplierName?: string;
80
+ }
81
+ /**
82
+ * Parameters for querying product details.
83
+ */
84
+ export interface ProductQueryParams {
85
+ /** Product ID
86
+ * @example "000B9312-456A-4D31-94BD-B083E2A198E8"
87
+ */
88
+ pid?: string;
89
+ /** Product SKU
90
+ * @example "CJJJJTJT05843"
91
+ */
92
+ productSku?: string;
93
+ /** Variant SKU
94
+ * @example "CJJJJTJT05843-Black"
95
+ */
96
+ variantSku?: string;
97
+ }
98
+ /**
99
+ * Variant details of a product.
100
+ */
101
+ export interface ProductVariant {
102
+ createTime?: string;
103
+ pid: string;
104
+ variantHeight?: number;
105
+ variantImage?: string;
106
+ variantKey?: string;
107
+ variantLength?: number;
108
+ variantName?: string;
109
+ variantNameEn: string;
110
+ variantProperty?: string;
111
+ variantSellPrice?: number;
112
+ variantSku: string;
113
+ variantStandard?: string;
114
+ variantSugSellPrice?: number;
115
+ variantUnit?: string;
116
+ variantVolume?: number;
117
+ variantWeight?: number;
118
+ variantWidth?: number;
119
+ vid: string;
120
+ }
121
+ /**
122
+ * Product details.
123
+ */
124
+ export interface ProductDetails {
125
+ categoryId: string;
126
+ categoryName: string;
127
+ createrTime?: string;
128
+ description?: string;
129
+ entryCode?: string;
130
+ entryName?: string;
131
+ entryNameEn?: string;
132
+ listedNum: number;
133
+ materialKey?: string[];
134
+ materialName?: string[];
135
+ materialNameEn?: string[];
136
+ packingKey?: string[];
137
+ packingName?: string[];
138
+ packingNameEn?: string[];
139
+ packingWeight?: number;
140
+ pid: string;
141
+ productImage: string;
142
+ productKey?: string[];
143
+ productKeyEn?: string;
144
+ productName: string[];
145
+ productNameEn: string;
146
+ productSku: string;
147
+ productType: 'ORDINARY_PRODUCT' | 'PACKAGING_PRODUCT' | 'SERVICE_PRODUCT' | 'SUPPLIER_PRODUCT' | 'SUPPLIER_SHIPPED_PRODUCT';
148
+ productUnit: string;
149
+ productWeight: number;
150
+ sellPrice: number;
151
+ status: '0' | '1' | '2' | '3' | '4' | '5' | '6';
152
+ suggestSellPrice?: string;
153
+ supplierId?: string;
154
+ supplierName?: string;
155
+ variants?: ProductVariant[];
156
+ }
157
+ export interface CategoryThirdLevel {
158
+ categoryId: string;
159
+ categoryName: string;
160
+ }
161
+ interface CategorySecondLevel {
162
+ categorySecondList: CategoryThirdLevel[];
163
+ categorySecondName: string;
164
+ }
165
+ export interface CategoryFirstLevel {
166
+ categoryFirstList: CategorySecondLevel[];
167
+ categoryFirstName: string;
168
+ }
169
+ /**
170
+ * API Response Structure for CJ Dropshipping Category List
171
+ */
172
+ export type CategoryListResponse = CJApiResponse<CategoryFirstLevel[]>;
173
+ /**
174
+ * API Response Structure for CJ Dropshipping Product List
175
+ */
176
+ export type ProductListResponse = CJApiResponse<{
177
+ list: Product[];
178
+ pageNum: number;
179
+ pageSize: number;
180
+ total: number;
181
+ }>;
182
+ /**
183
+ * API response format for product query.
184
+ */
185
+ export type ProductQueryResponse = CJApiResponse<ProductDetails>;
186
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * API response format for product query.
3
+ */ export { };
4
+
5
+ //# sourceMappingURL=product-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sdk/products/product-types.ts"],"sourcesContent":["import type { CJApiResponse } from '../../types'\n\n/**\n * API Request Parameters for CJ Dropshipping Product List\n */\nexport interface ProductListParams {\n /** Brand ID filter */\n brandOpenId?: number\n /** Category ID for filtering */\n categoryId?: string\n /** Country code, e.g., CN, US */\n countryCode?: string\n /** Start creation time, format: yyyy-MM-dd hh:mm:ss */\n createTimeFrom?: string\n /** End creation time, format: yyyy-MM-dd hh:mm:ss */\n createTimeTo?: string\n /** Delivery time in hours, values: 24, 48, 72 */\n deliveryTime?: string\n /** Maximum inventory filter */\n endInventory?: number\n /** Maximum listed number */\n maxListedNum?: number\n /** Maximum price filter */\n maxPrice?: number\n /** Minimum listed number */\n minListedNum?: number\n /** Minimum price filter */\n minPrice?: number\n /** Sort field: createAt/listedNum, default is createAt */\n orderBy?: string\n /** Page number\n * @default 1\n * @example 1\n */\n pageNum?: number\n /** Quantity of results on each page, default is 20 */\n pageSize?: number\n /** Product ID for specific lookup */\n pid?: string\n /** Product name for search */\n productName?: string\n /** Product name in English */\n productNameEn?: string\n /** Product SKU for specific lookup */\n productSku?: string\n /** Product type, values: ORDINARY_PRODUCT, SUPPLIER_PRODUCT */\n productType?: string\n /** Search type: 0 = All, 2 = Trending, 21 = Trending View More */\n searchType?: number\n /** Sort order: asc/desc, default is desc */\n sort?: string\n /** Minimum inventory filter */\n startInventory?: number\n /** Verified inventory type: 1 = Verified, 2 = Unverified */\n verifiedWarehouse?: number\n}\n\n/**\n * Product Data Structure\n */\nexport interface Product {\n addMarkStatus?: boolean\n categoryId: string\n categoryName: string\n createTime?: string\n isVideo?: number\n listedNum?: number\n listingCount?: number\n pid: string\n productImage: string\n productName: string[]\n productNameEn: string\n productSku: string\n productType: null | string\n productUnit: string\n productWeight: number\n saleStatus?: number\n sellPrice: number\n sourceFrom?: string\n supplierId?: string\n supplierName?: string\n}\n\n/**\n * Parameters for querying product details.\n */\nexport interface ProductQueryParams {\n /** Product ID\n * @example \"000B9312-456A-4D31-94BD-B083E2A198E8\"\n */\n pid?: string\n\n /** Product SKU\n * @example \"CJJJJTJT05843\"\n */\n productSku?: string\n\n /** Variant SKU\n * @example \"CJJJJTJT05843-Black\"\n */\n variantSku?: string\n}\n\n/**\n * Variant details of a product.\n */\nexport interface ProductVariant {\n createTime?: string\n pid: string\n variantHeight?: number\n variantImage?: string\n variantKey?: string\n variantLength?: number\n variantName?: string\n variantNameEn: string\n variantProperty?: string\n variantSellPrice?: number\n variantSku: string\n variantStandard?: string\n variantSugSellPrice?: number\n variantUnit?: string\n variantVolume?: number\n variantWeight?: number\n variantWidth?: number\n vid: string\n}\n\n/**\n * Product details.\n */\nexport interface ProductDetails {\n categoryId: string\n categoryName: string\n createrTime?: string\n description?: string\n entryCode?: string\n entryName?: string\n entryNameEn?: string\n listedNum: number\n materialKey?: string[]\n materialName?: string[]\n materialNameEn?: string[]\n packingKey?: string[]\n packingName?: string[]\n packingNameEn?: string[]\n packingWeight?: number\n pid: string\n productImage: string\n productKey?: string[]\n productKeyEn?: string\n productName: string[]\n productNameEn: string\n productSku: string\n productType:\n | 'ORDINARY_PRODUCT'\n | 'PACKAGING_PRODUCT'\n | 'SERVICE_PRODUCT'\n | 'SUPPLIER_PRODUCT'\n | 'SUPPLIER_SHIPPED_PRODUCT'\n productUnit: string\n productWeight: number\n sellPrice: number\n status: '0' | '1' | '2' | '3' | '4' | '5' | '6'\n suggestSellPrice?: string\n supplierId?: string\n supplierName?: string\n variants?: ProductVariant[]\n}\n\nexport interface CategoryThirdLevel {\n categoryId: string\n categoryName: string\n}\n\ninterface CategorySecondLevel {\n categorySecondList: CategoryThirdLevel[]\n categorySecondName: string\n}\n\nexport interface CategoryFirstLevel {\n categoryFirstList: CategorySecondLevel[]\n categoryFirstName: string\n}\n/**\n * API Response Structure for CJ Dropshipping Category List\n */\nexport type CategoryListResponse = CJApiResponse<CategoryFirstLevel[]>\n\n/**\n * API Response Structure for CJ Dropshipping Product List\n */\nexport type ProductListResponse = CJApiResponse<{\n list: Product[]\n pageNum: number\n pageSize: number\n total: number\n}>\n\n/**\n * API response format for product query.\n */\nexport type ProductQueryResponse = CJApiResponse<ProductDetails>\n"],"names":[],"mappings":"AAsMA;;CAEC,GACD,WAAgE"}
@@ -0,0 +1,9 @@
1
+ import type { APIResponse } from '../../error-types';
2
+ import type { CategoryFirstLevel, Product, ProductDetails } from './product-types.ts';
3
+ export declare function getProductCategory(accessToken: string, params: any): Promise<APIResponse<CategoryFirstLevel[]>>;
4
+ export declare function getProductList(params?: Record<string, any>): Promise<APIResponse<Product[]>>;
5
+ export declare function getProductDetails(queryParams: {
6
+ pid?: string;
7
+ productSku?: string;
8
+ variantSku?: string;
9
+ }): Promise<APIResponse<ProductDetails>>;
@@ -0,0 +1,96 @@
1
+ import { cjApiClient } from '../../api-client';
2
+ import { getCurrentAccessToken } from '../access-token';
3
+ export async function getProductCategory(accessToken, params) {
4
+ try {
5
+ const response = await cjApiClient.get('/product/getCategory', {
6
+ headers: {
7
+ 'CJ-Access-Token': accessToken
8
+ },
9
+ params
10
+ });
11
+ const data = response.data.data;
12
+ if (!data) {
13
+ return {
14
+ error: 'No categories found'
15
+ };
16
+ }
17
+ return {
18
+ data
19
+ };
20
+ } catch (error) {
21
+ console.error(`Error fetching categories [${error.code}]: ${error.message}`);
22
+ return {
23
+ error: error.message || 'Failed to fetch categories'
24
+ };
25
+ }
26
+ }
27
+ export async function getProductList(params = {}) {
28
+ const defaultParams = {
29
+ pageNum: 1,
30
+ pageSize: 20
31
+ };
32
+ const query = {
33
+ ...defaultParams,
34
+ ...params
35
+ };
36
+ try {
37
+ const accessToken = await getCurrentAccessToken();
38
+ const response = await cjApiClient.get('https://developers.cjdropshipping.com/api2.0/v1/product/list', {
39
+ headers: {
40
+ 'CJ-Access-Token': accessToken
41
+ },
42
+ params: query
43
+ });
44
+ const data = response.data;
45
+ if (!data.result) {
46
+ return {
47
+ error: data.message || 'Failed to fetch product list'
48
+ };
49
+ }
50
+ if (!data.data?.list) {
51
+ return {
52
+ error: 'No products found'
53
+ };
54
+ }
55
+ return {
56
+ data: data.data.list
57
+ };
58
+ } catch (error) {
59
+ console.error(`Error fetching product list [${error.code}]: ${error.message}`);
60
+ return {
61
+ error: error.message || 'Failed to fetch product list'
62
+ };
63
+ }
64
+ }
65
+ export async function getProductDetails(queryParams) {
66
+ const { pid, productSku, variantSku } = queryParams;
67
+ if (!pid && !productSku && !variantSku) {
68
+ return {
69
+ error: 'One of pid, productSku, or variantSku must be provided.'
70
+ };
71
+ }
72
+ try {
73
+ const accessToken = await getCurrentAccessToken();
74
+ const response = await cjApiClient.get('https://developers.cjdropshipping.com/api2.0/v1/product/query', {
75
+ headers: {
76
+ 'CJ-Access-Token': accessToken
77
+ },
78
+ params: queryParams
79
+ });
80
+ if (!response.data.result) {
81
+ return {
82
+ error: response.data.message || 'Failed to fetch product details'
83
+ };
84
+ }
85
+ return {
86
+ data: response.data.data
87
+ };
88
+ } catch (error) {
89
+ console.error(`Error fetching product details [${error.code}]: ${error.message}`);
90
+ return {
91
+ error: error.message || 'Failed to fetch product details'
92
+ };
93
+ }
94
+ }
95
+
96
+ //# sourceMappingURL=products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sdk/products/products.ts"],"sourcesContent":["import type { APIResponse } from '../../error-types'\nimport type {\n CategoryFirstLevel,\n CategoryListResponse,\n Product,\n ProductDetails,\n ProductListResponse,\n} from './product-types.ts'\n\nimport { cjApiClient } from '../../api-client'\nimport { getCurrentAccessToken } from '../access-token'\n\nexport async function getProductCategory(\n accessToken: string,\n params: any,\n): Promise<APIResponse<CategoryFirstLevel[]>> {\n try {\n const response = await cjApiClient.get<CategoryListResponse>('/product/getCategory', {\n headers: { 'CJ-Access-Token': accessToken },\n params,\n })\n\n const data = response.data.data\n if (!data) {\n return { error: 'No categories found' }\n }\n\n return { data }\n } catch (error: any) {\n console.error(`Error fetching categories [${error.code}]: ${error.message}`)\n return { error: error.message || 'Failed to fetch categories' }\n }\n}\n\nexport async function getProductList(\n params: Record<string, any> = {},\n): Promise<APIResponse<Product[]>> {\n const defaultParams = {\n pageNum: 1,\n pageSize: 20,\n }\n const query = { ...defaultParams, ...params }\n\n try {\n const accessToken = await getCurrentAccessToken()\n const response = await cjApiClient.get<ProductListResponse>(\n 'https://developers.cjdropshipping.com/api2.0/v1/product/list',\n {\n headers: {\n 'CJ-Access-Token': accessToken,\n },\n params: query,\n },\n )\n\n const data = response.data\n\n if (!data.result) {\n return { error: data.message || 'Failed to fetch product list' }\n }\n\n if (!data.data?.list) {\n return { error: 'No products found' }\n }\n\n return { data: data.data.list }\n } catch (error: any) {\n console.error(`Error fetching product list [${error.code}]: ${error.message}`)\n return { error: error.message || 'Failed to fetch product list' }\n }\n}\n\nexport async function getProductDetails(queryParams: {\n pid?: string\n productSku?: string\n variantSku?: string\n}): Promise<APIResponse<ProductDetails>> {\n const { pid, productSku, variantSku } = queryParams\n if (!pid && !productSku && !variantSku) {\n return {\n error: 'One of pid, productSku, or variantSku must be provided.',\n }\n }\n\n try {\n const accessToken = await getCurrentAccessToken()\n const response = await cjApiClient.get<{\n code: number\n data: ProductDetails\n message: string\n result: boolean\n }>('https://developers.cjdropshipping.com/api2.0/v1/product/query', {\n headers: {\n 'CJ-Access-Token': accessToken,\n },\n params: queryParams,\n })\n\n if (!response.data.result) {\n return {\n error: response.data.message || 'Failed to fetch product details',\n }\n }\n\n return { data: response.data.data }\n } catch (error: any) {\n console.error(`Error fetching product details [${error.code}]: ${error.message}`)\n return { error: error.message || 'Failed to fetch product details' }\n }\n}\n"],"names":["cjApiClient","getCurrentAccessToken","getProductCategory","accessToken","params","response","get","headers","data","error","console","code","message","getProductList","defaultParams","pageNum","pageSize","query","result","list","getProductDetails","queryParams","pid","productSku","variantSku"],"mappings":"AASA,SAASA,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,qBAAqB,QAAQ,kBAAiB;AAEvD,OAAO,eAAeC,mBACpBC,WAAmB,EACnBC,MAAW;IAEX,IAAI;QACF,MAAMC,WAAW,MAAML,YAAYM,GAAG,CAAuB,wBAAwB;YACnFC,SAAS;gBAAE,mBAAmBJ;YAAY;YAC1CC;QACF;QAEA,MAAMI,OAAOH,SAASG,IAAI,CAACA,IAAI;QAC/B,IAAI,CAACA,MAAM;YACT,OAAO;gBAAEC,OAAO;YAAsB;QACxC;QAEA,OAAO;YAAED;QAAK;IAChB,EAAE,OAAOC,OAAY;QACnBC,QAAQD,KAAK,CAAC,CAAC,2BAA2B,EAAEA,MAAME,IAAI,CAAC,GAAG,EAAEF,MAAMG,OAAO,EAAE;QAC3E,OAAO;YAAEH,OAAOA,MAAMG,OAAO,IAAI;QAA6B;IAChE;AACF;AAEA,OAAO,eAAeC,eACpBT,SAA8B,CAAC,CAAC;IAEhC,MAAMU,gBAAgB;QACpBC,SAAS;QACTC,UAAU;IACZ;IACA,MAAMC,QAAQ;QAAE,GAAGH,aAAa;QAAE,GAAGV,MAAM;IAAC;IAE5C,IAAI;QACF,MAAMD,cAAc,MAAMF;QAC1B,MAAMI,WAAW,MAAML,YAAYM,GAAG,CACpC,gEACA;YACEC,SAAS;gBACP,mBAAmBJ;YACrB;YACAC,QAAQa;QACV;QAGF,MAAMT,OAAOH,SAASG,IAAI;QAE1B,IAAI,CAACA,KAAKU,MAAM,EAAE;YAChB,OAAO;gBAAET,OAAOD,KAAKI,OAAO,IAAI;YAA+B;QACjE;QAEA,IAAI,CAACJ,KAAKA,IAAI,EAAEW,MAAM;YACpB,OAAO;gBAAEV,OAAO;YAAoB;QACtC;QAEA,OAAO;YAAED,MAAMA,KAAKA,IAAI,CAACW,IAAI;QAAC;IAChC,EAAE,OAAOV,OAAY;QACnBC,QAAQD,KAAK,CAAC,CAAC,6BAA6B,EAAEA,MAAME,IAAI,CAAC,GAAG,EAAEF,MAAMG,OAAO,EAAE;QAC7E,OAAO;YAAEH,OAAOA,MAAMG,OAAO,IAAI;QAA+B;IAClE;AACF;AAEA,OAAO,eAAeQ,kBAAkBC,WAIvC;IACC,MAAM,EAAEC,GAAG,EAAEC,UAAU,EAAEC,UAAU,EAAE,GAAGH;IACxC,IAAI,CAACC,OAAO,CAACC,cAAc,CAACC,YAAY;QACtC,OAAO;YACLf,OAAO;QACT;IACF;IAEA,IAAI;QACF,MAAMN,cAAc,MAAMF;QAC1B,MAAMI,WAAW,MAAML,YAAYM,GAAG,CAKnC,iEAAiE;YAClEC,SAAS;gBACP,mBAAmBJ;YACrB;YACAC,QAAQiB;QACV;QAEA,IAAI,CAAChB,SAASG,IAAI,CAACU,MAAM,EAAE;YACzB,OAAO;gBACLT,OAAOJ,SAASG,IAAI,CAACI,OAAO,IAAI;YAClC;QACF;QAEA,OAAO;YAAEJ,MAAMH,SAASG,IAAI,CAACA,IAAI;QAAC;IACpC,EAAE,OAAOC,OAAY;QACnBC,QAAQD,KAAK,CAAC,CAAC,gCAAgC,EAAEA,MAAME,IAAI,CAAC,GAAG,EAAEF,MAAMG,OAAO,EAAE;QAChF,OAAO;YAAEH,OAAOA,MAAMG,OAAO,IAAI;QAAkC;IACrE;AACF"}