Integracje
Shopify — katalog produktów
Jak podpiąć sklep Shopify do Clovie: aplikacja prywatna, token, webhooki produktowe.
Po podłączeniu katalogu asystent zna Twoje produkty, ceny i dostępność — poleca je w rozmowie jako karty z przyciskiem kupna i mówi wprost, gdy czegoś nie ma na stanie.
Shopify nie ma wtyczki do pobrania. Sync zdarzeniowy działa przez natywne webhooki Shopify, które Clovie rejestruje samo przy łączeniu sklepu; widget czatu wkleja się jako snippet w szablonie. Publiczna aplikacja w Shopify App Store (OAuth + App Embed) to osobna, późniejsza faza.
Konfiguracja w adminie Shopify (custom app)
- Settings → Apps and sales channels → Develop apps (przy pierwszym razie: Allow custom app development).
- Create an app (np. „Clovie") → Configure Admin API scopes → zaznacz
read_productsiread_orders→ Save. - Install app → skopiuj Admin API access token (
shpat_…, pokazywany raz). - Z zakładki API credentials skopiuj też API secret key — Clovie weryfikuje nim podpisy HMAC webhooków.
Konfiguracja w panelu Clovie
- Konfigurator asystenta → krok Integracje → karta Sklep internetowy → platforma Shopify.
- Wpisz URL sklepu (
https://twoj-sklep.myshopify.com), Admin API access token i API secret key. - Testuj połączenie → Połącz sklep. Clovie:
- uruchamia pierwszy pełny sync katalogu (GraphQL Admin API),
- rejestruje webhooki
products/update,products/delete,orders/createnahttps://clovie.pl/api/webhooks/catalog/shopify/[orgId](id subskrypcji trzymane w konfiguracji — odłączenie sklepu je wyrejestrowuje).
Widget czatu na sklepie
Online Store → Themes → Edit code → theme.liquid → przed </body> wklej snippet embed
z kroku Publikacja (klucz pk_live_…); dodaj domenę sklepu do dozwolonych originów.
Ograniczenia v1
- Zmiany samych stanów magazynowych (inventory_levels) nie niosą id produktu w payloadzie —
pokrywa je sprzedaż (
orders/create) i cykliczny fallback-sync (6 h). - Custom app jest per sklep — każdy asystent/sklep wymaga własnej appki i tokenów.
Typowe błędy
| Objaw | Rozwiązanie |
|---|---|
| 401/403 przy teście | Sprawdź token shpat_… i scope read_products; token działa tylko po Install app |
| „Nie udało się zarejestrować webhooków" | Sprawdź scope read_orders; katalog i tak działa (fallback-sync), połącz ponownie po poprawce |
| Webhook 403 w logach | API secret key w panelu ≠ secret appki — wklej ponownie z API credentials |
| Brak widgetu na sklepie | Snippet nie wklejony w theme.liquid albo domena poza dozwolonymi originami |