> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SHEIN as a data source

> Bring data from the SHEIN marketplace to your Lakehouse.

SHEIN is a global online fashion and lifestyle retailer that also runs a marketplace where third-party sellers list products and fulfil orders (SHEIN Marketplace, including Brazil). The SHEIN Open Platform gives a seller's applications access to the store data: orders, returns, product catalogue, inventory and settlement statements.

<img height="50" src="https://mintcdn.com/nekt/YdS-JbHYAbeOCWda/assets/logo/logo-shein.svg?fit=max&auto=format&n=YdS-JbHYAbeOCWda&q=85&s=ffc769c1c3277d6c26f3f11e93d26dfd" data-path="assets/logo/logo-shein.svg" />

## Configuring SHEIN as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the SHEIN option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

SHEIN issues a pair of keys, an **Open Key ID** and a **Secret Key**, every time a store authorizes an application. The connector signs every request with them. There are two ways to obtain the pair:

**Option 1 (recommended): authorize the Nekt application in your Seller Center.**

1. Log in to the SHEIN Seller Center with the store's **main account** (sub-accounts cannot authorize applications).
2. Open **Personal Center** and then **Third-party applications**.
3. Search for **Nekt** and click **Request key**. Accept the authorization terms and confirm.
4. SHEIN sends an SMS to the phone number registered on the main account containing the **Open Key ID** and the **Secret Key**. Paste both into the connector.

If your store has more than one SHEIN store account, each store generates its own pair of keys; create one source per store.

**Option 2 (advanced): use your own SHEIN Open Platform application.**

If you already have a developer account and an application of type *Self-Operated* on the [SHEIN Open Platform](https://open.sheincorp.com/), open the advanced settings and fill in the **App ID** and **App Secret** of your application plus the **Temp Token** that appears in the redirect URL right after the store's main account authorizes it. The temp token is valid for 10 minutes and can be used once, so validate the source immediately after authorizing. The connector exchanges it for the store keys and stores them; you don't need to fill it in again.

<Note>
  SHEIN only accepts API calls coming from IP addresses listed in the application owner's IP whitelist. With Option 1 this is handled by Nekt. With Option 2 you must add Nekt's egress IP addresses to your own developer console under Development kit, IP whitelist.
</Note>

The following configurations are also available:

* **Initial sync date**: The earliest date from which orders, returns and statements will be synced. If not provided, the connector starts one year before the first run.

The following advanced settings are also available:

* **Statements lookback (days)**: (Default: `30`) Statements change status after they are generated (pending, about to pay, paid), so every run re-reads this many days before the last synced window to refresh them.
* **API environment**: Keep *Production* unless you are validating the connector against a test store provided by SHEIN.

<Note>
  Don't have access to the SHEIN account yourself? Use the **Share link** option at the top of this step to send the form to whoever manages the store. They fill in the keys without needing a Nekt account.
</Note>

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: you can choose between INCREMENTAL and FULL\_TABLE.
  * Incremental: every time the extraction happens, we'll get only the new data - which is good if, for example, you want to keep every record ever fetched.
  * Full table: every time the extraction happens, we'll get the current state of the data - which is good if, for example, you don't want to have deleted data in your catalog.

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/runs/scheduling-and-triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

## Good to know

* **Timestamps are converted to UTC.** SHEIN reports every time in Beijing time (UTC+8); the connector emits ISO-8601 UTC values so they line up with the rest of your Lakehouse.
* **Orders and returns are incremental by update time.** Any status change (shipped, delivered, refunded) re-emits the order or return, so the tables always reflect the latest state. SHEIN limits each query to 48-hour windows and 10,000 rows; the connector walks the windows for you and narrows them when a window is too busy.
* **Order items and return items** come from the same detail calls as their parents, at no extra API cost. Nested lists (items, packages, attributes) are also kept as JSON text columns on the parent rows.
* **Products are read in full on every run**, because SHEIN's update filters ignore price and inventory changes. The `product_skus` stream flattens one row per SKU with its price per site and inventory per warehouse.
* **Statements** are listed by generation time and re-read for the lookback window so payment statuses stay current. `statement_items` performs one request per statement.
* **Request rates** follow SHEIN's documented limits per endpoint and are shared by every application under the same developer account.

# Streams and Fields

## Available streams

The table below lists every stream, its **slug** (the exact identifier to pass when creating the source via API) and a short description.

| Stream          | Slug              | Description                                                                                               |
| --------------- | ----------------- | --------------------------------------------------------------------------------------------------------- |
| Orders          | `orders`          | One row per customer order with status, amounts, fees, recipient region, payment and package information. |
| Order Items     | `order_items`     | One row per item of each order: SKU codes, prices, commission, fulfilment flags and attributes.           |
| Returns         | `returns`         | One row per customer return order with status, logistics and reconciliation information.                  |
| Return Items    | `return_items`    | One row per returned item with prices, fees and return reasons.                                           |
| Products        | `products`        | One row per SPU (product) with shelf status, category and its SKC list.                                   |
| Product SKUs    | `product_skus`    | One row per SKU with its SKC context, titles, prices per site and inventory per warehouse.                |
| Statements      | `statements`      | Reconciliation statements generated when orders and other documents reach settlement.                     |
| Statement Items | `statement_items` | SKU-level lines of each statement: prices, commission, fees and taxes.                                    |
| Store Info      | `store_info`      | The authorized store: merchant id, status, business mode and product quota.                               |
| Sites           | `sites`           | Sales sites the store sells on, with their currencies.                                                    |

## Fields by stream

Below you'll find all available data streams from SHEIN and their corresponding fields:

<AccordionGroup>
  <Accordion title="Orders">
    One row per customer order with status, amounts, fees, recipient region, payment and package information.

    **Primary key:** `order_no`\
    **Replication:** Full table

    **Fields:**

    * `order_no` - SHEIN order number (primary key)
    * `order_status` - Order status: 1: Pending processing / 2: Pending shipment / 3: Pending SHEIN shipment / 4: Shipped / 5: Delivered / 6: User refunded / 7: Pending collection / 8: Reported damaged / 9: Rejected
    * `order_create_time` - Order placement time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `order_update_time` - Last order update time, used as the incremental replication key. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `stock_mode` - Stock mode: 1 SHEIN self-operated inventory / 2 inventory in SHEIN warehouse / 3 no inventory in SHEIN warehouse (merchant fulfils)
    * `order_type` - 1 normal order / 2 exchange order / 4 certified warehouse converted to self-shipping / 5 certified warehouse order
    * `print_order_status` - Whether the order can be processed: 1 processable / 2 not processable
    * `un_process_reason` - Reason codes why the order cannot be processed yet (e.g. 3 Brazilian invoice pending, 6/9 items out of stock)
    * `is_over_limit_order` - Oversize split-package order: 1 yes / 2 no
    * `optional_logistics_list` - Shipping methods available: 1 platform partner logistics, 2 merchant self-shipping
    * `order_logistics_type` - Shipping method chosen: 0 not selected / 1 platform logistics / 2 merchant self-shipping
    * `order_place_type` - Platform logistics placement: 1 platform-designated / 2 online order placement
    * `is_cod` - Cash on delivery: 1 yes / 2 no
    * `bill_no` - Original order number when this is an exchange order
    * `sales_site` - Sales site, e.g. shein-br
    * `delivery_service_type` - 1 home delivery / 2 delivery to store
    * `order_tag` - 0 normal / 1 problematic / 4 special / 5 urgent
    * `order_labels` - Order labels, e.g. easy\_delivery\_uncollected
    * `delivery_type` - Delivery type code as returned by SHEIN
    * `performance_type` - Deprecated fulfilment method flag (1 SHEIN logistics / 2 seller fulfils); use optional\_logistics\_list
    * `performance_billing_type` - Fulfilment service fee billing dimension: 0 default / 1 product / 2 package
    * `order_goods_info_list` - Order items as returned by SHEIN (JSON array of objects); also exposed row by row in the order\_items stream
    * `receive_country` - Recipient country (when non-platform logistics is used)
    * `receive_province` - Recipient state/province
    * `receive_city` - Recipient city
    * `receive_post_code` - Recipient postal code
    * `package_waybill_list` - Packages and tracking numbers (JSON array of objects)
    * `invoice_status` - Invoice upload status: 1 invoiced / 2 not invoiced / 3 waiting to be resent / 4 no invoice needed
    * `cte_invoice_status` - Brazil CT-e invoicing status: 1 complete for all parcels / 2 incomplete
    * `package_invoice_problems` - Invoice issues per package (JSON array of objects)
    * `order_currency` - Customer order currency, e.g. BRL
    * `sale_currency` - Sales currency (semi-managed only)
    * `settle_actually_price` - Sales price (brand sellers only)
    * `product_total_price` - Total product amount
    * `total_cost_price` - Total supply price (semi-managed only)
    * `store_discount_total_price` - Total store coupon amount
    * `promotion_discount_total_price` - Total campaign discount amount
    * `total_settle_currency_promotion_price` - Total campaign report discount (semi-managed only)
    * `total_commission` - Total commission (self-operated only)
    * `total_service_charge` - Total service charge (can be ignored)
    * `total_performance_service_charge` - Total fulfilment service fee
    * `estimated_gross_income` - Estimated total revenue for the seller
    * `total_sale_tax` - Total consumption/sales tax
    * `total_seller_real_tax` - Total European VAT
    * `total_mx_tax_price` - Total Mexican seller taxes
    * `seller_shipping_fee` - Shipping fee paid by the buyer and returned to the seller
    * `order_msg_update_time` - Order information update time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `order_time` - Buyer order time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `payment_time` - Buyer payment time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `order_allocate_time` - Order dispatch time (when the merchant can see the order). ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `printing_time` - Shipping label print time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `schedule_delivery_time` - Scheduled shipment time (SHEIN integrated logistics). ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `seller_delivery_time` - Seller delivery time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `pick_up_time` - Logistics pickup time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `order_receipt_time` - Buyer receipt time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `request_print_time` - Deadline to print the shipping label. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `need_delivery_time` - Required shipping time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `request_handover_time` - Deadline to hand the parcel over to the carrier. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `request_sign_time` - Required delivery sign-off time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `order_rejection_time` - Order rejection time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `order_return_time` - Order refund time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `order_reported_loss_time` - Order damage/loss report time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `warehouse_delivery_time` - Warehouse delivery time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `expected_collect_time` - Expected pickup time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `request_delivery_time` - Deprecated delivery deadline. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `sales_area` - 1 local sales / 2 cross-border sales
    * `store_code` - SHEIN store code
    * `payment_pay_no` - Main payment number
    * `payment_method` - Payment method code: 03 credit / 04 debit / 17 pix / 18 PayPal / 01 boleto / 99 others
    * `payment_installment_flag` - 1 installment / 0 non-installment
    * `payment_card_type` - Card brand code: 01 visa / 02 mastercard / 03 amex / 06 elo / 07 hipercard / 99 others
    * `payment_channel_pay_no` - Payment channel number
    * `payment_cnpj` - CNPJ of the sub-acquirer (Brazil)
  </Accordion>

  <Accordion title="Order Items">
    One row per item of each order: SKU codes, prices, commission, fulfilment flags and attributes.

    **Primary key:** `order_no`, `goods_id`\
    **Replication:** Full table

    **Fields:**

    * `order_no` - SHEIN order number (part of the primary key)
    * `goods_id` - Unique id of the item piece within SHEIN (part of the primary key)
    * `order_update_time` - Update time of the parent order, used as the incremental replication key. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `sales_site` - Sales site of the parent order, e.g. shein-br
    * `store_code` - SHEIN store code of the parent order
    * `sku_code` - SHEIN SKU code
    * `skc` - SHEIN SKC code
    * `goods_sn` - Merchant SPU code (item number)
    * `seller_sku` - Merchant SKU code
    * `spu_name` - SHEIN SPU code
    * `goods_title` - Product name shown in the SHEIN store
    * `spu_pic_url` - SPU main image URL
    * `goods_status` - Deprecated product status
    * `new_goods_status` - Item status: 1: Pending processing / 2: Pending shipment / 3: Pending SHEIN shipment / 4: Shipped / 5: Delivered / 6: User refunded / 7: Pending collection / 8: Reported damaged / 9: Rejected
    * `goods_exchange_tag` - Exchange flag: 1 not exchanged / 2 exchanged-out / 3 exchanged-in / 4 delete exchange
    * `be_exchange_entity_id` - Id of the exchanged product
    * `goods_weight` - Product weight as reported by SHEIN
    * `storage_tag` - Inventory label: 1 occupied / 2 no inventory to occupy / 3 out of stock
    * `performance_tag` - Shipment flag: 1 shipped / 2 not shipped / 3 delivered
    * `sku_attribute` - Multi-language SKU attributes (JSON array of objects)
    * `time_out_list` - Automatic cancellation deadlines (JSON array of objects)
    * `order_currency` - Customer order currency
    * `sale_currency` - Sales currency (semi-managed only)
    * `seller_currency_price` - Item price (front-end sales price)
    * `cost_price` - Supply price (semi-managed only)
    * `order_currency_store_coupon_price` - Store coupon amount
    * `order_currency_promotion_price` - Campaign discount amount
    * `settle_currency_promotion_price` - Campaign report discount (semi-managed only)
    * `commission` - Commission (self-operated only)
    * `commission_rate` - Commission rate (self-operated only)
    * `service_charge` - Service charge (can be ignored)
    * `performance_service_charge` - Fulfilment service fee charged by SHEIN
    * `estimated_income` - Estimated income for this item
    * `sale_tax` - Sales tax collected from the buyer
    * `seller_real_tax` - European VAT
    * `mx_tax_price` - Mexican seller taxes
    * `commission_sale_tax` - Commission consumption tax (self-operated only)
    * `seller_currency_discount_price` - Discounted item price (self-operated only)
    * `warehouse_code` - Merchant warehouse id
    * `warehouse_name` - Merchant warehouse name
    * `unpacking_group_no` - Unpacking group number for over-limit split orders
    * `unpacking_group_invoice_status` - Invoice status of the unpacking group: 1 invoiced / 2 not invoiced / 3 ready for re-upload
    * `customization_flag` - 1 normal product / 2 customized product
    * `customization_info` - Customization details when customization\_flag = 2 (JSON object)
  </Accordion>

  <Accordion title="Returns">
    One row per customer return order with status, logistics and reconciliation information.

    **Primary key:** `return_order_no`\
    **Replication:** Full table

    **Fields:**

    * `return_order_no` - Return order number (primary key)
    * `return_order_status` - Return order status: 1: Closed / 2: Applied / 3: Cancelled / 5: Received / 6: Delivered / 7: Pending handover / 8: Pending SHEIN warehouse transfer / 9: Completed
    * `add_time` - Time the return was issued to the merchant. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `request_return_time` - Time the buyer applied for the return. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `update_time` - Last update time from the return list, used as the incremental replication key. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `no_return_goods_sign` - 0 goods are returned / 1 refund without return
    * `return_order_tag_code` - 1 KOL return form / 2 lost item
    * `order_no` - Related customer order number
    * `site` - Sales site, e.g. shein-br
    * `shipping_code` - Shipping code
    * `platform_express_no` - SHEIN platform tracking number
    * `member_express_no` - Tracking number uploaded by the buyer
    * `express_company_name` - Return logistics provider name
    * `refund_order_nos` - Return order numbers issued to the seller by the platform
    * `refund_waybill` - Return tracking number issued to the seller by the platform
    * `refund_express_company_name` - Return logistics provider used by the platform
    * `performance_cost` - Return fulfilment service fee
    * `invoice_status` - Brazil return invoice status: 0 none / 1 pending / 2 requested / 3 successful
    * `allocate_time` - Return issuance time from the detail. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `last_update_time` - Last update time from the detail. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `seller_signed_time` - Time the seller confirmed receipt. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `cancel_time` - Time the return request was cancelled. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `completed_time` - Return completion time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `check_status` - Reconciliation status: 1 reconciled / 2 not reconciled
    * `stock_mode` - 1 SHEIN self-stocking / 2 stock in SHEIN warehouse / 3 not stocked in SHEIN warehouse
    * `receive_type` - 0 default / 1 seller receives goods / 2 warehouse receives goods
    * `return_goods_info_list` - Returned items (JSON array of objects); also exposed row by row in the return\_items stream
  </Accordion>

  <Accordion title="Return Items">
    One row per returned item with prices, fees and return reasons.

    **Primary key:** `return_order_no`, `goods_id`\
    **Replication:** Full table

    **Fields:**

    * `return_order_no` - Return order number (part of the primary key)
    * `goods_id` - Id of the returned item piece in the original order (part of the primary key)
    * `order_no` - Related customer order number
    * `site` - Sales site, e.g. shein-br
    * `update_time` - Update time of the parent return, used as the incremental replication key. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `sku` - SHEIN SKU code
    * `skc` - SHEIN SKC code
    * `goods_sn` - Merchant SPU code
    * `sku_sn` - Merchant SKU code
    * `commodity_attribute_list` - Sales attributes of the item (JSON array of objects)
    * `goods_title` - SPU product name
    * `image_url` - SPU main image URL
    * `goods_status` - Item return status: 1: Closed / 2: Applied / 3: Cancelled / 5: Received / 6: Delivered / 7: Pending handover / 8: Pending SHEIN warehouse transfer / 9: Completed
    * `return_image_list` - Images/videos attached to the return (JSON array of objects)
    * `currency` - Currency of the amounts
    * `sale_currency` - Sales currency (semi-managed only)
    * `seller_currency_price` - Item price
    * `cost_price` - Supply price
    * `settle_currency_promotion_price` - Campaign report discount
    * `seller_currency_store_coupon_price` - Store coupon amount
    * `seller_currency_promotion_price` - Campaign discount amount
    * `estimate_commission` - Commission amount
    * `commission_sale_tax` - Commission consumption tax
    * `performance_price` - Return service fee
    * `return_expense` - Return processing fee
    * `seller_real_tax` - European VAT
    * `estimate_income_money` - Estimated expenditure for the seller
    * `estimate_tax_income_money` - Estimated expenditure including taxes
    * `return_reason_list` - Return reasons per language (JSON array of objects)
  </Accordion>

  <Accordion title="Products">
    One row per SPU (product) with shelf status, category and its SKC list.

    **Primary key:** `spu_name`\
    **Replication:** Full table

    **Fields:**

    * `spu_name` - SHEIN SPU code (primary key)
    * `spu_shelf_status` - SPU shelf status: 0: off the shelf (pending and sold out included) / 1: on the shelf
    * `category_id` - Last-level category id
    * `skc_count` - Number of SKCs (colour variants) under the SPU
    * `sku_count` - Number of SKUs under the SPU
    * `skc_list` - SKCs with their SKUs, titles, prices and inventory (JSON array of objects); flattened in the product\_skus stream
  </Accordion>

  <Accordion title="Product SKUs">
    One row per SKU with its SKC context, titles, prices per site and inventory per warehouse.

    **Primary key:** `sku_code`\
    **Replication:** Full table

    **Fields:**

    * `sku_code` - SHEIN SKU code (primary key)
    * `spu_name` - SHEIN SPU code
    * `spu_shelf_status` - SPU shelf status: 0: off the shelf (pending and sold out included) / 1: on the shelf
    * `category_id` - Last-level category id
    * `skc_name` - SHEIN SKC code (colour variant)
    * `skc_shelf_status` - SKC shelf status: 0: off the shelf (pending and sold out included) / 1: on the shelf
    * `supplier_code` - Merchant item number of the SKC
    * `skc_main_pic_url` - SKC main image URL
    * `title` - Product title in the first requested language (pt-br, then en)
    * `skc_title` - Titles per language (JSON array of objects)
    * `skc_sales_attribute` - SKC sales attributes per language (JSON array of objects)
    * `skc_site_shelf_status_list` - Listing status per site (JSON array of objects)
    * `activity_lock_list` - Marketing campaign locks per site (JSON array of objects)
    * `supplier_sku` - Merchant SKU code
    * `sku_sales_attribute_list` - SKU sales attributes, e.g. size (JSON array of objects)
    * `cost_list` - Cost prices, semi/fully-managed only (JSON array of objects)
    * `price_list` - Prices per site with base and special price, self-operated only (JSON array of objects)
    * `base_price` - Original price on the first site returned
    * `special_price` - Special price on the first site returned (0 = none)
    * `price_currency` - Currency of base\_price/special\_price
    * `price_site` - Site of base\_price/special\_price, e.g. shein-br
    * `inventory_list` - Inventory per warehouse (JSON array of objects)
    * `inventory_total` - Sum of inventory quantity across warehouses
  </Accordion>

  <Accordion title="Statements">
    Reconciliation statements generated when orders and other documents reach settlement.

    **Primary key:** `check_order_no`\
    **Replication:** Full table

    **Fields:**

    * `check_order_no` - Reconciliation statement number (primary key)
    * `sync_window_end` - End of the generation-time window this row was read from; incremental replication key (UTC)
    * `bz_order_no` - Business order number, usually the customer order number
    * `business_completed_time` - Business completion time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `check_status` - Reconciliation status: 1: pending payment generation / 2: about to pay / 3: paid / 4: payment exception
    * `completed_pay_time` - Settlement completion time. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `currency_code` - Billing currency
    * `estimate_income_money_total` - Payable amount
    * `estimate_pay_time` - Expected payment date. ISO-8601 UTC timestamp, converted from SHEIN's Beijing time (UTC+8)
    * `income_expenditure_type` - 1 income / 2 expenditure
    * `report_order_no` - Expense report (payment batch) number
    * `second_order_type` - Secondary bill type code (see SHEIN FAQ for the enumeration)
    * `site` - Sales site, e.g. shein-br
  </Accordion>

  <Accordion title="Statement Items">
    SKU-level lines of each statement: prices, commission, fees and taxes.

    **Primary key:** `check_order_no`, `line_index`\
    **Replication:** Full table

    **Fields:**

    * `check_order_no` - Reconciliation statement number (part of the primary key)
    * `line_index` - Position of the line inside the statement, starting at 0 (part of the primary key)
    * `sync_window_end` - Replication key inherited from the parent statement (UTC)
    * `bz_order_no` - Business order number of the statement
    * `site` - Sales site of the statement
    * `currency_code` - Billing currency of the statement
    * `sku_code` - SHEIN SKU code
    * `seller_currency_price` - Product selling price
    * `cost_price` - Product supply price (semi-managed only)
    * `coupon_amount` - Coupon amount
    * `settle_currency_promotion_price` - Settlement-currency campaign discount
    * `seller_currency_promotion_price` - Seller-currency campaign discount
    * `commission_amount` - Commission amount
    * `commission_rate` - Commission rate
    * `commission_sale_tax` - Commission consumption tax
    * `performance_cost` - Fulfilment service fee
    * `return_expense` - Return handling fee
    * `return_freight_subsidy` - Return shipping subsidy
    * `sale_tax` - Buyer sales tax (not part of the seller's income)
    * `seller_real_tax` - European VAT
    * `service_fee` - Service fee
    * `stock_expense` - Stock preparation fee
    * `income_amount` - Estimated income for the line
    * `refund_ratio` - Refund ratio, present on order adjustment lines
    * `subject_amount_list` - Tax detail lines (JSON array of objects)
    * `subsidy_total_amount` - Total tax subsidy
    * `wht_total_amount` - Total withholding tax
  </Accordion>

  <Accordion title="Store Info">
    The authorized store: merchant id, status, business mode and product quota.

    **Primary key:** `supplier_id`\
    **Replication:** Full table

    **Fields:**

    * `supplier_id` - SHEIN merchant id (primary key)
    * `store_name` - Store name (self-operated and semi-managed stores)
    * `store_status` - Store status: 0 disabled / 1 enabled
    * `supplier_business_mode` - Special business mode: POP-US, POP-GLOBAL or SFS; empty for regular stores
    * `quota_available_limit` - Products the store can still publish
    * `quota_total_limit` - Total product publishing limit
    * `quota_used_quota` - Products already published against the limit
  </Accordion>

  <Accordion title="Sites">
    Sales sites the store sells on, with their currencies.

    **Primary key:** `main_site`, `site_abbr`\
    **Replication:** Full table

    **Fields:**

    * `main_site` - Main site code, e.g. shein (part of the primary key)
    * `main_site_name` - Main site name
    * `site_abbr` - Sub-site abbreviation, e.g. shein-br (part of the primary key)
    * `site_name` - Sub-site name
    * `site_status` - 0 inactive / 1 active
    * `store_type` - 1 platform type / 2 self-operated type
    * `currency` - Currency code of the sub-site
    * `symbol_left` - Currency symbol shown before the amount
    * `symbol_right` - Currency symbol shown after the amount
  </Accordion>
</AccordionGroup>
