Vodič za Shopify integraciju
Tajo povezuje Shopify s Brevom na dva mjesta. Tajo Shopify aplikacija pretvara Shopify webhookove u zapise u Brevu čim stignu. Pravila sinkronizacije, koja izgradi agent, a odobri osoba, po rasporedu prenose zapise u Brevo. Ova stranica opisuje oboje, a zatim i Shopify alate koje Tajo poslužuje putem MCP-a.
Preduvjeti
Prije početka integracije provjerite imate li:
- Shopify trgovinu na bilo kojem planu (Basic, Shopify, Advanced ili Plus)
- Tajo račun (Tajo je u ranom pristupu)
- Brevo račun, odredište sinkronizacije
- Administratorski pristup svojoj Shopify trgovini
Korak 1: Povežite svoju Shopify trgovinu
Tajo je u ranom pristupu. Shopify aplikacija nije navedena u trgovini Shopify App Store i ne postoji samoposlužna poveznica za instalaciju. Obratite se timu da vam pomogne s postavljanjem. Kad je vaš Tajo radni prostor spreman:
- U Taju otvorite Connections.
- Unesite myshopify.com domenu svoje trgovine i odaberite Connect Shopify. Shopify prikazuje opsege dopuštenja koje Tajo traži i nakon vašeg odobrenja vas vraća u Tajo.
- Za što služi svaki opseg i što Tajo zapisuje natrag u Shopify, provjerite u objašnjenju Shopify dopuštenja.
Korak 2: Što Tajo Shopify aplikacija šalje u Brevo
Aplikacija provjerava svaki Shopify webhook, sprema ga, stavlja u red i odmah obrađuje. Teme kupaca i proizvoda prije toga čekaju oko četiri sekunde. Nema serijskog prozora. Neuspjeli zadatak ponavlja se s postupnom odgodom (backoff).
Teme webhookova
Tajo Shopify aplikacija pretplaćena je na ove teme Shopify webhookova:
| Teme webhookova | Svrha |
|---|---|
customers/create, customers/update, customers/delete | Održavanje ažurnih kontakata u Brevu |
orders/create, orders/updated, orders/fulfilled, orders/cancelled | Događaji narudžbi i metrike narudžbi za Brevo |
orders/paid, refunds/create | Dodjela i oduzimanje bodova vjernosti |
checkouts/create, checkouts/update | Oporavak napuštenih naplata (checkouts) u Brevu |
products/create, products/update, products/delete | Održavanje ažurnog kataloga proizvoda u Brevu |
inventory_levels/update | Održavanje ažurnih zaliha proizvoda u Brevu |
collections/create, collections/update, collections/delete | Održavanje ažurnih kolekcija |
companies/*, company_contacts/*, company_locations/* (create, update, delete) | Sinkronizacija B2B tvrtki |
app/uninstalled, app/scopes_update, app_subscriptions/update | Životni ciklus aplikacije |
Obavezni Shopify webhookovi za privatnost (zahtjev za podatke kupca, brisanje kupca, brisanje trgovine) također su obrađeni. Aplikacija nije pretplaćena na carts/*. Napuštene košarice dolaze iz tema checkouts/*.
Što stiže u Brevo:
| Shopify događaj | U Brevu |
|---|---|
| Kupac stvoren ili ažuriran | Kontakt se stvara ili ažurira s imenom, e-poštom i marketinškom privolom. Na plaćenim planovima aplikacija dodaje oznake, broj narudžbi, potrošeni iznos i posljednju narudžbu. |
| Kupac obrisan | Kontakt se odjavljuje, a ne briše |
| Narudžba stvorena, ažurirana, plaćena, ispunjena ili otkazana | Narudžba putem Brevo API-ja za narudžbe te događaji order_paid, order_completed i order_cancelled |
| Povrat novca stvoren | Događaj order_refunded. Ako putem platforme Tajo vodite Brevo program vjernosti, bodovi se oduzimaju razmjerno. |
| Narudžba plaćena, uz Brevo program vjernosti | Bodovi dodijeljeni prema vašoj stopi bodova po dolaru |
| Naplata stvorena ili ažurirana, s e-poštom i stavkama | Događaji cart_updated i cart_abandoned. Vaša Brevo automatizacija odlučuje kada slati. |
| Proizvod ili kolekcija stvoreni, ažurirani ili obrisani | Katalog proizvoda i kategorije u Brevu |
| Razina zaliha ažurirana | Zaliha proizvoda u katalogu u Brevu. Kada varijanta prijeđe s 0 na više od 0, svaki kupac koji je zatražio obavijest dobiva događaj back_in_stock, jednom po popunjavanju zaliha. |
Aplikacija ne dodaje gumb „Notify me“ u vašu temu. Zahtjev za obavijest o povratku na zalihu mora doći iz vaše trgovine, primjerice s gumba koji sami dodate.
Postojeći podaci
Pri instalaciji aplikacija uvozi vaše postojeće kupce kao Brevo kontakte. Potpuna povijesna sinkronizacija pokreće se sa stranice za sinkronizaciju u aplikaciji. Na plaćenim planovima uvozi i proizvode, kolekcije, tvrtke i narudžbe.
Korak 3: Izgradite pravilo sinkronizacije s agentom
Pravilo sinkronizacije deklarativna je definicija jedne sinkronizacije: izvorni resurs, Brevo radnja, mapiranje polja i filtar. Ne pišete ga ručno. Vi ga opišete, agent ga izgradi, a osoba ga odobri.
- U Taju otvorite Agents i običnim jezikom zatražite sinkronizaciju od agenta Brevo Integration Architect. Na primjer: „Pošalji Shopify kupce koji su prihvatili marketing e-poštom u Brevo kao kontakte.“
- Agent pregledava Shopify konektor. Njegov uzorak vraća nazive i tipove polja, nikada vrijednosti kupaca.
- Predlaže pravilo s mapiranjem polja i filtrom, zatim provjerava mapiranje polja prema Brevo radnji i probno izvodi nacrt (dry run). Nijedan od tih koraka ne čita zapise kupaca.
- Pravilo sprema kao nacrt. Možete krenuti i od predloška u odjeljku Connections > Syncs and mappings > New sync from template.
- Request publish approval pokreće pretpregled nad vašom trgovinom. Čita najviše 10 zapisa, ništa ne zapisuje u Brevo i ne pomiče kursor. Bilježi samo brojeve: preuzete zapise, prihvatljive, mapirane i one koje je filtar odbio, te pogreške mapiranja. Ako pretpregled ne uspije, odobrenje se ne stvara.
- Osoba odobrava zahtjev na stranici Approvals, uz pisano obrazloženje. Odobrenje je vezano uz SHA-256 sažetak pravila i istječe nakon 30 minuta. Stranica pravila tada prikazuje Publish approved version.
Uređivanje objavljenog pravila vraća ga u nacrt. Prije ponovnog izvođenja ponovno prolazi pretpregled i odobrenje.
Stvarno pravilo
Ovo je predložak Shopify customers -> Brevo contacts kako ga Tajo definira:
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)",Filtar je provjera privole. Tajo obje vrijednosti izvodi iz Shopify polja email_marketing_consent.state ili starije oznake accepts_marketing. Pravilo koje zapisuje kontakte u Brevo ne može se objaviti bez njega. Drugi Shopify predložak, Shopify orders → Brevo orders, bilježi narudžbe u Brevu za kupce koji su pri plaćanju prihvatili marketing.
Kada se pravilo izvodi
- Pravila sinkronizacije kontakata zadano se izvode svakih 15 minuta. Svako izvođenje kreće od kursora pravila.
- Stranica aktivnog pravila ima gumb Test run (1 batch).
- Aktivno, objavljeno pravilo Shopify orders → Brevo orders također se izvodi svakih 15 minuta. Njegovo prvo zakazano izvođenje kreće nekoliko minuta prije tog trenutka i ne šalje starije narudžbe. Svako sljedeće izvođenje šalje narudžbe ažurirane od prethodnog.
- Starije narudžbe stižu u Brevo samo kada sami pokrenete pravilo: gumbom Test run (1 batch) ili tako da od agenta Sync Operator zatražite da ga izvede.
- Pravilo za narudžbe izvodi se po rasporedu samo s filtrom predloška za marketinšku privolu kupca. Pravilo čiji je filtar izmijenjen izvodi se samo kada ga pokrenete.
- Nakon pet uzastopnih neuspjelih izvođenja pravilo se samo pauzira, a njegova stranica prikazuje posljednju pogrešku. Otklonite uzrok, zatim ga ponovno objavite.
Svako izvođenje navedeno je u povijesti izvođenja pravila s brojem pročitanih, zapisanih i neuspjelih zapisa te trajanjem.
Što Shopify konektor čita i zapisuje
Pravila sinkronizacije zapisuju samo u odredište, ovdje Brevo. Nikada ne zapisuju u Shopify.
Tajo Shopify aplikacija traži 12 opsega dopuštenja i u Shopify zapisuje kratak popis stvari, poput odjava privole i oznaka vjernosti. Objašnjenje Shopify dopuštenja navodi svaki opseg i svaki zapis te što ga pokreće.
Agenti i MCP domaćini trgovini pristupaju putem Shopify konektora:
| Čita | Zapisuje |
|---|---|
| Podatke o trgovini, kupce (popis i pretraživanje), narudžbe, proizvode, metapolja kupaca, razine zaliha, status skupnog izvoza | Metapolja kupaca i oznake kupaca te pokretanje skupnog izvoza. Svaki se zapis priprema kao prijedlog i izvodi tek nakon odobrenja. |
Konektor deklarira i prilagodbu zaliha. Za nju je potreban opseg write_inventory, koji Tajo Shopify aplikacija ne traži.
Korak 4: Koristite Shopify alate putem MCP-a
Tajo poslužuje Shopify konektor kao MCP poslužitelj na https://alto.tajo.io/mcp/connectors/shopify. Dodajte ga u Claude Code:
claude mcp add --transport http tajo-shopify https://alto.tajo.io/mcp/connectors/shopifyDomaćin otkriva Tajo OAuth poslužitelj i otvara Tajo prijavu. Pristup je ograničen na račune s ranim pristupom. Poslužitelj nudi 12 alata:
| Alat | Što radi |
|---|---|
preview_tajo_shopify_app | Interaktivni pretpregled Tajo Shopify aplikacije, prikazan kao MCP UI |
get_shop | Podaci o trgovini |
search_customers | Pretraživanje kupaca Shopify sintaksom upita, poput tag:tajo-vip ili total_spent:>100 |
list_customers | Popis kupaca, po stranicama |
list_orders | Popis narudžbi, po stranicama |
list_products | Popis proizvoda s varijantama, slikama i zalihama |
get_customer_metafields | Čitanje metapolja kupca |
get_inventory_levels | Čitanje zaliha varijante na svim lokacijama |
poll_bulk_export | Provjera skupnog izvoza i preuzimanje poveznice za preuzimanje kada završi |
calculate_rewards_profile | Izračun razine, bodova i stanja nagrada kupca iz sinkroniziranih podataka o trgovini |
shopify_propose | Priprema jednog zapisa u Shopify kao prijedloga. Ništa se ne šalje. |
shopify_apply | Izvođenje odobrenog prijedloga |
Rješavanje problema
- Kontakti se ne pojavljuju u Brevu: pogledajte kontakti nedostaju u Brevu.
- Pravilo se ne izvodi ili se samo pauziralo: pogledajte podaci se ne sinkroniziraju.
Sljedeći koraci
- Razumijevanje sinkronizacije podataka, kako se pravila sinkronizacije ponašaju
- Objašnjenje Shopify dopuštenja, svaki opseg i svaki zapis
- Shopify + Brevo, vodič za integraciju
- Obratite se timu za postavljanje