Så använder du Shoply Merchant API
Shoply Merchant API gör det möjligt för en handlare att säkert använda sin egen Shoply-data i rapportverktyg, supportarbetsflöden, schemalagda exporter och privata affärsapplikationer.
Varje integration autentiseras med en återkallelig, butiksavgränsad autentiseringsuppgift som skapas i Shoply Settings. Du behöver inte dela en Shopify Admin API-åtkomsttoken, och en integration kan endast komma åt den butik som utfärdade dess autentiseringsuppgift.
Vad kan jag göra med Merchant API?
Du kan använda Merchant API för att:
- Exportera dagliga, veckovisa eller månatliga resultat till ett kalkylblad eller datalager.
- Bygga en privat dashboard för sessioner, chattar, sökningar, produktklick, lägg-till-i-kundvagn-händelser, köp och attribuerad intäkt.
- Övervaka kundaktivitet och upptäcka ovanliga förändringar i engagemang.
- Granska chatt- och söksessioner för support, merchandising och arbete med svarskvalitet.
- Hämta en individuell konversationstidslinje när du undersöker ett kundärende.
- Skapa, uppdatera, lista och ta bort den anpassade kunskap som används av Shoply AI.
- Lägga till en extern webbsida eller en uppladdad PDF-, text- eller Markdown-fil i kunskapsbasen.
- Anpassa UTC-händelsedata till butikens lokala tidszon.
Den här guiden dokumenterar sju endpoints. Fem är samma endpoints som används av Shoply Admin → Analytics, medan två hanterar kunskapsbasen:
| API | Kategori | Vad det returnerar |
|---|---|---|
admin_store_analytics | Prestanda | Dagliga, veckovisa eller månatliga prestandarader och totalsummor |
query_api_usage_count | Engagemang | Aktivitetsantal grupperade per UTC-minut eller dag |
query_sessionized_chat | Konversationer | Sammanfattningar av chatt- och söksessioner |
query_log_visualization | Konversationer | Den fullständiga händelsetidslinjen för en vald session |
admin_get_store_metadata | Butikskonfiguration | Butikens tidszon som används för att visa UTC-data korrekt |
admin_store_knowledge | Kunskap | Anpassad text, externa sidor, uppladdade filer, borttagning och omgenomsökning |
user_generated_file | Kunskapsfiler | Laddar upp en PDF-, text- eller Markdown-fil innan den registreras som kunskap |
Svarskropparna nedan är representativa exempel. Dina fält och värden kommer att återspegla den aktivitet som har registrerats för din butik.
Krav för driftsättning: Autentisering med hemlighet för butiksägare måste vara driftsatt på den API-server du anropar. Om en giltig hemlighet returnerar HTTP
403medNo access_token found, kör den servern fortfarande den äldre autentiseringskoden som endast använder access token.
Hur skapar jag en API-hemlighet?
- Öppna din Shoply AI-admin.
- Gå till Settings → Store owner API secret.
- Skapa en hemlighet och ge den ett namn som identifierar integrationen, till exempel
Weekly reporting export. - Kopiera hemligheten när den visas. Shoply visar klartextvärdet endast en gång.
Varje hemlighet är giltig i 90 dagar. En butik kan ha separata hemligheter för separata integrationer, och du kan återkalla en hemlighet utan att avbryta de andra.
Spara dessa värden som miljövariabler på serversidan:
export SHOPLY_STORE_KEY="your-store.myshopify.com"
export SHOPLY_STORE_OWNER_API_SECRETE="shoply_owner_key_example123.secret-value"Använd butikens permanenta myshopify.com-domän för SHOPLY_STORE_KEY, även om kunder normalt besöker en anpassad domän.

Hur fungerar autentisering?
Varje Merchant API-begäran skickar en Authorization-header vars värde är en JSON-sträng:
{
"store_key": "your-store.myshopify.com",
"store_owner_api_secrete": "YOUR_STORE_OWNER_API_SECRET"
}store_owner_api_secrete är det exakta publika fältnamnet, inklusive dess historiska stavning. Detta är inte en Bearer-token. Lägg den fullständiga JSON-strängen direkt i Authorization-headern.
Behåll hemligheten endast i backend-kod. Lägg den inte i en URL, browser bundle, publik repository, analys-händelse eller applikationslogg.
Finns det officiella Python- och Node.js-paket?
Ja. Shoply publicerar två paket för serversidan som automatiskt lägger till den nödvändiga autentiseringen och exponerar Merchant API som typade funktioner. Båda paketen är öppen källkod under GitHub-organisationen shoplyai-public.
Python-paket
Paketet shoply-merchant-api stöder Python 3.12 och använder svarsmodeller från Pydantic v2. Installera den låsta versionen 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"Hämta de senaste chatt- och söksessionerna som typade SessionSummary-modeller:
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)Paketet tillhandahåller också funktioner för analys, aktivitetsantal, fullständiga sessionstidslinjer, butikens tidszon och kunskapshantering. Se dess guide för affärsanvändningsfall och API-referens .
Node.js- och TypeScript-paket
Repositoryn shoply-merchant-api-js tillhandahåller paketet @shoplyai/merchant-api för Node.js 20 eller senare. Det är ett ESM-paket med inbyggda TypeScript-deklarationer och inga runtime-beroenden. Installera den låsta versionen 2.1.3 direkt från GitHub:
npm install "github:shoplyai-public/shoply-merchant-api-js#v2.1.3"Hämta samma senaste sessioner från en Node.js-server:
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-paketet täcker samma Merchant API-endpoints som Python-paketet. Se dess guide för affärsanvändningsfall och API-referens .
Båda paketen är för betrodda backend-tjänster, schemalagda jobb och privata interna verktyg. Importera inte något av paketen i storefront-kod och exponera inte API-hemligheten i en browser bundle.
Kan jag anropa HTTP-API:t utan ett paket?
Ja. Merchant API förblir ett standardiserat HTTPS-API. Python-exemplen på låg nivå nedan använder Requests så att du kan se det fullständiga wire contract eller integrera från ett annat språk.
Installera Requests om din miljö inte redan innehåller det:
python -m pip install requestsHjälpfunktionen nedan lägger till butiksnyckeln och autentiseringsheadern i varje begäran:
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 resultExemplen nedan använder denna delade klient. Båda hjälpfunktionerna lägger automatiskt till den autentiserade butiksnyckeln.
Kan jag hantera Shoply AI-kunskap via API:t?
Ja. admin_store_knowledge använder GET för att hämta kunskap och POST för att skapa, uppdatera, ta bort eller genomsöka om den. En POST som använder ett befintligt kunskaps-ID uppdaterar den posten; att använda ett nytt ID skapar en ny.
Innan du automatiserar uppdateringar, planera användbar butikskunskap med exemplen i vår träningsguide.
Skrivningar till kunskap kan ändra svar som visas för kunder. Använd en dedikerad hemlighet för systemet som hanterar kunskap, validera innehållet innan du skickar det och exponera aldrig denna skrivbehöriga autentiseringsuppgift i storefront-JavaScript.
Lista befintlig kunskap
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"))Exempelsvar
{
"data": {
"knowledge::shipping-policy": {
"title": "Shipping policy",
"text": "Orders leave our warehouse within two business days.",
"epoch_edit": 1787211246
}
}
}Skapa eller uppdatera anpassad textkunskap
Välj ett stabilt, unikt kunskaps-ID. Återanvänd samma ID när du uppdaterar posten.
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)Exempelsvar
{
"statusCode": 200
}Ett lyckat svar betyder att kunskapen har sparats. Sökindeksering kan ta några minuter, så ett nytt svar kanske inte visas omedelbart. Om API:t rapporterar att innehållet har sparats men att indexeringen är fördröjd, bekräfta den sparade posten med GET innan du försöker skriva igen.
Lägg till en extern webbsida
Använd ett ID som börjar med external_url::. Lägg den fullständiga http://- eller https://-URL:en i 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()),
}
},
)Ladda upp och registrera en kunskapsfil
Kunskapsfiler måste vara PDF, TXT eller Markdown och mindre än 5 MB. Ladda först upp filen och spara sedan den returnerade privata S3-platsen som en kunskapspost.
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()),
}
},
)Exempelsvar för uppladdning
{
"message": "File uploaded successfully",
"statusCode": 200,
"file_url": "s3://shoplystores/your-store.myshopify.com/uploads/shipping-policy.md"
}Behandla file_url som en opaque privat plats som returneras av Shoply. Konstruera eller ändra den inte själv.
Ta bort kunskap
Borttagning är permanent. Hämta först de aktuella posterna och skicka endast de exakta ID:n som du avser att ta bort.
result = shoply_post(
"admin_store_knowledge",
{
"knowledge_ids_to_delete": [
"knowledge::shipping-policy",
"external_url::returns-policy",
"knowledge_file::shipping-policy",
]
},
)Begär en omgenomsökning av webbplatsen
Använd en omgenomsökning efter att innehållet på handlarens webbplats har ändrats. Det är normalt inte nödvändigt efter varje uppdatering av anpassad text.
result = shoply_post(
"admin_store_knowledge",
re_crawl_ind="true",
)Affärsanvändningsfall
- Synkronisera vägledning om frakt, returer, garanti, storlekar eller produktvård från ett internt innehållssystem.
- Publicera tillfällig kampanj- eller helginformation utan att manuellt kopiera in den i Shoply Admin.
- Lägg till en policywebbsida eller ett godkänt dokument i kunskapsbasen som en del av ett driftsättningsarbetsflöde.
- Ta bort föråldrad vägledning så snart en policy eller kampanj upphör.
Exempel på Merchant API
1. Hämta prestandaanalys
admin_store_analytics driver tabellen Analytics → Summary. Den returnerar sessioner, chattar, sökningar, klick, lägg-till-i-kundvagn-händelser, köp och attribuerad intäkt.
Endpoint
GET https://api.shoplyai.ai/admin_store_analyticsQuery-parametrar
| Parameter | Krävs | Beskrivning |
|---|---|---|
store_key | Ja | Läggs till av den delade klienten |
report_type | Ja | daily, weekly eller monthly |
start_date | Daglig/veckovis | Inkluderande UTC-datum formaterat som YYYYMMDD |
end_date | Daglig/veckovis | Inkluderande UTC-datum formaterat som YYYYMMDD |
Månatliga rapporter använder Shoplys lagrade månadshistorik och kräver inte datumgränser.
Python-exempel
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")Exempelsvar
{
"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"
}Intäkt kan innehålla mer än en valuta. Behandla revenue som visningstext. Använd revenue_usd när du behöver det normaliserade USD-värdet som visas av Shoply.
Affärsanvändningsfall
- Skicka en daglig sammanfattning av försäljningspåverkan till handlaren eller e-handelsteamet.
- Jämför sökningar, produktklick, lägg-till-i-kundvagn-händelser och köp för att hitta tapp i tratten.
- Mata en veckovis eller månatlig business-intelligence-dashboard utan att skrapa Shoply Admin-sidan.
- Följ attribuerad intäkt över tid och jämför den med förändringar i merchandising eller kampanjer.
2. Hämta butikens tidszon
admin_get_store_metadata levererar tidszonsbadgen som visas i Analytics → Chat & Search History. Sidan använder den för att översätta UTC-aktivitet till butikens lokala tid.
Endpoint
GET https://api.shoplyai.ai/admin_get_store_metadataQuery-parametrar
| Parameter | Krävs | Beskrivning |
|---|---|---|
store_key | Ja | Läggs till av den delade klienten |
metadata_key | Ja | Använd det bokstavliga värdet time_zone |
Python-exempel
timezone_payload = shoply_get(
"admin_get_store_metadata",
metadata_key="time_zone",
)
timezone = timezone_payload["data"]
print(timezone["ianaTimezone"], timezone["timezoneOffsetMinutes"])Exempelsvar
{
"data": {
"ianaTimezone": "America/Los_Angeles",
"timezoneOffset": -7,
"timezoneOffsetMinutes": -420
},
"statusCode": 200
}Affärsanvändningsfall
- Gruppera UTC-aktivitet i samma lokala kalenderdagar som handlaren ser i Analytics.
- Schemalägg dagliga exporter efter att butikens lokala dag har avslutats.
- Märk rapporter med en entydig IANA-tidszon som
America/Los_Angeles.
Tidszonsförskjutningar kan ändras på grund av regler för sommartid. Föredra ianaTimezone när ditt rapportsystem stöder det i stället för att permanent spara en numerisk förskjutning.
3. Hämta aktivitetsantal
query_api_usage_count returnerar butiksaktivitet grupperad per UTC-datum eller ursprunglig UTC-minut. Det är också källan för aktivitetsdiagrammet i Analytics → Chat & Search History.
Endpoint
GET https://api.shoplyai.ai/query_api_usage_countQuery-parametrar
| Parameter | Krävs | Beskrivning |
|---|---|---|
start_dt_utc | Ja | UTC-starttid som YYYY-MM-DD HH:mm:ss |
end_dt_utc | Ja | UTC-sluttid som YYYY-MM-DD HH:mm:ss |
groupby | Nej | utc_date för dagliga summor eller utc_date_time för minutrader |
Python-exempel
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)Exempelsvar
{
"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
}
]
}Rader inkluderar de aktivitetsräknare som är tillgängliga för perioden, till exempel chattfrågor, sökningar, klick, lägg-till-i-kundvagn-händelser och checkout-händelser. Räknare utan aktivitet kan saknas i stället för att sättas till noll.
Affärsanvändningsfall
- Bygg ett tim- eller dagsdiagram över aktivitet som det i Chat & Search History.
- Upptäck ovanliga trafiktoppar eller plötsliga fall i kundengagemang.
- Jämför volymen av produktsökningar med klick, lägg-till-i-kundvagn-händelser och checkouts.
- Uppskatta när support- och merchandisingteam bör granska de mest intensiva perioderna.
4. Hämta sammanfattningar av chatt- och söksessioner
query_sessionized_chat returnerar en kompakt post per kundsession. Den driver också sessionslistan i Analytics → Chat & Search History.
Endpoint
GET https://api.shoplyai.ai/query_sessionized_chatQuery-parametrar
| Parameter | Krävs | Beskrivning |
|---|---|---|
start_dt_utc | Ja | UTC-starttid, eller det bokstavliga värdet undefined |
end_dt_utc | Ja | UTC-sluttid, eller det bokstavliga värdet undefined |
num_sessions | Nej | Antal sessioner att välja när någon av gränserna är undefined |
ScanIndexForward | Nej | Använd false för att välja de senaste sessionerna först |
Hämta de senaste 40 sessionerna
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", ""))Hämta sessioner inom ett UTC-intervall
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",
)När båda tidsgränserna finns returnerar API:t sessioner i hela intervallet; num_sessions begränsar inte den avgränsade frågan.
Exempelsvar
{
"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
}
]
}Valfria fält varierar mellan sessioner. Behåll customer_id, start_timestamp_ms och end_timestamp_ms om du planerar att hämta den fullständiga tidslinjen.
Affärsanvändningsfall
- Granska ett urval av senaste konversationer för svarskvalitet och supportutbildning.
- Hitta återkommande kundfrågor som bör påverka produkttexter eller FAQ:er.
- Identifiera sessioner med hög intention som innehåller sökningar, produktklick eller andra shoppingåtgärder.
- Exportera en rad per session för trendanalys samtidigt som du undviker den större nyttolasten på händelsenivå.
5. Hämta en fullständig session
Skicka en vald sammanfattning till query_log_visualization för att hämta dess kund-, AI-, sök- och commerce-händelser.
Endpoint
GET https://api.shoplyai.ai/query_log_visualizationQuery-parametrar
| Parameter | Krävs | Beskrivning |
|---|---|---|
date_time_utc_start | Ja | Sessionsstart formaterad som UTC YYYY-MM-DD HH:mm:ss |
date_time_utc_end | Ja | Sessionsslut formaterad som UTC YYYY-MM-DD HH:mm:ss |
session_id | Nej | Sammanfattningens customer_id, används för äldre historikposter |
start_timestamp_ms | Rekommenderas | Sammanfattningens exakta starttidsstämpel i millisekunder |
Python-exempel
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"))Exempelsvar
{
"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": {}
}
]
}Tidslinjen kan innehålla kundfrågor, AI-svar, sökresultat, produktklick, lägg-till-i-kundvagn-händelser, checkout-händelser och deltagande från mänsklig agent. Använd server_timestamp_ms för att ordna blandade händelsetyper. Äldre poster kan innehålla färre fält.
Affärsanvändningsfall
- Granska exakt vad en kund frågade och vad Shoply svarade under en supportutredning.
- Granska svarskvalitet tillsammans med sökresultaten och produkterna som visades för kunden.
- Återskapa resan från fråga till klick, lägg-till-i-kundvagn eller checkout.
- Diagnostisera en session som rapporterats av en kund utan att söka igenom orelaterad historik.
Kan jag använda en hemlighet för varje API?
Ja. En giltig store_owner_api_secrete är avgränsad till en butik och fungerar för Merchant API-endpointsen ovan. För SiteChat-konton autentiserar samma hemlighet även API:erna för kataloguppladdning. För säkrare drift bör du använda separata namngivna hemligheter för separata system — till exempel en för nattlig dataexport och en annan för en intern dashboard.
Om en integration tas ur bruk eller komprometteras, återkalla endast dess hemlighet i Shoply Settings. De andra integrationerna kommer att fortsätta fungera.
Vad bör jag veta om utgångstid, integritet och fel?
Granska också Shoplys datakällor och integritet för att förstå vilken information som är tillgänglig för kundsvar.
- API-hemligheter för butiksägare löper ut efter 90 dagar. Skapa en ersättning och uppdatera integrationen före dess utgångsdatum.
- Shoplys standardperiod för lagring av chatt- och sökhistorik är också 90 dagar. Hemlighetens utgångstid och datalagring är separata policyer.
- Historiksvar kan innehålla personuppgifter, inklusive kundidentifierare, e-postadresser, ungefärlig plats, frågor och shoppingaktivitet. Lagra och behandla dem enligt din integritetspolicy och tillämplig lag.
- HTTP
403betyder att hemligheten saknas, är ogiltig, har gått ut, har återkallats eller tillhör en annan butik. - HTTP
422betyder vanligtvis att en obligatorisk query-parameter saknas eller har fel namn. - HTTP
500eller ett svar medstatusCode: 500betyder att begäran nådde Shoply men inte kunde slutföras. Försök igen vid tillfälliga fel med backoff och kontakta oss om felet kvarstår. - Använd avgränsade UTC-intervall för exporter och återkommande jobb så att svaren förblir hanterbara.
Är produktsökning en del av Merchant API?
Shoplys publika API för produktsökning har en annan autentisering och ett annat request contract. Se Så får du åtkomst till Shoply AI Search via API om du vill ha produktsökresultat för en kundvänd upplevelse snarare än privat handlarinformation.
Kan SiteChat-handlare ladda upp en produktkatalog?
Ja. SiteChat-konton kan ladda upp strukturerade produkter och produktbilder med samma API-hemlighet för butiksägare. Dessa katalog-endpoints dokumenteras separat i Så laddar du upp din katalog för SiteChat. Shopify-butiker fortsätter att synkronisera produkter via Shopify och använder inte dessa uppladdningsvägar.
För hjälp med en integration, kontakta Shoply AI.
