
Configuring Shopee as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Shopee option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need to authorize Nekt to access your Shopee seller data. Click on the Shopee Authorization button and log in with your Shopee seller account. Grant the necessary permissions for the shop you want to extract data from. The following configurations are available:-
API URL: Select the appropriate API endpoint for your region:
https://partner.shopeemobile.com- Global (Southeast Asia)https://openplatform.shopee.com.br- Brazilhttps://openplatform.shopee.cn- China
- Start Date: The earliest date from which records will be synced. If not provided, all available historical data will be extracted.
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.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, 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.
- Determine when to execute an 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.
5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Below you’ll find all available data streams from Shopee and their corresponding fields:Products
Products
Complete product catalog with detailed information including pricing, inventory, media, and attributes.
| Field | Type | Description |
|---|---|---|
item_id | Integer | Unique identifier for the product |
item_name | String | Product name/title |
item_sku | String | SKU code |
description | String | Product description |
description_type | String | Type of description |
category_id | Integer | Category identifier |
condition | String | Product condition (new, used) |
item_status | String | Current status (NORMAL, BANNED, UNLIST, REVIEWING, SELLER_DELETE, SHOPEE_DELETE) |
create_time | Integer | When the product was created (Unix timestamp) |
update_time | Integer | When the product was last updated (Unix timestamp) |
price_info | Array | Array of price information per currency with currency, original_price, current_price, and other pricing details |
image | Object | Product images with image_id_list, image_url_list, and image_ratio |
video_info | Array | Array of product videos with video_url, thumbnail_url, and duration |
promotion_image | Array | Promotional images |
attribute_list | Array | Array of product attributes with attribute_id, original_attribute_name, is_mandatory, and attribute_value_list |
weight | Number | Product weight |
dimension | Object | Package dimensions with package_length, package_width, and package_height |
logistic_info | Array | Array of logistics options with logistic_id, logistic_name, enabled status, and shipping details |
stock_info_v2 | Object | Detailed stock information with summary_info, seller_stock, shopee_stock, and advance_stock |
brand | Object | Brand information with brand_id and original_brand_name |
gtin_code | String | GTIN/EAN barcode |
authorised_brand_id | Integer | Authorized brand ID |
ssp_id | String | SSP identifier |
pre_order | Object | Pre-order settings with is_pre_order and days_to_ship |
wholesales | Array | Wholesale pricing tiers with min_count, max_count, unit_price, and inflated_price_of_unit_price |
purchase_limit_info | Object | Purchase limits with min_purchase_limit and max_purchase_limit |
deboost | Boolean | Whether product is deboost (visibility reduced) |
has_model | Boolean | Whether product has variations/models |
has_promotion | Boolean | Whether currently on promotion |
promotion_id | Integer | Active promotion ID |
is_fulfillment_by_shopee | Boolean | Whether fulfilled by Shopee (FBS) |
item_dangerous | Integer | Dangerous goods indicator |
scheduled_publish_time | Integer | Scheduled publish time (Unix timestamp) |
size_chart | String | Size chart content |
size_chart_id | String | Size chart identifier |
tag | Object | Product tags with kit information |
description_info | Object | Extended description with field_list containing field_type, text, and image_info |
compatibility_info | Object | Vehicle compatibility with vehicle_info_list |
tax_info | Object | Tax details by region (Brazil, Poland, India, Taiwan) |
complaint_policy | Object | Warranty and complaint settings |
certification_info | Object | Product certifications (Philippines) |
Orders
Orders
Complete order details including buyer information, items, payments, and shipping.
| Field | Type | Description |
|---|---|---|
order_sn | String | Unique order serial number |
order_status | String | Order status |
region | String | Order region/country |
currency | String | Order currency |
cod | Boolean | Cash on delivery flag |
total_amount | Number | Total order amount |
message_to_seller | String | Buyer’s message |
pending_terms | Array | Array of pending terms |
pending_description | Array | Array of pending descriptions |
create_time | Integer | Order creation time (Unix timestamp) |
update_time | Integer | Last update time (Unix timestamp, replication key) |
pay_time | Integer | Payment time |
ship_by_date | Integer | Ship by deadline |
days_to_ship | Integer | Days allowed to ship |
note_update_time | Integer | When seller note was last updated |
buyer_user_id | Integer | Buyer’s user ID |
buyer_username | String | Buyer’s username |
buyer_cpf_id | String | Buyer’s CPF (Brazil) |
recipient_address | Object | Delivery address with name, phone, full_address, and location details |
item_list | Array | Array of ordered items with item details, quantities, and pricing |
shipping_carrier | String | Carrier name |
checkout_shipping_carrier | String | Selected carrier at checkout |
estimated_shipping_fee | Number | Estimated shipping cost |
actual_shipping_fee | Number | Actual shipping cost |
actual_shipping_fee_confirmed | Boolean | Fee confirmation status |
reverse_shipping_fee | Number | Return shipping fee |
order_chargeable_weight_gram | Integer | Chargeable weight |
fulfillment_flag | String | Fulfillment type |
pickup_done_time | Integer | Pickup completion time |
goods_to_declare | Boolean | Customs declaration required |
package_list | Array | Array of packages with tracking numbers, logistics status, and item details |
payment_method | String | Payment method |
payment_info | Array | Array of payment details with payment_method, payment_processor_register, and transaction_id |
cancel_by | String | Who cancelled |
cancel_reason | String | Cancellation reason |
buyer_cancel_reason | String | Buyer’s cancellation reason |
invoice_data | Object | Invoice details (Brazil) with number, series_number, access_key, and values |
prescription_images | Array | Array of prescription image URLs |
prescription_check_status | String | Check status |
pharmacist_name | String | Pharmacist name |
prescription_approval_time | Integer | Approval time |
prescription_rejection_time | Integer | Rejection time |
edt_from | String | Estimated delivery time from |
edt_to | String | Estimated delivery time to |
booking_sn | String | Booking serial number |
advance_package | Boolean | Advance package flag |
dropshipper | String | Dropshipper name |
dropshipper_phone | String | Dropshipper phone |
note | String | Seller notes |
split_up | Boolean | Order split flag |
return_request_due_date | Integer | Return request deadline |
is_buyer_shop_collection | Boolean | Shop collection flag |
buyer_proof_of_collection | Array | Array of collection proof images |
hot_listing_order | Boolean | Hot listing order flag |
Product Analytics
Product Analytics
Product engagement and sales metrics.
| Field | Type | Description |
|---|---|---|
item_id | Integer | Product identifier |
sale | Integer | Total sales count |
views | Integer | Number of product views |
likes | Integer | Number of likes/favorites |
rating_star | Number | Average rating |
comment_count | Integer | Number of reviews/comments |
Use Cases for Data Analysis
This guide outlines valuable business intelligence use cases when consolidating Shopee data, along with ready-to-use SQL queries that you can run on Explorer.1. Product Performance Overview
Analyze product performance combining catalog data with engagement metrics. Business Value:- Identify best-selling and most-viewed products
- Understand conversion from views to sales
- Optimize product listings based on engagement
SQL query
SQL query
- AWS
- GCP
Sample Result
Sample Result
| item_id | item_name | total_sales | total_views | total_likes | rating_star | comment_count | conversion_rate |
|---|---|---|---|---|---|---|---|
| 123456789 | Wireless Bluetooth Earbuds | 2,450 | 45,230 | 1,890 | 4.8 | 856 | 5.42 |
| 234567890 | Phone Case Premium | 1,890 | 32,450 | 1,234 | 4.6 | 423 | 5.82 |
| 345678901 | USB-C Fast Charger | 1,567 | 28,900 | 987 | 4.7 | 312 | 5.42 |
| 456789012 | Screen Protector Pack | 1,234 | 18,450 | 567 | 4.5 | 234 | 6.69 |
2. Order Status Analysis
Track order distribution by status to monitor fulfillment health. Business Value:- Monitor order processing efficiency
- Identify bottlenecks in fulfillment
- Track cancellation rates and reasons
SQL query
SQL query
- AWS
- GCP
Sample Result
Sample Result
| order_status | order_count | percentage | total_revenue | avg_order_value |
|---|---|---|---|---|
| COMPLETED | 1,245 | 62.25 | 89,234.50 | 71.67 |
| SHIPPED | 456 | 22.80 | 31,245.00 | 68.52 |
| READY_TO_SHIP | 189 | 9.45 | 14,523.00 | 76.84 |
| CANCELLED | 110 | 5.50 | 7,856.00 | 71.42 |
Implementation Notes
Timestamps
Timestamps
Shopee uses Unix timestamps (seconds since epoch) for date/time fields. To convert in queries:
Regional API Endpoints
Regional API Endpoints
The connector supports multiple regional API endpoints:
- Global (SEA): Singapore, Malaysia, Thailand, Vietnam, Philippines, Indonesia, Taiwan
- Brazil: Specific endpoint for Brazilian marketplace
- China: Mainland China operations
Incremental Sync
Incremental Sync
The connector supports incremental sync for:
- Products: Uses
update_timeas the replication key - Orders: Uses
update_timeas the replication key
Authentication and Token Management
Authentication and Token Management
The connector automatically manages access token refresh to prevent authentication failures:
- Access tokens are refreshed proactively 30 minutes before expiration
- The signing key is dynamically updated when generating new tokens
- Refresh tokens are stored securely in the Meltano database
- Token expiration defaults to 4 hours if not specified by the API
Nested Data Structures
Nested Data Structures
Shopee data contains nested structures. When querying:
- Use
UNNESTto flatten arrays (e.g.,item_listin orders)