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

v0.6.0 2025-09-09 14:20 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:

  1. Desabilitar as rotas no config/tiktokshop.php:

    'enable_default_routes' => false,
  2. Publicar os controllers stubs:

    php artisan vendor:publish --tag="tiktokshop-controllers"
  3. Definir suas próprias rotas em routes/web.php ou 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