Why Connect TikTok Shop to Odoo?
TikTok Shop has become a major e-commerce channel, especially for brands targeting younger demographics. With in-app checkout, live shopping, and affiliate-driven sales, TikTok generates orders that need to be fulfilled, tracked, and accounted for in your business systems. Without integration, your team manually processes TikTok orders alongside orders from your website, Amazon, and other channels — leading to inventory discrepancies and fulfillment delays.
Connecting TikTok Shop to Odoo centralizes order management, ensures accurate inventory across all channels, and gives you unified revenue reporting.
TikTok Shop API Overview
TikTok provides the TikTok Shop Open API for sellers and partners. Key capabilities:
| API Area | Capability | Odoo Use |
|---|---|---|
| Product | Create, update, list products | Catalog sync from Odoo |
| Order | Fetch orders, update status | Import to sale.order |
| Inventory | Update stock levels | Sync from Odoo warehouse |
| Fulfillment | Create shipping labels, tracking | Push from Odoo delivery |
| Finance | Settlements, payouts | Reconcile in Odoo accounting |
Prerequisites
- Approved TikTok Shop seller account
- TikTok Shop Partner Center access
- App created in TikTok Shop Open Platform
- Odoo with Sales, Inventory, and Accounting modules
Step 1: Create TikTok Shop App
- Go to TikTok Shop Partner Center → My Apps
- Create a new app
- Select required API permissions: Product, Order, Logistics, Finance
- Complete app review (takes 2-5 business days)
- Get your App Key and App Secret
Step 2: Authenticate and Get Access Token
import requests, hashlib, hmac, time
APP_KEY = 'your_app_key'
APP_SECRET = 'your_app_secret'
def get_access_token(auth_code):
timestamp = int(time.time())
path = '/api/v2/token/get'
resp = requests.get(
f'https://open-api.tiktokglobalshop.com{path}',
params={
'app_key': APP_KEY,
'app_secret': APP_SECRET,
'auth_code': auth_code,
'grant_type': 'authorized_code',
}
)
return resp.json()['data']['access_token']Step 3: Import TikTok Orders to Odoo
def fetch_tiktok_orders(access_token, shop_cipher):
resp = requests.post(
'https://open-api.tiktokglobalshop.com/api/orders/search',
headers={'x-tts-access-token': access_token},
params={'app_key': APP_KEY, 'shop_cipher': shop_cipher},
json={
'order_status': 'AWAITING_SHIPMENT',
'page_size': 50,
}
)
return resp.json()['data']['orders']
def create_odoo_sale_order(tiktok_order, models, db, uid, key):
buyer = tiktok_order['recipient_address']
partner_id = find_or_create_partner({
'name': buyer['name'],
'phone': buyer['phone'],
'street': buyer['full_address'],
}, models, db, uid, key)
lines = []
for item in tiktok_order['line_items']:
product_id = find_product_by_sku(item['seller_sku'], models, db, uid, key)
lines.append((0, 0, {
'product_id': product_id,
'product_uom_qty': int(item['quantity']),
'price_unit': float(item['sale_price']),
}))
return models.execute_kw(db, uid, key, 'sale.order', 'create', [{
'partner_id': partner_id,
'order_line': lines,
'origin': f"TikTok #{tiktok_order['order_id']}",
'x_tiktok_order_id': tiktok_order['order_id'],
}])Step 4: Sync Products from Odoo
Push your Odoo product catalog to TikTok Shop so listings stay synchronized:
def sync_product_to_tiktok(product, access_token, shop_cipher):
requests.post(
'https://open-api.tiktokglobalshop.com/api/products',
headers={'x-tts-access-token': access_token},
params={'app_key': APP_KEY, 'shop_cipher': shop_cipher},
json={
'product_name': product['name'],
'description': product['description_sale'],
'skus': [{
'seller_sku': product['default_code'],
'original_price': str(product['list_price']),
'stock_infos': [{'available_stock': product['qty_available']}],
}],
}
)Step 5: Update Fulfillment
When Odoo marks a delivery order as done, push the tracking number back to TikTok Shop so customers get shipping notifications:
- Listen for Odoo
stock.pickingstate changes todone - Call TikTok's ship order API with the tracking number and carrier
- TikTok updates the order status and notifies the buyer
Inventory Sync Strategy
For multi-channel sellers, inventory accuracy is critical. Implement a centralized approach:
- Odoo is the single source of truth for stock levels
- Run sync to TikTok every 10-15 minutes
- Reserve stock for TikTok orders immediately on import
- Deduct stock on fulfillment, not on order placement
TikTok Shop Fees
| Fee Type | Rate | Notes |
|---|---|---|
| Referral fee | 2-8% | Varies by category |
| Transaction fee | ~1% | Payment processing |
| Affiliate commission | 5-20% | If using TikTok affiliates |
DeployMonkey + TikTok Shop
DeployMonkey instances support the scheduled actions and API infrastructure needed for TikTok Shop integration. Our AI agent can help configure product sync, order import, and fulfillment workflows.