isckosta / laravel-tiktok-shop
Laravel integration for TikTok Shop (multi-tenant, webhooks, DTOs, retries).
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/isckosta/laravel-tiktok-shop
Requires
- php: ^8.3
- illuminate/console: ^11.0|^12.0
- illuminate/database: ^11.0|^12.0
- illuminate/http: ^11.0|^12.0
- illuminate/routing: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
Requires (Dev)
- mockery/mockery: ^1.6
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
This package is auto-updated.
Last update: 2026-01-10 10:23:53 UTC
README
Integração robusta e extensível com a API da TikTok Shop, construída para aplicações Laravel. Suporta autenticação OAuth, múltiplas lojas (multi-tenant), gerenciamento de produtos, pedidos, preços, estoque e webhooks.
🚀 Requisitos
- PHP ^8.3
- Laravel ^11 ou ^12
- Extensão cURL habilitada
📦 Instalação
composer require isckosta/laravel-tiktok-shop
Publique as configurações:
php artisan vendor:publish --tag="tiktokshop-config"
Publique os migrations:
php artisan vendor:publish --tag="tiktokshop-migrations"
Opcionalmente, publique os controllers stubs:
php artisan vendor:publish --tag="tiktokshop-controllers"
Opcionalmente, publique as rotas:
php artisan vendor:publish --tag="tiktokshop-routes"
⚙️ Configuração
1. Variáveis de ambiente
TTSHOP_SERVICE_ID=seu_service_id TTSHOP_APP_KEY=seu_app_key TTSHOP_APP_SECRET=seu_app_secret TTSHOP_REDIRECT_URI=https://seusistema.com/tiktok/callback TTSHOP_BASE_URI=https://open-api.tiktokglobalshop.com TTSHOP_AUTH_BASE_URI=https://auth.tiktok-shops.com
As credenciais (App Key e App Secret) são obtidas no painel da TikTok Shop Developer: https://partner.tiktokglobalshop.com
🔑 Rotas & Fluxo de Autenticação (OAuth)
O package já registra automaticamente as rotas de autorização e callback se enable_default_routes = true (padrão):
/tiktok/authorize -> TikTokShopAuthController@redirect /tiktok/callback -> TikTokShopAuthController@callback /webhooks/tiktok-shop -> TikTokWebhookController@handle
Se você publicar as rotas, o package vai dar preferência ao arquivo publicado (routes/tiktokshop.php) em vez do do package.
Se você desabilitar a flag, nenhuma rota será registrada e você deve criar manualmente.
Como personalizar:
-
Desabilitar as rotas no
config/tiktokshop.php:'enable_default_routes' => false, -
Publicar os controllers stubs:
php artisan vendor:publish --tag="tiktokshop-controllers" -
Definir suas próprias rotas em
routes/web.phpou usar o arquivo publicado:use App\Http\Controllers\TikTokOAuthController; use App\Http\Controllers\TikTokWebhookController; Route::get('/tiktok/authorize', [TikTokOAuthController::class, 'redirect']); Route::get('/tiktok/callback', [TikTokOAuthController::class, 'callback']); Route::post('/webhooks/tiktok', [TikTokWebhookController::class, 'handle']);
Exemplo de Controller OAuth (stub publicado)
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use TikTokShop\Facades\TikTokShop; class TikTokOAuthController extends Controller { public function redirect() { $url = TikTokShop::oauth()->getAuthorizationUrl(); return redirect()->away($url); } public function callback(Request $request) { $code = $request->query('code'); $tokens = TikTokShop::oauth()->getAccessToken($code); // Salvar tokens no banco // TikTokCredential::create($tokens); return response()->json($tokens); } }
🛒 Uso Básico
Buscar produtos
$client = TikTokShop::connection('default'); $response = $client->products()->search([ 'page_size' => 20, ]);
Criar produto
$response = TikTokShop::connection('default')->products()->create($payload);
Buscar pedidos
$response = TikTokShop::connection('default')->orders()->list([ 'page_size' => 10, ]);
⚡ Comandos Artisan
Autorizar uma loja
Inicia o fluxo de autorização OAuth:
php artisan tiktokshop:authorize
Sincronizar produtos
Dispara a sincronização de produtos da loja com a TikTok Shop:
php artisan tiktokshop:sync-products
📂 Publicações
Configuração
php artisan vendor:publish --tag="tiktokshop-config"
Migrations
php artisan vendor:publish --tag="tiktokshop-migrations"
Controllers stubs
php artisan vendor:publish --tag="tiktokshop-controllers"
Rotas
php artisan vendor:publish --tag="tiktokshop-routes"
✅ Roadmap
- Autenticação OAuth
- Gerenciamento de produtos
- Pedidos
- Webhooks
- Estoque e preços
- Relatórios e estatísticas
- SDK para Flutter/React Native
🧪 Testes
php artisan test
📄 Licença
MIT © isckosta