Kā izmantot Shoply Merchant API

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

Shoply Merchant API ļauj tirgotājam droši izmantot savus Shoply datus pārskatu rīkos, atbalsta darba plūsmās, plānotajos eksportos un privātās biznesa lietotnēs.

Katra integrācija autentificējas ar atsaucamu, veikalam piesaistītu piekļuves akreditācijas datu vienību, kas izveidota Shoply iestatījumos. Jums nav jādalās ar Shopify Admin API piekļuves tokenu, un integrācija var piekļūt tikai tam veikalam, kas izdevis tās akreditācijas datus.

Ko es varu darīt ar Merchant API?

Jūs varat izmantot Merchant API, lai:

  • Eksportētu ikdienas, iknedēļas vai ikmēneša veiktspējas rezultātus izklājlapā vai datu noliktavā.
  • Izveidotu privātu paneli sesijām, čatiem, meklējumiem, produktu klikšķiem, pievienošanas grozam notikumiem, pirkumiem un attiecinātajiem ieņēmumiem.
  • Uzraudzītu klientu aktivitāti un atklātu neparastas iesaistes izmaiņas.
  • Pārskatītu čata un meklēšanas sesijas atbalsta, preču pārvaldības un atbilžu kvalitātes darbam.
  • Iegūtu atsevišķas sarunas laika līniju, izmeklējot klienta problēmu.
  • Izveidotu, atjauninātu, uzskaitītu un dzēstu pielāgotās zināšanas, ko izmanto Shoply AI.
  • Pievienotu ārēju tīmekļa lapu vai augšupielādētu PDF, teksta vai Markdown failu zināšanu bāzei.
  • Saskaņotu UTC notikumu datus ar veikala vietējo laika joslu.

Šajā ceļvedī ir dokumentēti septiņi galapunkti. Pieci no tiem ir tie paši galapunkti, ko izmanto Shoply Admin → Analytics, bet divi pārvalda zināšanu bāzi:

APIKategorijaKo tas atgriež
admin_store_analyticsVeiktspējaIkdienas, iknedēļas vai ikmēneša veiktspējas rindas un kopsummas
query_api_usage_countIesaistīšanāsAktivitāšu skaiti, grupēti pēc UTC minūtes vai dienas
query_sessionized_chatSarunasČata un meklēšanas sesiju kopsavilkumi
query_log_visualizationSarunasPilna notikumu laika līnija vienai atlasītai sesijai
admin_get_store_metadataVeikala konfigurācijaVeikala laika josla, ko izmanto, lai pareizi attēlotu UTC datus
admin_store_knowledgeZināšanasPielāgots teksts, ārējas lapas, augšupielādēti faili, dzēšana un atkārtota pārmeklēšana
user_generated_fileZināšanu failiAugšupielādē PDF, teksta vai Markdown failu, pirms tas tiek reģistrēts kā zināšanas

Tālāk redzamie atbilžu korpusi ir reprezentatīvi piemēri. Jūsu lauki un vērtības atspoguļos aktivitāti, kas reģistrēta jūsu veikalā.

Izvietošanas prasība: Veikala īpašnieka slepenās atslēgas autentifikācijai jābūt izvietotai API serverī, kuru izsaucat. Ja derīga slepenā atslēga atgriež HTTP 403 ar No access_token found, šis serveris joprojām izmanto vecāko autentifikācijas kodu, kas atbalsta tikai access token.

Kā izveidot API slepeno atslēgu?

  1. Atveriet savu Shoply AI administrēšanas paneli.
  2. Dodieties uz Settings → Store owner API secret.
  3. Izveidojiet slepeno atslēgu un piešķiriet tai nosaukumu, kas identificē integrāciju, piemēram, Weekly reporting export.
  4. Nokopējiet slepeno atslēgu, kad tā parādās. Shoply vienkāršā teksta vērtību parāda tikai vienu reizi.
Shoply Settings showing the Store owner API secret panel, Create API secret button, expiry date, and revoke control

Katra slepenā atslēga ir derīga 90 dienas. Veikalam var būt atsevišķas slepenās atslēgas atsevišķām integrācijām, un jūs varat atsaukt vienu slepeno atslēgu, nepārtraucot pārējo darbību.

Saglabājiet šīs vērtības kā servera puses vides mainīgos:

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

SHOPLY_STORE_KEY izmantojiet veikala pastāvīgo myshopify.com domēnu, pat ja pircēji parasti apmeklē pielāgotu domēnu.

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

Kā darbojas autentifikācija?

Katrs Merchant API pieprasījums nosūta Authorization galveni, kuras vērtība ir JSON virkne:

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

store_owner_api_secrete ir precīzs publiskais lauka nosaukums, ieskaitot tā vēsturisko rakstību. Tas nav Bearer tokens. Ievietojiet pilnu JSON virkni tieši Authorization galvenē.

Glabājiet slepeno atslēgu tikai backend kodā. Neievietojiet to URL, pārlūkprogrammas bundlī, publiskā repozitorijā, analītikas notikumā vai lietotnes žurnālā.

Vai ir oficiālas Python un Node.js pakotnes?

Jā. Shoply publicē divas servera puses pakotnes, kas automātiski pievieno nepieciešamo autentifikāciju un nodrošina Merchant API kā tipizētas funkcijas. Abas pakotnes ir atvērtā pirmkoda un pieejamas GitHub organizācijā shoplyai-public.

Python pakotne

Pakotne shoply-merchant-api atbalsta Python 3.12 un izmanto Pydantic v2 atbilžu modeļus. Instalējiet piesaistīto 2.1.3 laidienu:

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"

Iegūstiet jaunākās čata un meklēšanas sesijas kā tipizētus SessionSummary modeļus:

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)

Pakotne nodrošina arī funkcijas analītikai, aktivitāšu skaitiem, pilnām sesiju laika līnijām, veikala laika joslai un zināšanu pārvaldībai. Skatiet tās biznesa lietojuma gadījumu ceļvedi  un API atsauci .

Node.js un TypeScript pakotne

Repozitorijs shoply-merchant-api-js nodrošina pakotni @shoplyai/merchant-api priekš Node.js 20 vai jaunākas versijas. Tā ir ESM pakotne ar iebūvētām TypeScript deklarācijām un bez izpildlaika atkarībām. Instalējiet piesaistīto 2.1.3 laidienu tieši no GitHub:

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

Iegūstiet tās pašas jaunākās sesijas no Node.js servera:

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

npm pakotne aptver tos pašus Merchant API galapunktus kā Python pakotne. Skatiet tās biznesa lietojuma gadījumu ceļvedi  un API atsauci .

Abas pakotnes ir paredzētas uzticamiem backend servisiem, plānotiem uzdevumiem un privātiem iekšējiem rīkiem. Neimportējiet nevienu no pakotnēm veikala vitrīnas kodā un neatklājiet API slepeno atslēgu pārlūkprogrammas bundlī.

Vai es varu izsaukt HTTP API bez pakotnes?

Jā. Merchant API joprojām ir standarta HTTPS API. Tālāk minētie zemā līmeņa Python piemēri izmanto Requests, lai jūs varētu redzēt pilnu datu pārraides līgumu vai integrēt no citas valodas.

Instalējiet Requests, ja jūsu vide to jau neietver:

bash
python -m pip install requests

Tālāk esošais palīgs katram pieprasījumam pievieno veikala atslēgu un autentifikācijas galveni:

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

Tālāk minētie piemēri izmanto šo koplietoto klientu. Abi palīgi automātiski pievieno autentificētā veikala atslēgu.

Vai es varu pārvaldīt Shoply AI zināšanas, izmantojot API?

Jā. admin_store_knowledge izmanto GET, lai iegūtu zināšanas, un POST, lai tās izveidotu, atjauninātu, dzēstu vai atkārtoti pārmeklētu. POST, kas izmanto esošu zināšanu ID, atjaunina šo ierakstu; ja tiek izmantots jauns ID, tas izveido jaunu ierakstu.

Pirms atjauninājumu automatizēšanas izplānojiet noderīgas veikala zināšanas, izmantojot piemērus mūsu apmācības ceļvedī.

Zināšanu ierakstīšana var mainīt pircējiem rādītās atbildes. Izmantojiet atsevišķu slepeno atslēgu sistēmai, kas pārvalda zināšanas, pārbaudiet saturu pirms tā nosūtīšanas un nekad neatklājiet šo rakstīšanas tiesības piešķirošo akreditācijas datu vienību veikala vitrīnas JavaScript kodā.

Esošo zināšanu uzskaitīšana

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

Atbildes paraugs

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

Pielāgota teksta zināšanu izveide vai atjaunināšana

Izvēlieties stabilu, unikālu zināšanu ID. Izmantojiet to pašu ID atkārtoti, kad atjaunināt šo ierakstu.

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)

Atbildes paraugs

json
{ "statusCode": 200 }

Veiksmīga atbilde nozīmē, ka zināšanas tika saglabātas. Meklēšanas indeksēšana var aizņemt dažas minūtes, tāpēc jauna atbilde var neparādīties uzreiz. Ja API ziņo, ka saturs tika saglabāts, bet indeksēšana aizkavējas, pirms rakstīšanas atkārtošanas apstipriniet saglabāto ierakstu ar GET.

Ārējas tīmekļa lapas pievienošana

Izmantojiet ID, kas sākas ar external_url::. Ievietojiet pilnu http:// vai https:// URL laukā 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()), } }, )

Zināšanu faila augšupielāde un reģistrēšana

Zināšanu failiem jābūt PDF, TXT vai Markdown formātā un mazākiem par 5 MB. Vispirms augšupielādējiet failu, pēc tam saglabājiet atgriezto privāto S3 atrašanās vietu kā zināšanu ierakstu.

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

Augšupielādes atbildes paraugs

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

Uztveriet file_url kā necaurspīdīgu privātu atrašanās vietu, ko atgriež Shoply. Nekonstruējiet to un nemainiet to pats.

Zināšanu dzēšana

Dzēšana ir neatgriezeniska. Vispirms iegūstiet pašreizējos ierakstus un nosūtiet tikai tieši tos ID, kurus plānojat noņemt.

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

Vietnes atkārtotas pārmeklēšanas pieprasīšana

Izmantojiet atkārtotu pārmeklēšanu pēc tam, kad tirgotāja vietnē ir mainījies saturs. Parasti tā nav nepieciešama pēc katra pielāgotā teksta atjauninājuma.

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

Biznesa lietojuma gadījumi

  • Sinhronizējiet piegādes, atgriešanas, garantijas, izmēru vai produktu kopšanas norādes no iekšējās satura sistēmas.
  • Publicējiet īslaicīgu kampaņu vai svētku informāciju bez manuālas kopēšanas uz Shoply Admin.
  • Pievienojiet politikas tīmekļa lapu vai apstiprinātu dokumentu zināšanu bāzei kā daļu no izvietošanas darbplūsmas.
  • Noņemiet novecojušas vadlīnijas, tiklīdz politika vai akcija beidzas.

Merchant API piemēri

1. Veiktspējas analītikas iegūšana

admin_store_analytics nodrošina tabulu Analytics → Summary. Tā atgriež sesijas, čatus, meklējumus, klikšķus, pievienošanas grozam notikumus, pirkumus un attiecinātos ieņēmumus.

Galapunkts

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

Vaicājuma parametri

ParametrsObligātsApraksts
store_keyJāPievieno koplietotais klients
report_typeJādaily, weekly vai monthly
start_dateIkdienas/iknedēļasIekļaujošs UTC datums formātā YYYYMMDD
end_dateIkdienas/iknedēļasIekļaujošs UTC datums formātā YYYYMMDD

Ikmēneša pārskati izmanto Shoply saglabāto mēneša vēsturi un neprasa datumu robežas.

Python piemērs

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

Atbildes paraugs

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

Ieņēmumi var ietvert vairāk nekā vienu valūtu. Uztveriet revenue kā attēlojamo tekstu. Izmantojiet revenue_usd, ja jums nepieciešama Shoply rādītā normalizētā vērtība USD.

Biznesa lietojuma gadījumi

  • Nosūtiet tirgotājam vai e-komercijas komandai ikdienas pārskatu par ietekmi uz pārdošanu.
  • Salīdziniet meklējumus, produktu klikšķus, pievienošanas grozam notikumus un pirkumus, lai noteiktu piltuves atbirumu.
  • Pabarojiet iknedēļas vai ikmēneša biznesa inteliģences paneli, neskrāpējot Shoply Admin lapu.
  • Izsekojiet attiecinātajiem ieņēmumiem laika gaitā un salīdziniet tos ar preču pārvaldības vai kampaņu izmaiņām.

2. Veikala laika joslas iegūšana

admin_get_store_metadata nodrošina laika joslas emblēmu, kas redzama Analytics → Chat & Search History. Lapa to izmanto, lai pārvērstu UTC aktivitāti veikala vietējā laikā.

Galapunkts

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

Vaicājuma parametri

ParametrsObligātsApraksts
store_keyJāPievieno koplietotais klients
metadata_keyJāIzmantojiet burtisko vērtību time_zone

Python piemērs

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

Atbildes paraugs

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

Biznesa lietojuma gadījumi

  • Grupējiet UTC aktivitāti tajās pašās vietējā kalendāra dienās, ko tirgotājs redz Analytics sadaļā.
  • Plānojiet ikdienas eksportus pēc tam, kad veikala vietējā diena ir beigusies.
  • Marķējiet pārskatus ar nepārprotamu IANA laika joslu, piemēram, America/Los_Angeles.

Laika joslu nobīdes var mainīties vasaras laika noteikumu dēļ. Ja jūsu pārskatu sistēma to atbalsta, izvēlieties ianaTimezone, nevis pastāvīgi saglabājiet vienu skaitlisku nobīdi.

3. Aktivitāšu skaitu iegūšana

query_api_usage_count atgriež veikala aktivitāti, grupētu pēc UTC datuma vai sākotnējās UTC minūtes. Tas ir arī datu avots aktivitātes diagrammai Analytics → Chat & Search History.

Galapunkts

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

Vaicājuma parametri

ParametrsObligātsApraksts
start_dt_utcJāUTC sākuma laiks kā YYYY-MM-DD HH:mm:ss
end_dt_utcJāUTC beigu laiks kā YYYY-MM-DD HH:mm:ss
groupbyNēutc_date ikdienas kopsummām vai utc_date_time minūšu rindām

Python piemērs

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)

Atbildes paraugs

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

Rindas ietver aktivitātes skaitītājus, kas pieejami attiecīgajā periodā, piemēram, čata jautājumus, meklējumus, klikšķus, pievienošanas grozam notikumus un norēķināšanās notikumus. Skaitītāji bez aktivitātes var nebūt klātesoši, nevis būt iestatīti uz nulli.

Biznesa lietojuma gadījumi

  • Izveidojiet stundas vai dienas aktivitātes diagrammu, līdzīgu tai, kas redzama Chat & Search History.
  • Atklājiet neparastus trafika kāpumus vai pēkšņus klientu iesaistes kritumus.
  • Salīdziniet produktu meklēšanas apjomu ar klikšķiem, pievienošanas grozam notikumiem un norēķināšanos.
  • Novērtējiet, kad atbalsta un preču pārvaldības komandām būtu jāpārskata noslogotākie periodi.

4. Čata un meklēšanas sesiju kopsavilkumu iegūšana

query_sessionized_chat atgriež vienu kompaktu ierakstu katrai klienta sesijai. Tas arī nodrošina sesiju sarakstu Analytics → Chat & Search History.

Galapunkts

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

Vaicājuma parametri

ParametrsObligātsApraksts
start_dt_utcJāUTC sākuma laiks vai burtiskā vērtība undefined
end_dt_utcJāUTC beigu laiks vai burtiskā vērtība undefined
num_sessionsNēSesiju skaits, ko atlasīt, ja viena no robežām ir undefined
ScanIndexForwardNēIzmantojiet false, lai vispirms atlasītu jaunākās sesijas

Iegūt pēdējās 40 sesijas

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

Iegūt sesijas UTC diapazonā

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

Ja ir norādītas abas laika robežas, API atgriež sesijas visā pilnajā diapazonā; num_sessions neierobežo šo robežoto vaicājumu.

Atbildes paraugs

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

Neobligātie lauki atšķiras atkarībā no sesijas. Saglabājiet customer_id, start_timestamp_ms un end_timestamp_ms, ja plānojat iegūt pilno laika līniju.

Biznesa lietojuma gadījumi

  • Pārskatiet neseno sarunu izlasi atbilžu kvalitātei un atbalsta apmācībai.
  • Atrodiet atkārtotus klientu jautājumus, kuriem būtu jāietekmē produktu apraksti vai BUJ.
  • Identificējiet augsta nodoma sesijas, kas satur meklējumus, produktu klikšķus vai citas iepirkšanās darbības.
  • Eksportējiet vienu rindu katrai sesijai tendenču analīzei, vienlaikus izvairoties no lielākas notikumu līmeņa slodzes.

5. Vienas pilnas sesijas iegūšana

Nododiet atlasītu kopsavilkumu uz query_log_visualization, lai iegūtu tās klienta, AI, meklēšanas un komercijas notikumus.

Galapunkts

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

Vaicājuma parametri

ParametrsObligātsApraksts
date_time_utc_startJāSesijas sākums, formatēts kā UTC YYYY-MM-DD HH:mm:ss
date_time_utc_endJāSesijas beigas, formatētas kā UTC YYYY-MM-DD HH:mm:ss
session_idNēKopsavilkuma customer_id, izmantots vecākiem vēstures ierakstiem
start_timestamp_msIeteicamsKopsavilkuma precīzs sākuma laikspiedols milisekundēs

Python piemērs

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

Atbildes paraugs

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

Laika līnija var saturēt klientu jautājumus, AI atbildes, meklēšanas rezultātus, produktu klikšķus, pievienošanas grozam notikumus, norēķināšanās notikumus un cilvēka aģenta iesaisti. Izmantojiet server_timestamp_ms, lai sakārtotu dažādu tipu notikumus. Vecāki ieraksti var saturēt mazāk lauku.

Biznesa lietojuma gadījumi

  • Auditējiet, ko tieši klients jautāja un ko Shoply atbildēja atbalsta izmeklēšanas laikā.
  • Pārskatiet atbilžu kvalitāti kopā ar meklēšanas rezultātiem un produktiem, kas tika rādīti pircējam.
  • Rekonstruējiet ceļu no jautājuma līdz klikšķim, pievienošanai grozam vai norēķināšanai.
  • Diagnosticējiet vienu klienta ziņotu sesiju, nepārlūkojot nesaistītu vēsturi.

Vai es varu izmantot vienu slepeno atslēgu visiem API?

Jā. Derīga store_owner_api_secrete ir piesaistīta vienam veikalam un darbojas visos iepriekš minētajos Merchant API galapunktos. SiteChat kontiem tā pati slepenā atslēga autentificē arī kataloga augšupielādes API. Drošākai darbībai izmantojiet atsevišķas nosauktas slepenās atslēgas atsevišķām sistēmām — piemēram, vienu nakts datu eksportam un citu iekšējam panelim.

Ja kāda integrācija tiek pārtraukta vai kompromitēta, atsauciet tikai tās slepeno atslēgu Shoply iestatījumos. Pārējās integrācijas turpinās darboties.

Kas man būtu jāzina par derīguma termiņu, privātumu un kļūdām?

Pārskatiet arī Shoply datu avotus un privātumu, lai saprastu, kāda informācija ir pieejama klientu atbildēm.

  • Veikala īpašnieka API slepenās atslēgas beidzas pēc 90 dienām. Izveidojiet aizstājēju un atjauniniet integrāciju pirms tās derīguma termiņa beigām.
  • Shoply standarta čata un meklēšanas vēstures glabāšanas periods arī ir 90 dienas. Slepenās atslēgas derīguma termiņš un datu glabāšana ir atsevišķas politikas.
  • Vēstures atbildes var saturēt personas datus, tostarp klientu identifikatorus, e-pasta adreses, aptuvenu atrašanās vietu, jautājumus un iepirkšanās aktivitāti. Glabājiet un apstrādājiet tos saskaņā ar savu privātuma politiku un piemērojamo likumu.
  • HTTP 403 nozīmē, ka slepenā atslēga trūkst, ir nederīga, tās derīguma termiņš ir beidzies, tā ir atsaukta vai tā pieder citam veikalam.
  • HTTP 422 parasti nozīmē, ka trūkst obligāta vaicājuma parametra vai tam ir nepareizs nosaukums.
  • HTTP 500 vai atbilde ar statusCode: 500 nozīmē, ka pieprasījums sasniedza Shoply, bet to nevarēja pabeigt. Pagaidu kļūmju gadījumā mēģiniet vēlreiz ar backoff un sazinieties ar mums, ja kļūda turpinās.
  • Eksportiem un periodiskiem uzdevumiem izmantojiet ierobežotus UTC diapazonus, lai atbildes paliktu pārvaldāmas.

Vai produktu meklēšana ir daļa no Merchant API?

Shoply publiskajam produktu meklēšanas API ir atšķirīgs autentifikācijas un pieprasījuma līgums. Skatiet Kā piekļūt Shoply AI Search caur API, ja vēlaties produktu meklēšanas rezultātus pircējiem paredzētai pieredzei, nevis privātus tirgotāja datus.

Vai SiteChat tirgotāji var augšupielādēt produktu katalogu?

Jā. SiteChat konti var augšupielādēt strukturētus produktus un produktu attēlus ar to pašu veikala īpašnieka API slepeno atslēgu. Šie kataloga galapunkti ir dokumentēti atsevišķi rakstā How to Upload Your Catalog for SiteChat. Shopify veikali turpina sinhronizēt produktus caur Shopify un neizmanto šos augšupielādes maršrutus.

Lai saņemtu palīdzību ar integrāciju, sazinieties ar Shoply AI.