---
title: "Conector Shopify"
description: "Ghid complet de integrare Shopify pentru sincronizarea clienților, comenzilor, produselor și evenimentelor de coș cu Brevo."
url: https://tajo.io/ro/docs/connectors/ecommerce/shopify/
markdown: https://tajo.io/ro/docs/connectors/ecommerce/shopify.md
lang: ro-RO
robots: noindex
---

Solicită acces anticipat

Introduceți prenumele și adresa de e-mail profesională. Vă vom trimite un link pentru a confirma cererea de acces la Tajo.

# Conector Shopify

Starea conectorului: În lucru În construcție. Încă neverificat.

| Câmp sursă | Câmp destinație | Valoare exemplu |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conectează-ți magazinul Shopify la Brevo pentru sincronizare completă a datelor clienților, recuperare coșuri abandonate și campanii de marketing automatizate.

## Prezentare generală

| Proprietate | Valoare |
| --- | --- |
| **Platformă** | Shopify |
| **Categorie** | E-commerce |
| **Complexitate setup** | Ușoară |
| **Integrare oficială** | Nu |
| **Date sincronizate** | Clienți, Comenzi, Produse, Coșuri, Evenimente |
| **Skill-uri disponibile** | 12 |

## Funcționalități

- **Sincronizare clienți în timp real** - Datele clienților sincronizate instant în contactele Brevo
- **Urmărire comenzi** - Evenimente de comandă pentru fluxurile post-cumpărare
- **Sincronizare catalog produse** - Produsele disponibile pentru recomandări
- **Abandonarea coșului** - Urmărește și recuperează coșurile abandonate
- **Comportament de navigare** - Urmărirea vizualizărilor de pagină și a interesului pentru produse
- **Suport multi-magazin** - Conectează mai multe magazine Shopify

## Cerințe preliminare

Înainte să începi, asigură-te că ai:

1. Un magazin Shopify cu acces de administrator
2. Un cont Brevo cu acces API
3. Un cont Tajo

## Instalare

### Opțiunea 1: Shopify App Store (Recomandat)

1. Vizitează [aplicația Tajo în Shopify App Store](https://apps.shopify.com/tajo)
2. Apasă „Add app”
3. Acordă permisiunile solicitate
4. Conectează-ți contul Brevo

### Opțiunea 2: Instalare manuală

#### Pasul 1: Creează o aplicație Shopify

1. Mergi la admin-ul Shopify → Settings → Apps and sales channels
2. Apasă „Develop apps” → „Create an app”
3. Numește-o „Tajo Integration”

#### Pasul 2: Configurează scope-urile API

Activează aceste scope-uri:

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

#### Pasul 3: Instalează aplicația

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

#### Pasul 4: Configurează webhook-urile

Tajo înregistrează automat aceste webhook-uri:

| Webhook | Scop |
| --- | --- |
| `customers/create` | Sincronizare clienți noi |
| `customers/update` | Modificări ale datelor clienților |
| `customers/delete` | Ștergere clienți |
| `orders/create` | Evenimente de plasare comandă |
| `orders/updated` | Modificări ale statusului comenzii |
| `checkouts/create` | Coș creat |
| `checkouts/update` | Coș actualizat |

## Configurare

### Setup de bază

```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
```

### Mapare câmpuri

Mapează câmpurile Shopify la atributele contactelor Brevo:

#### Mapări implicite

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Email-ul clientului (identificator unic) |
| `first_name` optional | string | Se mapează la atributul FIRSTNAME |
| `last_name` optional | string | Se mapează la atributul LASTNAME |
| `phone` optional | string | Se mapează la atributul SMS pentru WhatsApp/SMS |
| `accepts_marketing` optional | boolean | Controlează statusul abonării |
| `orders_count` optional | integer | Numărul total de comenzi |
| `total_spent` optional | number | Valoarea clientului pe toată durata |
| `tags` optional | array | Tag-uri ale clientului din Shopify |

#### Mapare atribute personalizate

```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
```

### Sincronizare produse

Sincronizează produsele pentru recomandări prin 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"]
```

### Urmărire inventar

Activează sincronizarea nivelurilor de stoc:

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

## Evenimente

### Evenimente clienți

| Eveniment | Declanșator | Caz de utilizare |
| --- | --- | --- |
| `customer_created` | Înregistrare client nou | Serie de bun venit |
| `customer_updated` | Modificări de profil | Sincronizare date |
| `customer_tags_added` | Tag-uri atribuite | Actualizări segmente |

### Evenimente comandă

| Eveniment | Declanșator | Caz de utilizare |
| --- | --- | --- |
| `order_placed` | Finalizare checkout | Confirmare comandă |
| `order_fulfilled` | Comandă expediată | Notificare expediere |
| `order_cancelled` | Comandă anulată | Email de anulare |
| `order_refunded` | Rambursare procesată | Confirmare rambursare |

### Evenimente coș

| Eveniment | Declanșator | Caz de utilizare |
| --- | --- | --- |
| `cart_created` | Articole adăugate în coș | Urmărire navigare |
| `cart_updated` | Coș modificat | Urmărire valoare coș |
| `cart_abandoned` | Fără checkout timp de 30 min | Email-uri de recuperare |

## Skill-uri activate

Conectorul Shopify activează aceste skill-uri:

| Skill | Descriere |
| --- | --- |
| [Customer Sync](https://tajo.io/ro/docs/skills/data-sync/customer-sync) | Sincronizare clienți în timp real |
| Order Events | Urmărirea ciclului de viață al comenzii |
| [Abandoned Cart](https://tajo.io/ro/docs/skills/email-marketing/abandoned-cart) | Email-uri de recuperare coș |
| Welcome Series | Onboarding clienți noi |
| Post-Purchase | Follow-up comandă |
| Win-Back | Reactivare clienți inactivi |
| Browse Abandonment | Follow-up interes pentru produse |
| Replenishment | Reminder-uri de re-comandare |

## Exemple de cod

### Inițializarea conectorului

```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
});
```

### Rulează sincronizarea inițială

```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
// }
```

### Urmărește evenimentele coșului

Adaugă script-ul Tajo în tema ta 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

Adresa `example.com` de mai sus este un exemplu provizoriu până când endpointul Tajo devine disponibil.

### Handler personalizat pentru webhook

```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');
});
```

## Monitorizare

### Metrici din dashboard

Monitorizează-ți conexiunea Shopify în dashboard-ul Tajo:

- **Status sincronizare**: Sănătatea conexiunii în timp real
- **Clienți sincronizați**: Total contacte din Shopify
- **Comenzi urmărite**: Evenimente de comandă procesate
- **Recuperare coș**: Performanța coșurilor abandonate
- **Rată erori**: Tentative de sincronizare eșuate

### Loguri webhook

Vizualizează statusul livrării webhook-urilor:

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

### Istoric sincronizări

Verifică operațiunile istorice de sincronizare:

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

## Depanare

### Probleme frecvente

Limite rată API

Shopify are limite de rată API de 2 cereri/secundă. Folosește sincronizarea batch pentru importuri istorice mari.

| Problemă | Cauză | Soluție |
| --- | --- | --- |
| Webhook neprimit | Permisiunile aplicației | Reinstalează aplicația cu scope-urile corecte |
| Client nesincronizat | Lipsește email-ul | Shopify necesită email pentru clienți |
| Produse lipsă | Statusul produsului | Verifică dacă produsul este „active” |
| Coș neurmărit | Script neîncărcat | Verifică script-ul în theme.liquid |

### Modul debug

Activează logarea detaliată:

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

### Testează conexiunea

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

## Bune practici

1. **Începe cu un magazin de test** - Folosește mai întâi un magazin de development
2. **Rulează sincronizarea inițială în afara orelor de vârf** - Sincronizările mari pot fi lente
3. **Mapează atribute personalizate** - Nu te baza doar pe mapările implicite
4. **Activează urmărirea coșului** - Critic pentru recuperarea coșului abandonat
5. **Monitorizează sănătatea webhook-urilor** - Configurează alerte pentru livrările eșuate
6. **Folosește importuri batch** - Pentru date istorice de peste 10.000 de înregistrări

## Securitate

- **OAuth 2.0** - Autentificare sigură bazată pe token
- **Verificare webhook** - Validare semnătură HMAC
- **Stocare criptată** - Credențialele API sunt criptate în repaus
- **Acces restricționat** - Numai permisiunile minime necesare

## Resurse asociate

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