A Shoply Merchant API használata

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

A Shoply Merchant API lehetővé teszi, hogy egy kereskedő biztonságosan használja a saját Shoply-adatait jelentéskészítő eszközökben, támogatási munkafolyamatokban, ütemezett exportokban és privát üzleti alkalmazásokban.

Minden integráció egy visszavonható, bolthoz kötött hitelesítő adattal hitelesít, amelyet a Shoply Settingsben hoznak létre. Nincs szükség Shopify Admin API hozzáférési token megosztására, és egy integráció csak ahhoz a bolthoz férhet hozzá, amely kiadta a hitelesítő adatát.

Mire használható a Merchant API?

A Merchant API a következőkre használható:

  • Napi, heti vagy havi teljesítményeredmények exportálása táblázatkezelőbe vagy adattárházba.
  • Privát irányítópult készítése munkamenetekhez, csevegésekhez, keresésekhez, termékkattintásokhoz, kosárba helyezési eseményekhez, vásárlásokhoz és hozzárendelt bevételhez.
  • Ügyféltevékenység figyelése és az aktivitásban bekövetkező szokatlan változások felfedezése.
  • Csevegési és keresési munkamenetek áttekintése támogatási, merchandising- és válaszminőségi munkához.
  • Egy adott beszélgetés idővonalának lekérése ügyfélprobléma vizsgálatakor.
  • A Shoply AI által használt egyedi tudás létrehozása, frissítése, listázása és törlése.
  • Külső weboldal vagy feltöltött PDF-, szöveg- vagy Markdown-fájl hozzáadása a tudásbázishoz.
  • Az UTC eseményadatok összehangolása a bolt helyi időzónájával.

Ez az útmutató hét végpontot ismertet. Ezek közül öt ugyanaz a végpont, amelyet a Shoply Admin → Analytics használ, míg kettő a tudásbázist kezeli:

APIKategóriaMit ad vissza
admin_store_analyticsTeljesítményNapi, heti vagy havi teljesítménysorok és összesítések
query_api_usage_countElköteleződésUTC perc vagy nap szerint csoportosított aktivitásszámok
query_sessionized_chatBeszélgetésekCsevegési és keresési munkamenet-összefoglalók
query_log_visualizationBeszélgetésekEgy kiválasztott munkamenet teljes eseményidővonala
admin_get_store_metadataBoltkonfigurációA bolt időzónája, amely az UTC-adatok helyes megjelenítéséhez használatos
admin_store_knowledgeTudásEgyedi szöveg, külső oldalak, feltöltött fájlok, törlés és újrafeltérképezés
user_generated_fileTudásfájlokPDF-, szöveg- vagy Markdown-fájlok feltöltése, mielőtt tudásként regisztrálnák őket

Az alábbi választestek reprezentatív minták. Az Ön mezői és értékei az adott boltban rögzített aktivitást fogják tükrözni.

Telepítési követelmény: A bolttulajdonosi titkos hitelesítést telepíteni kell azon az API-szerveren, amelyet hív. Ha egy érvényes titok HTTP 403 választ ad No access_token found üzenettel, akkor azon a szerveren még a régebbi, csak hozzáférési tokent támogató hitelesítési kód fut.

Hogyan hozhatok létre API-titkot?

  1. Nyissa meg a Shoply AI admin felületét.
  2. Lépjen a Settings → Store owner API secret menüpontra.
  3. Hozzon létre egy titkot, és adjon neki az integrációt azonosító nevet, például Weekly reporting export.
  4. Másolja ki a titkot, amikor megjelenik. A Shoply a sima szöveges értéket csak egyszer mutatja meg.
Shoply Settings showing the Store owner API secret panel, Create API secret button, expiry date, and revoke control

Minden titok 90 napig érvényes. Egy bolt külön titkokkal rendelkezhet külön integrációkhoz, és egyetlen titkot visszavonhat anélkül, hogy a többit megszakítaná.

Mentse ezeket az értékeket szerveroldali környezeti változókként:

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

A SHOPLY_STORE_KEY értékéhez a bolt állandó myshopify.com domainjét használja, még akkor is, ha a vásárlók általában egyéni domaint látogatnak.

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.

Hogyan működik a hitelesítés?

Minden Merchant API-kérés egy Authorization fejlécet küld, amelynek értéke egy JSON-karakterlánc:

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

A store_owner_api_secrete a pontos nyilvános mezőnév, beleértve a történeti helyesírását is. Ez nem egy Bearer token. A teljes JSON-karakterláncot közvetlenül az Authorization fejlécbe kell tenni.

A titkot csak a backendkódban tartsa meg. Ne helyezze URL-be, böngészőcsomagba, nyilvános tárolóba, analitikai eseménybe vagy alkalmazásnaplóba.

Vannak hivatalos Python- és Node.js-csomagok?

Igen. A Shoply két szerveroldali csomagot tesz közzé, amelyek automatikusan hozzáadják a szükséges hitelesítést, és típusos függvényekként teszik elérhetővé a Merchant API-t. Mindkét csomag nyílt forráskódú a shoplyai-public GitHub-szervezet alatt.

Python-csomag

A shoply-merchant-api csomag támogatja a Python 3.12-t, és Pydantic v2 válaszmodelleket használ. Telepítse a rögzített 2.1.3 kiadást:

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"

Kérje le a legújabb csevegési és keresési munkameneteket típusos SessionSummary modellekként:

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)

A csomag függvényeket biztosít analitikához, aktivitásszámokhoz, teljes munkamenet-idővonalakhoz, bolt időzónájához és tudáskezeléshez is. Lásd a business-use-case útmutatóját  és az API-referenciát .

Node.js és TypeScript csomag

A shoply-merchant-api-js tároló biztosítja a @shoplyai/merchant-api csomagot Node.js 20 vagy újabb verzióhoz. Ez egy ESM-csomag beépített TypeScript-deklarációkkal és futásidejű függőségek nélkül. Telepítse a rögzített 2.1.3 kiadást közvetlenül a GitHubról:

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

Kérje le ugyanazokat a legújabb munkameneteket egy Node.js-szerverről:

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); }

Az npm-csomag ugyanazokat a Merchant API-végpontokat fedi le, mint a Python-csomag. Lásd a business-use-case útmutatóját  és az API-referenciát .

Mindkét csomag megbízható backend szolgáltatásokhoz, ütemezett feladatokhoz és privát belső eszközökhöz készült. Egyik csomagot se importálja storefront kódba, és ne tegye közzé az API-titkot böngészőcsomagban.

Meghívhatom a HTTP API-t csomag nélkül?

Igen. A Merchant API továbbra is egy szabványos HTTPS API. Az alábbi alacsony szintű Python-példák a Requests könyvtárat használják, hogy látható legyen a teljes kommunikációs szerződés, vagy hogy más nyelvből is integrálható legyen.

Telepítse a Requests könyvtárat, ha a környezete még nem tartalmazza:

bash
python -m pip install requests

Az alábbi segédfüggvény minden kéréshez hozzáadja a bolt kulcsát és a hitelesítési fejlécet:

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

Az alábbi példák ezt a megosztott klienst használják. Mindkét segéd automatikusan hozzáadja a hitelesített boltkulcsot.

Kezelhetem a Shoply AI tudását az API-n keresztül?

Igen. Az admin_store_knowledge a tudás lekéréséhez GET metódust használ, létrehozáshoz, frissítéshez, törléshez vagy újrafeltérképezéshez pedig POST-ot. Egy POST, amely meglévő tudásazonosítót használ, frissíti azt a bejegyzést; új azonosító használata esetén újat hoz létre.

Mielőtt automatizálná a frissítéseket, tervezzen hasznos bolti tudást a képzési útmutatónk példái alapján.

A tudás módosítása megváltoztathatja a vásárlóknak megjelenő válaszokat. Használjon külön titkot a tudást kezelő rendszerhez, érvényesítse a tartalmat elküldés előtt, és soha ne tegye elérhetővé ezt az írási jogosultságú hitelesítő adatot storefront JavaScriptben.

Meglévő tudás listázása

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"))

Mintaválasz

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

Egyedi szöveges tudás létrehozása vagy frissítése

Válasszon stabil, egyedi tudásazonosítót. Ugyanannak a bejegyzésnek a frissítésekor ugyanazt az azonosítót használja újra.

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)

Mintaválasz

json
{ "statusCode": 200 }

A sikeres válasz azt jelenti, hogy a tudás mentésre került. A keresési indexelés néhány percet igénybe vehet, ezért előfordulhat, hogy egy új válasz nem jelenik meg azonnal. Ha az API azt jelzi, hogy a tartalom mentésre került, de az indexelés késik, próbálkozás előtt ellenőrizze a tárolt bejegyzést GET segítségével.

Külső weboldal hozzáadása

Használjon external_url:: kezdetű azonosítót. A teljes http:// vagy https:// URL-t a text mezőbe helyezze.

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()), } }, )

Tudásfájl feltöltése és regisztrálása

A tudásfájloknak PDF, TXT vagy Markdown formátumúnak kell lenniük, és 5 MB-nál kisebbnek. Először töltse fel a fájlt, majd a visszakapott privát S3-helyet mentse tudásbejegyzésként.

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()), } }, )

Minta feltöltési válasz

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

A file_url mezőt a Shoply által visszaadott, átlátszatlan privát helyként kezelje. Ne hozza létre és ne módosítsa saját maga.

Tudás törlése

A törlés végleges. Először kérje le az aktuális bejegyzéseket, és csak azokat a pontos azonosítókat küldje el, amelyeket valóban el akar távolítani.

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

Webhely újrafeltérképezésének kérése

Használjon újrafeltérképezést, miután a kereskedő webhelyének tartalma megváltozik. Erre általában nincs szükség minden egyes egyedi szövegfrissítés után.

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

Üzleti felhasználási esetek

  • Szállítási, visszaküldési, garanciális, méretezési vagy termékápolási útmutatók szinkronizálása belső tartalomkezelő rendszerből.
  • Ideiglenes kampány- vagy ünnepi információk közzététele anélkül, hogy azokat kézzel be kellene másolni a Shoply Adminba.
  • Szabályzati weboldal vagy jóváhagyott dokumentum hozzáadása a tudásbázishoz egy telepítési munkafolyamat részeként.
  • Elavult útmutatók eltávolítása azonnal, amint egy szabályzat vagy promóció véget ér.

Merchant API példák

1. Teljesítményelemzés lekérése

Az admin_store_analytics működteti az Analytics → Summary táblát. Munkameneteket, csevegéseket, kereséseket, kattintásokat, kosárba helyezési eseményeket, vásárlásokat és hozzárendelt bevételt ad vissza.

Végpont

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

Lekérdezési paraméterek

ParaméterKötelezőLeírás
store_keyIgenA megosztott kliens adja hozzá
report_typeIgendaily, weekly vagy monthly
start_dateNapi/hetiBefoglaló UTC-dátum YYYYMMDD formátumban
end_dateNapi/hetiBefoglaló UTC-dátum YYYYMMDD formátumban

A havi jelentések a Shoply által tárolt havi előzményeket használják, és nem igényelnek dátumhatárokat.

Python-példa

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")

Mintaválasz

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" }

A bevétel több pénznemet is tartalmazhat. A revenue mezőt megjelenítési szövegként kezelje. Ha a Shoply által megjelenített normalizált USD-értékre van szüksége, használja a revenue_usd mezőt.

Üzleti felhasználási esetek

  • Napi értékesítési hatásösszefoglaló küldése a kereskedőnek vagy az e-kereskedelmi csapatnak.
  • Keresések, termékkattintások, kosárba helyezési események és vásárlások összehasonlítása az értékesítési tölcsér kiesési pontjainak megtalálásához.
  • Heti vagy havi üzletiintelligencia-irányítópult táplálása a Shoply Admin oldal scrape-elése nélkül.
  • A hozzárendelt bevétel időbeli nyomon követése és összevetése merchandising- vagy kampányváltozásokkal.

2. A bolt időzónájának lekérése

Az admin_get_store_metadata biztosítja az időzóna-jelvényt, amely az Analytics → Chat & Search History nézetben látható. Az oldal ezt használja az UTC-aktivitásnak a bolt helyi idejére való átalakításához.

Végpont

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

Lekérdezési paraméterek

ParaméterKötelezőLeírás
store_keyIgenA megosztott kliens adja hozzá
metadata_keyIgenHasználja a szó szerinti time_zone értéket

Python-példa

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

Mintaválasz

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

Üzleti felhasználási esetek

  • UTC-aktivitás csoportosítása ugyanazokra a helyi naptári napokra, amelyeket a kereskedő az Analyticsben lát.
  • Napi exportok ütemezése a bolt helyi napjának lezárulta után.
  • Jelentések címkézése egyértelmű IANA időzónával, például America/Los_Angeles.

Az időzónaeltolások megváltozhatnak a nyári időszámítás szabályai miatt. Ha a jelentéskészítő rendszer támogatja, részesítse előnyben az ianaTimezone használatát egyetlen számeltolás tartós mentése helyett.

3. Aktivitásszámok lekérése

A query_api_usage_count a bolt aktivitását UTC-dátum vagy az eredeti UTC-perc szerint csoportosítva adja vissza. Ez az Analytics → Chat & Search History aktivitási diagramjának forrása is.

Végpont

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

Lekérdezési paraméterek

ParaméterKötelezőLeírás
start_dt_utcIgenUTC kezdési idő YYYY-MM-DD HH:mm:ss formátumban
end_dt_utcIgenUTC záró idő YYYY-MM-DD HH:mm:ss formátumban
groupbyNemutc_date napi összesítésekhez vagy utc_date_time percszintű sorokhoz

Python-példa

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)

Mintaválasz

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 } ] }

A sorok az adott időszakra elérhető aktivitásszámlálókat tartalmazzák, például csevegési kérdéseket, kereséseket, kattintásokat, kosárba helyezési eseményeket és checkout eseményeket. Az aktivitás nélküli számlálók hiányozhatnak ahelyett, hogy nullára lennének állítva.

Üzleti felhasználási esetek

  • Óránkénti vagy napi aktivitási diagram készítése, mint a Chat & Search History nézetben.
  • Szokatlan forgalmi csúcsok vagy a vásárlói elköteleződés hirtelen visszaesésének észlelése.
  • Termékkeresési volumen összehasonlítása kattintásokkal, kosárba helyezési eseményekkel és checkoutokkal.
  • Annak becslése, hogy a támogatási és merchandising csapatoknak mikor érdemes áttekinteniük a legforgalmasabb időszakokat.

4. Csevegési és keresési munkamenet-összefoglalók lekérése

A query_sessionized_chat ügyfelenkénti munkamenetenként egy tömör rekordot ad vissza. Ez működteti az Analytics → Chat & Search History munkamenetlistáját is.

Végpont

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

Lekérdezési paraméterek

ParaméterKötelezőLeírás
start_dt_utcIgenUTC kezdési idő, vagy a szó szerinti undefined érték
end_dt_utcIgenUTC záró idő, vagy a szó szerinti undefined érték
num_sessionsNemA kiválasztandó munkamenetek száma, ha bármelyik határ undefined
ScanIndexForwardNemHasználja a false értéket, ha a legújabb munkameneteket szeretné előrehozni

A legutóbbi 40 munkamenet lekérése

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", ""))

Munkamenetek lekérése egy UTC-tartományban

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", )

Ha mindkét időhatár jelen van, az API a teljes tartományban lévő munkameneteket adja vissza; a num_sessions nem korlátozza ezt a határolt lekérdezést.

Mintaválasz

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 } ] }

Az opcionális mezők munkamenetenként változnak. Tartsa meg a customer_id, start_timestamp_ms és end_timestamp_ms mezőket, ha később a teljes idővonalat is le szeretné kérni.

Üzleti felhasználási esetek

  • A közelmúltbeli beszélgetések mintájának áttekintése válaszminőség és támogatási képzés céljából.
  • Ismétlődő ügyfélkérdések keresése, amelyeknek hatással kell lenniük a termékszövegre vagy GYIK-re.
  • Magas szándékú munkamenetek azonosítása, amelyek kereséseket, termékkattintásokat vagy egyéb vásárlási műveleteket tartalmaznak.
  • Egy sor exportálása munkamenetenként trendelemzéshez, miközben elkerüli a nagyobb eseményszintű payloadot.

5. Egy teljes munkamenet lekérése

Adjon át egy kiválasztott összefoglalót a query_log_visualization végpontnak, hogy lekérje annak ügyfél-, AI-, keresési és kereskedelmi eseményeit.

Végpont

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

Lekérdezési paraméterek

ParaméterKötelezőLeírás
date_time_utc_startIgenA munkamenet kezdete UTC YYYY-MM-DD HH:mm:ss formátumban
date_time_utc_endIgenA munkamenet vége UTC YYYY-MM-DD HH:mm:ss formátumban
session_idNemAz összefoglaló customer_id mezője, régebbi előzményrekordokhoz használva
start_timestamp_msAjánlottAz összefoglaló pontos, ezredmásodperces kezdő időbélyege

Python-példa

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"))

Mintaválasz

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": {} } ] }

Az idővonal tartalmazhat ügyfélkérdéseket, AI-válaszokat, keresési eredményeket, termékkattintásokat, kosárba helyezési eseményeket, checkout eseményeket és emberi ügyintéző részvételét. A vegyes eseménytípusok sorrendezéséhez használja a server_timestamp_ms mezőt. A régebbi rekordok kevesebb mezőt tartalmazhatnak.

Üzleti felhasználási esetek

  • Pontosan annak auditálása, hogy mit kérdezett az ügyfél és mit válaszolt a Shoply egy támogatási vizsgálat során.
  • A válaszminőség áttekintése együtt a vásárlónak megjelenített keresési eredményekkel és termékekkel.
  • Az út rekonstruálása a kérdéstől a kattintásig, kosárba helyezésig vagy checkoutig.
  • Egy ügyfél által jelentett munkamenet diagnosztizálása anélkül, hogy nem kapcsolódó előzmények között kellene keresni.

Használhatok egyetlen titkot minden API-hoz?

Igen. Egy érvényes store_owner_api_secrete egyetlen bolthoz van kötve, és működik a fenti Merchant API-végpontok mindegyikén. SiteChat-fiókok esetén ugyanez a titok hitelesíti a katalógusfeltöltő API-kat is. A biztonságosabb működés érdekében használjon külön elnevezett titkokat külön rendszerekhez — például egyet az éjszakai adatexporthoz, egy másikat pedig egy belső irányítópulthoz.

Ha egy integrációt megszüntetnek vagy kompromittálódik, csak annak a titkát vonja vissza a Shoply Settingsben. A többi integráció továbbra is működni fog.

Mit kell tudnom a lejáratról, az adatvédelemről és a hibákról?

Tekintse át a Shoply adatforrásait és adatvédelmét is, hogy megértse, milyen információk érhetők el az ügyfélválaszok számára.

  • A bolttulajdonosi API-titkok 90 nap után lejárnak. Hozzon létre csere-titkot, és frissítse az integrációt a lejárati dátum előtt.
  • A Shoply szabványos csevegési és keresési előzménymegőrzési ideje szintén 90 nap. A titok lejárata és az adatmegőrzés külön szabályzatok.
  • Az előzményválaszok személyes adatokat tartalmazhatnak, beleértve az ügyfélazonosítókat, e-mail-címeket, hozzávetőleges helyadatokat, kérdéseket és vásárlási aktivitást. Tárolja és kezelje ezeket az adatvédelmi szabályzatának és a vonatkozó jogszabályoknak megfelelően.
  • A HTTP 403 azt jelenti, hogy a titok hiányzik, érvénytelen, lejárt, visszavonták, vagy másik bolthoz tartozik.
  • A HTTP 422 általában azt jelenti, hogy egy kötelező lekérdezési paraméter hiányzik vagy rossz a neve.
  • A HTTP 500 vagy a statusCode: 500 értékű válasz azt jelenti, hogy a kérés eljutott a Shoplyhoz, de nem tudták befejezni. Az átmeneti hibákat próbálja újra visszalépéses stratégiával, és lépjen kapcsolatba velünk, ha a hiba továbbra is fennáll.
  • Exportokhoz és ismétlődő feladatokhoz használjon határolt UTC-tartományokat, hogy a válaszok kezelhető méretűek maradjanak.

A termékkeresés része a Merchant API-nak?

A Shoply nyilvános termékkereső API-ja más hitelesítési és kérési szerződést használ. Lásd: How to Access Shoply AI Search Through the API, ha vásárlóknak szánt felhasználói élményhez szeretne termékkeresési eredményeket, nem pedig privát kereskedői adatokat.

Feltölthetnek termékkatalógust a SiteChat kereskedők?

Igen. A SiteChat-fiókok strukturált termékeket és termékképeket tölthetnek fel ugyanazzal a bolttulajdonosi API-titokkal. Ezek a katalógusvégpontok külön dokumentálva vannak itt: How to Upload Your Catalog for SiteChat. A Shopify-boltok továbbra is a Shopifyon keresztül szinkronizálják a termékeket, és nem használják ezeket a feltöltési útvonalakat.

Ha segítségre van szüksége egy integrációval kapcsolatban, lépjen kapcsolatba a Shoply AI-jal.