Slik bruker du Shoply Merchant API

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

Shoply Merchant API lar en forhandler trygt bruke sine egne Shoply-data i rapporteringsverktøy, støttearbeidsflyter, planlagte eksporter og private forretningsapplikasjoner.

Hver integrasjon autentiserer med en tilbakekallbar legitimasjon avgrenset til butikken, opprettet i Shoply Settings. Du trenger ikke å dele et Shopify Admin API-tilgangstoken, og en integrasjon kan bare få tilgang til butikken som utstedte legitimasjonen.

Hva kan jeg gjøre med Merchant API?

Du kan bruke Merchant API til å:

  • Eksportere daglige, ukentlige eller månedlige resultatdata til et regneark eller datavarehus.
  • Bygge et privat dashbord for økter, chatter, søk, produktklikk, legg-i-handlekurv-hendelser, kjøp og tilskrevet omsetning.
  • Overvåke kundeaktivitet og oppdage uvanlige endringer i engasjement.
  • Gjennomgå chat- og søkeøkter for support, merchandising og arbeid med svarkvalitet.
  • Hente en individuell samtaletidslinje når du undersøker et kundeproblem.
  • Opprette, oppdatere, liste opp og slette den egendefinerte kunnskapen som brukes av Shoply AI.
  • Legge til en ekstern nettside eller en opplastet PDF-, tekst- eller Markdown-fil i kunnskapsbasen.
  • Samkjøre UTC-hendelsesdata med butikkens lokale tidssone.

Denne veiledningen dokumenterer sju endepunkter. Fem er de samme endepunktene som brukes av Shoply Admin → Analytics, mens to administrerer kunnskapsbasen:

APIKategoriHva det returnerer
admin_store_analyticsYtelseDaglige, ukentlige eller månedlige ytelsesrader og totaler
query_api_usage_countEngasjementAktivitetsantall gruppert etter UTC-minutt eller dag
query_sessionized_chatSamtalerSammendrag av chat- og søkeøkter
query_log_visualizationSamtalerDen komplette hendelsestidslinjen for én valgt økt
admin_get_store_metadataButikkonfigurasjonButikkens tidssone som brukes for å vise UTC-data korrekt
admin_store_knowledgeKunnskapEgendefinert tekst, eksterne sider, opplastede filer, sletting og ny crawling
user_generated_fileKunnskapsfilerLaster opp en PDF-, tekst- eller Markdown-fil før den registreres som kunnskap

Svarinnholdet nedenfor er representative eksempler. Dine felter og verdier vil gjenspeile aktiviteten som er registrert for butikken din.

Krav til utrulling: Autentisering med butikk-eier-hemmelighet må være distribuert på API-serveren du kaller. Hvis en gyldig hemmelighet returnerer HTTP 403 med No access_token found, kjører den serveren fortsatt den eldre autentiseringskoden som kun støtter access token.

Hvordan oppretter jeg en API-hemmelighet?

  1. Åpne Shoply AI-admin.
  2. Gå til Settings → Store owner API secret.
  3. Opprett en hemmelighet og gi den et navn som identifiserer integrasjonen, for eksempel Weekly reporting export.
  4. Kopier hemmeligheten når den vises. Shoply viser klartekstverdien bare én gang.
Shoply Settings showing the Store owner API secret panel, Create API secret button, expiry date, and revoke control

Hver hemmelighet er gyldig i 90 dager. En butikk kan ha separate hemmeligheter for separate integrasjoner, og du kan tilbakekalle én hemmelighet uten å avbryte de andre.

Lagre disse verdiene som server-side miljøvariabler:

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

Bruk butikkens permanente myshopify.com-domene for SHOPLY_STORE_KEY, selv om kunder vanligvis besøker et egendefinert domene.

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.

Hvordan fungerer autentisering?

Hver Merchant API-forespørsel sender en Authorization-header der verdien er en JSON-streng:

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

store_owner_api_secrete er det nøyaktige offentlige feltnavnet, inkludert den historiske skrivemåten. Dette er ikke et Bearer-token. Legg hele JSON-strengen direkte i Authorization-headeren.

Oppbevar hemmeligheten kun i backend-kode. Ikke legg den i en URL, en nettleserbundle, et offentlig repository, en analyshendelse eller en applikasjonslogg.

Finnes det offisielle Python- og Node.js-pakker?

Ja. Shoply publiserer to server-side pakker som automatisk legger til nødvendig autentisering og eksponerer Merchant API som typede funksjoner. Begge pakkene er åpen kildekode under GitHub-organisasjonen shoplyai-public.

Python-pakke

Pakken shoply-merchant-api støtter Python 3.12 og bruker Pydantic v2-svarmodeller. Installer den låste 2.1.3-utgivelsen:

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"

Hent de nyeste chat- og søkeøktene som typede SessionSummary-modeller:

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)

Pakken tilbyr også funksjoner for analyse, aktivitetsantall, komplette økttidslinjer, butikkens tidssone og kunnskapsadministrasjon. Se veiledningen for forretningsbrukstilfeller  og API-referansen .

Node.js- og TypeScript-pakke

Repoet shoply-merchant-api-js tilbyr pakken @shoplyai/merchant-api for Node.js 20 eller nyere. Det er en ESM-pakke med innebygde TypeScript-deklarasjoner og ingen kjøretidsavhengigheter. Installer den låste 2.1.3-utgivelsen direkte fra GitHub:

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

Hent de samme nyeste øktene fra en Node.js-server:

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-pakken dekker de samme Merchant API-endepunktene som Python-pakken. Se veiledningen for forretningsbrukstilfeller  og API-referansen .

Begge pakkene er for pålitelige backend-tjenester, planlagte jobber og private interne verktøy. Ikke importer noen av pakkene i butikkfrontkode og ikke eksponer API-hemmeligheten i en nettleserbundle.

Kan jeg kalle HTTP API uten en pakke?

Ja. Merchant API forblir et standard HTTPS API. Python-eksemplene på lavt nivå nedenfor bruker Requests slik at du kan se hele wire-kontrakten eller integrere fra et annet språk.

Installer Requests hvis miljøet ditt ikke allerede inkluderer det:

bash
python -m pip install requests

Hjelpefunksjonen nedenfor legger til store key og autentiseringsheader i hver forespørsel:

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

Eksemplene nedenfor bruker denne delte klienten. Begge hjelpefunksjonene legger automatisk til den autentiserte store key.

Kan jeg administrere Shoply AI-kunnskap gjennom API-et?

Ja. admin_store_knowledge bruker GET for å hente kunnskap og POST for å opprette, oppdatere, slette eller kjøre ny crawling. En POST som bruker en eksisterende kunnskaps-ID oppdaterer den oppføringen; bruk av en ny ID oppretter en ny.

Før du automatiserer oppdateringer, planlegg nyttig butikkunnskap med eksemplene i opplæringsveiledningen vår.

Skriving til kunnskap kan endre svar som vises til kunder. Bruk en dedikert hemmelighet for systemet som administrerer kunnskap, valider innhold før du sender det, og eksponer aldri denne skrivbare legitimasjonen i butikkfrontens JavaScript.

List opp eksisterende kunnskap

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

Eksempelsvar

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

Opprett eller oppdater egendefinert tekstkunnskap

Velg en stabil, unik kunnskaps-ID. Gjenbruk samme ID når du oppdaterer den oppføringen.

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)

Eksempelsvar

json
{ "statusCode": 200 }

Et vellykket svar betyr at kunnskapen ble lagret. Søkeindeksering kan ta noen minutter, så et nytt svar vises kanskje ikke umiddelbart. Hvis API-et rapporterer at innholdet ble lagret, men indekseringen er forsinket, bekreft den lagrede oppføringen med GET før du prøver å skrive på nytt.

Legg til en ekstern nettside

Bruk en ID som begynner med external_url::. Legg hele http://- eller https://-URL-en i 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()), } }, )

Last opp og registrer en kunnskapsfil

Kunnskapsfiler må være PDF, TXT eller Markdown og mindre enn 5 MB. Last først opp filen, og lagre deretter den returnerte private S3-plasseringen som en kunnskapsoppføring.

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

Eksempelsvar for opplasting

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

Behandle file_url som en ugjennomsiktig privat plassering returnert av Shoply. Ikke konstruer eller endre den selv.

Slett kunnskap

Sletting er permanent. Hent først de nåværende oppføringene og send kun de eksakte ID-ene du har til hensikt å fjerne.

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

Be om ny crawling av nettstedet

Bruk ny crawling etter at innholdet på forhandlerens nettsted har endret seg. Det er vanligvis ikke nødvendig etter hver oppdatering av egendefinert tekst.

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

Forretningsbrukstilfeller

  • Synkroniser veiledning om frakt, returer, garanti, størrelser eller produktpleie fra et internt innholdssystem.
  • Publiser midlertidig kampanje- eller høytidsinformasjon uten å kopiere den manuelt inn i Shoply Admin.
  • Legg til en policy-nettside eller et godkjent dokument i kunnskapsbasen som en del av en utrullingsarbeidsflyt.
  • Fjern foreldet veiledning så snart en policy eller kampanje avsluttes.

Merchant API-eksempler

1. Hent ytelsesanalyse

admin_store_analytics driver tabellen Analytics → Summary. Den returnerer økter, chatter, søk, klikk, legg-i-handlekurv-hendelser, kjøp og tilskrevet omsetning.

Endepunkt

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

Query-parametere

ParameterPåkrevdBeskrivelse
store_keyJaLagt til av den delte klienten
report_typeJadaily, weekly eller monthly
start_dateDaglig/ukentligInkluderende UTC-dato formatert som YYYYMMDD
end_dateDaglig/ukentligInkluderende UTC-dato formatert som YYYYMMDD

Månedlige rapporter bruker Shoplys lagrede månedshistorikk og krever ikke datogrenser.

Python-eksempel

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

Eksempelsvar

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

Omsetning kan inneholde mer enn én valuta. Behandle revenue som visningstekst. Bruk revenue_usd når du trenger den normaliserte USD-verdien som vises av Shoply.

Forretningsbrukstilfeller

  • Send et daglig sammendrag av salgspåvirkning til forhandleren eller e-handelsteamet.
  • Sammenlign søk, produktklikk, legg-i-handlekurv-hendelser og kjøp for å finne frafall i trakten.
  • Mat inn et ukentlig eller månedlig business-intelligence-dashbord uten å skrape Shoply Admin-siden.
  • Spor tilskrevet omsetning over tid og sammenlign den med endringer i merchandising eller kampanjer.

2. Hent butikkens tidssone

admin_get_store_metadata leverer tidssone-merket som vises i Analytics → Chat & Search History. Siden bruker det til å oversette UTC-aktivitet til butikkens lokale tid.

Endepunkt

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

Query-parametere

ParameterPåkrevdBeskrivelse
store_keyJaLagt til av den delte klienten
metadata_keyJaBruk den bokstavelige verdien time_zone

Python-eksempel

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

Eksempelsvar

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

Forretningsbrukstilfeller

  • Grupper UTC-aktivitet i de samme lokale kalenderdagene som forhandleren ser i Analytics.
  • Planlegg daglige eksporter etter at butikkens lokale dag er avsluttet.
  • Merk rapporter med en entydig IANA-tidssone som America/Los_Angeles.

Tidssoneforskyvninger kan endre seg på grunn av sommertidregler. Foretrekk ianaTimezone når rapportsystemet ditt støtter det, i stedet for å lagre ett numerisk avvik permanent.

3. Hent aktivitetsantall

query_api_usage_count returnerer butikkaktivitet gruppert etter UTC-dato eller det opprinnelige UTC-minuttet. Det er også kilden til aktivitetsdiagrammet i Analytics → Chat & Search History.

Endepunkt

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

Query-parametere

ParameterPåkrevdBeskrivelse
start_dt_utcJaUTC-starttid som YYYY-MM-DD HH:mm:ss
end_dt_utcJaUTC-sluttid som YYYY-MM-DD HH:mm:ss
groupbyNeiutc_date for daglige totaler eller utc_date_time for minuttrader

Python-eksempel

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)

Eksempelsvar

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

Rader inkluderer aktivitetstellerne som er tilgjengelige for den perioden, som chatspørsmål, søk, klikk, legg-i-handlekurv-hendelser og checkout-hendelser. Tellere uten aktivitet kan mangle i stedet for å være satt til null.

Forretningsbrukstilfeller

  • Bygg et timebasert eller daglig aktivitetsdiagram som det i Chat & Search History.
  • Oppdag uvanlige trafikkspiker eller plutselige fall i kundeengasjement.
  • Sammenlign produktsøkevolum med klikk, legg-i-handlekurv-hendelser og checkouter.
  • Estimer når support- og merchandising-team bør gjennomgå de travleste periodene.

4. Hent sammendrag av chat- og søkeøkter

query_sessionized_chat returnerer én kompakt post per kundeøkt. Den driver også øktlisten i Analytics → Chat & Search History.

Endepunkt

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

Query-parametere

ParameterPåkrevdBeskrivelse
start_dt_utcJaUTC-starttid, eller den bokstavelige verdien undefined
end_dt_utcJaUTC-sluttid, eller den bokstavelige verdien undefined
num_sessionsNeiAntall økter som skal velges når en av grensene er undefined
ScanIndexForwardNeiBruk false for å velge de nyeste øktene først

Hent de siste 40 øktene

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

Hent økter i et UTC-intervall

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

Når begge tidsgrensene er til stede, returnerer API-et økter i hele intervallet; num_sessions begrenser ikke den avgrensede spørringen.

Eksempelsvar

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

Valgfrie felter varierer etter økt. Behold customer_id, start_timestamp_ms og end_timestamp_ms hvis du planlegger å hente den komplette tidslinjen.

Forretningsbrukstilfeller

  • Gjennomgå et utvalg av nylige samtaler for svarkvalitet og supportopplæring.
  • Finn gjentatte kundespørsmål som bør påvirke produkttekster eller FAQ-er.
  • Identifiser økter med høy intensjon som inneholder søk, produktklikk eller andre handlehandlinger.
  • Eksporter én rad per økt for trendanalyse, samtidig som du unngår den større nyttelasten på hendelsesnivå.

5. Hent én komplett økt

Send et valgt sammendrag til query_log_visualization for å hente kunde-, AI-, søke- og handelshendelsene.

Endepunkt

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

Query-parametere

ParameterPåkrevdBeskrivelse
date_time_utc_startJaØktstart formatert som UTC YYYY-MM-DD HH:mm:ss
date_time_utc_endJaØktslutt formatert som UTC YYYY-MM-DD HH:mm:ss
session_idNeiSammendragets customer_id, brukt for eldre historikkposter
start_timestamp_msAnbefaltSammendragets eksakte starttidsstempel i millisekunder

Python-eksempel

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

Eksempelsvar

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

Tidslinjen kan inneholde kundespørsmål, AI-svar, søkeresultater, produktklikk, legg-i-handlekurv-hendelser, checkout-hendelser og deltakelse fra menneskelige agenter. Bruk server_timestamp_ms til å sortere blandede hendelsestyper. Eldre poster kan inneholde færre felter.

Forretningsbrukstilfeller

  • Revider nøyaktig hva en kunde spurte om og hva Shoply svarte under en supportundersøkelse.
  • Gjennomgå svarkvalitet sammen med søkeresultatene og produktene som ble vist til kunden.
  • Rekonstruer reisen fra spørsmål til klikk, legg-i-handlekurv eller checkout.
  • Diagnostiser én økt rapportert av en kunde uten å søke gjennom urelatert historikk.

Kan jeg bruke én hemmelighet for hvert API?

Ja. En gyldig store_owner_api_secrete er avgrenset til én butikk og fungerer på tvers av Merchant API-endepunktene ovenfor. For SiteChat-kontoer autentiserer den samme hemmeligheten også API-ene for katalogopplasting. For tryggere drift bør du bruke separate navngitte hemmeligheter for separate systemer—for eksempel én for en nattlig dataeksport og en annen for et internt dashbord.

Hvis én integrasjon fases ut eller kompromitteres, tilbakekall kun dens hemmelighet i Shoply Settings. De andre integrasjonene vil fortsette å fungere.

Hva bør jeg vite om utløp, personvern og feil?

Du bør også gå gjennom Shoply-datakilder og personvern for å forstå hvilken informasjon som er tilgjengelig for kundesvar.

  • API-hemmeligheter for butikkeiere utløper etter 90 dager. Opprett en erstatning og oppdater integrasjonen før utløpsdatoen.
  • Shoplys standard lagringsperiode for chat- og søkehistorikk er også 90 dager. Utløp av hemmeligheter og datalagring er separate retningslinjer.
  • Historikksvar kan inneholde personopplysninger, inkludert kundeidentifikatorer, e-postadresser, omtrentlig lokasjon, spørsmål og handleaktivitet. Lagre og behandle dette i samsvar med personvernpolicyen din og gjeldende lov.
  • HTTP 403 betyr at hemmeligheten mangler, er ugyldig, utløpt, tilbakekalt eller tilhører en annen butikk.
  • HTTP 422 betyr vanligvis at en påkrevd query-parameter mangler eller har feil navn.
  • HTTP 500 eller et svar med statusCode: 500 betyr at forespørselen nådde Shoply, men ikke kunne fullføres. Prøv midlertidige feil på nytt med backoff og kontakt oss hvis feilen fortsetter.
  • Bruk avgrensede UTC-intervaller for eksporter og tilbakevendende jobber slik at svarene holder seg håndterbare.

Er produktsøk en del av Merchant API?

Shoplys offentlige API for produktsøk har en annen autentisering og forespørselskontrakt. Se Slik får du tilgang til Shoply AI Search gjennom API hvis du vil ha produktsøkeresultater for en kundevendt opplevelse i stedet for private forhandlerdata.

Kan SiteChat-forhandlere laste opp en produktkatalog?

Ja. SiteChat-kontoer kan laste opp strukturerte produkter og produktbilder med den samme butikk-eier-API-hemmeligheten. Disse katalogendepunktene er dokumentert separat i Slik laster du opp katalogen din for SiteChat. Shopify-butikker fortsetter å synkronisere produkter gjennom Shopify og bruker ikke disse opplastingsrutene.

Hvis du trenger hjelp med en integrasjon, kontakt Shoply AI.