Jak používat Shoply Merchant API
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:
| API | Kategorie | Co vrací |
|---|---|---|
admin_store_analytics | Výkon | Denní, týdenní nebo měsíční řádky výkonu a součty |
query_api_usage_count | Zapojení | Počty aktivit seskupené podle minuty UTC nebo dne |
query_sessionized_chat | Konverzace | Souhrny chatových a vyhledávacích relací |
query_log_visualization | Konverzace | Kompletní časovou osu událostí pro jednu vybranou relaci |
admin_get_store_metadata | Konfigurace obchodu | Časové pásmo obchodu používané pro správné zobrazení dat UTC |
admin_store_knowledge | Znalosti | Vlastní text, externí stránky, nahrané soubory, mazání a opětovné procházení |
user_generated_file | Soubory 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
403sNo access_token found, tento server stále používá starší ověřovací kód pouze s access tokenem.
Jak vytvořím tajný API klíč?
- Otevřete správu Shoply AI.
- Přejděte do Settings → Store owner API secret.
- Vytvořte secret a dejte mu název, který identifikuje integraci, například
Weekly reporting export. - Secret zkopírujte ve chvíli, kdy se zobrazí. Shoply ukáže jeho hodnotu v prostém textu pouze jednou.
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í:
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.

Jak funguje ověřování?
Každý požadavek Merchant API posílá hlavičku Authorization, jejíž hodnota je řetězec 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:
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:
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:
npm install "github:shoplyai-public/shoply-merchant-api-js#v2.1.3"Získejte stejné nejnovější relace ze serveru Node.js:
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:
python -m pip install requestsNíže uvedený helper přidává ke každému požadavku klíč obchodu a ověřovací hlavičku:
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 resultNíž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í
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ěď
{
"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.
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ěď
{
"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://.
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.
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í
{
"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.
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é.
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
GET https://api.shoplyai.ai/admin_store_analyticsParametry dotazu
| Parametr | Povinný | Popis |
|---|---|---|
store_key | Ano | Přidáno sdíleným klientem |
report_type | Ano | daily, weekly nebo monthly |
start_date | Denní/týdenní | Počáteční datum UTC včetně, formátované jako YYYYMMDD |
end_date | Denní/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
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ěď
{
"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
GET https://api.shoplyai.ai/admin_get_store_metadataParametry dotazu
| Parametr | Povinný | Popis |
|---|---|---|
store_key | Ano | Přidáno sdíleným klientem |
metadata_key | Ano | Použijte doslovnou hodnotu time_zone |
Příklad v Pythonu
timezone_payload = shoply_get(
"admin_get_store_metadata",
metadata_key="time_zone",
)
timezone = timezone_payload["data"]
print(timezone["ianaTimezone"], timezone["timezoneOffsetMinutes"])Ukázková odpověď
{
"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
GET https://api.shoplyai.ai/query_api_usage_countParametry dotazu
| Parametr | Povinný | Popis |
|---|---|---|
start_dt_utc | Ano | Počáteční čas UTC jako YYYY-MM-DD HH:mm:ss |
end_dt_utc | Ano | Koncový čas UTC jako YYYY-MM-DD HH:mm:ss |
groupby | Ne | utc_date pro denní součty nebo utc_date_time pro minutové řádky |
Příklad v Pythonu
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ěď
{
"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
GET https://api.shoplyai.ai/query_sessionized_chatParametry dotazu
| Parametr | Povinný | Popis |
|---|---|---|
start_dt_utc | Ano | Počáteční čas UTC nebo doslovná hodnota undefined |
end_dt_utc | Ano | Koncový čas UTC nebo doslovná hodnota undefined |
num_sessions | Ne | Počet relací k výběru, když je některá z hranic undefined |
ScanIndexForward | Ne | Použijte false, chcete-li nejprve vybrat nejnovější relace |
Načtení posledních 40 relací
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
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ěď
{
"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
GET https://api.shoplyai.ai/query_log_visualizationParametry dotazu
| Parametr | Povinný | Popis |
|---|---|---|
date_time_utc_start | Ano | Začátek relace formátovaný jako UTC YYYY-MM-DD HH:mm:ss |
date_time_utc_end | Ano | Konec relace formátovaný jako UTC YYYY-MM-DD HH:mm:ss |
session_id | Ne | customer_id ze souhrnu, používané pro starší záznamy historie |
start_timestamp_ms | Doporučeno | Přesné počáteční časové razítko souhrnu v milisekundách |
Příklad v Pythonu
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ěď
{
"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
403znamená, že secret chybí, je neplatný, expirovaný, odvolaný nebo patří jinému obchodu. - HTTP
422obvykle znamená, že chybí povinný parametr dotazu nebo má špatný název. - HTTP
500nebo odpověď sstatusCode: 500znamená, ž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.
