Kako uporabljati Shoply Merchant API
Shoply Merchant API omogoča trgovcu, da varno uporablja lastne Shoply podatke v orodjih za poročanje, potekih dela podpore, načrtovanih izvozih in zasebnih poslovnih aplikacijah.
Vsaka integracija se overi z preklicljivim poverilom, omejenim na posamezno trgovino, ki je ustvarjeno v Shoply Settings. Ni vam treba deliti dostopnega žetona Shopify Admin API, integracija pa lahko dostopa samo do trgovine, ki je izdala svoje poverilo.
Kaj lahko počnem z Merchant API?
Merchant API lahko uporabite za:
- Izvoz dnevnih, tedenskih ali mesečnih rezultatov uspešnosti v preglednico ali podatkovno skladišče.
- Izdelavo zasebne nadzorne plošče za seje, klepete, iskanja, klike na izdelke, dogodke dodajanja v košarico, nakupe in pripisan prihodek.
- Spremljanje dejavnosti strank in odkrivanje nenavadnih sprememb v vključenosti.
- Pregled sej klepeta in iskanja za podporo, merchandising in delo na kakovosti odgovorov.
- Pridobitev časovnice posameznega pogovora pri raziskovanju težave stranke.
- Ustvarjanje, posodabljanje, izpis in brisanje znanja po meri, ki ga uporablja Shoply AI.
- Dodajanje zunanje spletne strani ali naložene datoteke PDF, besedilne datoteke ali datoteke Markdown v bazo znanja.
- Usklajevanje podatkov dogodkov v UTC z lokalnim časovnim pasom trgovine.
Ta vodnik dokumentira sedem končnih točk. Pet jih je enakih končnim točkam, ki jih uporablja Shoply Admin → Analytics, dve pa upravljata bazo znanja:
| API | Kategorija | Kaj vrne |
|---|---|---|
admin_store_analytics | Uspešnost | Dnevne, tedenske ali mesečne vrstice uspešnosti in skupne vrednosti |
query_api_usage_count | Vključenost | Število dejavnosti, združeno po minuti UTC ali dnevu |
query_sessionized_chat | Pogovori | Povzetki sej klepeta in iskanja |
query_log_visualization | Pogovori | Celotna časovnica dogodkov za eno izbrano sejo |
admin_get_store_metadata | Konfiguracija trgovine | Časovni pas trgovine, uporabljen za pravilen prikaz podatkov UTC |
admin_store_knowledge | Znanje | Besedilo po meri, zunanje strani, naložene datoteke, brisanje in ponovno pajkanje |
user_generated_file | Datoteke znanja | Naloži datoteko PDF, besedilno datoteko ali datoteko Markdown, preden je registrirana kot znanje |
Telesa odgovorov spodaj so reprezentativni primeri. Vaša polja in vrednosti bodo odražali dejavnost, zabeleženo za vašo trgovino.
Zahteva za uvedbo: Overjanje s skrivnim ključem lastnika trgovine mora biti uvedeno na strežniku API, ki ga kličete. Če veljaven skrivni ključ vrne HTTP
403zNo access_token found, ta strežnik še vedno uporablja starejšo kodo za overjanje samo z dostopnim žetonom.
Kako ustvarim skrivni ključ API?
- Odprite svoj Shoply AI admin.
- Pojdite na Settings → Store owner API secret.
- Ustvarite skrivni ključ in mu dajte ime, ki prepozna integracijo, na primer
Weekly reporting export. - Ko se prikaže, kopirajte skrivni ključ. Shoply vrednost v navadnem besedilu prikaže samo enkrat.
Vsak skrivni ključ velja 90 dni. Trgovina ima lahko ločene skrivne ključe za ločene integracije, en skrivni ključ pa lahko prekličete, ne da bi prekinili druge.
Te vrednosti shranite kot okoljske spremenljivke na strežniški strani:
export SHOPLY_STORE_KEY="your-store.myshopify.com"
export SHOPLY_STORE_OWNER_API_SECRETE="shoply_owner_key_example123.secret-value"Za SHOPLY_STORE_KEY uporabite stalno domeno trgovine myshopify.com, tudi če kupci običajno obiskujejo domeno po meri.

Kako deluje overjanje?
Vsaka zahteva Merchant API pošlje glavo Authorization, katere vrednost je niz JSON:
{
"store_key": "your-store.myshopify.com",
"store_owner_api_secrete": "YOUR_STORE_OWNER_API_SECRET"
}store_owner_api_secrete je natančno javno ime polja, vključno z zgodovinskim črkovanjem. To ni žeton Bearer. Celoten niz JSON postavite neposredno v glavo Authorization.
Skrivni ključ hranite samo v zaledni kodi. Ne postavljajte ga v URL, paket za brskalnik, javno skladišče, dogodek analitike ali dnevnik aplikacije.
Ali obstajajo uradni paketi za Python in Node.js?
Da. Shoply objavlja dva paketa za strežniško stran, ki samodejno dodata zahtevano overjanje in Merchant API izpostavita kot tipizirane funkcije. Oba paketa sta odprtokodna v GitHub organizaciji shoplyai-public.
Paket za Python
Paket shoply-merchant-api podpira Python 3.12 in uporablja odzivne modele Pydantic v2. Namestite pripeto izdajo 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"Pridobite najnovejše seje klepeta in iskanja kot tipizirane modele 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)Paket ponuja tudi funkcije za analitiko, štetje dejavnosti, celotne časovnice sej, časovni pas trgovine in upravljanje znanja. Oglejte si njegov vodnik za poslovne primere uporabe in referenco API .
Paket za Node.js in TypeScript
Repozitorij shoply-merchant-api-js ponuja paket @shoplyai/merchant-api za Node.js 20 ali novejši. Gre za paket ESM z vgrajenimi deklaracijami TypeScript in brez odvisnosti med izvajanjem. Namestite pripeto izdajo 2.1.3 neposredno iz GitHub:
npm install "github:shoplyai-public/shoply-merchant-api-js#v2.1.3"Pridobite enake najnovejše seje s strežnika 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);
}Paket npm pokriva enake končne točke Merchant API kot paket za Python. Oglejte si njegov vodnik za poslovne primere uporabe in referenco API .
Oba paketa sta namenjena zaupanja vrednim zalednim storitvam, načrtovanim opravilom in zasebnim notranjim orodjem. Nobenega paketa ne uvažajte v kodo trgovine in ne izpostavljajte skrivnega ključa API v paketu za brskalnik.
Ali lahko kličem HTTP API brez paketa?
Da. Merchant API ostaja standardni HTTPS API. Spodnji nizkonivojski primeri v Pythonu uporabljajo Requests, da lahko vidite celotno pogodbo na ravni prenosa ali integrirate iz drugega jezika.
Namestite Requests, če ga vaše okolje še ne vključuje:
python -m pip install requestsSpodnja pomožna funkcija doda ključ trgovine in glavo za overjanje vsaki zahtevi:
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 resultSpodnji primeri uporabljajo tega skupnega odjemalca. Obe pomožni funkciji samodejno dodata overjeni ključ trgovine.
Ali lahko upravljam znanje Shoply AI prek API?
Da. admin_store_knowledge uporablja GET za pridobivanje znanja in POST za njegovo ustvarjanje, posodabljanje, brisanje ali ponovno pajkanje. POST, ki uporablja obstoječi ID znanja, posodobi ta vnos; uporaba novega ID ustvari novega.
Preden avtomatizirate posodobitve, načrtujte uporabno znanje trgovine s primeri iz našega vodnika za učenje.
Zapisi znanja lahko spremenijo odgovore, prikazane kupcem. Za sistem, ki upravlja znanje, uporabite namenski skrivni ključ, preverite vsebino pred pošiljanjem in tega poverila z možnostjo zapisovanja nikoli ne izpostavljajte v JavaScriptu trgovine.
Izpiši obstoječe znanje
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"))Vzorčni odgovor
{
"data": {
"knowledge::shipping-policy": {
"title": "Shipping policy",
"text": "Orders leave our warehouse within two business days.",
"epoch_edit": 1787211246
}
}
}Ustvari ali posodobi besedilno znanje po meri
Izberite stabilen, enoličen ID znanja. Pri posodabljanju tega vnosa ponovno uporabite isti 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)Vzorčni odgovor
{
"statusCode": 200
}Uspešen odgovor pomeni, da je bilo znanje shranjeno. Indeksiranje za iskanje lahko traja nekaj minut, zato se nov odgovor morda ne bo pojavil takoj. Če API sporoči, da je bila vsebina shranjena, vendar indeksiranje zamuja, pred ponovnim poskusom pisanja potrdite shranjeni vnos z GET.
Dodaj zunanjo spletno stran
Uporabite ID, ki se začne z external_url::. Celoten URL http:// ali https:// vnesite v text.
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()),
}
},
)Naloži in registriraj datoteko znanja
Datoteke znanja morajo biti PDF, TXT ali Markdown in manjše od 5 MB. Najprej naložite datoteko, nato vrnjeno zasebno lokacijo S3 shranite kot vnos znanja.
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()),
}
},
)Vzorčni odgovor nalaganja
{
"message": "File uploaded successfully",
"statusCode": 200,
"file_url": "s3://shoplystores/your-store.myshopify.com/uploads/shipping-policy.md"
}file_url obravnavajte kot nepregledno zasebno lokacijo, ki jo vrne Shoply. Ne sestavljajte je in je ne spreminjajte sami.
Izbriši znanje
Brisanje je trajno. Najprej pridobite trenutne vnose in pošljite samo natančne ID-je, ki jih nameravate odstraniti.
result = shoply_post(
"admin_store_knowledge",
{
"knowledge_ids_to_delete": [
"knowledge::shipping-policy",
"external_url::returns-policy",
"knowledge_file::shipping-policy",
]
},
)Zahtevaj ponovno pajkanje spletne strani
Ponovno pajkanje uporabite po spremembi vsebine na spletni strani trgovca. Običajno ni potrebno po vsaki posodobitvi besedila po meri.
result = shoply_post(
"admin_store_knowledge",
re_crawl_ind="true",
)Poslovni primeri uporabe
- Sinhronizirajte navodila za dostavo, vračila, garancijo, velikosti ali nego izdelkov iz notranjega vsebinskega sistema.
- Objavite začasne informacije o kampanjah ali praznikih, ne da bi jih ročno kopirali v Shoply Admin.
- Dodajte stran s pravilnikom ali odobren dokument v bazo znanja kot del poteka uvedbe.
- Odstranite zastarela navodila takoj, ko se pravilnik ali promocija konča.
Primeri Merchant API
1. Pridobi analitiko uspešnosti
admin_store_analytics poganja tabelo Analytics → Summary. Vrne seje, klepete, iskanja, klike, dogodke dodajanja v košarico, nakupe in pripisan prihodek.
Končna točka
GET https://api.shoplyai.ai/admin_store_analyticsParametri poizvedbe
| Parameter | Obvezno | Opis |
|---|---|---|
store_key | Da | Doda ga skupni odjemalec |
report_type | Da | daily, weekly ali monthly |
start_date | Dnevno/tedensko | Vključujoči datum UTC v obliki YYYYMMDD |
end_date | Dnevno/tedensko | Vključujoči datum UTC v obliki YYYYMMDD |
Mesečna poročila uporabljajo shranjeno mesečno zgodovino Shoply in ne zahtevajo datumskih mej.
Primer 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")Vzorčni odgovor
{
"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"
}Prihodek lahko vsebuje več kot eno valuto. revenue obravnavajte kot besedilo za prikaz. Uporabite revenue_usd, kadar potrebujete normalizirano vrednost v USD, ki jo prikazuje Shoply.
Poslovni primeri uporabe
- Pošljite dnevni povzetek prodajnega učinka trgovcu ali ekipi za e-trgovino.
- Primerjajte iskanja, klike na izdelke, dogodke dodajanja v košarico in nakupe, da najdete odpad v prodajnem lijaku.
- Napajajte tedensko ali mesečno nadzorno ploščo poslovne inteligence brez strganja strani Shoply Admin.
- Spremljajte pripisan prihodek skozi čas in ga primerjajte s spremembami merchandisinga ali kampanj.
2. Pridobi časovni pas trgovine
admin_get_store_metadata zagotavlja oznako časovnega pasu, prikazano v Analytics → Chat & Search History. Stran jo uporablja za pretvorbo dejavnosti UTC v lokalni čas trgovine.
Končna točka
GET https://api.shoplyai.ai/admin_get_store_metadataParametri poizvedbe
| Parameter | Obvezno | Opis |
|---|---|---|
store_key | Da | Doda ga skupni odjemalec |
metadata_key | Da | Uporabite dobesedno vrednost time_zone |
Primer v Pythonu
timezone_payload = shoply_get(
"admin_get_store_metadata",
metadata_key="time_zone",
)
timezone = timezone_payload["data"]
print(timezone["ianaTimezone"], timezone["timezoneOffsetMinutes"])Vzorčni odgovor
{
"data": {
"ianaTimezone": "America/Los_Angeles",
"timezoneOffset": -7,
"timezoneOffsetMinutes": -420
},
"statusCode": 200
}Poslovni primeri uporabe
- Združite dejavnost UTC v iste lokalne koledarske dni, kot jih trgovec vidi v Analytics.
- Načrtujte dnevne izvoze po koncu lokalnega dneva trgovine.
- Označite poročila z nedvoumnim časovnim pasom IANA, kot je
America/Los_Angeles.
Odmiki časovnih pasov se lahko spremenijo zaradi pravil poletnega časa. Če vaš sistem poročanja to podpira, dajte prednost ianaTimezone, namesto da trajno shranjujete en sam številčni odmik.
3. Pridobi štetje dejavnosti
query_api_usage_count vrne dejavnost trgovine, združeno po datumu UTC ali izvorni minuti UTC. To je tudi vir za graf dejavnosti v Analytics → Chat & Search History.
Končna točka
GET https://api.shoplyai.ai/query_api_usage_countParametri poizvedbe
| Parameter | Obvezno | Opis |
|---|---|---|
start_dt_utc | Da | Začetni čas UTC kot YYYY-MM-DD HH:mm:ss |
end_dt_utc | Da | Končni čas UTC kot YYYY-MM-DD HH:mm:ss |
groupby | Ne | utc_date za dnevne skupne vrednosti ali utc_date_time za vrstice po minutah |
Primer 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)Vzorčni odgovor
{
"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
}
]
}Vrstice vključujejo števce dejavnosti, ki so na voljo za to obdobje, kot so vprašanja v klepetu, iskanja, kliki, dogodki dodajanja v košarico in dogodki zaključka nakupa. Števci brez dejavnosti so lahko odsotni namesto nastavljeni na nič.
Poslovni primeri uporabe
- Zgradite urni ali dnevni graf dejavnosti, kot je tisti v Chat & Search History.
- Odkrijte nenavadne skoke prometa ali nenadne padce vključenosti strank.
- Primerjajte obseg iskanja izdelkov s kliki, dogodki dodajanja v košarico in zaključki nakupa.
- Ocenite, kdaj bi morali ekipe za podporo in merchandising pregledati najbolj obremenjena obdobja.
4. Pridobi povzetke sej klepeta in iskanja
query_sessionized_chat vrne en strnjen zapis na sejo stranke. Poganja tudi seznam sej v Analytics → Chat & Search History.
Končna točka
GET https://api.shoplyai.ai/query_sessionized_chatParametri poizvedbe
| Parameter | Obvezno | Opis |
|---|---|---|
start_dt_utc | Da | Začetni čas UTC ali dobesedna vrednost undefined |
end_dt_utc | Da | Končni čas UTC ali dobesedna vrednost undefined |
num_sessions | Ne | Število sej za izbor, ko je katerakoli meja undefined |
ScanIndexForward | Ne | Uporabite false, da najprej izberete najnovejše seje |
Pridobi zadnjih 40 sej
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", ""))Pridobi seje v razponu 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",
)Ko sta prisotni obe časovni meji, API vrne seje v celotnem razponu; num_sessions te omejene poizvedbe ne omejuje.
Vzorčni odgovor
{
"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
}
]
}Izbirna polja se razlikujejo glede na sejo. Ohranite customer_id, start_timestamp_ms in end_timestamp_ms, če nameravate pridobiti celotno časovnico.
Poslovni primeri uporabe
- Preglejte vzorec nedavnih pogovorov za kakovost odgovorov in usposabljanje podpore.
- Najdite ponavljajoča se vprašanja strank, ki bi morala vplivati na opis izdelkov ali pogosta vprašanja.
- Prepoznajte seje z visokim namenom, ki vsebujejo iskanja, klike na izdelke ali druga nakupovalna dejanja.
- Izvozite eno vrstico na sejo za analizo trendov, pri tem pa se izognete večjemu tovoru podatkov na ravni dogodkov.
5. Pridobi eno celotno sejo
Posredujte izbrani povzetek v query_log_visualization, da pridobite njegove dogodke stranke, AI, iskanja in trgovine.
Končna točka
GET https://api.shoplyai.ai/query_log_visualizationParametri poizvedbe
| Parameter | Obvezno | Opis |
|---|---|---|
date_time_utc_start | Da | Začetek seje, oblikovan kot UTC YYYY-MM-DD HH:mm:ss |
date_time_utc_end | Da | Konec seje, oblikovan kot UTC YYYY-MM-DD HH:mm:ss |
session_id | Ne | customer_id iz povzetka, uporabljen za starejše zgodovinske zapise |
start_timestamp_ms | Priporočeno | Natančen začetni časovni žig v milisekundah iz povzetka |
Primer 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"))Vzorčni odgovor
{
"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": {}
}
]
}Časovnica lahko vsebuje vprašanja stranke, odgovore AI, rezultate iskanja, klike na izdelke, dogodke dodajanja v košarico, dogodke zaključka nakupa in sodelovanje človeškega agenta. Uporabite server_timestamp_ms za razvrščanje mešanih vrst dogodkov. Starejši zapisi lahko vsebujejo manj polj.
Poslovni primeri uporabe
- Natančno preverite, kaj je stranka vprašala in kaj je Shoply odgovoril med preiskavo podpore.
- Preglejte kakovost odgovorov skupaj z rezultati iskanja in izdelki, prikazanimi kupcu.
- Rekonstruirajte pot od vprašanja do klika, dodajanja v košarico ali zaključka nakupa.
- Diagnosticirajte eno sejo, o kateri je poročala stranka, ne da bi iskali po nepovezani zgodovini.
Ali lahko uporabljam en skrivni ključ za vsak API?
Da. Veljaven store_owner_api_secrete je omejen na eno trgovino in deluje na vseh zgornjih končnih točkah Merchant API. Pri računih SiteChat isti skrivni ključ overja tudi API-je za nalaganje kataloga. Za varnejše delovanje uporabite ločene poimenovane skrivne ključe za ločene sisteme — na primer enega za nočni izvoz podatkov in drugega za notranjo nadzorno ploščo.
Če je ena integracija ukinjena ali kompromitirana, v Shoply Settings prekličite samo njen skrivni ključ. Druge integracije bodo še naprej delovale.
Kaj moram vedeti o poteku veljavnosti, zasebnosti in napakah?
Preglejte tudi vire podatkov in zasebnost Shoply, da boste razumeli, katere informacije so na voljo odgovorom strankam.
- Skrivni ključi API za lastnika trgovine potečejo po 90 dneh. Pred datumom poteka ustvarite zamenjavo in posodobite integracijo.
- Standardno obdobje hrambe zgodovine klepeta in iskanja v Shoply je prav tako 90 dni. Potek skrivnega ključa in hramba podatkov sta ločeni politiki.
- Odgovori zgodovine lahko vsebujejo osebne podatke, vključno z identifikatorji strank, e-poštnimi naslovi, približno lokacijo, vprašanji in nakupovalno dejavnostjo. Shranjujte in obdelujte jih v skladu s svojo politiko zasebnosti in veljavno zakonodajo.
- HTTP
403pomeni, da skrivni ključ manjka, je neveljaven, potekel, preklican ali pripada drugi trgovini. - HTTP
422običajno pomeni, da manjka obvezen parameter poizvedbe ali da ima napačno ime. - HTTP
500ali odgovor zstatusCode: 500pomeni, da je zahteva dosegla Shoply, vendar je ni bilo mogoče dokončati. Pri začasnih napakah poskusite znova z backoff strategijo in nas kontaktirajte, če se napaka nadaljuje. - Za izvoze in ponavljajoča se opravila uporabljajte omejene razpone UTC, da bodo odgovori ostali obvladljivi.
Ali je iskanje izdelkov del Merchant API?
Shoplyjev javni API za iskanje izdelkov ima drugačno overjanje in pogodbo zahtev. Oglejte si How to Access Shoply AI Search Through the API, če želite rezultate iskanja izdelkov za izkušnjo, usmerjeno k kupcem, in ne za zasebne podatke trgovca.
Ali lahko trgovci SiteChat naložijo katalog izdelkov?
Da. Računi SiteChat lahko naložijo strukturirane izdelke in slike izdelkov z istim skrivnim ključem API za lastnika trgovine. Te končne točke kataloga so dokumentirane ločeno v How to Upload Your Catalog for SiteChat. Trgovine Shopify še naprej sinhronizirajo izdelke prek Shopify in teh poti nalaganja ne uporabljajo.
Za pomoč pri integraciji kontaktirajte Shoply AI.
