---
title: "Ghid de integrare Shopify | Tajo"
description: "Cum conectează Tajo un magazin Shopify cu Brevo: sincronizarea prin webhook-uri a aplicației Shopify, regulile de sincronizare pe care le construiește un agent și le aprobă o persoană, și instrumentele MCP pentru Shopify."
url: https://tajo.io/ro/docs/ecommerce-platforms/shopify/
markdown: https://tajo.io/ro/docs/ecommerce-platforms/shopify.md
lang: ro-RO
author: "Set Noa"
author_url: https://tajo.io/ro/set-noa/
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.

# Ghid de integrare Shopify

[Set Noa](https://tajo.io/ro/set-noa/)

Tajo conectează Shopify cu Brevo în două locuri. Aplicația Tajo Shopify transformă webhook-urile Shopify în scrieri în Brevo pe măsură ce sosesc. Regulile de sincronizare, pe care le construiește un agent și le aprobă o persoană, mută înregistrări în Brevo după un program. Pagina aceasta le acoperă pe amândouă, apoi instrumentele Shopify pe care Tajo le oferă prin MCP.

## Cerințe preliminare

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

- **Magazin Shopify** pe orice plan (Basic, Shopify, Advanced sau Plus)
- **Cont Tajo** (Tajo este în acces timpuriu)
- **Cont Brevo**, destinația sincronizării
- **Acces de administrator** la magazinul tău Shopify

## Pasul 1: Conectează magazinul tău Shopify

Tajo este în acces timpuriu. Aplicația Shopify nu este listată în Shopify App Store și nu există un link de instalare self-service. [Contactează echipa](https://tajo.io/ro/contact) pentru configurare. Odată ce spațiul tău de lucru Tajo este pregătit:

1. În Tajo, deschide **Connections**.
2. Introdu domeniul myshopify.com al magazinului tău și alege **Connect Shopify**. Shopify afișează scope-urile pe care le solicită Tajo și te readuce în Tajo după ce le aprobi.
3. Verifică la ce folosește fiecare scope și ce scrie Tajo înapoi în Shopify în [Shopify permissions explained](https://tajo.io/ro/resources/help/integrations/shopify-permissions-explained/).

## Pasul 2: Ce trimite aplicația Tajo Shopify către Brevo

Aplicația verifică fiecare webhook Shopify, îl stochează, îl pune în coadă și îl procesează imediat. Topicurile despre clienți și produse așteaptă mai întâi aproximativ patru secunde. Nu există o fereastră de procesare în loturi. O sarcină eșuată este reîncercată cu backoff.

### Topicuri de webhook

Aplicația Tajo Shopify se abonează la aceste topicuri de webhook Shopify:

| Topicuri de webhook | Scop |
| --- | --- |
| `customers/create`, `customers/update`, `customers/delete` | Mențin contactele Brevo la zi |
| `orders/create`, `orders/updated`, `orders/fulfilled`, `orders/cancelled` | Evenimente de comenzi și metrici de comenzi pentru Brevo |
| `orders/paid`, `refunds/create` | Acordă și scad puncte de loialitate |
| `checkouts/create`, `checkouts/update` | Recuperarea checkout-urilor abandonate în Brevo |
| `products/create`, `products/update`, `products/delete` | Mențin catalogul de produse din Brevo la zi |
| `inventory_levels/update` | Mențin stocul de produse din Brevo la zi |
| `collections/create`, `collections/update`, `collections/delete` | Mențin colecțiile la zi |
| `companies/*`, `company_contacts/*`, `company_locations/*` (create, update, delete) | Sincronizarea companiilor B2B |
| `app/uninstalled`, `app/scopes_update`, `app_subscriptions/update` | Ciclul de viață al aplicației |

Sunt gestionate și webhook-urile obligatorii de confidențialitate ale Shopify (cerere de date ale clientului, ștergerea datelor clientului, ștergerea datelor magazinului). Aplicația nu se abonează la `carts/*`. Coșurile abandonate provin din topicurile `checkouts/*`.

Ce ajunge în Brevo:

| Eveniment Shopify | În Brevo |
| --- | --- |
| Client creat sau actualizat | Contactul este creat sau actualizat cu numele, adresa de e-mail și consimțământul de marketing. Pe planurile plătite, aplicația adaugă etichete, numărul de comenzi, suma cheltuită și ultima comandă. |
| Client șters | Contactul este dezabonat, nu șters |
| Comandă creată, actualizată, plătită, onorată sau anulată | Comanda, prin API-ul de comenzi al Brevo, și evenimentele `order_paid`, `order_completed` și `order_cancelled` |
| Rambursare creată | Evenimentul `order_refunded`. Dacă rulezi un program de fidelitate Brevo prin Tajo, punctele sunt scăzute proporțional. |
| Comandă plătită, cu un program de fidelitate Brevo | Puncte acordate la rata ta de puncte per dolar |
| Checkout creat sau actualizat, cu o adresă de e-mail și articole | Evenimentele `cart_updated` și `cart_abandoned`. Automatizarea ta din Brevo decide când se trimite. |
| Produs sau colecție creat(ă), actualizat(ă) sau șters(ă) | Catalogul de produse și categoriile din Brevo |
| Nivel de stoc actualizat | Stocul produsului în catalogul Brevo. Când o variantă trece de la 0 la peste 0, fiecare cumpărător care a cerut să fie anunțat primește un eveniment `back_in_stock`, o dată la fiecare reaprovizionare. |

Aplicația nu adaugă un buton „Notify me” în tema ta. O cerere de anunțare la revenirea în stoc trebuie să vină din magazinul tău online, de exemplu dintr-un buton pe care îl adaugi tu.

### Date existente

La instalare, aplicația importă clienții tăi existenți ca și contacte Brevo. O sincronizare istorică completă pornește din pagina de sincronizare a aplicației. Pe planurile plătite, importă și produse, colecții, companii și comenzi.

## Pasul 3: Construiește o regulă de sincronizare cu agentul

O regulă de sincronizare este o definiție declarativă a unei sincronizări: o resursă sursă, o acțiune Brevo, o mapare de câmpuri și un filtru. Nu o scrii de mână. O descrii, un agent o construiește, iar o persoană o aprobă.

1. În Tajo, deschide **Agents** și cere-i agentului **Brevo Integration Architect** sincronizarea în limbaj natural. De exemplu: „Trimite în Brevo, ca și contacte, clienții Shopify care au acceptat marketingul prin e-mail.”
2. Agentul inspectează conectorul Shopify. Eșantionul lui returnează nume și tipuri de câmpuri, niciodată valori ale clienților.
3. Propune o regulă cu o mapare de câmpuri și un filtru, apoi validează maparea de câmpuri față de acțiunea Brevo și face o rulare de probă (dry run) a ciornei. Niciunul dintre acești pași nu citește înregistrări ale clienților.
4. Salvează regula ca ciornă. Poți porni și de la un șablon din **Connections > Syncs and mappings > New sync from template**.
5. **Request publish approval** rulează o previzualizare pe magazinul tău. Citește cel mult 10 înregistrări, nu scrie nimic în Brevo și nu mută cursorul. Înregistrează doar numărători: înregistrări extrase, eligibile, mapate și respinse de filtru, plus erorile de mapare. Dacă previzualizarea eșuează, nu se creează nicio aprobare.
6. O persoană aprobă cererea în pagina **Approvals**, cu o justificare scrisă. Aprobarea este legată de un digest SHA-256 al regulii și expiră după 30 de minute. Pagina regulii afișează apoi **Publish approved version**.

Editarea unei reguli publicate o readuce la stadiul de ciornă. Trece din nou prin previzualizare și aprobare înainte să ruleze iar.

### O regulă reală

Acesta este șablonul **Shopify customers -> Brevo contacts** așa cum îl definește Tajo:

```ts
sourceSlug: "shopify",
sourceResource: "customers",
destinationSlug: "brevo",
destinationAction: "upsert_contact",
fieldMap: [
  { source: "email", destination: "email", transform: "toLowerCase" },
  { source: "first_name", destination: "attributes.FIRSTNAME" },
  { source: "last_name", destination: "attributes.LASTNAME" },
  { source: "phone", destination: "attributes.PHONE" },
  { source: "total_spent", destination: "attributes.TOTAL_SPENT", transform: "toNumber" },
  { source: "orders_count", destination: "attributes.ORDERS_COUNT", transform: "toNumber" },
  { source: "tajo_email_marketing_consent", destination: "attributes.OPT_IN", transform: "toBoolean" },
  { source: "tags", destination: "attributes.SHOPIFY_TAGS" },
  { source: "id", destination: "attributes.SHOPIFY_ID", transform: "toString" },
  { source: "created_at", destination: "attributes.SHOPIFY_CREATED_AT" },
  { source: "updated_at", destination: "attributes.SHOPIFY_UPDATED_AT" },
],
filterExpression:
  "($json.tajo_email_marketing_consent === true) && ($json.tajo_email_suppressed === false)",
```

Filtrul este verificarea consimțământului. Tajo derivă ambele valori din `email_marketing_consent.state` al Shopify sau din indicatorul mai vechi `accepts_marketing`. O regulă care scrie contacte în Brevo nu poate fi publicată fără el. Celălalt șablon Shopify, **Shopify orders → Brevo orders**, înregistrează comenzi în Brevo pentru cumpărătorii care au acceptat marketingul la finalizarea comenzii.

### Când rulează o regulă

- Regulile de sincronizare a contactelor rulează implicit la fiecare 15 minute. Fiecare rulare pornește de la cursorul regulii.
- Pagina unei reguli active are un buton **Test run (1 batch)**.
- O regulă **Shopify orders → Brevo orders** activă și publicată rulează și ea la fiecare 15 minute. Prima rulare programată pornește cu câteva minute înainte de acel moment și nu trimite comenzi mai vechi. Fiecare rulare ulterioară trimite comenzile actualizate de la rularea anterioară.
- Comenzile trecute ajung în Brevo doar când rulezi tu regula: cu **Test run (1 batch)** sau cerându-i agentului **Sync Operator** s-o ruleze.
- O regulă de comenzi rulează programat doar cu filtrul de opt-in la marketing al cumpărătorului din șablon. O regulă al cărei filtru a fost editat rulează doar când o pornești tu.
- După cinci rulări eșuate consecutiv, regula se pune singură pe pauză, iar pagina ei afișează ultima eroare. Rezolvă cauza, apoi publică din nou.

Fiecare rulare apare în istoricul de rulări al regulii, cu înregistrările citite, scrise și eșuate și cu durata ei.

## Ce citește și ce scrie conectorul Shopify

Regulile de sincronizare scriu doar în destinație, aici Brevo. Nu scriu niciodată în Shopify.

Aplicația Tajo Shopify solicită 12 scope-uri și face o listă scurtă de scrieri în Shopify, precum renunțările la consimțământ și etichetele de fidelitate. [Shopify permissions explained](https://tajo.io/ro/resources/help/integrations/shopify-permissions-explained/) enumeră fiecare scope și fiecare scriere, cu ce o declanșează.

Agenții și gazdele MCP ajung la magazin prin conectorul Shopify:

| Citiri | Scrieri |
| --- | --- |
| Detaliile magazinului, clienți (listă și căutare), comenzi, produse, metacâmpuri ale clienților, niveluri de stoc, starea exportului în bloc | Metacâmpuri și etichete ale clienților și pornirea unui export în bloc. Fiecare scriere este pregătită ca propunere și rulează doar după ce este aprobată. |

Conectorul declară și o ajustare de stoc. Aceasta necesită scope-ul `write_inventory`, pe care aplicația Tajo Shopify nu îl solicită.

## Pasul 4: Folosește instrumentele Shopify prin MCP

Tajo oferă conectorul Shopify ca server MCP la `https://alto.tajo.io/mcp/connectors/shopify`. Adaugă-l în Claude Code:

```bash
claude mcp add --transport http tajo-shopify https://alto.tajo.io/mcp/connectors/shopify
```

Gazda descoperă serverul OAuth al Tajo și deschide autentificarea Tajo. Accesul este limitat la conturile cu acces timpuriu. Serverul expune 12 instrumente:

| Instrument | Ce face |
| --- | --- |
| `preview_tajo_shopify_app` | Previzualizare interactivă a aplicației Tajo Shopify, afișată ca MCP UI |
| `get_shop` | Detaliile magazinului |
| `search_customers` | Caută clienți cu sintaxa de interogare Shopify, de exemplu `tag:tajo-vip` sau `total_spent:>100` |
| `list_customers` | Listează clienții, paginat |
| `list_orders` | Listează comenzile, paginat |
| `list_products` | Listează produsele cu variante, imagini și stoc |
| `get_customer_metafields` | Citește metacâmpurile unui client |
| `get_inventory_levels` | Citește stocul unei variante în toate locațiile |
| `poll_bulk_export` | Verifică un export în bloc și obține linkul de descărcare când se termină |
| `calculate_rewards_profile` | Calculează nivelul, punctele și soldul de recompense ale unui client din datele comerciale sincronizate |
| `shopify_propose` | Pregătește o scriere Shopify ca propunere. Nu se trimite nimic. |
| `shopify_apply` | Rulează o propunere aprobată |

## Depanare

- Contactele nu apar în Brevo: vezi [contacte lipsă în Brevo](https://tajo.io/ro/resources/help/troubleshooting/contacts-missing-in-brevo/).
- O regulă care nu rulează sau care s-a pus singură pe pauză: vezi [datele nu se sincronizează](https://tajo.io/ro/resources/help/troubleshooting/data-not-syncing/).

## Pașii următori

- [Înțelegerea sincronizării datelor](https://tajo.io/ro/resources/help/getting-started/understanding-data-sync/), cum se comportă regulile de sincronizare
- [Shopify permissions explained](https://tajo.io/ro/resources/help/integrations/shopify-permissions-explained/), fiecare scope și fiecare scriere
- [Shopify + Brevo](https://tajo.io/ro/docs/integrations/shopify-brevo), ghidul de integrare
- [Contactează echipa](https://tajo.io/ro/contact) pentru configurare
