Guia de Integração WooCommerce

Este guia abrangente explica como integrar o Tajo com a sua loja WooCommerce para desbloquear um poderoso envolvimento com clientes, programas de fidelidade e capacidades de automação de marketing.

Visão Geral

A integração Tajo-WooCommerce permite-lhe:

  • Sincronizar dados de clientes automaticamente da sua loja WooCommerce
  • Rastrear pedidos e produtos para marketing personalizado
  • Executar programas de fidelidade com pontos, níveis e recompensas
  • Automatizar campanhas de marketing via Brevo (e-mail, SMS, WhatsApp)
  • Segmentar clientes por comportamento de compra e envolvimento
  • Recuperar carrinhos abandonados com sequências automatizadas

Pré-requisitos

Antes de iniciar a integração, certifique-se de que tem:

  • Site WordPress com WooCommerce instalado (versão 7.0+)
  • Conta Tajo com uma subscrição ativa
  • Conta Brevo (opcional, para automação de marketing)
  • Acesso de administrador ao seu site WordPress
  • PHP 7.4+ e WordPress 6.0+

Passo 1: Instalar o Plugin Tajo

A partir do Diretório de Plugins WordPress

  1. Aceda ao painel de administração do WordPress
  2. Navegue até Plugins → Adicionar Novo
  3. Procure por “Tajo for WooCommerce”
  4. Clique em Instalar Agora e depois em Ativar
  5. Aceda a WooCommerce → Tajo para configurar

Instalação Manual

Se preferir a configuração manual:

Terminal window
# Descarregar o plugin
cd wp-content/plugins
wget https://downloads.tajo.io/woocommerce/tajo-woocommerce-latest.zip
# Descomprimir e instalar
unzip tajo-woocommerce-latest.zip

Em seguida, ative a partir do painel WordPress:

  1. Aceda a Plugins → Plugins Instalados
  2. Encontre “Tajo for WooCommerce”
  3. Clique em Ativar

Configuração

Navegue até WooCommerce → Tajo → Definições e introduza as suas credenciais:

// Estas definições são configuradas através do painel de administração
// ou podem ser adicionadas ao wp-config.php para configurações avançadas
define('TAJO_API_KEY', 'your_tajo_api_key');
define('TAJO_API_SECRET', 'your_tajo_api_secret');
define('BREVO_API_KEY', 'your_brevo_api_key'); // Opcional

Passo 2: Configurar Sincronização de Dados

Definições de Sincronização de Clientes

No painel do Tajo, configure quais os dados de clientes a sincronizar:

{
"sync_settings": {
"customers": {
"enabled": true,
"sync_frequency": "real-time",
"fields": [
"email",
"first_name",
"last_name",
"billing_phone",
"accepts_marketing",
"total_spent",
"order_count",
"date_created",
"billing_address",
"shipping_address"
]
},
"orders": {
"enabled": true,
"sync_frequency": "real-time",
"include_line_items": true,
"include_shipping": true
},
"products": {
"enabled": true,
"sync_frequency": "hourly",
"include_variations": true,
"include_images": true
}
}
}

Hooks do WooCommerce

O Tajo integra-se automaticamente nestas ações do WooCommerce:

HookPropósito
woocommerce_created_customerSincronizar novos clientes para Tajo e Brevo
woocommerce_update_customerManter perfis de clientes atualizados
woocommerce_new_orderRastrear compras, atribuir pontos de fidelidade
woocommerce_order_status_completedAcionar campanhas pós-compra
woocommerce_order_status_processingEnviar confirmação de pedido
woocommerce_cart_updatedRastrear carrinho para recuperação de abandono
woocommerce_update_productManter catálogo de produtos sincronizado

Importação Inicial de Dados

Para lojas existentes, importe dados históricos:

<?php
// Importar clientes existentes para o Tajo
function tajo_import_existing_customers() {
$customers = get_users([
'role' => 'customer',
'number' => -1
]);
foreach ($customers as $customer) {
$customer_data = new WC_Customer($customer->ID);
tajo_sync_customer([
'email' => $customer_data->get_email(),
'firstName' => $customer_data->get_first_name(),
'lastName' => $customer_data->get_last_name(),
'phone' => $customer_data->get_billing_phone(),
'totalSpent' => $customer_data->get_total_spent(),
'ordersCount' => $customer_data->get_order_count(),
'source' => 'woocommerce',
'externalId' => $customer->ID
]);
}
}
// Executar importação
tajo_import_existing_customers();

Passo 3: Configurar Programa de Fidelidade

Configurar Sistema de Pontos

Defina como os clientes ganham pontos em WooCommerce → Tajo → Fidelidade:

<?php
// Configuração de pontos
$points_config = [
// Pontos por valor gasto
'purchase_points' => [
'enabled' => true,
'rate' => 1, // 1 ponto por $1
'rounding_mode' => 'floor'
],
// Ações de bónus
'bonus_points' => [
'account_creation' => 100,
'first_purchase' => 200,
'review_submitted' => 50,
'referral_made' => 500,
'birthday_bonus' => 100,
'newsletter_signup' => 25
],
// Multiplicadores por nível
'tier_multipliers' => [
'Bronze' => 1.0,
'Silver' => 1.25,
'Gold' => 1.5,
'Platinum' => 2.0
]
];

Shortcodes do Widget de Fidelidade

Apresente informações de fidelidade no seu site:

// Saldo de pontos do cliente
[tajo_points_balance]
// Histórico de pontos
[tajo_points_history limit="10"]
// Estado do nível atual
[tajo_loyalty_tier]
// Recompensas disponíveis
[tajo_rewards_catalog]
// Link de indicação
[tajo_referral_link]

Definir Níveis de Fidelidade

<?php
$loyalty_tiers = [
[
'name' => 'Bronze',
'min_points' => 0,
'benefits' => [
'1 ponto por $1 gasto',
'Pontos bónus de aniversário',
'Promoções exclusivas para membros'
]
],
[
'name' => 'Silver',
'min_points' => 1000,
'benefits' => [
'Multiplicador de pontos 1,25x',
'Envio gratuito em pedidos acima de $50',
'Acesso antecipado a saldos'
]
],
[
'name' => 'Gold',
'min_points' => 5000,
'benefits' => [
'Multiplicador de pontos 1,5x',
'Envio gratuito em todos os pedidos',
'Acesso exclusivo a produtos',
'Suporte ao cliente prioritário'
]
],
[
'name' => 'Platinum',
'min_points' => 15000,
'benefits' => [
'Multiplicador de pontos 2x',
'Envio expresso gratuito',
'Experiências VIP',
'Assistente de compras pessoal',
'Oferta anual'
]
]
];

Criar Catálogo de Recompensas

<?php
$rewards = [
[
'id' => 'discount_5',
'name' => '$5 de Desconto',
'points_cost' => 500,
'type' => 'fixed_cart',
'value' => 5,
'min_purchase' => 25
],
[
'id' => 'discount_10',
'name' => '$10 de Desconto',
'points_cost' => 900,
'type' => 'fixed_cart',
'value' => 10,
'min_purchase' => 50
],
[
'id' => 'percent_10',
'name' => '10% de Desconto',
'points_cost' => 750,
'type' => 'percent',
'value' => 10,
'max_discount' => 50
],
[
'id' => 'free_shipping',
'name' => 'Envio Gratuito',
'points_cost' => 300,
'type' => 'free_shipping'
]
];

Passo 4: Recuperação de Carrinho Abandonado

Configurar Rastreamento do Carrinho

<?php
// Rastrear atualizações do carrinho
add_action('woocommerce_cart_updated', 'tajo_track_cart');
function tajo_track_cart() {
if (!is_user_logged_in() && !WC()->session->get('tajo_guest_email')) {
return; // Necessário e-mail para rastreamento
}
$cart = WC()->cart;
if ($cart->is_empty()) {
return;
}
$customer_email = is_user_logged_in()
? wp_get_current_user()->user_email
: WC()->session->get('tajo_guest_email');
$cart_items = [];
foreach ($cart->get_cart() as $item) {
$product = $item['data'];
$cart_items[] = [
'productId' => $item['product_id'],
'variantId' => $item['variation_id'] ?: null,
'title' => $product->get_name(),
'quantity' => $item['quantity'],
'price' => $product->get_price(),
'image' => wp_get_attachment_url($product->get_image_id())
];
}
tajo_api_call('carts/track', [
'email' => $customer_email,
'cartToken' => WC()->session->get_customer_id(),
'items' => $cart_items,
'totalPrice' => $cart->get_total('edit'),
'currency' => get_woocommerce_currency(),
'checkoutUrl' => wc_get_checkout_url()
]);
}

Capturar E-mail de Visitante

<?php
// Capturar e-mail no checkout para recuperação de visitantes
add_action('woocommerce_after_checkout_billing_form', 'tajo_capture_guest_email_js');
function tajo_capture_guest_email_js() {
?>
<script>
jQuery(function($) {
$('#billing_email').on('blur', function() {
var email = $(this).val();
if (email && email.includes('@')) {
$.post('<?php echo admin_url('admin-ajax.php'); ?>', {
action: 'tajo_capture_email',
email: email,
nonce: '<?php echo wp_create_nonce('tajo_email_capture'); ?>'
});
}
});
});
</script>
<?php
}
add_action('wp_ajax_nopriv_tajo_capture_email', 'tajo_capture_email_handler');
function tajo_capture_email_handler() {
check_ajax_referer('tajo_email_capture', 'nonce');
WC()->session->set('tajo_guest_email', sanitize_email($_POST['email']));
wp_die();
}

Configurar Sequência de Recuperação

{
"abandoned_cart_sequence": {
"trigger": {
"event": "cart_abandoned",
"delay": "1 hour"
},
"messages": [
{
"delay": "1 hour",
"channel": "email",
"template": "cart_reminder_1",
"subject": "Você deixou algo para trás!"
},
{
"delay": "24 hours",
"channel": "email",
"template": "cart_reminder_2",
"subject": "O seu carrinho está à espera - 10% de desconto incluído"
},
{
"delay": "72 hours",
"channel": "sms",
"template": "cart_sms_final",
"message": "Última oportunidade! O seu carrinho está prestes a expirar. Conclua a sua encomenda: {{checkout_url}}"
}
],
"exit_conditions": [
"order_completed",
"cart_emptied",
"unsubscribed"
]
}
}

Passo 5: Automação de Marketing com Brevo

Segmentos de Clientes

Crie segmentos com base nos dados do WooCommerce:

<?php
$woo_segments = [
// Comportamento de compra
[
'name' => 'Primeiras Compras',
'conditions' => ['order_count' => 1]
],
[
'name' => 'Clientes Recorrentes',
'conditions' => ['order_count' => ['$gte' => 2]]
],
[
'name' => 'Clientes VIP',
'conditions' => ['total_spent' => ['$gte' => 500]]
],
[
'name' => 'Clientes em Risco',
'conditions' => [
'last_order_date' => ['$lt' => '-90 days'],
'order_count' => ['$gte' => 2]
]
],
// Interesse em produtos
[
'name' => 'Categoria: Eletrónica',
'conditions' => ['purchased_categories' => ['$contains' => 'Electronics']]
],
// Envolvimento
[
'name' => 'Carrinho Abandonado',
'conditions' => ['has_abandoned_cart' => true]
]
];

Gatilhos de Campanha Automatizados

<?php
// Pedido concluído - atribuir pontos e acionar campanhas
add_action('woocommerce_order_status_completed', 'tajo_order_completed', 10, 1);
function tajo_order_completed($order_id) {
$order = wc_get_order($order_id);
$customer_email = $order->get_billing_email();
// Obter ou criar cliente no Tajo
$customer = tajo_get_customer($customer_email);
// Calcular e atribuir pontos
$points_earned = tajo_calculate_points($order, $customer);
tajo_award_points($customer['id'], $points_earned, [
'reason' => 'purchase',
'orderId' => $order_id
]);
// Enviar para Brevo para campanhas
brevo_track_event($customer_email, 'order_completed', [
'order_id' => $order_id,
'order_total' => $order->get_total(),
'points_earned' => $points_earned,
'loyalty_tier' => $customer['loyaltyTier'],
'products' => array_map(function($item) {
return $item->get_name();
}, $order->get_items())
]);
}
// Campanha de pedido de avaliação pós-compra
$review_request_campaign = [
'trigger' => 'order_completed',
'delay' => '14 days', // Aguardar tempo para entrega
'template' => 'review_request',
'conditions' => [
'customer_opted_in' => true
]
];
// Campanha de reativação
$win_back_campaign = [
'trigger' => 'customer_inactive',
'conditions' => [
'last_order_date' => '-90 days',
'order_count' => ['$gte' => 1]
],
'sequence' => [
['delay' => '0', 'template' => 'we_miss_you', 'offer' => '15% de desconto'],
['delay' => '7 days', 'template' => 'win_back_2', 'offer' => '20% de desconto'],
['delay' => '14 days', 'template' => 'final_offer', 'offer' => '25% de desconto']
]
];

Passo 6: Recomendações de Produtos

Configurar Motor de Recomendações

<?php
$recommendation_config = [
'algorithms' => [
[
'name' => 'frequently_bought_together',
'weight' => 0.3
],
[
'name' => 'similar_products',
'weight' => 0.25
],
[
'name' => 'customer_also_viewed',
'weight' => 0.2
],
[
'name' => 'trending_in_category',
'weight' => 0.15
],
[
'name' => 'personalized_for_you',
'weight' => 0.1
]
],
'filters' => [
'exclude_purchased' => true,
'exclude_out_of_stock' => true,
'min_rating' => 3.5
]
];

Apresentar Recomendações

// Shortcode para recomendações de produtos
[tajo_recommendations limit="4" algorithm="frequently_bought_together"]
// Ou usar em templates
<?php
$recommendations = tajo_get_recommendations([
'customer_id' => get_current_user_id(),
'limit' => 4,
'context' => 'product_page',
'current_product' => get_the_ID()
]);
foreach ($recommendations as $product_id) {
$product = wc_get_product($product_id);
// Apresentar produto
}
?>

Passo 7: Análise e Relatórios

Painel de Métricas Principais

Aceda às análises em WooCommerce → Tajo → Análise ou via API:

<?php
$dashboard_metrics = [
// Métricas de clientes
'customers' => [
'total' => tajo_analytics_count('customers'),
'new_this_month' => tajo_analytics_count('customers', [
'created_at' => ['$gte' => 'this_month']
]),
'returning_rate' => tajo_analytics_returning_customer_rate()
],
// Métricas de receita
'revenue' => [
'total' => tajo_analytics_sum('orders.total'),
'average_order_value' => tajo_analytics_avg('orders.total'),
'revenue_per_customer' => tajo_analytics_revenue_per_customer()
],
// Métricas de fidelidade
'loyalty' => [
'active_members' => tajo_analytics_count('loyalty_members', [
'status' => 'active'
]),
'points_issued' => tajo_analytics_sum('points.awarded'),
'points_redeemed' => tajo_analytics_sum('points.redeemed'),
'redemption_rate' => tajo_analytics_points_redemption_rate()
],
// Métricas de campanhas
'campaigns' => [
'emails_sent' => brevo_analytics_emails_sent('this_month'),
'open_rate' => brevo_analytics_open_rate('this_month'),
'click_rate' => brevo_analytics_click_rate('this_month'),
'revenue_attributed' => tajo_analytics_campaign_revenue('this_month')
]
];

Resolução de Problemas

Problemas Comuns

Conflitos de Plugins

<?php
// Verificar conflitos de plugins
function tajo_check_conflicts() {
$conflicts = [];
$problematic_plugins = [
'some-caching-plugin/plugin.php',
'aggressive-minifier/plugin.php'
];
foreach ($problematic_plugins as $plugin) {
if (is_plugin_active($plugin)) {
$conflicts[] = $plugin;
}
}
return $conflicts;
}

Verificação de Webhook

<?php
// Verificar assinatura de webhook do Tajo
function tajo_verify_webhook($payload, $signature) {
$expected = hash_hmac(
'sha256',
$payload,
get_option('tajo_webhook_secret')
);
return hash_equals($expected, $signature);
}

Problemas de Sincronização

<?php
// Depurar problemas de sincronização
function tajo_debug_sync($customer_id) {
$customer = new WC_Customer($customer_id);
error_log('Tajo Sync Debug para Cliente ' . $customer_id);
error_log('E-mail: ' . $customer->get_email());
error_log('Total Gasto: ' . $customer->get_total_spent());
error_log('Número de Pedidos: ' . $customer->get_order_count());
// Testar ligação à API
$response = tajo_api_call('ping');
error_log('Resposta API: ' . print_r($response, true));
}

Limitação de Taxa

<?php
// Implementar limitação de taxa para chamadas à API
function tajo_rate_limited_call($endpoint, $data, $retries = 3) {
for ($i = 0; $i < $retries; $i++) {
$response = tajo_api_call($endpoint, $data);
if (!is_wp_error($response)) {
return $response;
}
if ($response->get_error_code() === 'rate_limited') {
$delay = pow(2, $i) * 1000000; // Retrocesso exponencial em microssegundos
usleep($delay);
continue;
}
break;
}
return $response;
}

Próximos Passos

  1. Configurar a Integração Brevo para campanhas de e-mail/SMS
  2. Configurar Webhooks para eventos em tempo real
  3. Criar Segmentos de Clientes para marketing direcionado
  4. Criar Modelos de E-mail para campanhas automatizadas

Suporte

Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.

Comece grátis com Brevo