Jak používat Shoply Merchant API

A secure merchant key unlocks an API connector carrying storefront chat, analytics, and knowledge into backend code

Shoply Merchant API umožňuje obchodníkovi bezpečně používat vlastní data ze Shoply v nástrojích pro reporting, pracovních postupech podpory, plánovaných exportech a soukromých firemních aplikacích.

Každá integrace se ověřuje pomocí odvolatelného přihlašovacího údaje vázaného na obchod, který se vytváří v Shoply Settings. Nemusíte sdílet přístupový token Shopify Admin API a integrace může přistupovat pouze k obchodu, který její přihlašovací údaj vydal.

Co mohu dělat s Merchant API?

Merchant API můžete používat k:

  • exportu denních, týdenních nebo měsíčních výsledků výkonu do tabulky nebo datového skladu,
  • vytvoření soukromého dashboardu pro relace, chaty, vyhledávání, kliknutí na produkty, události přidání do košíku, nákupy a přiřazené tržby,
  • monitorování aktivity zákazníků a odhalování neobvyklých změn v zapojení,
  • kontrole chatových a vyhledávacích relací pro podporu, merchandising a práci s kvalitou odpovědí,
  • získání časové osy jednotlivé konverzace při vyšetřování problému zákazníka,
  • vytváření, aktualizaci, výpisu a mazání vlastních znalostí používaných Shoply AI,
  • přidání externí webové stránky nebo nahraného PDF, textového či Markdown souboru do znalostní báze,
  • sladění dat událostí v UTC s místním časovým pásmem obchodu.

Tento průvodce dokumentuje sedm endpointů. Pět z nich jsou stejné endpointy, které používá Shoply Admin → Analytics, zatímco dva spravují znalostní bázi:

APIKategorieCo vrací
admin_store_analyticsVýkonDenní, týdenní nebo měsíční řádky výkonu a součty
query_api_usage_countZapojeníPočty aktivit seskupené podle minuty UTC nebo dne
query_sessionized_chatKonverzaceSouhrny chatových a vyhledávacích relací
query_log_visualizationKonverzaceKompletní časovou osu událostí pro jednu vybranou relaci
admin_get_store_metadataKonfigurace obchoduČasové pásmo obchodu používané pro správné zobrazení dat UTC
admin_store_knowledgeZnalostiVlastní text, externí stránky, nahrané soubory, mazání a opětovné procházení
user_generated_fileSoubory znalostíNahrání PDF, textového nebo Markdown souboru před jeho registrací jako znalosti

Níže uvedená těla odpovědí jsou reprezentativní ukázky. Vaše pole a hodnoty budou odrážet aktivitu zaznamenanou pro váš obchod.

Požadavek na nasazení: Ověřování pomocí tajného klíče vlastníka obchodu musí být nasazeno na API serveru, který voláte. Pokud platný secret vrací HTTP 403 s No access_token found, tento server stále používá starší ověřovací kód pouze s access tokenem.

Jak vytvořím tajný API klíč?

  1. Otevřete správu Shoply AI.
  2. Přejděte do Settings → Store owner API secret.
  3. Vytvořte secret a dejte mu název, který identifikuje integraci, například Weekly reporting export.
  4. Secret zkopírujte ve chvíli, kdy se zobrazí. Shoply ukáže jeho hodnotu v prostém textu pouze jednou.
Shoply Settings showing the Store owner API secret panel, Create API secret button, expiry date, and revoke control

Každý secret je platný 90 dní. Obchod může mít samostatné secrety pro samostatné integrace a jeden secret můžete odvolat, aniž byste přerušili ostatní.

Uložte tyto hodnoty jako serverové proměnné prostředí:

bash
export SHOPLY_STORE_KEY="your-store.myshopify.com" export SHOPLY_STORE_OWNER_API_SECRETE="shoply_owner_key_example123.secret-value"

Pro SHOPLY_STORE_KEY používejte trvalou doménu obchodu myshopify.com, i když zákazníci běžně navštěvují vlastní doménu.

Settings → Store owner API secret contains the Create API secret control. Keep generated secrets private.
Settings → Store owner API secret contains the Create API secret control. Keep generated secrets private. Click the screenshot to view it at full size.

Jak funguje ověřování?

Každý požadavek Merchant API posílá hlavičku Authorization, jejíž hodnota je řetězec JSON:

json
{ "store_key": "your-store.myshopify.com", "store_owner_api_secrete": "YOUR_STORE_OWNER_API_SECRET" }

store_owner_api_secrete je přesný veřejný název pole, včetně jeho historického pravopisu. Není to token Bearer. Vložte celý řetězec JSON přímo do hlavičky Authorization.

Secret uchovávejte pouze v backendovém kódu. Nevkládejte ho do URL, browser bundlu, veřejného repozitáře, analytické události ani do aplikačního logu.

Existují oficiální balíčky pro Python a Node.js?

Ano. Shoply publikuje dva serverové balíčky, které automaticky přidávají požadované ověřování a zpřístupňují Merchant API jako typované funkce. Oba balíčky mají otevřený zdrojový kód v GitHub organizaci shoplyai-public.

Balíček pro Python

Balíček shoply-merchant-api podporuje Python 3.12 a používá modely odpovědí Pydantic v2. Nainstalujte připnuté vydání 2.1.3:

bash
python3.12 -m venv .venv source .venv/bin/activate python -m pip install "git+https://github.com/shoplyai-public/shoply-merchant-api.git@v2.1.3"

Získejte nejnovější chatové a vyhledávací relace jako typované modely SessionSummary:

python
import os from shoply_merchant_api import ShoplyMerchantClient with ShoplyMerchantClient( store_key=os.environ["SHOPLY_STORE_KEY"], api_secret=os.environ["SHOPLY_STORE_OWNER_API_SECRETE"], ) as shoply: session_response = shoply.list_sessions(limit=40) for conversation in session_response.data: print(conversation.customer_id, conversation.user_questions)

Balíček také poskytuje funkce pro analytiku, počty aktivit, kompletní časové osy relací, časové pásmo obchodu a správu znalostí. Viz jeho průvodce obchodními use case  a referenci API .

Balíček pro Node.js a TypeScript

Repozitář shoply-merchant-api-js poskytuje balíček @shoplyai/merchant-api pro Node.js 20 nebo novější. Jde o balíček ESM s vestavěnými deklaracemi TypeScriptu a bez runtime závislostí. Nainstalujte připnuté vydání 2.1.3 přímo z GitHubu:

bash
npm install "github:shoplyai-public/shoply-merchant-api-js#v2.1.3"

Získejte stejné nejnovější relace ze serveru Node.js:

typescript
import { ShoplyMerchantClient } from "@shoplyai/merchant-api"; const storeKey = process.env.SHOPLY_STORE_KEY; const apiSecret = process.env.SHOPLY_STORE_OWNER_API_SECRETE; if (!storeKey || !apiSecret) { throw new Error("SHOPLY_STORE_KEY and SHOPLY_STORE_OWNER_API_SECRETE are required"); } const shoply = new ShoplyMerchantClient({ storeKey, apiSecret, }); const sessionResponse = await shoply.listSessions({ limit: 40 }); for (const conversation of sessionResponse.data) { console.log(conversation.customer_id, conversation.user_questions); }

Balíček npm pokrývá stejné endpointy Merchant API jako balíček pro Python. Viz jeho průvodce obchodními use case  a referenci API .

Oba balíčky jsou určeny pro důvěryhodné backendové služby, plánované úlohy a soukromé interní nástroje. Neimportujte žádný z těchto balíčků do storefront kódu ani nevystavujte API secret v browser bundlu.

Mohu HTTP API volat bez balíčku?

Ano. Merchant API zůstává standardním HTTPS API. Nízkoúrovňové příklady v Pythonu níže používají Requests, abyste viděli kompletní kontrakt na úrovni přenosu nebo mohli integrovat z jiného jazyka.

Nainstalujte Requests, pokud ho vaše prostředí ještě neobsahuje:

bash
python -m pip install requests

Níže uvedený helper přidává ke každému požadavku klíč obchodu a ověřovací hlavičku:

python
import json import os from typing import Any import requests BASE_URL = "https://api.shoplyai.ai" STORE_KEY = os.environ["SHOPLY_STORE_KEY"] STORE_OWNER_API_SECRETE = os.environ["SHOPLY_STORE_OWNER_API_SECRETE"] session = requests.Session() session.headers.update({ "Authorization": json.dumps({ "store_key": STORE_KEY, "store_owner_api_secrete": STORE_OWNER_API_SECRETE, }) }) def shoply_get(api_name: str, **params: Any) -> dict[str, Any]: """Call one store-scoped Shoply API and surface HTTP or API-level errors.""" response = session.get( f"{BASE_URL}/{api_name}", params={"store_key": STORE_KEY, **params}, timeout=30, ) response.raise_for_status() payload = response.json() if payload.get("error") is not None or payload.get("statusCode") not in (None, 200): raise RuntimeError(payload.get("error", "Shoply API request failed")) return payload def shoply_post( api_name: str, payload: dict[str, Any] | None = None, **params: Any, ) -> dict[str, Any]: """Write store-scoped data and surface HTTP or API-level errors.""" response = session.post( f"{BASE_URL}/{api_name}", params={"store_key": STORE_KEY, **params}, json=payload, timeout=60, ) response.raise_for_status() result = response.json() if result.get("error") is not None or result.get("statusCode") not in (None, 200): raise RuntimeError(result.get("error", "Shoply API request failed")) return result

Níže uvedené příklady používají tohoto sdíleného klienta. Oba helpery automaticky přidávají ověřený klíč obchodu.

Mohu přes API spravovat znalosti Shoply AI?

Ano. admin_store_knowledge používá GET pro načtení znalostí a POST pro jejich vytvoření, aktualizaci, smazání nebo opětovné procházení. POST, který používá existující ID znalosti, tuto položku aktualizuje; použití nového ID vytvoří novou.

Než začnete automatizovat aktualizace, naplánujte užitečné znalosti obchodu pomocí příkladů v našem průvodci trénováním.

Zápisy do znalostí mohou změnit odpovědi zobrazované zákazníkům. Používejte vyhrazený secret pro systém, který spravuje znalosti, před odesláním obsah validujte a nikdy tento přihlašovací údaj s oprávněním k zápisu nevystavujte ve storefront JavaScriptu.

Vypsání existujících znalostí

python
knowledge_payload = shoply_get( "admin_store_knowledge", knowledge_id_to_retrieve="_ALL_", ) for knowledge_id, knowledge in knowledge_payload["data"].items(): print(knowledge_id, knowledge.get("title"))

Ukázková odpověď

json
{ "data": { "knowledge::shipping-policy": { "title": "Shipping policy", "text": "Orders leave our warehouse within two business days.", "epoch_edit": 1787211246 } } }

Vytvoření nebo aktualizace vlastních textových znalostí

Zvolte stabilní, jedinečné ID znalosti. Při aktualizaci této položky znovu použijte stejné ID.

python
from time import time knowledge_id = "knowledge::shipping-policy" result = shoply_post( "admin_store_knowledge", { knowledge_id: { "title": "Shipping policy", "text": ( "Orders leave our warehouse within two business days. " "Standard delivery normally takes three to five business days." ), "epoch_edit": int(time()), } }, ) print(result)

Ukázková odpověď

json
{ "statusCode": 200 }

Úspěšná odpověď znamená, že znalost byla uložena. Indexace pro vyhledávání může trvat několik minut, takže nová odpověď se nemusí objevit okamžitě. Pokud API hlásí, že obsah byl uložen, ale indexace je zpožděná, před opakováním zápisu potvrďte uloženou položku pomocí GET.

Přidání externí webové stránky

Použijte ID začínající na external_url::. Do text vložte kompletní URL http:// nebo https://.

python
from time import time result = shoply_post( "admin_store_knowledge", { "external_url::returns-policy": { "title": "Returns and exchanges", "text": "https://www.example.com/policies/returns", "epoch_edit": int(time()), } }, )

Nahrání a registrace souboru znalostí

Soubory znalostí musí být PDF, TXT nebo Markdown a menší než 5 MB. Nejprve soubor nahrajte a potom uložte vrácené soukromé umístění v S3 jako položku znalosti.

python
from pathlib import Path from time import time file_path = Path("shipping-policy.md") with file_path.open("rb") as file_handle: upload_response = session.post( f"{BASE_URL}/user_generated_file", params={"store_key": STORE_KEY, "folder": "knowledge_file"}, files={"file": (file_path.name, file_handle, "text/markdown")}, timeout=60, ) upload_response.raise_for_status() uploaded = upload_response.json() if uploaded.get("statusCode") != 200: raise RuntimeError(uploaded.get("error", "Knowledge file upload failed")) shoply_post( "admin_store_knowledge", { "knowledge_file::shipping-policy": { "title": "Shipping policy document", "text": uploaded["file_url"], "epoch_edit": int(time()), } }, )

Ukázková odpověď na nahrání

json
{ "message": "File uploaded successfully", "statusCode": 200, "file_url": "s3://shoplystores/your-store.myshopify.com/uploads/shipping-policy.md" }

S file_url zacházejte jako s neprůhledným soukromým umístěním vráceným službou Shoply. Sami ho nevytvářejte ani neměňte.

Smazání znalostí

Smazání je trvalé. Nejprve načtěte aktuální položky a odešlete pouze přesná ID, která chcete odstranit.

python
result = shoply_post( "admin_store_knowledge", { "knowledge_ids_to_delete": [ "knowledge::shipping-policy", "external_url::returns-policy", "knowledge_file::shipping-policy", ] }, )

Požadavek na opětovné procházení webu

Opětovné procházení použijte po změně obsahu na webu obchodníka. Po každé aktualizaci vlastního textu to obvykle není nutné.

python
result = shoply_post( "admin_store_knowledge", re_crawl_ind="true", )

Obchodní případy použití

  • Synchronizace pokynů k dopravě, vrácení zboží, záruce, velikostem nebo péči o produkty z interního obsahového systému.
  • Publikování dočasných kampaní nebo svátečních informací bez ručního kopírování do Shoply Admin.
  • Přidání stránky se zásadami nebo schváleného dokumentu do znalostní báze jako součást workflow nasazení.
  • Odstranění zastaralých pokynů ihned po skončení zásady nebo propagace.

Příklady Merchant API

1. Načtení analytiky výkonu

admin_store_analytics pohání tabulku Analytics → Summary. Vrací relace, chaty, vyhledávání, kliknutí, události přidání do košíku, nákupy a přiřazené tržby.

Endpoint

text
GET https://api.shoplyai.ai/admin_store_analytics

Parametry dotazu

ParametrPovinnýPopis
store_keyAnoPřidáno sdíleným klientem
report_typeAnodaily, weekly nebo monthly
start_dateDenní/týdenníPočáteční datum UTC včetně, formátované jako YYYYMMDD
end_dateDenní/týdenníKoncové datum UTC včetně, formátované jako YYYYMMDD

Měsíční reporty používají uloženou měsíční historii Shoply a nevyžadují hranice data.

Příklad v Pythonu

python
daily_report = shoply_get( "admin_store_analytics", report_type="daily", start_date="20260801", end_date="20260820", ) for row in daily_report["data"]: print(row["date"], row["sessions"], row["purchases"], row["revenue"]) print("Totals:", daily_report["totals"]) # Weekly rows use the Monday of each week as their date label. weekly_report = shoply_get( "admin_store_analytics", report_type="weekly", start_date="20260701", end_date="20260820", ) # Monthly requests do not need start_date or end_date. monthly_report = shoply_get("admin_store_analytics", report_type="monthly")

Ukázková odpověď

json
{ "data": [ { "date": "20260820", "sessions": 42, "chats": 18, "searches": 24, "clicks": 11, "add_to_cart": 5, "purchases": 2, "revenue": "$168.00", "revenue_usd": "$168.00" } ], "totals": { "date": "totals", "sessions": 42, "chats": 18, "searches": 24, "clicks": 11, "add_to_cart": 5, "purchases": 2, "revenue": "$168.00", "revenue_usd": "$168.00" }, "report_type": "daily" }

Tržby mohou obsahovat více než jednu měnu. S revenue zacházejte jako se zobrazovaným textem. Použijte revenue_usd, pokud potřebujete normalizovanou hodnotu v USD zobrazovanou službou Shoply.

Obchodní případy použití

  • Odeslání denního souhrnu dopadu na prodej obchodníkovi nebo ecommerce týmu.
  • Porovnání vyhledávání, kliknutí na produkty, událostí přidání do košíku a nákupů pro nalezení propadů ve funnelu.
  • Napájení týdenního nebo měsíčního dashboardu business intelligence bez scrapování stránky Shoply Admin.
  • Sledování přiřazených tržeb v čase a jejich porovnání se změnami v merchandisingu nebo kampaních.

2. Načtení časového pásma obchodu

admin_get_store_metadata poskytuje štítek časového pásma zobrazený v Analytics → Chat & Search History. Stránka ho používá k převodu aktivity v UTC na místní čas obchodu.

Endpoint

text
GET https://api.shoplyai.ai/admin_get_store_metadata

Parametry dotazu

ParametrPovinnýPopis
store_keyAnoPřidáno sdíleným klientem
metadata_keyAnoPoužijte doslovnou hodnotu time_zone

Příklad v Pythonu

python
timezone_payload = shoply_get( "admin_get_store_metadata", metadata_key="time_zone", ) timezone = timezone_payload["data"] print(timezone["ianaTimezone"], timezone["timezoneOffsetMinutes"])

Ukázková odpověď

json
{ "data": { "ianaTimezone": "America/Los_Angeles", "timezoneOffset": -7, "timezoneOffsetMinutes": -420 }, "statusCode": 200 }

Obchodní případy použití

  • Seskupování aktivity v UTC do stejných místních kalendářních dnů, které obchodník vidí v Analytics.
  • Plánování denních exportů po skončení místního dne obchodu.
  • Označení reportů jednoznačným časovým pásmem IANA, jako je America/Los_Angeles.

Posuny časových pásem se mohou měnit kvůli pravidlům letního času. Pokud to váš reportingový systém podporuje, upřednostněte ianaTimezone namísto trvalého ukládání jednoho číselného posunu.

3. Načtení počtů aktivit

query_api_usage_count vrací aktivitu obchodu seskupenou podle data v UTC nebo původní minuty v UTC. Je to také zdroj pro graf aktivity v Analytics → Chat & Search History.

Endpoint

text
GET https://api.shoplyai.ai/query_api_usage_count

Parametry dotazu

ParametrPovinnýPopis
start_dt_utcAnoPočáteční čas UTC jako YYYY-MM-DD HH:mm:ss
end_dt_utcAnoKoncový čas UTC jako YYYY-MM-DD HH:mm:ss
groupbyNeutc_date pro denní součty nebo utc_date_time pro minutové řádky

Příklad v Pythonu

python
activity = shoply_get( "query_api_usage_count", start_dt_utc="2026-08-01 00:00:00", end_dt_utc="2026-08-20 23:59:59", groupby="utc_date", ) for row in activity["data"]: print(row)

Ukázková odpověď

json
{ "data": [ { "utc_date": "2026-08-20", "QA": 18, "CHAT": 18, "SEARCH": 20, "CACHED_SEARCH": 4, "PRODUCT_SEARCH": 22, "CLICK": 11, "ADD_TO_CART": 5, "CHECKOUT": 2 } ] }

Řádky obsahují čítače aktivit dostupné pro dané období, například dotazy v chatu, vyhledávání, kliknutí, události přidání do košíku a události checkoutu. Čítače bez aktivity mohou chybět namísto toho, aby byly nastaveny na nulu.

Obchodní případy použití

  • Vytvoření hodinového nebo denního grafu aktivity, jako je ten v Chat & Search History.
  • Odhalení neobvyklých špiček návštěvnosti nebo náhlých poklesů zapojení zákazníků.
  • Porovnání objemu vyhledávání produktů s kliknutími, událostmi přidání do košíku a checkouty.
  • Odhad, kdy by týmy podpory a merchandisingu měly kontrolovat nejvytíženější období.

4. Načtení souhrnů chatových a vyhledávacích relací

query_sessionized_chat vrací jeden kompaktní záznam na každou zákaznickou relaci. Také pohání seznam relací v Analytics → Chat & Search History.

Endpoint

text
GET https://api.shoplyai.ai/query_sessionized_chat

Parametry dotazu

ParametrPovinnýPopis
start_dt_utcAnoPočáteční čas UTC nebo doslovná hodnota undefined
end_dt_utcAnoKoncový čas UTC nebo doslovná hodnota undefined
num_sessionsNePočet relací k výběru, když je některá z hranic undefined
ScanIndexForwardNePoužijte false, chcete-li nejprve vybrat nejnovější relace

Načtení posledních 40 relací

python
summary_payload = shoply_get( "query_sessionized_chat", start_dt_utc="undefined", end_dt_utc="undefined", num_sessions=40, ScanIndexForward="false", ) sessions = summary_payload["data"] for conversation in sessions: print(conversation["customer_id"], conversation.get("user_questions", ""))

Načtení relací v rozsahu UTC

python
summary_payload = shoply_get( "query_sessionized_chat", start_dt_utc="2026-08-20 00:00:00", end_dt_utc="2026-08-20 23:59:59", ScanIndexForward="false", )

Pokud jsou přítomny obě časové hranice, API vrátí relace v celém rozsahu; num_sessions tento ohraničený dotaz neomezuje.

Ukázková odpověď

json
{ "data": [ { "customer_id": "customer-or-session-id", "user_questions": "Do you have this in blue?\nWhen will it ship?", "start_timestamp_ms": 1787184000000, "end_timestamp_ms": 1787184065000, "session_types": "product information, click", "customer_email": null, "customer_info": {}, "sentiment": "positive", "num_questions": 2, "num_searches": 1, "num_clicks": 1 } ] }

Volitelná pole se podle relace liší. Pokud plánujete načítat kompletní časovou osu, zachovejte customer_id, start_timestamp_ms a end_timestamp_ms.

Obchodní případy použití

  • Kontrola vzorku nedávných konverzací kvůli kvalitě odpovědí a školení podpory.
  • Hledání opakovaných zákaznických dotazů, které by měly ovlivnit texty u produktů nebo FAQ.
  • Identifikace relací s vysokým záměrem obsahujících vyhledávání, kliknutí na produkty nebo jiné nákupní akce.
  • Export jednoho řádku na relaci pro analýzu trendů při vyhnutí se většímu payloadu na úrovni událostí.

5. Načtení jedné kompletní relace

Předejte vybraný souhrn do query_log_visualization, abyste načetli její zákaznické, AI, vyhledávací a obchodní události.

Endpoint

text
GET https://api.shoplyai.ai/query_log_visualization

Parametry dotazu

ParametrPovinnýPopis
date_time_utc_startAnoZačátek relace formátovaný jako UTC YYYY-MM-DD HH:mm:ss
date_time_utc_endAnoKonec relace formátovaný jako UTC YYYY-MM-DD HH:mm:ss
session_idNecustomer_id ze souhrnu, používané pro starší záznamy historie
start_timestamp_msDoporučenoPřesné počáteční časové razítko souhrnu v milisekundách

Příklad v Pythonu

python
from datetime import datetime, timezone def utc_from_milliseconds(timestamp_ms: int) -> str: """Format a Shoply millisecond timestamp for the history API.""" value = datetime.fromtimestamp(timestamp_ms / 1000, tz=timezone.utc) return value.strftime("%Y-%m-%d %H:%M:%S") selected = sessions[0] timeline_payload = shoply_get( "query_log_visualization", date_time_utc_start=utc_from_milliseconds(selected["start_timestamp_ms"]), date_time_utc_end=utc_from_milliseconds(selected["end_timestamp_ms"]), session_id=selected["customer_id"], start_timestamp_ms=selected["start_timestamp_ms"], ) for event in timeline_payload["data"]: print(event.get("server_timestamp_ms"), event.get("action_type"))

Ukázková odpověď

json
{ "data": [ { "action_type": "QA", "session_id": "customer-or-session-id", "utc_date_time": "2026-08-20 00:00:00", "start_timestamp_ms": 1787184000000, "server_timestamp_ms": 1787184000123, "Q": { "question": "Do you have this in blue?", "question_context": {} }, "task_id": "task-id", "list_tokens": [ { "data_type": "LLMOutput", "data": "Yes. These blue options are currently available." } ], "dict_search_results": {} } ] }

Časová osa může obsahovat zákaznické dotazy, odpovědi AI, výsledky vyhledávání, kliknutí na produkty, události přidání do košíku, události checkoutu a zapojení lidského agenta. Pro řazení smíšených typů událostí použijte server_timestamp_ms. Starší záznamy mohou obsahovat méně polí.

Obchodní případy použití

  • Audit toho, na co se zákazník přesně ptal a co Shoply odpovědělo během šetření podpory.
  • Kontrola kvality odpovědí spolu s výsledky vyhledávání a produkty zobrazenými zákazníkovi.
  • Rekonstrukce cesty od dotazu ke kliknutí, přidání do košíku nebo checkoutu.
  • Diagnostika jedné relace nahlášené zákazníkem bez procházení nesouvisející historie.

Mohu používat jeden secret pro každé API?

Ano. Platný store_owner_api_secrete je vázán na jeden obchod a funguje napříč výše uvedenými endpointy Merchant API. U účtů SiteChat stejný secret také ověřuje API pro nahrání katalogu. Pro bezpečnější provoz používejte samostatné pojmenované secrety pro samostatné systémy — například jeden pro noční export dat a druhý pro interní dashboard.

Pokud je některá integrace vyřazena nebo kompromitována, odvolejte v Shoply Settings pouze její secret. Ostatní integrace budou fungovat dál.

Co bych měl vědět o expiraci, soukromí a chybách?

Také si projděte zdroje dat a soukromí ve Shoply, abyste porozuměli tomu, které informace jsou dostupné zákaznickým odpovědím.

  • Tajné API klíče vlastníka obchodu expirují po 90 dnech. Vytvořte náhradu a aktualizujte integraci před datem její expirace.
  • Standardní doba uchování historie chatu a vyhledávání v Shoply je také 90 dní. Expirace secretu a uchování dat jsou samostatné zásady.
  • Odpovědi historie mohou obsahovat osobní údaje, včetně identifikátorů zákazníků, e-mailových adres, přibližné polohy, dotazů a nákupní aktivity. Ukládejte je a zpracovávejte v souladu se svými zásadami ochrany soukromí a platnými zákony.
  • HTTP 403 znamená, že secret chybí, je neplatný, expirovaný, odvolaný nebo patří jinému obchodu.
  • HTTP 422 obvykle znamená, že chybí povinný parametr dotazu nebo má špatný název.
  • HTTP 500 nebo odpověď s statusCode: 500 znamená, že požadavek dorazil do Shoply, ale nemohl být dokončen. Dočasná selhání opakujte s backoffem a pokud chyba přetrvává, kontaktujte nás.
  • Pro exporty a opakované úlohy používejte ohraničené rozsahy UTC, aby odpovědi zůstaly zvládnutelné.

Je vyhledávání produktů součástí Merchant API?

Veřejné API Shoply pro vyhledávání produktů má jiný způsob ověřování a jiný kontrakt požadavků. Pokud chcete výsledky vyhledávání produktů pro prostředí určené zákazníkům místo soukromých dat obchodníka, podívejte se na Jak přistupovat k Shoply AI Search přes API.

Mohou obchodníci SiteChat nahrát katalog produktů?

Ano. Účty SiteChat mohou nahrávat strukturované produkty a obrázky produktů pomocí stejného tajného API klíče vlastníka obchodu. Tyto katalogové endpointy jsou dokumentovány samostatně v Jak nahrát svůj katalog pro SiteChat. Obchody Shopify nadále synchronizují produkty přes Shopify a tyto cesty pro nahrávání nepoužívají.

Pokud potřebujete pomoc s integrací, kontaktujte Shoply AI.