Kako uporabljati Shoply Merchant API

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

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:

APIKategorijaKaj vrne
admin_store_analyticsUspešnostDnevne, tedenske ali mesečne vrstice uspešnosti in skupne vrednosti
query_api_usage_countVključenostŠtevilo dejavnosti, združeno po minuti UTC ali dnevu
query_sessionized_chatPogovoriPovzetki sej klepeta in iskanja
query_log_visualizationPogovoriCelotna časovnica dogodkov za eno izbrano sejo
admin_get_store_metadataKonfiguracija trgovineČasovni pas trgovine, uporabljen za pravilen prikaz podatkov UTC
admin_store_knowledgeZnanjeBesedilo po meri, zunanje strani, naložene datoteke, brisanje in ponovno pajkanje
user_generated_fileDatoteke znanjaNalož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 403 z No access_token found, ta strežnik še vedno uporablja starejšo kodo za overjanje samo z dostopnim žetonom.

Kako ustvarim skrivni ključ API?

  1. Odprite svoj Shoply AI admin.
  2. Pojdite na Settings → Store owner API secret.
  3. Ustvarite skrivni ključ in mu dajte ime, ki prepozna integracijo, na primer Weekly reporting export.
  4. Ko se prikaže, kopirajte skrivni ključ. Shoply vrednost v navadnem besedilu prikaže samo enkrat.
Shoply Settings showing the Store owner API secret panel, Create API secret button, expiry date, and revoke control

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:

bash
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.

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.

Kako deluje overjanje?

Vsaka zahteva Merchant API pošlje glavo Authorization, katere vrednost je niz JSON:

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:

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"

Pridobite najnovejše seje klepeta in iskanja kot tipizirane modele 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)

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:

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

Pridobite enake najnovejše seje s strežnika 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); }

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:

bash
python -m pip install requests

Spodnja pomožna funkcija doda ključ trgovine in glavo za overjanje vsaki zahtevi:

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

Spodnji 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

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

Vzorčni odgovor

json
{ "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.

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)

Vzorčni odgovor

json
{ "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.

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

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.

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

Vzorčni odgovor nalaganja

json
{ "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.

python
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.

python
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

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

Parametri poizvedbe

ParameterObveznoOpis
store_keyDaDoda ga skupni odjemalec
report_typeDadaily, weekly ali monthly
start_dateDnevno/tedenskoVključujoči datum UTC v obliki YYYYMMDD
end_dateDnevno/tedenskoVključ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

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

Vzorčni odgovor

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

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

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

Parametri poizvedbe

ParameterObveznoOpis
store_keyDaDoda ga skupni odjemalec
metadata_keyDaUporabite dobesedno vrednost time_zone

Primer v Pythonu

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

Vzorčni odgovor

json
{ "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

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

Parametri poizvedbe

ParameterObveznoOpis
start_dt_utcDaZačetni čas UTC kot YYYY-MM-DD HH:mm:ss
end_dt_utcDaKončni čas UTC kot YYYY-MM-DD HH:mm:ss
groupbyNeutc_date za dnevne skupne vrednosti ali utc_date_time za vrstice po minutah

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

Vzorčni odgovor

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

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

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

Parametri poizvedbe

ParameterObveznoOpis
start_dt_utcDaZačetni čas UTC ali dobesedna vrednost undefined
end_dt_utcDaKončni čas UTC ali dobesedna vrednost undefined
num_sessionsNeŠtevilo sej za izbor, ko je katerakoli meja undefined
ScanIndexForwardNeUporabite false, da najprej izberete najnovejše seje

Pridobi zadnjih 40 sej

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

Pridobi seje v razponu 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", )

Ko sta prisotni obe časovni meji, API vrne seje v celotnem razponu; num_sessions te omejene poizvedbe ne omejuje.

Vzorčni odgovor

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

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

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

Parametri poizvedbe

ParameterObveznoOpis
date_time_utc_startDaZačetek seje, oblikovan kot UTC YYYY-MM-DD HH:mm:ss
date_time_utc_endDaKonec seje, oblikovan kot UTC YYYY-MM-DD HH:mm:ss
session_idNecustomer_id iz povzetka, uporabljen za starejše zgodovinske zapise
start_timestamp_msPriporočenoNatančen začetni časovni žig v milisekundah iz povzetka

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

Vzorčni odgovor

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

Č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 403 pomeni, da skrivni ključ manjka, je neveljaven, potekel, preklican ali pripada drugi trgovini.
  • HTTP 422 običajno pomeni, da manjka obvezen parameter poizvedbe ali da ima napačno ime.
  • HTTP 500 ali odgovor z statusCode: 500 pomeni, 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.