PHP code example of laraditz / tiktok
1. Go to this page and download the library: Download laraditz/tiktok library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
laraditz / tiktok example snippets
use Laraditz\TikTok\Facades\TikTok;
// Using facade (recommended)
$shops = TikTok::seller()->shops();
// Using service container
$seller = app('tiktok')->seller()->shops();
// Get all products
$products = TikTok::product()->list(
query: [
'page_size' => 20
],
body: [
'status' => 'ALL',
'update_time_ge' => 1758211200 // Unix timestamp
]
);
// Get specific product
$product = TikTok::product()->get(
params: [
'product_id' => 'your_product_id'
]
);
// Update SKU quantity of a product
$updateInventory = TikTok::product()->updateInventory(
params: [
'product_id' => 'your_product_id'
],
body: [
'skus' => [
[
'id' => 'your_product_sku_id',
'inventory' => [
[
'warehouse_id' => 'your_warehouse_id',
'quantity' => 17,
]
]
]
]
],
);
// Search orders
$orders = TikTok::order()->list(
query: [
'page_size' => 50
],
body: [
'order_status' => 'UNPAID',
'create_time_ge' => 1758211200,
'create_time_lt' => 1758297600
]
);
// Get order details
$orderDetails = TikTok::order()->detail(
query: [
'ids' => 'order_id_1,order_id_2'
]
);
// Get order pricing details
$pricing = TikTok::order()->priceDetail(
params: [
'order_id' => 'your_order_id'
]
);
// Get returns
$returns = TikTok::return()->list(
query: [
'page_size' => 20
],
body: [
'create_time_ge' => 1758211200
]
);
// Get specific return records
$returnRecords = TikTok::return()->get(
params: [
'return_id' => '168129934203XXXX' // A unique identifier for a TikTok Shop return request.
]
);
// Get statements
$statements = TikTok::finance()->statements(
query: [
'page_size' => 20,
'sort_field' => 'statement_time'
]
);
// Get transactions for an order
$orderTransactions = TikTok::finance()->transactionsByOrder(
params: [
'order_id' => 'your_order_id'
]
);
// Get transactions for a statement
$statementTransactions = TikTok::finance()->transactionsByStatement(
params: [
'statement_id' => 'your_statement_id'
]
);
// Get unsettled transactions
$unsettled = TikTok::finance()->unsettledTransactions(
query: [
'page_size' => 20
]
);
// Get payments
$payments = TikTok::finance()->payments(
query: [
'page_size' => 20
]
);
// Get withdrawals
$withdrawals = TikTok::finance()->withdrawals(
query: [
'page_size' => 20
]
);
// Method 1: Using make() with shop_id
$products = TikTok::make(shop_id: '7010123456556XXXXXX')
->product()
->list(
query: ['page_size' => 10],
body: ['status' => 'ACTIVATE']
);
// Method 2: Using shopId() method
$orders = TikTok::shopId('7010123456556XXXXXX')
->order()
->list(
query: ['page_size' => 50],
body: ['order_status' => 'UNPAID', 'create_time_ge' => 1758211200]
);
// You also can set shop context and reuse
$tiktok = TikTok::make(shop_id: '7010123456556XXXXXX');
$products = $tiktok->product()->list(/* ... */);
$orders = $tiktok->order()->list(/* ... */);
use Laraditz\TikTok\Exceptions\TikTokAPIError;
try {
$products = TikTok::product()->list(
query: ['page_size' => 10],
body: ['status' => 'ALL']
);
// Handle successful response
$data = $products['data'];
} catch (TikTokAPIError $e) {
// Handle API errors
$errorCode = $e->getCode();
$errorMessage = $e->getMessage();
$errorData = $e->getData();
logger()->error('TikTok API Error', [
'code' => $errorCode,
'message' => $errorMessage,
'data' => $errorData
]);
}
// app/Listeners/TikTokWebhookListener.php
namespace App\Listeners;
use Laraditz\TikTok\Events\WebhookReceived;
class TikTokWebhookListener
{
public function handle(WebhookReceived $event)
{
$eventType = $event->eventType;
$data = $event->data;
match ($eventType) {
'ORDER_STATUS_CHANGE' => $this->handleOrderStatusChange($eventType, $data),
'RETURN_STATUS_CHANGE' => $this->handleReturnStatusChange($eventType, $data),
// Handle other event types
}
}
private function handleOrderStatusChange(string $eventType, array $data)
{
// Your order status change logic here
}
private function handleReturnStatusChange(string $eventType, array $data)
{
// Your return order logic here
}
}
// app/Providers/EventServiceProvider.php
protected $listen = [
\Laraditz\TikTok\Events\WebhookReceived::class => [
\App\Listeners\TikTokWebhookListener::class,
],
\Laraditz\TikTok\Events\TikTokRequestFailed::class => [
\App\Listeners\TikTokRequestFailedListener::class,
],
];
// Register webhook for order status changes
TikTok::event()->updateWebhook(
body: [
'event_type' => 'ORDER_STATUS_CHANGE',
'address' => 'https://your-app-url.com/tiktok/webhooks/order-status',
]
);
// Register webhook for product updates
TikTok::event()->updateWebhook(
body: [
'event_type' => 'PRODUCT_UPDATE',
'address' => 'https://your-app-url.com/tiktok/webhooks/product-update',
]
);
// List all registered webhooks
$webhooks = TikTok::event()->webhookList();
// Delete a specific webhook
TikTok::event()->deleteWebhook(
body: [
'event_type' => 'ORDER_STATUS_CHANGE'
]
);
protected function schedule(Schedule $schedule)
{
// Refresh tokens daily (tokens expire in 7 days)
$schedule->command('tiktok:refresh-token')
->daily()
->withoutOverlapping()
->onFailure(function () {
// Log failures or send notifications
});
// Clean up expired tokens weekly
$schedule->command('tiktok:flush-expired-token')
->weekly();
}
// In your EventServiceProvider
use Laraditz\TikTok\Events\TikTokRequestFailed;
protected $listen = [
TikTokRequestFailed::class => [
function (TikTokRequestFailed $event) {
logger()->error('TikTok API Request Failed', [
'method' => $event->fqcn . '::' . $event->methodName,
'query' => $event->query,
'body' => $event->body,
'message' => $event->message,
]);
}
],
];
bash
php artisan vendor:publish --provider="Laraditz\TikTok\TikTokServiceProvider" --tag="migrations"
bash
php artisan migrate
bash
php artisan vendor:publish --provider="Laraditz\TikTok\TikTokServiceProvider" --tag="config"