lingxingapi 1.1.4__py3-none-any.whl
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.
- lingxingapi/__init__.py +7 -0
- lingxingapi/ads/__init__.py +0 -0
- lingxingapi/ads/api.py +5946 -0
- lingxingapi/ads/param.py +192 -0
- lingxingapi/ads/route.py +134 -0
- lingxingapi/ads/schema.py +2615 -0
- lingxingapi/api.py +557 -0
- lingxingapi/base/__init__.py +0 -0
- lingxingapi/base/api.py +568 -0
- lingxingapi/base/param.py +59 -0
- lingxingapi/base/route.py +11 -0
- lingxingapi/base/schema.py +198 -0
- lingxingapi/basic/__init__.py +0 -0
- lingxingapi/basic/api.py +466 -0
- lingxingapi/basic/param.py +72 -0
- lingxingapi/basic/route.py +20 -0
- lingxingapi/basic/schema.py +218 -0
- lingxingapi/errors.py +152 -0
- lingxingapi/fba/__init__.py +0 -0
- lingxingapi/fba/api.py +1691 -0
- lingxingapi/fba/param.py +250 -0
- lingxingapi/fba/route.py +30 -0
- lingxingapi/fba/schema.py +987 -0
- lingxingapi/fields.py +50 -0
- lingxingapi/finance/__init__.py +0 -0
- lingxingapi/finance/api.py +3091 -0
- lingxingapi/finance/param.py +616 -0
- lingxingapi/finance/route.py +44 -0
- lingxingapi/finance/schema.py +1243 -0
- lingxingapi/product/__init__.py +0 -0
- lingxingapi/product/api.py +2643 -0
- lingxingapi/product/param.py +934 -0
- lingxingapi/product/route.py +49 -0
- lingxingapi/product/schema.py +1004 -0
- lingxingapi/purchase/__init__.py +0 -0
- lingxingapi/purchase/api.py +496 -0
- lingxingapi/purchase/param.py +126 -0
- lingxingapi/purchase/route.py +11 -0
- lingxingapi/purchase/schema.py +215 -0
- lingxingapi/sales/__init__.py +0 -0
- lingxingapi/sales/api.py +3200 -0
- lingxingapi/sales/param.py +723 -0
- lingxingapi/sales/route.py +70 -0
- lingxingapi/sales/schema.py +1718 -0
- lingxingapi/source/__init__.py +0 -0
- lingxingapi/source/api.py +1799 -0
- lingxingapi/source/param.py +176 -0
- lingxingapi/source/route.py +38 -0
- lingxingapi/source/schema.py +1011 -0
- lingxingapi/tools/__init__.py +0 -0
- lingxingapi/tools/api.py +291 -0
- lingxingapi/tools/param.py +73 -0
- lingxingapi/tools/route.py +8 -0
- lingxingapi/tools/schema.py +169 -0
- lingxingapi/utils.py +456 -0
- lingxingapi/warehourse/__init__.py +0 -0
- lingxingapi/warehourse/api.py +1778 -0
- lingxingapi/warehourse/param.py +506 -0
- lingxingapi/warehourse/route.py +28 -0
- lingxingapi/warehourse/schema.py +926 -0
- lingxingapi-1.1.4.dist-info/METADATA +73 -0
- lingxingapi-1.1.4.dist-info/RECORD +65 -0
- lingxingapi-1.1.4.dist-info/WHEEL +5 -0
- lingxingapi-1.1.4.dist-info/licenses/LICENSE +22 -0
- lingxingapi-1.1.4.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,926 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
from typing import Any
|
|
3
|
+
from pydantic import BaseModel, Field, field_validator
|
|
4
|
+
from lingxingapi.base import schema as base_schema
|
|
5
|
+
from lingxingapi.base.schema import ResponseV1, FlattenDataList
|
|
6
|
+
from lingxingapi.fields import IntOrNone2Zero, FloatOrNone2Zero
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# 仓库 - 仓库设置 ----------------------------------------------------------------------------------------------------------------
|
|
10
|
+
# . Warehouse
|
|
11
|
+
class Warehouse(BaseModel):
|
|
12
|
+
"""仓库信息"""
|
|
13
|
+
|
|
14
|
+
# 仓库ID [原字段 'wid']
|
|
15
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
16
|
+
# 仓库类型 [原字段 'type']
|
|
17
|
+
# (1: 本地仓, 3: 海外仓, 4: 亚马逊平台仓, 6: AWD仓)
|
|
18
|
+
warehouse_type: int = Field(validation_alias="type")
|
|
19
|
+
# 仓库名称 [原字段 'name']
|
|
20
|
+
warehouse_name: str = Field(validation_alias="name")
|
|
21
|
+
# 仓库国家代码 [原字段 'country_code']
|
|
22
|
+
warehouse_country_code: str = Field(validation_alias="country_code")
|
|
23
|
+
# 仓库服务商ID (仅仓库类型为3时有值) [原字段 'wp_id']
|
|
24
|
+
provider_id: int = Field(validation_alias="wp_id")
|
|
25
|
+
# 仓库服务商名称 (仅仓库类型为3时有值) [原字段 'wp_name']
|
|
26
|
+
provider_name: str = Field(validation_alias="wp_name")
|
|
27
|
+
# 第三方仓库名称 [原字段 't_warehouse_name']
|
|
28
|
+
third_party_warehouse_name: str = Field(validation_alias="t_warehouse_name")
|
|
29
|
+
# 第三方仓库代码 [原字段 't_warehouse_code']
|
|
30
|
+
third_party_warehouse_code: str = Field(validation_alias="t_warehouse_code")
|
|
31
|
+
# 第三方仓库所在地理位置 [原字段 't_country_area_name']
|
|
32
|
+
thrid_party_warehouse_location: str = Field(validation_alias="t_country_area_name")
|
|
33
|
+
# 第三方仓库状态 (1: 启用, 0: 停用) [原字段 't_status']
|
|
34
|
+
thrid_party_warehouse_status: IntOrNone2Zero = Field(validation_alias="t_status")
|
|
35
|
+
# 是否已删除 (0: 否, 1: 是) [原字段 'is_delete']
|
|
36
|
+
deleted: int = Field(validation_alias="is_delete")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class Warehouses(ResponseV1):
|
|
40
|
+
"""仓库信息列表"""
|
|
41
|
+
|
|
42
|
+
data: list[Warehouse]
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# . Warehouse Bin
|
|
46
|
+
class WarehouseBinItem(BaseModel):
|
|
47
|
+
"""仓库货架(仓位)货物信息"""
|
|
48
|
+
|
|
49
|
+
# 领星店铺ID [原字段 'store_id']
|
|
50
|
+
sid: int = Field(validation_alias="store_id")
|
|
51
|
+
# 领星店铺名称
|
|
52
|
+
seller_name: str
|
|
53
|
+
# 领星本地商品SKU [原字段 'sku']
|
|
54
|
+
lsku: str = Field(validation_alias="sku")
|
|
55
|
+
# 商品FNSKU
|
|
56
|
+
fnsku: str
|
|
57
|
+
# 领星商品ID
|
|
58
|
+
product_id: int
|
|
59
|
+
# 领星商品名称
|
|
60
|
+
product_name: str
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class WarehouseBin(BaseModel):
|
|
64
|
+
"""仓库货架(仓位)信息"""
|
|
65
|
+
|
|
66
|
+
# 仓库ID [原字段 'wid']
|
|
67
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
68
|
+
# 仓库名称 [原字段 'Ware_house_name']
|
|
69
|
+
warehouse_name: str = Field(validation_alias="Ware_house_name")
|
|
70
|
+
# 仓库货架(仓位)ID [原字段 'id']
|
|
71
|
+
bin_id: int = Field(validation_alias="id")
|
|
72
|
+
# 仓库货架(仓位)名称 [原字段 'storage_bin']
|
|
73
|
+
bin_name: str = Field(validation_alias="storage_bin")
|
|
74
|
+
# 仓库货架(仓位)类型 (5: 可用, 6: 次品) [原字段 'type']
|
|
75
|
+
bin_type: IntOrNone2Zero = Field(validation_alias="type")
|
|
76
|
+
# 仓库货架(仓位)状态 (0: 停用, 1: 启用) [原字段 'status']
|
|
77
|
+
bin_status: IntOrNone2Zero = Field(validation_alias="status")
|
|
78
|
+
# 仓库货架(仓位)货物列表 [原字段 'sku_fnsku']
|
|
79
|
+
skus: list[WarehouseBinItem] = Field(validation_alias="sku_fnsku")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class WarehouseBins(ResponseV1):
|
|
83
|
+
"""仓库货架(仓位)货物信息列表"""
|
|
84
|
+
|
|
85
|
+
data: list[WarehouseBin]
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# 仓库 - 库存&流水 ---------------------------------------------------------------------------------------------------------------
|
|
89
|
+
# . FBA Inventory
|
|
90
|
+
class FbaInventoryFulfillableLocal(BaseModel):
|
|
91
|
+
"""FBA库存多国店铺本地可售库存信息"""
|
|
92
|
+
|
|
93
|
+
# fmt: off
|
|
94
|
+
# 店铺名称 [原字段 'name']
|
|
95
|
+
seller_name: str = Field(validation_alias="name")
|
|
96
|
+
# 店铺本地可售数量 [原字段 'quantity_for_local_fulfillment']
|
|
97
|
+
afn_fulfillable_local: int = Field(validation_alias="quantity_for_local_fulfillment")
|
|
98
|
+
# fmt: on
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class FbaInventoryItem(BaseModel):
|
|
102
|
+
"""FBA库存产品信息"""
|
|
103
|
+
|
|
104
|
+
# fmt: off
|
|
105
|
+
# 仓库名称 [原字段 'wname']
|
|
106
|
+
warehouse_name: str = Field(validation_alias="wname")
|
|
107
|
+
# 领星店铺ID [sid + msku 唯一键]
|
|
108
|
+
sid: int
|
|
109
|
+
# 商品ASIN
|
|
110
|
+
asin: str
|
|
111
|
+
# 亚马逊SKU
|
|
112
|
+
msku: str
|
|
113
|
+
# 领星本地SKU [原字段 'sku']
|
|
114
|
+
lsku: str = Field(validation_alias="sku")
|
|
115
|
+
# 亚马逊FNSKU
|
|
116
|
+
fnsku: str
|
|
117
|
+
# 领星商品名称
|
|
118
|
+
product_name: str
|
|
119
|
+
# 商品类型ID
|
|
120
|
+
category_id: int
|
|
121
|
+
# 商品类型名称
|
|
122
|
+
category_name: str
|
|
123
|
+
# 商品品牌ID
|
|
124
|
+
brand_id: int
|
|
125
|
+
# 商品品牌名称
|
|
126
|
+
brand_name: str
|
|
127
|
+
# 商品图片链接 [原字段 'product_image']
|
|
128
|
+
image_url: str = Field(validation_alias="product_image")
|
|
129
|
+
# 商品配送方式 (如: "FBA" 或 "FBM") [原字段 'fulfillment_channel_name']
|
|
130
|
+
fulfillment_channel: str = Field(validation_alias="fulfillment_channel_name")
|
|
131
|
+
# 库存共享类型 [原字段 'share_type']
|
|
132
|
+
# (0: 库存不共享, 1: 库存北美共享, 2: 库存欧洲共享)
|
|
133
|
+
stock_share_type: int = Field(validation_alias="share_type")
|
|
134
|
+
# FBA 多国店铺本地可售库存信息列表 [原字段 'afn_fulfillable_quantity_multi']
|
|
135
|
+
afn_fulfillable_local: list[FbaInventoryFulfillableLocal] = Field(validation_alias="afn_fulfillable_quantity_multi")
|
|
136
|
+
# FBA 总可售库存数量 [原字段 'total_fulfillable_quantity']
|
|
137
|
+
# afn_fulfillable + afn_reserved_fc_processing + afn_reserved_fc_transfers
|
|
138
|
+
afn_fulfillable_total: int = Field(validation_alias="total_fulfillable_quantity")
|
|
139
|
+
# FBA 可售库存数量 [原字段 'afn_fulfillable_quantity']
|
|
140
|
+
afn_fulfillable: int = Field(validation_alias="afn_fulfillable_quantity")
|
|
141
|
+
# FBA 在库待调仓的库存数量 [原字段 'reserved_fc_processing']
|
|
142
|
+
afn_reserved_fc_processing: int = Field(validation_alias="reserved_fc_processing")
|
|
143
|
+
# FBA 在库调仓中的库存数量 [原字段 'reserved_fc_transfers']
|
|
144
|
+
afn_reserved_fc_transfers: int = Field(validation_alias="reserved_fc_transfers")
|
|
145
|
+
# FBA 在库待发货的库存数量 [原字段 'reserved_customerorders']
|
|
146
|
+
afn_reserved_customer_order: int = Field(validation_alias="reserved_customerorders")
|
|
147
|
+
# FBA 在库不可售的库存数量 [原字段 'afn_unsellable_quantity']
|
|
148
|
+
afn_unsellable: int = Field(validation_alias="afn_unsellable_quantity")
|
|
149
|
+
# FBA 实际发货在途的数量 [原字段 'afn_erp_real_shipped_quantity']
|
|
150
|
+
afn_actual_shipped: int = Field(validation_alias="afn_erp_real_shipped_quantity")
|
|
151
|
+
# FBA 发货在途的库存数量 [原字段 'afn_inbound_shipped_quantity']
|
|
152
|
+
afn_inbound_shipped: int = Field(validation_alias="afn_inbound_shipped_quantity")
|
|
153
|
+
# FBA 发货计划入库的库存数量 [原字段 'afn_inbound_working_quantity']
|
|
154
|
+
afn_inbound_working: int = Field(validation_alias="afn_inbound_working_quantity")
|
|
155
|
+
# FBA 发货入库接收中的库存数量 [原字段 'afn_inbound_receiving_quantity']
|
|
156
|
+
afn_inbound_receiving: int = Field(validation_alias="afn_inbound_receiving_quantity")
|
|
157
|
+
# FBA 调查中的库存数量 [原字段 'afn_researching_quantity']
|
|
158
|
+
afn_researching: int = Field(validation_alias="afn_researching_quantity")
|
|
159
|
+
# 库龄0-30天的库存数量 [原字段 'inv_age_0_to_30_days']
|
|
160
|
+
age_0_to_30_days: int = Field(validation_alias="inv_age_0_to_30_days")
|
|
161
|
+
# 库龄31-60天的库存数量 [原字段 'inv_age_31_to_60_days']
|
|
162
|
+
age_31_to_60_days: int = Field(validation_alias="inv_age_31_to_60_days")
|
|
163
|
+
# 库龄61-90天的库存数量 [原字段 'inv_age_61_to_90_days']
|
|
164
|
+
age_61_to_90_days: int = Field(validation_alias="inv_age_61_to_90_days")
|
|
165
|
+
# 库龄0-90天的库存数量 [原字段 'inv_age_0_to_90_days']
|
|
166
|
+
age_0_to_90_days: int = Field(validation_alias="inv_age_0_to_90_days")
|
|
167
|
+
# 库龄91-180天的库存数量 [原字段 'inv_age_91_to_180_days']
|
|
168
|
+
age_91_to_180_days: int = Field(validation_alias="inv_age_91_to_180_days")
|
|
169
|
+
# 库龄181-270天的库存数量 [原字段 'inv_age_181_to_270_days']
|
|
170
|
+
age_181_to_270_days: int = Field(validation_alias="inv_age_181_to_270_days")
|
|
171
|
+
# 库龄271-330天的库存数量 [原字段 'inv_age_271_to_330_days']
|
|
172
|
+
age_271_to_330_days: int = Field(validation_alias="inv_age_271_to_330_days")
|
|
173
|
+
# 库龄271-365天的库存数量 [原字段 'inv_age_271_to_365_days']
|
|
174
|
+
age_271_to_365_days: int = Field(validation_alias="inv_age_271_to_365_days")
|
|
175
|
+
# 库龄331-365天的库存数量 [原字段 'inv_age_331_to_365_days']
|
|
176
|
+
age_331_to_365_days: int = Field(validation_alias="inv_age_331_to_365_days")
|
|
177
|
+
# 库龄365天以上的库存数量 [原字段 'inv_age_365_plus_days']
|
|
178
|
+
age_365_plus_days: int = Field(validation_alias="inv_age_365_plus_days")
|
|
179
|
+
# 库存售出率 (过去 90 天销量除以平均可售库存) [原字段 'sell_through']
|
|
180
|
+
sell_through_rate: float = Field(validation_alias="sell_through")
|
|
181
|
+
# 历史供货天数 (取短期&长期更大值)
|
|
182
|
+
historical_days_of_supply: float
|
|
183
|
+
# 历史短期供货天数 [原字段 'short_term_historical_days_of_supply']
|
|
184
|
+
historical_st_days_of_supply: float = Field(validation_alias="short_term_historical_days_of_supply")
|
|
185
|
+
# 历史长期供货天数 [原字段 'long_term_historical_days_of_supply']
|
|
186
|
+
historical_lt_days_of_supply: float = Field(validation_alias="long_term_historical_days_of_supply")
|
|
187
|
+
# 库存成本金额 [原字段 'cost']
|
|
188
|
+
inventory_cost_amt: float = Field(validation_alias="cost")
|
|
189
|
+
# 库存货值金额 [原字段 'stock_cost_total']
|
|
190
|
+
inventory_value_amt: float = Field(validation_alias="stock_cost_total")
|
|
191
|
+
# 亚马逊预测的库存健康状态 [原字段 'fba_inventory_level_health_status']
|
|
192
|
+
inventory_health_status: str = Field(validation_alias="fba_inventory_level_health_status")
|
|
193
|
+
# 亚马逊低库存水平费收费情况 [原字段 'low_inventory_level_fee_applied']
|
|
194
|
+
inventory_low_level_fee_status: str = Field(validation_alias="low_inventory_level_fee_applied")
|
|
195
|
+
# 亚马逊预测的从今天起30天内产生的仓储费 [原字段 'estimated_storage_cost_next_month']
|
|
196
|
+
estimated_30d_storage_fee: float = Field(validation_alias="estimated_storage_cost_next_month")
|
|
197
|
+
# 亚马逊预估的冗余商品数量 [原字段 'estimated_excess_quantity']
|
|
198
|
+
estimated_excess_qty: float = Field(validation_alias="estimated_excess_quantity")
|
|
199
|
+
# 亚马逊建议的最低库存量 [原字段 'fba_minimum_inventory_level']
|
|
200
|
+
recommended_minimum_qty: float = Field(validation_alias="fba_minimum_inventory_level")
|
|
201
|
+
# 亚马逊建议的操作 [原字段 'recommended_action']
|
|
202
|
+
recommended_action: str
|
|
203
|
+
# fmt: on
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
class FbaInventory(ResponseV1, FlattenDataList):
|
|
207
|
+
"""FBA库存信息"""
|
|
208
|
+
|
|
209
|
+
data: list[FbaInventoryItem]
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
# . FBA Inventory Detail
|
|
213
|
+
class FbaInventoryDetailFulfillableLocal(BaseModel):
|
|
214
|
+
"""FBA库存多国店铺本地可售库存信息"""
|
|
215
|
+
|
|
216
|
+
# fmt: off
|
|
217
|
+
# 领星店铺ID
|
|
218
|
+
sid: int
|
|
219
|
+
# 店铺名称 [原字段 'name']
|
|
220
|
+
seller_name: str = Field(validation_alias="name")
|
|
221
|
+
# 店铺本地可售数量 [原字段 'quantity_for_local_fulfillment']
|
|
222
|
+
afn_fulfillable_local: int = Field(validation_alias="quantity_for_local_fulfillment")
|
|
223
|
+
# fmt: on
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
class FbaInventoryDetailItem(BaseModel):
|
|
227
|
+
|
|
228
|
+
# fmt: off
|
|
229
|
+
# 仓库名称 [原字段 'name']
|
|
230
|
+
warehouse_name: str = Field(validation_alias="name")
|
|
231
|
+
# 领星店铺ID (共享库存时为0)
|
|
232
|
+
sid: int
|
|
233
|
+
# 商品ASIN
|
|
234
|
+
asin: str
|
|
235
|
+
# 亚马逊SKU [原字段 'seller_sku']
|
|
236
|
+
msku: str = Field(validation_alias="seller_sku")
|
|
237
|
+
# 领星本地SKU [原字段 'sku']
|
|
238
|
+
lsku: str = Field(validation_alias="sku")
|
|
239
|
+
# 亚马逊FNSKU
|
|
240
|
+
fnsku: str
|
|
241
|
+
# 领星商品名称
|
|
242
|
+
product_name: str
|
|
243
|
+
# 商品类型ID [原字段 'cid']
|
|
244
|
+
category_id: int = Field(validation_alias="cid")
|
|
245
|
+
# 商品类型名称 [原字段 'category_text']
|
|
246
|
+
category_name: str = Field(validation_alias="category_text")
|
|
247
|
+
# 商品品牌ID [原字段 'bid']
|
|
248
|
+
brand_id: int = Field(validation_alias="bid")
|
|
249
|
+
# 商品品牌名称 [原字段 'product_brand_text']
|
|
250
|
+
brand_name: str = Field(validation_alias="product_brand_text")
|
|
251
|
+
# 商品略缩图链接 [原字段 'small_image_url']
|
|
252
|
+
thumbnail_url: str = Field(validation_alias="small_image_url")
|
|
253
|
+
# 商品配送方式 (如: "AMAZON_NA")
|
|
254
|
+
fulfillment_channel: str
|
|
255
|
+
# 库存共享类型 [原字段 'share_type']
|
|
256
|
+
# (0: 库存不共享, 1: 库存北美共享, 2: 库存欧洲共享)
|
|
257
|
+
stock_share_type: int = Field(validation_alias="share_type")
|
|
258
|
+
# 库存总数量 [原字段 'total']
|
|
259
|
+
stock_total: int = Field(validation_alias="total")
|
|
260
|
+
# 库存总货值金额 [原字段 'total_price']
|
|
261
|
+
stock_total_amt: float = Field(validation_alias="total_price")
|
|
262
|
+
# 库存总可售数量 [原字段 'available_total']
|
|
263
|
+
stock_total_fulfillable: int = Field(validation_alias="available_total")
|
|
264
|
+
# 库存总可售货值金额 [原字段 'available_total_price']
|
|
265
|
+
stock_total_fulfillable_amt: float = Field(validation_alias="available_total_price")
|
|
266
|
+
# FBA 多国店铺本地可售库存信息列表 [原字段 'fba_storage_quantity_list']
|
|
267
|
+
afn_fulfillable_local: list[FbaInventoryDetailFulfillableLocal] = Field(validation_alias="fba_storage_quantity_list")
|
|
268
|
+
# FBA 总可售库存数量 [原字段 'total_fulfillable_quantity']
|
|
269
|
+
# afn_fulfillable + afn_reserved_fc_processing + afn_reserved_fc_transfers
|
|
270
|
+
afn_fulfillable_total: int = Field(validation_alias="total_fulfillable_quantity")
|
|
271
|
+
# FBA 可售库存数量 [原字段 'afn_fulfillable_quantity']
|
|
272
|
+
afn_fulfillable: int = Field(validation_alias="afn_fulfillable_quantity")
|
|
273
|
+
# FBA 可售库存货值金额 [原字段 'afn_fulfillable_quantity_price']
|
|
274
|
+
afn_fulfillable_amt: float = Field(validation_alias="afn_fulfillable_quantity_price")
|
|
275
|
+
# FBA 在库待调仓的库存数量 [原字段 'reserved_fc_processing']
|
|
276
|
+
afn_reserved_fc_processing: int = Field(validation_alias="reserved_fc_processing")
|
|
277
|
+
# FBA 在库待调仓的库存货值金额 [原字段 'reserved_fc_processing_price']
|
|
278
|
+
afn_reserved_fc_processing_amt: float = Field(validation_alias="reserved_fc_processing_price")
|
|
279
|
+
# FBA 在库调仓中的库存数量 [原字段 'reserved_fc_transfers']
|
|
280
|
+
afn_reserved_fc_transfers: int = Field(validation_alias="reserved_fc_transfers")
|
|
281
|
+
# FBA 在库调仓中的库存货值金额 [原字段 'reserved_fc_transfers_price']
|
|
282
|
+
afn_reserved_fc_transfers_amt: float = Field(validation_alias="reserved_fc_transfers_price")
|
|
283
|
+
# FBA 在库待发货的库存数量 [原字段 'reserved_customerorders']
|
|
284
|
+
afn_reserved_customer_order: int = Field(validation_alias="reserved_customerorders")
|
|
285
|
+
# FBA 在库待发货的库存货值金额 [原字段 'reserved_customerorders_price']
|
|
286
|
+
afn_reserved_customer_order_amt: float = Field(validation_alias="reserved_customerorders_price")
|
|
287
|
+
# FBA 在库不可售的库存数量 [原字段 'afn_unsellable_quantity']
|
|
288
|
+
afn_unsellable: int = Field(validation_alias="afn_unsellable_quantity")
|
|
289
|
+
# FBA 在库不可售的库存货值金额 [原字段 'afn_unsellable_quantity_price']
|
|
290
|
+
afn_unsellable_amt: float = Field(validation_alias="afn_unsellable_quantity_price")
|
|
291
|
+
# FBA 实际发货在途的数量 [原字段 'stock_up_num']
|
|
292
|
+
afn_actual_shipped: int = Field(validation_alias="stock_up_num")
|
|
293
|
+
# FBA 实际发货在途的货值金额 [原字段 'stock_up_num_price']
|
|
294
|
+
afn_actual_shipped_amt: float = Field(validation_alias="stock_up_num_price")
|
|
295
|
+
# FBA 发货在途的库存数量 [原字段 'afn_inbound_shipped_quantity']
|
|
296
|
+
afn_inbound_shipped: int = Field(validation_alias="afn_inbound_shipped_quantity")
|
|
297
|
+
# FBA 发货在途的库存货值金额 [原字段 'afn_inbound_shipped_quantity_price']
|
|
298
|
+
afn_inbound_shipped_amt: float = Field(validation_alias="afn_inbound_shipped_quantity_price")
|
|
299
|
+
# FBA 发货计划入库的库存数量 [原字段 'afn_inbound_working_quantity']
|
|
300
|
+
afn_inbound_working: int = Field(validation_alias="afn_inbound_working_quantity")
|
|
301
|
+
# FBA 发货计划入库的库存货值金额 [原字段 'afn_inbound_working_quantity_price']
|
|
302
|
+
afn_inbound_working_amt: float = Field(validation_alias="afn_inbound_working_quantity_price")
|
|
303
|
+
# FBA 发货入库接收中的库存数量 [原字段 'afn_inbound_receiving_quantity']
|
|
304
|
+
afn_inbound_receiving: int = Field(validation_alias="afn_inbound_receiving_quantity")
|
|
305
|
+
# FBA 发货入库接收中的库存货值金额 [原字段 'afn_inbound_receiving_quantity_price']
|
|
306
|
+
afn_inbound_receiving_amt: float = Field(validation_alias="afn_inbound_receiving_quantity_price")
|
|
307
|
+
# FBA 调查中的库存数量 [原字段 'afn_researching_quantity']
|
|
308
|
+
afn_researching: int = Field(validation_alias="afn_researching_quantity")
|
|
309
|
+
# FBA 调查中的库存货值金额 [原字段 'afn_researching_quantity_price']
|
|
310
|
+
afn_researching_amt: float = Field(validation_alias="afn_researching_quantity_price")
|
|
311
|
+
# FBM 可售库存数量 [原字段 'quantity']
|
|
312
|
+
mfn_fulfillable: int = Field(validation_alias="quantity")
|
|
313
|
+
# FBM 可售库存货值金额 [原字段 'quantity_price']
|
|
314
|
+
mfn_fulfillable_amt: float = Field(validation_alias="quantity_price")
|
|
315
|
+
# 库龄0-30天的库存数量 [原字段 'inv_age_0_to_30_days']
|
|
316
|
+
age_0_to_30_days: int = Field(validation_alias="inv_age_0_to_30_days")
|
|
317
|
+
# 库龄0-30天的库存货值金额 [原字段 'inv_age_0_to_30_price']
|
|
318
|
+
age_0_to_30_days_amt: float = Field(validation_alias="inv_age_0_to_30_price")
|
|
319
|
+
# 库龄31-60天的库存数量 [原字段 'inv_age_31_to_60_days']
|
|
320
|
+
age_31_to_60_days: int = Field(validation_alias="inv_age_31_to_60_days")
|
|
321
|
+
# 库龄31-60天的库存货值金额 [原字段 'inv_age_31_to_60_price']
|
|
322
|
+
age_31_to_60_days_amt: float = Field(validation_alias="inv_age_31_to_60_price")
|
|
323
|
+
# 库龄61-90天的库存数量 [原字段 'inv_age_61_to_90_days']
|
|
324
|
+
age_61_to_90_days: int = Field(validation_alias="inv_age_61_to_90_days")
|
|
325
|
+
# 库龄61-90天的库存货值金额 [原字段 'inv_age_61_to_90_price']
|
|
326
|
+
age_61_to_90_days_amt: float = Field(validation_alias="inv_age_61_to_90_price")
|
|
327
|
+
# 库龄0-90天的库存数量 [原字段 'inv_age_0_to_90_days']
|
|
328
|
+
age_0_to_90_days: int = Field(validation_alias="inv_age_0_to_90_days")
|
|
329
|
+
# 库龄0-90天的库存货值金额 [原字段 'inv_age_0_to_90_price']
|
|
330
|
+
age_0_to_90_days_amt: float = Field(validation_alias="inv_age_0_to_90_price")
|
|
331
|
+
# 库龄91-180天的库存数量 [原字段 'inv_age_91_to_180_days']
|
|
332
|
+
age_91_to_180_days: int = Field(validation_alias="inv_age_91_to_180_days")
|
|
333
|
+
# 库龄91-180天的库存货值金额 [原字段 'inv_age_91_to_180_price']
|
|
334
|
+
age_91_to_180_days_amt: float = Field(validation_alias="inv_age_91_to_180_price")
|
|
335
|
+
# 库龄181-270天的库存数量 [原字段 'inv_age_181_to_270_days']
|
|
336
|
+
age_181_to_270_days: int = Field(validation_alias="inv_age_181_to_270_days")
|
|
337
|
+
# 库龄181-270天的库存货值金额 [原字段 'inv_age_181_to_270_price']
|
|
338
|
+
age_181_to_270_days_amt: float = Field(validation_alias="inv_age_181_to_270_price")
|
|
339
|
+
# 库龄271-330天的库存数量 [原字段 'inv_age_271_to_330_days']
|
|
340
|
+
age_271_to_330_days: int = Field(validation_alias="inv_age_271_to_330_days")
|
|
341
|
+
# 库龄271-330天的库存货值金额 [原字段 'inv_age_271_to_330_price']
|
|
342
|
+
age_271_to_330_days_amt: float = Field(validation_alias="inv_age_271_to_330_price")
|
|
343
|
+
# 库龄271-365天的库存数量 [原字段 'inv_age_271_to_365_days']
|
|
344
|
+
age_271_to_365_days: int = Field(validation_alias="inv_age_271_to_365_days")
|
|
345
|
+
# 库龄271-365天的库存货值金额 [原字段 'inv_age_271_to_365_price']
|
|
346
|
+
age_271_to_365_days_amt: float = Field(validation_alias="inv_age_271_to_365_price")
|
|
347
|
+
# 库龄331-365天的库存数量 [原字段 'inv_age_331_to_365_days']
|
|
348
|
+
age_331_to_365_days: int = Field(validation_alias="inv_age_331_to_365_days")
|
|
349
|
+
# 库龄331-365天的库存货值金额 [原字段 'inv_age_331_to_365_price']
|
|
350
|
+
age_331_to_365_days_amt: float = Field(validation_alias="inv_age_331_to_365_price")
|
|
351
|
+
# 库龄365天以上的库存数量 [原字段 'inv_age_365_plus_days']
|
|
352
|
+
age_365_plus_days: int = Field(validation_alias="inv_age_365_plus_days")
|
|
353
|
+
# 库龄365天以上的库存货值金额 [原字段 'inv_age_365_plus_price']
|
|
354
|
+
age_365_plus_days_amt: float = Field(validation_alias="inv_age_365_plus_price")
|
|
355
|
+
# 库存售出率 (过去 90 天销量除以平均可售库存) [原字段 'sell_through']
|
|
356
|
+
sell_through_rate: float = Field(validation_alias="sell_through")
|
|
357
|
+
# 历史供货天数 (取短期&长期更大值)
|
|
358
|
+
historical_days_of_supply: float
|
|
359
|
+
# 历史供货天数货值金额 [原字段 'historical_days_of_supply_price']
|
|
360
|
+
historical_days_of_supply_amt: float = Field(validation_alias="historical_days_of_supply_price")
|
|
361
|
+
# 亚马逊预测的库存健康状态 [原字段 'fba_inventory_level_health_status']
|
|
362
|
+
inventory_health_status: str = Field(validation_alias="fba_inventory_level_health_status")
|
|
363
|
+
# 亚马逊低库存水平费收费情况 [原字段 'low_inventory_level_fee_applied']
|
|
364
|
+
inventory_low_level_fee_status: str = Field(validation_alias="low_inventory_level_fee_applied")
|
|
365
|
+
# 亚马逊预测的从今天起30天内产生的仓储费 [原字段 'estimated_storage_cost_next_month']
|
|
366
|
+
estimated_30d_storage_fee: float = Field(validation_alias="estimated_storage_cost_next_month")
|
|
367
|
+
# 亚马逊预估的冗余商品数量 [原字段 'estimated_excess_quantity']
|
|
368
|
+
estimated_excess_qty: float = Field(validation_alias="estimated_excess_quantity")
|
|
369
|
+
# 亚马逊建议的最低库存量 [原字段 'fba_minimum_inventory_level']
|
|
370
|
+
recommended_minimum_qty: float = Field(validation_alias="fba_minimum_inventory_level")
|
|
371
|
+
# 亚马逊建议的操作 [原字段 'recommended_action']
|
|
372
|
+
recommended_action: str
|
|
373
|
+
# fmt: on
|
|
374
|
+
|
|
375
|
+
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
376
|
+
@field_validator("afn_fulfillable_local", mode="before")
|
|
377
|
+
@classmethod
|
|
378
|
+
def _validate_afn_fulfillable_local(cls, v) -> list | Any:
|
|
379
|
+
"""验证 FBA 多国店铺本地可售库存信息"""
|
|
380
|
+
return [] if v is None else v
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
class FbaInventoryDetails(ResponseV1):
|
|
384
|
+
"""FBA库存明细信息"""
|
|
385
|
+
|
|
386
|
+
data: list[FbaInventoryDetailItem]
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
# . AWD Inventory
|
|
390
|
+
class AwdInventoryItem(BaseModel):
|
|
391
|
+
"""AWD库存产品信息"""
|
|
392
|
+
|
|
393
|
+
# fmt: off
|
|
394
|
+
# 仓库名称 [原字段 'wname']
|
|
395
|
+
warehouse_name: str = Field(validation_alias="wname")
|
|
396
|
+
# 领星站点ID
|
|
397
|
+
mid: int
|
|
398
|
+
# 国家 [原字段 'nation']
|
|
399
|
+
country: str = Field(validation_alias="nation")
|
|
400
|
+
# 领星店铺ID
|
|
401
|
+
sid: int
|
|
402
|
+
# 领星店铺名称
|
|
403
|
+
seller_name: str
|
|
404
|
+
# 商品父ASIN
|
|
405
|
+
parent_asin: str
|
|
406
|
+
# 商品ASIN
|
|
407
|
+
asin: str
|
|
408
|
+
# 商品ASIN链接
|
|
409
|
+
asin_url: str
|
|
410
|
+
# 亚马逊SKU [原字段 'seller_sku']
|
|
411
|
+
msku: str = Field(validation_alias="seller_sku")
|
|
412
|
+
# 领星本地SKU [原字段 'sku']
|
|
413
|
+
lsku: str = Field(validation_alias="sku")
|
|
414
|
+
# 亚马逊FNSKU
|
|
415
|
+
fnsku: str
|
|
416
|
+
# 多属性SPU产品编码
|
|
417
|
+
spu: str
|
|
418
|
+
# 多属性SPU产品名称
|
|
419
|
+
spu_name: str
|
|
420
|
+
# 领星产品ID
|
|
421
|
+
product_id: int
|
|
422
|
+
# 领星商品名称
|
|
423
|
+
product_name: str
|
|
424
|
+
# 商品类型ID [原字段 'cid']
|
|
425
|
+
category_id: int = Field(validation_alias="cid")
|
|
426
|
+
# 商品类型名称 [原字段 'category_text']
|
|
427
|
+
category_name: str = Field(validation_alias="category_text")
|
|
428
|
+
# 商品类型1级名称
|
|
429
|
+
category_level1: str
|
|
430
|
+
# 商品类型2级名称
|
|
431
|
+
category_level2: str
|
|
432
|
+
# 商品类型3级名称
|
|
433
|
+
category_level3: str
|
|
434
|
+
# 商品类型列表 [原字段 'category_Arr']
|
|
435
|
+
categories: list = Field(validation_alias="category_Arr")
|
|
436
|
+
# 商品品牌ID [原字段 'bid']
|
|
437
|
+
brand_id: int = Field(validation_alias="bid")
|
|
438
|
+
# 商品品牌名称 [原字段 'product_brand_text']
|
|
439
|
+
brand_name: str = Field(validation_alias="product_brand_text")
|
|
440
|
+
# 产品图片链接 [原字段 'pic_url']
|
|
441
|
+
image_url: str = Field(validation_alias="pic_url")
|
|
442
|
+
# 产品略缩图链接 [原字段 'small_image_url']
|
|
443
|
+
thumbnail_url: str = Field(validation_alias="small_image_url")
|
|
444
|
+
# 产品负责人列表 [原字段 'asin_principal_list']
|
|
445
|
+
operators: list = Field(validation_alias="asin_principal_list")
|
|
446
|
+
# 商品属性列表 [原字段 'attribute']
|
|
447
|
+
attributes: list[base_schema.SpuProductAttribute] = Field(validation_alias="attribute")
|
|
448
|
+
# AWD 总库存数量 [原字段 'total_onhand_quantity']
|
|
449
|
+
awd_total: int = Field(validation_alias="total_onhand_quantity")
|
|
450
|
+
# AWD 总库存货值金额 [原字段 'total_onhand_quantity_price']
|
|
451
|
+
awd_total_amt: float = Field(validation_alias="total_onhand_quantity_price")
|
|
452
|
+
# AWD 可分发库存数量 [原字段 'available_distributable_quantity']
|
|
453
|
+
awd_distributable: int = Field(validation_alias="available_distributable_quantity")
|
|
454
|
+
# AWD 可分发库存货值金额 [原字段 'available_distributable_quantity_price']
|
|
455
|
+
awd_distributable_amt: float = Field(validation_alias="available_distributable_quantity_price")
|
|
456
|
+
# AWD 在途分发至FBA数量 [原字段 'awd_to_fba_quantity_shipped']
|
|
457
|
+
awd_distributing: int = Field(validation_alias="awd_to_fba_quantity_shipped")
|
|
458
|
+
# AWD 在途分发至FBA货值金额 [原字段 'awd_to_fba_quantity_shipped_price']
|
|
459
|
+
awd_distributing_amt: float = Field(validation_alias="awd_to_fba_quantity_shipped_price")
|
|
460
|
+
# AWD 在库待分发数量 [原字段 'reserved_distributable_quantity']
|
|
461
|
+
awd_reserved_distributes: int = Field(validation_alias="reserved_distributable_quantity")
|
|
462
|
+
# AWD 在库待分发货值金额 [原字段 'reserved_distributable_quantity_price']
|
|
463
|
+
awd_reserved_distributes_amt: float = Field(validation_alias="reserved_distributable_quantity_price")
|
|
464
|
+
# AWD 实际发货在途的数量 [原字段 'awd_actual_quantity_shipped']
|
|
465
|
+
awd_actual_shipped: int = Field(validation_alias="awd_actual_quantity_shipped")
|
|
466
|
+
# AWD 实际发货在途的货值金额 [原字段 'awd_actual_quantity_shipped_price']
|
|
467
|
+
awd_actual_shipped_amt: float = Field(validation_alias="awd_actual_quantity_shipped_price")
|
|
468
|
+
# AWD 发货在途的库存数量 [原字段 'awd_quantity_shipped']
|
|
469
|
+
awd_inbound_shipped: int = Field(validation_alias="awd_quantity_shipped")
|
|
470
|
+
# AWD 发货在途的库存货值金额 [原字段 'awd_quantity_shipped_price']
|
|
471
|
+
awd_inbound_shipped_amt: float = Field(validation_alias="awd_quantity_shipped_price")
|
|
472
|
+
# fmt: on
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
class AwdInventory(ResponseV1, FlattenDataList):
|
|
476
|
+
"""AWD库存信息"""
|
|
477
|
+
|
|
478
|
+
data: list[AwdInventoryItem]
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
# . Seller Inventory
|
|
482
|
+
class OverseasInventoryInfo(BaseModel):
|
|
483
|
+
"""海外仓第三方库存信息"""
|
|
484
|
+
|
|
485
|
+
# 产品可售库存数量 [原字段 'qty_sellable']
|
|
486
|
+
fulfillable_qty: IntOrNone2Zero = Field(0, validation_alias="qty_sellable")
|
|
487
|
+
# 产品待上架库存数量 [原字段 'qty_pending']
|
|
488
|
+
pending_qty: IntOrNone2Zero = Field(0, validation_alias="qty_pending")
|
|
489
|
+
# 产品预留库存数量 [原字段 'qty_reserved']
|
|
490
|
+
reserved_qty: IntOrNone2Zero = Field(0, validation_alias="qty_reserved")
|
|
491
|
+
# 产品调拨在途数量 [原字段 'qty_onway']
|
|
492
|
+
transit_qty: IntOrNone2Zero = Field(0, validation_alias="qty_onway")
|
|
493
|
+
# 外箱可售数量 [原字段 'box_qty_sellable']
|
|
494
|
+
box_fulfillable_qty: IntOrNone2Zero = Field(0, validation_alias="box_qty_sellable")
|
|
495
|
+
# 外箱待上架数量 [原字段 'box_qty_pending']
|
|
496
|
+
box_pending_qty: IntOrNone2Zero = Field(0, validation_alias="box_qty_pending")
|
|
497
|
+
# 外箱预留数量 [原字段 'box_qty_reserved']
|
|
498
|
+
box_reserved_qty: IntOrNone2Zero = Field(0, validation_alias="box_qty_reserved")
|
|
499
|
+
# 外箱调拨在途数量 [原字段 'box_qty_onway']
|
|
500
|
+
box_transit_qty: IntOrNone2Zero = Field(0, validation_alias="box_qty_onway")
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
class SellerInventoryItemAge(BaseModel):
|
|
504
|
+
"""卖家(本地/海外)仓库库存产品库龄信息"""
|
|
505
|
+
|
|
506
|
+
# 库龄信息 [原字段 'name']
|
|
507
|
+
age: str = Field(validation_alias="name")
|
|
508
|
+
# 库龄数量
|
|
509
|
+
qty: int
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
class SellerInventoryItem(BaseModel):
|
|
513
|
+
"""卖家(本地/海外)仓库库存产品信息"""
|
|
514
|
+
|
|
515
|
+
# fmt: off
|
|
516
|
+
# 仓库ID [原字段 'wid']
|
|
517
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
518
|
+
# 领星店铺ID [原字段 'seller_id']
|
|
519
|
+
sid: int = Field(validation_alias="seller_id")
|
|
520
|
+
# 领星本地商品SKU [原字段 'sku']
|
|
521
|
+
lsku: str = Field(validation_alias="sku")
|
|
522
|
+
# 亚马逊FNSKU
|
|
523
|
+
fnsku: str
|
|
524
|
+
# 领星商品ID
|
|
525
|
+
product_id: int
|
|
526
|
+
# 产品总库存数量 [原字段 'product_total']
|
|
527
|
+
total_qty: int = Field(validation_alias="product_total")
|
|
528
|
+
# 产品库存可售数量 [原字段 'product_valid_num']
|
|
529
|
+
fulfillable_qty: int = Field(validation_alias="product_valid_num")
|
|
530
|
+
# 产品库存可售预留数量 [原字段 'good_lock_num']
|
|
531
|
+
fulfillable_reserved_qty: int = Field(validation_alias="good_lock_num")
|
|
532
|
+
# 产品库存次品数量 [原字段 'product_bad_num']
|
|
533
|
+
unsellable_qty: int = Field(validation_alias="product_bad_num")
|
|
534
|
+
# 产品库存不可售预留数量 [原字段 'bad_lock_num']
|
|
535
|
+
unsellable_reserved_qty: int = Field(validation_alias="bad_lock_num")
|
|
536
|
+
# 产品库存加工计划单品的预留数量 [原字段 'product_lock_num']
|
|
537
|
+
process_reserved_qty: int = Field(validation_alias="product_lock_num")
|
|
538
|
+
# 产品库存待质检数量 [原字段 'product_qc_num']
|
|
539
|
+
pending_qc_qty: int = Field(validation_alias="product_qc_num")
|
|
540
|
+
# 产品待到货数量 [原字段 'quantity_receive']
|
|
541
|
+
pending_arrival_qty: int = Field(validation_alias="quantity_receive")
|
|
542
|
+
# 产品调拨在途数量 [原字段 'product_onway']
|
|
543
|
+
transit_qty: int = Field(validation_alias="product_onway")
|
|
544
|
+
# 产品调拨在途头程费用 [原字段 'transit_head_cost']
|
|
545
|
+
transit_first_leg_fee: float = Field(validation_alias="transit_head_cost")
|
|
546
|
+
# 外箱可售数量 [原字段 'available_inventory_box_qty']
|
|
547
|
+
box_fulfillable_qty: int = Field(validation_alias="available_inventory_box_qty")
|
|
548
|
+
# 第三方海外仓库存信息 [原字段 'third_inventory']
|
|
549
|
+
overseas_inventory: OverseasInventoryInfo = Field(validation_alias="third_inventory")
|
|
550
|
+
# 库存单价成本 [原字段 'stock_cost']
|
|
551
|
+
stock_item_cost_amt: FloatOrNone2Zero = Field(validation_alias="stock_cost")
|
|
552
|
+
# 库存总成本金额 [原字段 'stock_cost_total']
|
|
553
|
+
stock_total_cost_amt: FloatOrNone2Zero = Field(validation_alias="stock_cost_total")
|
|
554
|
+
# 平均库龄 [原字段 'average_age']
|
|
555
|
+
age_avg_days: int = Field(validation_alias="average_age")
|
|
556
|
+
# 库龄列表 [原字段 'stock_age_list']
|
|
557
|
+
ages: list[SellerInventoryItemAge] = Field(validation_alias="stock_age_list")
|
|
558
|
+
# fmt: on
|
|
559
|
+
|
|
560
|
+
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
561
|
+
@field_validator("overseas_inventory", mode="before")
|
|
562
|
+
@classmethod
|
|
563
|
+
def _validate_overseas_inventory(cls, v) -> dict:
|
|
564
|
+
return {} if not v else v
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
class SellerInventory(ResponseV1):
|
|
568
|
+
"""卖家(本地/海外)仓库库存信息"""
|
|
569
|
+
|
|
570
|
+
data: list[SellerInventoryItem]
|
|
571
|
+
|
|
572
|
+
|
|
573
|
+
# . Seller Inventory Bin
|
|
574
|
+
class SellerInventoryBinItem(BaseModel):
|
|
575
|
+
"""查询卖家(本地/海外)仓库库存货架(仓位)信息"""
|
|
576
|
+
|
|
577
|
+
# fmt: off
|
|
578
|
+
# 仓库ID [原字段 'wid']
|
|
579
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
580
|
+
# 仓库名称 [原字段 'wh_name']
|
|
581
|
+
warehouse_name: str = Field(validation_alias="wh_name")
|
|
582
|
+
# 仓库货架ID [原字段 'whb_id']
|
|
583
|
+
bin_id: int = Field(validation_alias="whb_id")
|
|
584
|
+
# 仓库货架名称 [原字段 'whb_name']
|
|
585
|
+
bin_name: str = Field(validation_alias="whb_name")
|
|
586
|
+
# 仓库货架类型 [原字段 'whb_type']
|
|
587
|
+
bin_type: int = Field(validation_alias="whb_type")
|
|
588
|
+
# 仓库货架类型描述 [原字段 'whb_type_name']
|
|
589
|
+
bin_type_desc: str = Field(validation_alias="whb_type_name")
|
|
590
|
+
# 领星店铺ID [原字段 'store_id']
|
|
591
|
+
sid: int = Field(validation_alias="store_id")
|
|
592
|
+
# 亚马逊SKU
|
|
593
|
+
msku: str
|
|
594
|
+
# 领星本地商品SKU [原字段 'sku']
|
|
595
|
+
lsku: str = Field(validation_alias="sku")
|
|
596
|
+
# 亚马逊FNSKU
|
|
597
|
+
fnsku: str
|
|
598
|
+
# 领星商品ID
|
|
599
|
+
product_id: int
|
|
600
|
+
# 领星商品名称
|
|
601
|
+
product_name: str
|
|
602
|
+
# 产品总库存数量 [原字段 'total']
|
|
603
|
+
total_qty: int = Field(validation_alias="total")
|
|
604
|
+
# 产品库存可售数量 [原字段 'validNum']
|
|
605
|
+
fulfillable_qty: int = Field(validation_alias="validNum")
|
|
606
|
+
# 产品库存预留数量 [原字段 'lockNum']
|
|
607
|
+
reserved_qty: int = Field(validation_alias="lockNum")
|
|
608
|
+
# 第三方海外仓库存信息 [原字段 'third_inventory']
|
|
609
|
+
overseas_inventory: OverseasInventoryInfo = Field(validation_alias="third_inventory")
|
|
610
|
+
# fmt: on
|
|
611
|
+
|
|
612
|
+
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
613
|
+
@field_validator("overseas_inventory", mode="before")
|
|
614
|
+
@classmethod
|
|
615
|
+
def _validate_overseas_inventory(cls, v) -> dict:
|
|
616
|
+
return {} if not v else v
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
class SellerInventoryBins(ResponseV1):
|
|
620
|
+
"""卖家(本地/海外)仓库库存货架(仓位)信息"""
|
|
621
|
+
|
|
622
|
+
data: list[SellerInventoryBinItem]
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
# . Seller Inventory Batch
|
|
626
|
+
class SellerInventoryBatch(BaseModel):
|
|
627
|
+
"""卖家(本地/海外)仓库出入库批次信息"""
|
|
628
|
+
|
|
629
|
+
# 仓库ID [原字段 'wid']
|
|
630
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
631
|
+
# 仓库名称 [原字段 'wh_name']
|
|
632
|
+
warehouse_name: str = Field(validation_alias="wh_name")
|
|
633
|
+
# 批次号 [原字段 'batch_no']
|
|
634
|
+
batch_number: str = Field(validation_alias="batch_no")
|
|
635
|
+
# 源头批次号 [原字段 'source_batch_no']
|
|
636
|
+
source_batch_numbers: list[str] = Field(validation_alias="source_batch_no")
|
|
637
|
+
# 出入库单号 [原字段 'order_sn']
|
|
638
|
+
transaction_number: str = Field(validation_alias="order_sn")
|
|
639
|
+
# 出入库类型 [原字段 'type']
|
|
640
|
+
transaction_type: int = Field(validation_alias="type")
|
|
641
|
+
# 出入库类型描述 [原字段 'type_name']
|
|
642
|
+
transaction_type_desc: str = Field(validation_alias="type_name")
|
|
643
|
+
# 领星店铺ID [原字段 'store_id']
|
|
644
|
+
sid: int = Field(validation_alias="store_id")
|
|
645
|
+
# 领星店铺名称 [原字段 'store_name']
|
|
646
|
+
seller_name: str = Field(validation_alias="store_name")
|
|
647
|
+
# 亚马逊SKU
|
|
648
|
+
msku: str
|
|
649
|
+
# 领星本地商品SKU [原字段 'sku']
|
|
650
|
+
lsku: str = Field(validation_alias="sku")
|
|
651
|
+
# 亚马逊FNSKU
|
|
652
|
+
fnsku: str
|
|
653
|
+
# 领星商品ID
|
|
654
|
+
product_id: int
|
|
655
|
+
# 领星商品名称
|
|
656
|
+
product_name: str
|
|
657
|
+
# 批次总数 [原字段 'total']
|
|
658
|
+
total_qty: int = Field(validation_alias="total")
|
|
659
|
+
# 批次在库结存 [原字段 'balance_num']
|
|
660
|
+
ending_balance_qty: int = Field(validation_alias="balance_num")
|
|
661
|
+
# 批次在途结存 [原字段 'transit_balance_num']
|
|
662
|
+
transit_balance_qty: int = Field(validation_alias="transit_balance_num")
|
|
663
|
+
# 批次可售在途 [原字段 'good_transit_num']
|
|
664
|
+
transit_fulfillable_qty: int = Field(validation_alias="good_transit_num")
|
|
665
|
+
# 批次不可售在途 [原字段 'bad_transit_num']
|
|
666
|
+
transit_unsellable_qty: int = Field(validation_alias="bad_transit_num")
|
|
667
|
+
# 批次可售数量 [原字段 'good_num']
|
|
668
|
+
fulfillable_qty: int = Field(validation_alias="good_num")
|
|
669
|
+
# 批次不可售数量 [原字段 'bad_num']
|
|
670
|
+
unsellable_qty: int = Field(validation_alias="bad_num")
|
|
671
|
+
# 批次待质检数量 [原字段 'qc_num']
|
|
672
|
+
pending_qc_qty: int = Field(validation_alias="qc_num")
|
|
673
|
+
# 批次货物成本 [原字段 'stock_cost']
|
|
674
|
+
cost_amt: float = Field(validation_alias="stock_cost")
|
|
675
|
+
# 批次头程费用 [原字段 'head_stock_cost']
|
|
676
|
+
first_leg_fee: float = Field(validation_alias="head_stock_cost")
|
|
677
|
+
# 批次出入库费用 [原字段 'fee']
|
|
678
|
+
transaction_fee: float = Field(validation_alias="fee")
|
|
679
|
+
# 批次总货值 [原字段 'amount']
|
|
680
|
+
value_amt: float = Field(validation_alias="amount")
|
|
681
|
+
# 采购计划单号列表 [原字段 'plan_sn']
|
|
682
|
+
purchase_plan_numbers: list[str] = Field(validation_alias="plan_sn")
|
|
683
|
+
# 采购单号列表 [原字段 'purchase_order_sns']
|
|
684
|
+
purchase_numbers: list[str] = Field(validation_alias="purchase_order_sns")
|
|
685
|
+
# 收货单号列表 [原字段 'delivery_order_sns']
|
|
686
|
+
receiving_numbers: list[str] = Field(validation_alias="delivery_order_sns")
|
|
687
|
+
# 供应商ID列表
|
|
688
|
+
supplier_ids: list[int]
|
|
689
|
+
# 供应商名称列表
|
|
690
|
+
supplier_names: list[str]
|
|
691
|
+
# 批次创建时间 (北京时间)
|
|
692
|
+
batch_time: str
|
|
693
|
+
# 采购时间 (北京时间) [原字段 'purchase_in_time']
|
|
694
|
+
purchase_time: str = Field(validation_alias="purchase_in_time")
|
|
695
|
+
# 更新时间 (北京时间)
|
|
696
|
+
update_time: str
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
class SellerInventoryBatches(ResponseV1):
|
|
700
|
+
"""卖家(本地/海外)仓库出入库批次信息"""
|
|
701
|
+
|
|
702
|
+
data: list[SellerInventoryBatch]
|
|
703
|
+
|
|
704
|
+
|
|
705
|
+
# . Seller Inventory Record
|
|
706
|
+
class SellerInventoryRecord(BaseModel):
|
|
707
|
+
"""卖家(本地/海外)仓库出入库流水信息"""
|
|
708
|
+
|
|
709
|
+
# 仓库ID [原字段 'wid']
|
|
710
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
711
|
+
# 仓库名称 [原字段 'wh_name']
|
|
712
|
+
warehouse_name: str = Field(validation_alias="wh_name")
|
|
713
|
+
# 批次流水号 [原字段 'batch_state_id']
|
|
714
|
+
batch_record_number: str = Field(validation_alias="batch_state_id")
|
|
715
|
+
# 批次号 [原字段 'batch_no']
|
|
716
|
+
batch_number: str = Field(validation_alias="batch_no")
|
|
717
|
+
# 源头批次号 [原字段 'source_batch_no']
|
|
718
|
+
source_batch_numbers: list[str] = Field(validation_alias="source_batch_no")
|
|
719
|
+
# 出入库单号 [原字段 'order_sn']
|
|
720
|
+
transaction_number: str = Field(validation_alias="order_sn")
|
|
721
|
+
# 源头出入库单号列表 [原字段 'source_order_sn']
|
|
722
|
+
source_transaction_numbers: list[str] = Field(validation_alias="source_order_sn")
|
|
723
|
+
# 出入库类型 [原字段 'type']
|
|
724
|
+
transaction_type: int = Field(validation_alias="type")
|
|
725
|
+
# 出入库类型描述 [原字段 'type_name']
|
|
726
|
+
transaction_type_desc: str = Field(validation_alias="type_name")
|
|
727
|
+
# 领星店铺ID [原字段 'store_id']
|
|
728
|
+
sid: int = Field(validation_alias="store_id")
|
|
729
|
+
# 领星店铺名称 [原字段 'store_name']
|
|
730
|
+
seller_name: str = Field(validation_alias="store_name")
|
|
731
|
+
# 亚马逊SKU
|
|
732
|
+
msku: str
|
|
733
|
+
# 领星本地商品SKU [原字段 'sku']
|
|
734
|
+
lsku: str = Field(validation_alias="sku")
|
|
735
|
+
# 亚马逊FNSKU
|
|
736
|
+
fnsku: str
|
|
737
|
+
# 领星商品ID
|
|
738
|
+
product_id: int
|
|
739
|
+
# 领星商品名称
|
|
740
|
+
product_name: str
|
|
741
|
+
# 批次流水在库结存 [原字段 'balance_num']
|
|
742
|
+
ending_balance_qty: int = Field(validation_alias="balance_num")
|
|
743
|
+
# 批次流水在途结存 [原字段 'transit_balance_num']
|
|
744
|
+
transit_balance_qty: int = Field(validation_alias="transit_balance_num")
|
|
745
|
+
# 批次流水可售在途 [原字段 'good_transit_num']
|
|
746
|
+
transit_fulfillable_qty: int = Field(validation_alias="good_transit_num")
|
|
747
|
+
# 批次流水不可售在途 [原字段 'bad_transit_num']
|
|
748
|
+
transit_unsellable_qty: int = Field(validation_alias="bad_transit_num")
|
|
749
|
+
# 批次流水可售数量 [原字段 'good_num']
|
|
750
|
+
fulfillable_qty: int = Field(validation_alias="good_num")
|
|
751
|
+
# 批次流水不可售数量 [原字段 'bad_num']
|
|
752
|
+
unsellable_qty: int = Field(validation_alias="bad_num")
|
|
753
|
+
# 批次流水待质检数量 [原字段 'qc_num']
|
|
754
|
+
pending_qc_qty: int = Field(validation_alias="qc_num")
|
|
755
|
+
# 批次流水货物成本 [原字段 'stock_cost']
|
|
756
|
+
cost_amt: float = Field(validation_alias="stock_cost")
|
|
757
|
+
# 批次流水头程费用 [原字段 'head_stock_cost']
|
|
758
|
+
first_leg_fee: float = Field(validation_alias="head_stock_cost")
|
|
759
|
+
# 批次流水出入库费用 [原字段 'fee']
|
|
760
|
+
transaction_fee: float = Field(validation_alias="fee")
|
|
761
|
+
# 批次流水总货值 [原字段 'amount']
|
|
762
|
+
value_amt: float = Field(validation_alias="amount")
|
|
763
|
+
# 采购计划单号列表 [原字段 'plan_sn']
|
|
764
|
+
purchase_plan_numbers: list[str] = Field(validation_alias="plan_sn")
|
|
765
|
+
# 采购单号列表 [原字段 'purchase_order_sns']
|
|
766
|
+
purchase_numbers: list[str] = Field(validation_alias="purchase_order_sns")
|
|
767
|
+
# 收货单号列表 [原字段 'delivery_order_sns']
|
|
768
|
+
receiving_numbers: list[str] = Field(validation_alias="delivery_order_sns")
|
|
769
|
+
# 供应商ID列表
|
|
770
|
+
supplier_ids: list[int]
|
|
771
|
+
# 供应商名称列表
|
|
772
|
+
supplier_names: list[str]
|
|
773
|
+
|
|
774
|
+
|
|
775
|
+
class SellerInventoryRecords(ResponseV1):
|
|
776
|
+
"""卖家(本地/海外)仓库出入库流水信息"""
|
|
777
|
+
|
|
778
|
+
data: list[SellerInventoryRecord]
|
|
779
|
+
|
|
780
|
+
|
|
781
|
+
# . Seller Inventory Operation
|
|
782
|
+
class SellerInventoryOperation(BaseModel):
|
|
783
|
+
"""卖家(本地/海外)仓库出入库操作流水信息"""
|
|
784
|
+
|
|
785
|
+
# fmt: off
|
|
786
|
+
# 仓库ID [原字段 'wid']
|
|
787
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
788
|
+
# 仓库名称 [原字段 'wh_name']
|
|
789
|
+
warehouse_name: str = Field(validation_alias="ware_house_name")
|
|
790
|
+
# 出入库单号 [原字段 'order_sn']
|
|
791
|
+
transaction_number: str = Field(validation_alias="order_sn")
|
|
792
|
+
# 关联出入库单号 [原字段 'ref_order_sn']
|
|
793
|
+
ref_transaction_number: str = Field(validation_alias="ref_order_sn")
|
|
794
|
+
# 操作ID [原字段 'statement_id']
|
|
795
|
+
transaction_id: str = Field(validation_alias="statement_id")
|
|
796
|
+
# 操作类型 [原字段 'type']
|
|
797
|
+
transaction_type: int = Field(validation_alias="type")
|
|
798
|
+
# 操作类型描述 [原字段 'type_text']
|
|
799
|
+
transaction_type_desc: str = Field(validation_alias="type_text")
|
|
800
|
+
# 出入库子类型 [原字段 'sub_type']
|
|
801
|
+
transaction_sub_type: str = Field(validation_alias="sub_type")
|
|
802
|
+
# 出入库子类型描述 [原字段 'sub_type_text']
|
|
803
|
+
transaction_sub_type_desc: str = Field(validation_alias="sub_type_text")
|
|
804
|
+
# 操作备注
|
|
805
|
+
transaction_note: str = Field(validation_alias="remark")
|
|
806
|
+
# 操作时间 (北京时间) [原字段 'opt_time']
|
|
807
|
+
transaction_time: str = Field(validation_alias="opt_time")
|
|
808
|
+
# 操作人ID [原字段 'opt_uid']
|
|
809
|
+
operator_id: int = Field(validation_alias="opt_uid")
|
|
810
|
+
# 操作人名称 [原字段 'opt_real_name']
|
|
811
|
+
operator_name: str = Field(validation_alias="opt_real_name")
|
|
812
|
+
# 领星店铺ID [原字段 'seller_id']
|
|
813
|
+
sid: int = Field(validation_alias="seller_id")
|
|
814
|
+
# 领星本地商品SKU [原字段 'sku']
|
|
815
|
+
lsku: str = Field(validation_alias="sku")
|
|
816
|
+
# 亚马逊FNSKU
|
|
817
|
+
fnsku: str
|
|
818
|
+
# 领星商品ID
|
|
819
|
+
product_id: int
|
|
820
|
+
# 领星商品名称
|
|
821
|
+
product_name: str
|
|
822
|
+
# 品牌ID [原字段 'bid']
|
|
823
|
+
brand_id: int = Field(validation_alias="bid")
|
|
824
|
+
# 品牌名称
|
|
825
|
+
brand_name: str
|
|
826
|
+
# 操作流水总数 [原字段 'product_total']
|
|
827
|
+
total_qty: int = Field(validation_alias="product_total")
|
|
828
|
+
# 在途流水可售数量 [原字段 'good_transit_num']
|
|
829
|
+
transit_fulfillable_qty: int = Field(validation_alias="good_transit_num")
|
|
830
|
+
# 在途流水可售结存数量 [原字段 'good_transit_balance_num']
|
|
831
|
+
transit_fulfillable_balance_qty: int = Field(validation_alias="good_transit_balance_num")
|
|
832
|
+
# 在途流水不可售数量 [原字段 'bad_transit_num']
|
|
833
|
+
transit_unsellable_qty: int = Field(validation_alias="bad_transit_num")
|
|
834
|
+
# 在途流水不可售结存数量 [原字段 'bad_transit_balance_num']
|
|
835
|
+
transit_unsellable_balance_qty: int = Field(validation_alias="bad_transit_balance_num")
|
|
836
|
+
# 操作流水可售数量 [原字段 'product_good_num']
|
|
837
|
+
fulfillable_qty: int = Field(validation_alias="product_good_num")
|
|
838
|
+
# 操作流水可售结存数量 [原字段 'good_balance_num']
|
|
839
|
+
fulfillable_balance_qty: int = Field(validation_alias="good_balance_num")
|
|
840
|
+
# 操作流水可售预留数量 [原字段 'product_lock_good_num']
|
|
841
|
+
fulfillable_reserved_qty: int = Field(validation_alias="product_lock_good_num")
|
|
842
|
+
# 操作流水可售预留结存数量 [原字段 'good_lock_balance_num']
|
|
843
|
+
fulfillable_reserved_balance_qty: int = Field(validation_alias="good_lock_balance_num")
|
|
844
|
+
# 操作流水不可售数量 [原字段 'product_bad_num']
|
|
845
|
+
unsellable_qty: int = Field(validation_alias="product_bad_num")
|
|
846
|
+
# 操作流水不可售结存数量 [原字段 'bad_balance_num']
|
|
847
|
+
unsellable_balance_qty: int = Field(validation_alias="bad_balance_num")
|
|
848
|
+
# 操作流水不可售预留数量 [原字段 'product_lock_bad_num']
|
|
849
|
+
unsellable_reserved_qty: int = Field(validation_alias="product_lock_bad_num")
|
|
850
|
+
# 操作流水不可售预留结存数量 [原字段 'bad_lock_balance_num']
|
|
851
|
+
unsellable_reserved_balance_qty: int = Field(validation_alias="bad_lock_balance_num")
|
|
852
|
+
# 操作流水待质检数量 [原字段 'product_qc_num']
|
|
853
|
+
pending_qc_qty: int = Field(validation_alias="product_qc_num")
|
|
854
|
+
# 操作流水质检结存数量 [原字段 'qc_balance_num']
|
|
855
|
+
qc_balance_qty: int = Field(validation_alias="qc_balance_num")
|
|
856
|
+
# 操作流水单位采购价格 [原字段 'single_cg_price']
|
|
857
|
+
item_purchase_price: FloatOrNone2Zero = Field(validation_alias="single_cg_price")
|
|
858
|
+
# 操作流水货物成本 [原字段 'stock_cost']
|
|
859
|
+
cost_amt: FloatOrNone2Zero = Field(validation_alias="stock_cost")
|
|
860
|
+
# 操作流水单位货物成本 [原字段 'single_stock_price']
|
|
861
|
+
item_cost_amt: FloatOrNone2Zero = Field(validation_alias="single_stock_price")
|
|
862
|
+
# 操作流水头程费用 [原字段 'head_stock_cost']
|
|
863
|
+
first_leg_fee: FloatOrNone2Zero = Field(validation_alias="head_stock_cost")
|
|
864
|
+
# 操作流水单位头程费用 [原字段 'head_stock_price']
|
|
865
|
+
item_first_leg_fee: FloatOrNone2Zero = Field(validation_alias="head_stock_price")
|
|
866
|
+
# 操作流水出入库费用 [原字段 'fee_cost']
|
|
867
|
+
transaction_fee: FloatOrNone2Zero = Field(validation_alias="fee_cost")
|
|
868
|
+
# 操作流水单位出入库费用 [原字段 'single_fee_cost']
|
|
869
|
+
item_transaction_fee: FloatOrNone2Zero = Field(validation_alias="single_fee_cost")
|
|
870
|
+
# 操作流水总货值 [原字段 'product_amounts']
|
|
871
|
+
value_amt: FloatOrNone2Zero = Field(validation_alias="product_amounts")
|
|
872
|
+
# fmt: on
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
class SellerInventoryOperations(ResponseV1):
|
|
876
|
+
"""卖家(本地/海外)仓库出入库操作流水信息"""
|
|
877
|
+
|
|
878
|
+
data: list[SellerInventoryOperation]
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
# . Seller Inventory Bin Record
|
|
882
|
+
class SellerInventoryBinRecord(BaseModel):
|
|
883
|
+
"""卖家(本地/海外)仓库货架(仓位)出入库流水信息"""
|
|
884
|
+
|
|
885
|
+
# 仓库ID [原字段 'wid']
|
|
886
|
+
warehouse_id: int = Field(validation_alias="wid")
|
|
887
|
+
# 仓库名称 [原字段 'wh_name']
|
|
888
|
+
warehouse_name: str = Field(validation_alias="ware_house_name")
|
|
889
|
+
# 仓库货架ID [原字段 'whb_id']
|
|
890
|
+
bin_id: int = Field(validation_alias="whb_id")
|
|
891
|
+
# 仓库货架名称 [原字段 'whb_name']
|
|
892
|
+
bin_name: str = Field(validation_alias="whb_name")
|
|
893
|
+
# 仓库货架类型描述 [原字段 'whb_type_name']
|
|
894
|
+
bin_type_desc: str = Field(validation_alias="whb_type_name")
|
|
895
|
+
# 出入库单号 [原字段 'order_sn']
|
|
896
|
+
transaction_number: str = Field(validation_alias="order_sn")
|
|
897
|
+
# 出入库类型 [原字段 'type']
|
|
898
|
+
transaction_type: int = Field(validation_alias="type")
|
|
899
|
+
# 出入库类型描述 [原字段 'type_text']
|
|
900
|
+
transaction_type_desc: str = Field(validation_alias="type_text")
|
|
901
|
+
# 出入库备注
|
|
902
|
+
transaction_note: str = Field(validation_alias="remark")
|
|
903
|
+
# 出入库时间 (北京时间) [原字段 'opt_time']
|
|
904
|
+
transaction_time: str = Field(validation_alias="opt_time")
|
|
905
|
+
# 出入库数量 [原字段 'num']
|
|
906
|
+
transaction_qty: int = Field(validation_alias="num")
|
|
907
|
+
# 操作人ID [原字段 'opt_uid']
|
|
908
|
+
operator_id: int = Field(validation_alias="opt_uid")
|
|
909
|
+
# 操作人名称 [原字段 'opt_realname']
|
|
910
|
+
operator_name: str = Field(validation_alias="opt_realname")
|
|
911
|
+
# 领星店铺ID [原字段 'seller_id']
|
|
912
|
+
sid: int = Field(validation_alias="seller_id")
|
|
913
|
+
# 领星本地商品SKU [原字段 'sku']
|
|
914
|
+
lsku: str = Field(validation_alias="sku")
|
|
915
|
+
# 亚马逊FNSKU
|
|
916
|
+
fnsku: str
|
|
917
|
+
# 领星商品ID
|
|
918
|
+
product_id: int
|
|
919
|
+
# 领星商品名称
|
|
920
|
+
product_name: str
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
class SellerInventoryBinRecords(ResponseV1):
|
|
924
|
+
"""卖家(本地/海外)仓库货架(仓位)出入库流水信息"""
|
|
925
|
+
|
|
926
|
+
data: list[SellerInventoryBinRecord]
|