---
title: "Connettore Shopify"
description: "Guida completa all'integrazione di Shopify per sincronizzare clienti, ordini, prodotti ed eventi del carrello con Brevo."
url: https://tajo.io/it/docs/connectors/ecommerce/shopify/
markdown: https://tajo.io/it/docs/connectors/ecommerce/shopify.md
lang: it-IT
robots: noindex
---

Richiedi l’accesso anticipato

Inserisci il tuo nome e indirizzo email aziendale. Ti invieremo un link per confermare la richiesta di accesso a Tajo.

# Connettore Shopify

Stato del connettore: In corso In costruzione. Non ancora verificato.

| Campo di origine | Campo di destinazione | Valore di esempio |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Collega il tuo negozio Shopify a Brevo per una sincronizzazione completa dei dati cliente, il recupero dei carrelli abbandonati e campagne di marketing automatizzate.

## Panoramica

| Proprietà | Valore |
| --- | --- |
| **Piattaforma** | Shopify |
| **Categoria** | E-commerce |
| **Complessità di setup** | Facile |
| **Integrazione ufficiale** | Sì |
| **Dati sincronizzati** | Clienti, Ordini, Prodotti, Carrelli, Eventi |
| **Skill disponibili** | 12 |

## Funzionalità

- **Sincronizzazione clienti in tempo reale** - I dati dei clienti vengono sincronizzati istantaneamente con i contatti Brevo
- **Tracciamento ordini** - Eventi degli ordini per flussi post-acquisto
- **Sincronizzazione catalogo prodotti** - Prodotti disponibili per raccomandazioni
- **Abbandono carrello** - Traccia e recupera i carrelli abbandonati
- **Comportamento di navigazione** - Tracciamento visualizzazioni pagina e interesse sui prodotti
- **Supporto multi-store** - Collega più negozi Shopify

## Prerequisiti

Prima di iniziare, assicurati di avere:

1. Un negozio Shopify con accesso admin
2. Un account Brevo con accesso API
3. Un account Tajo

## Installazione

### Opzione 1: Shopify App Store (consigliata)

1. Visita l’[app Tajo nello Shopify App Store](https://apps.shopify.com/tajo)
2. Clicca su “Aggiungi app”
3. Concedi i permessi richiesti
4. Collega il tuo account Brevo

### Opzione 2: Installazione manuale

#### Passo 1: Crea un’app Shopify

1. Vai nell’admin Shopify → Impostazioni → App e canali di vendita
2. Clicca su “Sviluppa app” → “Crea un’app”
3. Chiamala “Tajo Integration”

#### Passo 2: Configura gli scope API

Abilita questi scope:

```
read_customers
write_customers
read_orders
read_products
read_checkouts
write_script_tags
```

#### Passo 3: Installa l’app

```bash
# Using Tajo CLI
tajo connectors install shopify \
  --shop-url your-store.myshopify.com \
  --api-key $SHOPIFY_API_KEY \
  --api-secret $SHOPIFY_API_SECRET
```

#### Passo 4: Configura i webhook

Tajo registra automaticamente questi webhook:

| Webhook | Scopo |
| --- | --- |
| `customers/create` | Sincronizzazione nuovo cliente |
| `customers/update` | Modifiche dati cliente |
| `customers/delete` | Rimozione cliente |
| `orders/create` | Eventi di ordine effettuato |
| `orders/updated` | Cambiamenti di stato ordine |
| `checkouts/create` | Carrello creato |
| `checkouts/update` | Carrello aggiornato |

## Configurazione

### Setup di base

```yaml
connectors:
  shopify:
    enabled: true
    shop_url: "your-store.myshopify.com"
    api_version: "2024-01"

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      carts: true
      inventory: false  # Optional

    # List assignment
    lists:
      all_customers: 5
      buyers: 6
      abandoned_cart: 7
```

### Mappatura dei campi

Mappa i campi Shopify agli attributi di contatto Brevo:

#### Mappature predefinite

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Email del cliente (identificatore univoco) |
| `first_name` optional | string | Mappato all'attributo FIRSTNAME |
| `last_name` optional | string | Mappato all'attributo LASTNAME |
| `phone` optional | string | Mappato all'attributo SMS per WhatsApp/SMS |
| `accepts_marketing` optional | boolean | Controlla lo stato dell'iscrizione |
| `orders_count` optional | integer | Numero totale di ordini |
| `total_spent` optional | number | Customer lifetime value |
| `tags` optional | array | Tag cliente da Shopify |

#### Mappatura attributi personalizzati

```yaml
field_mapping:
  # Standard fields
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone: SMS

  # E-commerce metrics
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  last_order_date: LAST_ORDER_DATE

  # Custom fields
  customer_type: CUSTOMER_TYPE
  preferred_language: LANGUAGE
  loyalty_tier: VIP_TIER

  # Computed fields
  average_order_value: AOV
  days_since_last_order: RECENCY
```

### Sincronizzazione prodotti

Sincronizza i prodotti per le raccomandazioni email:

```yaml
sync:
  products:
    enabled: true
    include_variants: true
    include_images: true
    categories_as_tags: true

    # Filter products
    filter:
      status: active
      exclude_tags: ["hidden", "wholesale-only"]
```

### Tracciamento inventario

Abilita la sincronizzazione dei livelli di stock:

```yaml
sync:
  inventory:
    enabled: true
    low_stock_threshold: 10
    out_of_stock_events: true
```

## Eventi

### Eventi cliente

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `customer_created` | Registrazione nuovo cliente | Serie di benvenuto |
| `customer_updated` | Modifiche al profilo | Sincronizzazione dati |
| `customer_tags_added` | Tag assegnati | Aggiornamento segmenti |

### Eventi ordine

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `order_placed` | Checkout completato | Conferma d’ordine |
| `order_fulfilled` | Ordine spedito | Notifica di spedizione |
| `order_cancelled` | Ordine annullato | Email di annullamento |
| `order_refunded` | Rimborso elaborato | Conferma rimborso |

### Eventi carrello

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `cart_created` | Articoli aggiunti al carrello | Tracciamento navigazione |
| `cart_updated` | Carrello modificato | Tracciamento valore carrello |
| `cart_abandoned` | Nessun checkout in 30 min | Email di recupero |

## Skill abilitate

Il connettore Shopify abilita queste skill:

| Skill | Descrizione |
| --- | --- |
| [Customer Sync](https://tajo.io/it/docs/skills/data-sync/customer-sync) | Sincronizzazione clienti in tempo reale |
| Order Events | Tracciamento ciclo di vita ordine |
| [Abandoned Cart](https://tajo.io/it/docs/skills/email-marketing/abandoned-cart) | Email di recupero carrello |
| Welcome Series | Onboarding nuovi clienti |
| Post-Purchase | Follow-up post-ordine |
| Win-Back | Riattiva clienti inattivi |
| Browse Abandonment | Follow-up interesse prodotto |
| Replenishment | Promemoria di riordino |

## Esempi di codice

### Inizializza il connettore

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect Shopify store
await tajo.connectors.connect('shopify', {
  shopUrl: 'your-store.myshopify.com',
  apiKey: process.env.SHOPIFY_API_KEY,
  apiSecret: process.env.SHOPIFY_API_SECRET
});
```

### Esegui la sincronizzazione iniziale

```javascript
// Full historical sync
await tajo.connectors.sync('shopify', {
  type: 'full',
  resources: ['customers', 'orders', 'products'],
  since: '2023-01-01'
});

// Check sync status
const status = await tajo.connectors.status('shopify');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   customersCount: 15420,
//   ordersCount: 8234,
//   productsCount: 342
// }
```

### Traccia eventi del carrello

Aggiungi lo script Tajo al tuo tema Shopify:

```liquid
<!-- Add to theme.liquid before </head> -->
{% if customer %}
<script>
  window.tajoConfig = {
    customerId: "{{ customer.id }}",
    customerEmail: "{{ customer.email }}",
    customerName: "{{ customer.first_name }}"
  };
</script>
{% endif %}
<script src="https://cdn.example.com/shopify.js"></script>
```

Caution

L’indirizzo `example.com` qui sopra è un segnaposto finché l’endpoint Tajo non sarà disponibile.

### Handler webhook personalizzato

```javascript
// Handle Shopify webhooks manually
app.post('/webhooks/shopify', async (req, res) => {
  const hmac = req.get('X-Shopify-Hmac-SHA256');

  // Verify webhook signature
  if (!verifyShopifyWebhook(req.body, hmac)) {
    return res.status(401).send('Unauthorized');
  }

  const topic = req.get('X-Shopify-Topic');

  // Forward to Tajo
  await tajo.connectors.handleWebhook('shopify', {
    topic,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

## Monitoraggio

### Metriche della dashboard

Monitora la tua connessione Shopify nella dashboard Tajo:

- **Stato sincronizzazione**: Salute della connessione in tempo reale
- **Clienti sincronizzati**: Totale contatti da Shopify
- **Ordini tracciati**: Eventi ordine elaborati
- **Recupero carrello**: Performance del recupero carrelli abbandonati
- **Tasso di errore**: Tentativi di sincronizzazione falliti

### Log dei webhook

Visualizza lo stato di consegna dei webhook:

```bash
tajo connectors logs shopify --type webhook --last 24h
```

### Cronologia sincronizzazioni

Controlla le operazioni di sincronizzazione storiche:

```bash
tajo connectors history shopify --limit 10
```

## Risoluzione dei problemi

### Problemi comuni

Limiti di velocità API

Shopify ha limiti di velocità API di 2 richieste/secondo. Usa la sincronizzazione batch per grandi importazioni storiche.

| Problema | Causa | Soluzione |
| --- | --- | --- |
| Webhook non ricevuto | Permessi app | Reinstalla l’app con gli scope corretti |
| Cliente non sincronizzato | Email mancante | Shopify richiede l’email per i clienti |
| Prodotti mancanti | Stato prodotto | Verifica che il prodotto sia in stato “active” |
| Carrello non tracciato | Script non caricato | Verifica lo script in theme.liquid |

### Modalità debug

Abilita il logging dettagliato:

```yaml
connectors:
  shopify:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Testa la connessione

```bash
tajo connectors test shopify
# ✓ API connection successful
# ✓ Webhooks registered
# ✓ Products accessible
# ✓ Customers readable
# ✓ Orders readable
```

## Best practice

1. **Inizia con un negozio di test** - Usa prima un development store
2. **Esegui la sincronizzazione iniziale fuori orario** - Le sync grandi possono essere lente
3. **Mappa attributi personalizzati** - Non affidarti solo alle mappature predefinite
4. **Abilita il tracciamento del carrello** - Fondamentale per il recupero carrelli abbandonati
5. **Monitora la salute dei webhook** - Imposta alert per consegne fallite
6. **Usa importazioni batch** - Per dati storici oltre 10.000 record

## Sicurezza

- **OAuth 2.0** - Autenticazione sicura basata su token
- **Verifica webhook** - Validazione firma HMAC
- **Storage cifrato** - Credenziali API cifrate a riposo
- **Accesso con scope** - Solo i permessi minimi richiesti

## Risorse correlate

- [Connettore WooCommerce](https://tajo.io/it/docs/connectors/ecommerce/woocommerce)
- [Skill Customer Sync](https://tajo.io/it/docs/skills/data-sync/customer-sync)
- [Skill Abandoned Cart](https://tajo.io/it/docs/skills/email-marketing/abandoned-cart)
- [API Contatti Brevo](https://tajo.io/it/docs/contact-management)
