Postępuj zgodnie z tą kompleksową listą kontrolną, aby skonfigurować swoje konto Zonos Dashboard i zintegrować Zonos Checkout na swojej niestandardowej stronie lub platformie.
1
Utwórz konto Zonos
Aby rozpocząć, prosimy skontaktować się z naszym zespołem ds. sprzedaży, aby utworzyć konto i podpisać umowę. Po podpisaniu umowy otrzymasz dwie małe wpłaty na swoje konto, które należy zweryfikować.
Prosimy wysłać kwoty tych małych wpłat na adres accounting@zonos.com wraz z identyfikatorem sklepu Dashboard (CC twojemu przedstawicielowi ds. sprzedaży).
Po weryfikacji twoje dane bankowe będą wyświetlane w Dashboard -> Settings -> Billing.
2
Skonfiguruj ustawienia Dashboard i Checkout
Po utworzeniu konta Zonos musisz skonfigurować ustawienia w Dashboard, aby upewnić się, że Checkout działa prawidłowo w twojej witrynie. Ta sekcja obejmuje wszystkie niezbędne konfiguracje Dashboard.
Połącz konto bankowe, aby otrzymywać terminowe wypłaty z Checkout. Wypłaty są przetwarzane codziennie w ciągu 2 dni od przechwycenia płatności. Aby to zrobić, postępuj zgodnie z poniższymi krokami:
Zostaniesz przeniesiony do portalu Stripe, aby ukończyć konfigurację i podać następujące informacje:
Informacje o koncie bankowym.
EIN firmy.
Numer ubezpieczenia społecznego właściciela firmy posiadającego 25% udziałów. Aby uzyskać więcej szczegółów na temat przyczyn tego wymogu, zapoznaj się z dokumentacją Stripe.
Uwaga: Jeśli chcesz zaktualizować harmonogram wypłat, skontaktuj się z support@zonos.com
Skrypt JS Zonos wymaga listy dozwolonych domen ze względów bezpieczeństwa. Zapobiega to ładowaniu skryptu przez nieautoryzowane witryny i zapewnia, że działa tylko na zatwierdzonych domenach. Bez tej konfiguracji skrypt zwróci błędy uprawnień.
W sekcji URLs dodaj swoją pełną domenę i dowolne subdomeny, w których będzie używany Checkout. Na przykład, jeśli twoja domena to example.com, powinieneś dodać example.com i test.example.com.
Aby podać ceny wysyłki przy kasie, musisz połączyć operatora wysyłkowego z kontem Zonos. To umożliwi Ci włączenie określonych poziomów usług wysyłkowych przy kasie.
Aby połączyć operatora wysyłkowego, postępuj zgodnie z poniższymi krokami:
Przejdź do Dashboard -> Settings -> Shipping -> Rates
Kliknij Add carrier
Postępuj zgodnie z instrukcjami konfiguracji operatora.
Aby uzyskać więcej szczegółów na temat połączania kont operatorów, zapoznaj się z naszą dokumentacją.
Kraj pochodzenia i kod HS są używane do obliczenia dokładnych cła i podatków.
Jeśli nie podasz określonego kraju pochodzenia lub kodu HS, użyjemy rezerwowych ustawień skonfigurowanych w Dashboard.
Aby ustawić rezerwowy kraj pochodzenia i kod HS:
Przejdź do Dashboard -> Settings -> Shipping -> Catalog.
W przypadku kraju pochodzenia wybierz kraj, w którym wytwarzana jest większość twoich produktów.
W przypadku kodu HS wprowadź kod HS swojego najpopularniejszego produktu. Jeśli nie masz kodu HS, przejdź do Classify w Dashboard i wprowadź nazwę i opis swojego produktu, aby wygenerować dokładny kod HS.
3
Zainstaluj fragment JS Zonos
Fragment JS Zonos to integracja JavaScript po stronie klienta, która włącza globalną funkcjonalność kasy na twojej stronie. Służy jako most między twoją platformą e-commerce a usługami Zonos, obsługując:
Doświadczenie Checkout: Renderuje interfejs kasy i przetwarza płatności.
Usługi lokalizacyjne: Wykrywa lokalizację odwiedzającego i zarządza konwersją walut.
Integracja koszyka: Łączy się z istniejącym wózkiem i systemem zamówień.
Bezpieczeństwo: Weryfikuje domeny i uwierzytelnia żądania API.
Fragment jest ładowany asynchronicznie, aby zapobiec jakimkolwiek wpływom na wydajność witryny. Inicjalizuje się za pomocą poświadczeń API sklepu i obsługuje wszystkie interakcje po stronie klienta w bezpieczny sposób. Wdrożenie ma być nieinwazyjne, wymagając minimalnych zmian w istniejącym przepływie kasy.
Poniżej znajduje się kompletny przykład obejmujący ładowanie skryptu, inicjalizację i obsługę zdarzeń, do którego należy odwołać się podczas integracji Checkout.
Zalecamy dołączenie sygnatury czasowej lub innego unikatowego identyfikatora do adresu URL, aby zapewnić, że skrypt nie jest buforowany przez przeglądarkę. Zapewni to, że zawsze ładowana jest najnowsza wersja skryptu. Pokazano to w linii 10 kompletnego przykładu.
Po załadowaniu skryptu JS Zonos musisz go uwierzytelnić, przekazując publiczny klucz API Zonos i identyfikator sklepu do funkcji Zonos.init. Publiczny klucz API używany do uwierzytelniania Checkout został zaprojektowany tak, aby był publikowalny, co oznacza, że można go bezpiecznie używać w kodzie frontendowym bez ujawniania poufnych informacji.
Aby znaleźć identyfikator sklepu i klucz API, przejdź do Dashboard -> Settings -> Integrations. Upewnij się, że nie używasz Secret API key, ponieważ nie jest on przeznaczony do użytku w kodzie frontendowym. Pokazano to w wierszach 29 i 30 kompletnego przykładu.
1Zonos.init({
2// ... other fields
3zonosApiKey: 'Your API KEY', // Replace with your actual API key (found in Dashboard)
4storeId: 'Your STORE ID', // Replace with your actual store ID (found in Dashboard)
Jeśli witryna ustawia Content Security Policy, dodaj domeny poniżej do odpowiednich dyrektyw CSP. Ta polityka dotyczy zarówno Checkout, jak i Hello — fragment Zonos ładuje skrypty, arkusze stylów, czcionki, obrazy i wysyła żądania sieciowe, więc zablokowanie któregokolwiek z tych zasobów spowoduje przerwanie przepływu Checkout lub wyświetlania Hello. Lista style-src dotyczy również style-src-elem.
Uwaga: Pomiń ten krok, jeśli witryna nie wysyła nagłówka CSP. Tylko sprzedawcy, którzy wymuszają niestandardową CSP na swoich stronach, muszą ją zaktualizować.
1cdn.jsdelivr.net/npm/@zonos
2cdnjs.cloudflare.com/ajax/libs/zonos-elements
3unpkg.com/@zonos/elements
4js.zonos.com
5*.js.zonos.com
6zonos-store-assets.s3.amazonaws.com
7js.stripe.com
8a.stripecdn.com
9b.stripecdn.com
10c.stripecdn.com
11checkout.stripe.com
12f.stripecdn.com
13hcaptcha.com
14hooks.stripe.com
15m.stripe.com
16m.stripe.network
17pay.stripe.com
18payments.stripe.com
19q.stripe.com
20r.stripe.com
4
Skonfiguruj Hello
Hello jest wymagany podczas korzystania z Checkout.
Hello odpowiada za wykrycie lokalizacji, języka i waluty odwiedzającego oraz wyświetlenie mu odpowiednich informacji. Możesz skonfigurować wszystkie ustawienia Hello w Dashboard lub w skrypcie JS Zonos. Jeśli Hello zostało już skonfigurowane w Dashboard, skrypt załaduje te ustawienia i ich użyje. Jeśli określisz jakieś wartości we właściwości helloSettings funkcji Zonos.init, skrypt zamiast tego użyje tych wartości, jak pokazano poniżej.
Hello używa selektorów CSS do identyfikacji elementów na twojej stronie, które wyświetlają informacje o walutach. Przekaż te selektory do właściwości helloSettings.currencyElementSelector funkcji Zonos.init, aby Hello mogło wykryć i wyświetlić prawidłową walutę kupującego międzynarodowego.
Możesz tutaj użyć dowolnego prawidłowego selektora CSS, na przykład #price, .price do wyboru wielu różnych elementów. Pokazano to w wierszach 23 i 24 kompletnego przykładu.
1Zonos.init({
2// ... other fields
3helloSettings: {
4currencyElementSelector: '.price', // Replace with your actual selector
Domyślnie Hello otworzy się tylko po kliknięciu przez odwiedzającego przycisku flagi. Jeśli chcesz automatycznie otworzyć Hello po załadowaniu strony, możesz wywołać funkcję Zonos.openHelloDialog() po załadowaniu skryptu Zonos. Pokazano to w wierszach 25 i 26 kompletnego przykładu.
Kontroluj, które kraje kupującego widzą Hello i które kraje pojawiają się w rozwijaniu selektora kraju z Dashboard. Przejdź do Dashboard -> Settings -> Hello i znajdź sekcję Country display rules.
Kontroluj, które kraje kupującego widzą widżet Hello. Wybierz jedną z podstawowych reguł, a następnie użyj list Always show i Never show, aby zastąpić określone kraje.
All countries - Każdy kraj, który Hello obsługuje.
Only shippable countries - Kraje, do których wysyłasz z twoich ustawień wysyłkowych.
Always show - Kraje, które zawsze pojawiają się, nawet jeśli reguła podstawowa je wyklucza.
Never show - Kraje, które nigdy się nie pojawiają, nawet jeśli reguła podstawowa je zawiera.
Kontroluj, które kraje pojawiają się w rozwijaniu selektora kraju Hello, używając tych samych podstawowych reguł plus zastąpienia Always show i Never show.
Przestarzałe opcje JS
Właściwości showForCountries i showCountryList na helloSettings są przestarzałe. Zamiast tego skonfiguruj reguły wyświetlania krajów w Dashboard — wartości ustawione tam będą automatycznie załadowane przez skrypt JS Zonos.
5
Skonfiguruj Checkout
Checkout odpowiada za umożliwienie klientowi wprowadzenia informacji dotyczących wysyłki i rozliczenia, obliczenia kosztów landingu, pobrania płatności i ukończenia zamówienia.
Checkout będzie dzielić dane kontekstowe z Hello, takie jak lokalizacja, język i waluta odwiedzającego. Zapewnia to spójność doświadczenia klienta na całym procesie zakupów.
Możesz skonfigurować wszystkie ustawienia Checkout zarówno w Dashboard, jak i w skrypcie JS Zonos. Jeśli Checkout został już skonfigurowany w Dashboard, skrypt załaduje te ustawienia i ich użyje. Jeśli określisz jakieś wartości we właściwości checkoutSettings funkcji Zonos.init, skrypt zamiast tego użyje tych wartości.
Skrypt JS Zonos automatycznie rozpozna kupujących międzynarodowych i skieruje ich do przepływu Checkout. Jednak musisz skonfigurować przycisk „place order" na swojej platformie, aby otwierał Checkout po kliknięciu. Można to zrobić, przekazując selektor CSS do właściwości checkoutSettings.placeOrderButtonSelector funkcji Zonos.init.
Jeśli masz wiele przycisków, które można użyć do złożenia zamówienia, upewnij się, że przechodzisz selektor dla każdego przycisku. Na przykład #placeOrder, .place-order.
Pokazano to w wierszu 21 kompletnego przykładu.
1Zonos.init({
2// ... other fields
3checkoutSettings: {
4// ... other fields
5placeOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s)
Aby wyświetlić szczegóły koszyka klientowi, musisz utworzyć funkcję po stronie serwera, która wywoła API Zonos, aby utworzyć koszyk, a następnie przekaże ten identyfikator koszyka do frontendu. Zapewni to, że szczegóły koszyka nie są ujawniane klientowi w taki sposób, aby mogły być manipulowane.
Twoje wywołanie API backendu będzie używać tajnego tokenu poświadczeń GraphQL, który różni się od publicznego tokenu używanego do uwierzytelniania skryptu JS Zonos. Ten token można pobrać w Dashboard -> Settings -> Integrations. Tajny token musi zostać przekazany jako nagłówek w twoim wywołaniu API.
Mutacja cartCreate akceptuje listę elementów, które powinny być sformatowane zgodnie z schematem elementu koszyka.
1// Create new cart from serverside
2asyncfunctioncreateCart() {
3/**
4 * Full cart mutation schema: https://zonos.com/developer/mutations/cartCreate
5 * */
6const graphql = JSON.stringify({
7query: `
8mutation cartCreate($input: CartCreateInput!){
9 cartCreate(input: $input) {
10 id
11 adjustments {
12 amount
13 currencyCode
14 description
15 productId
16 sku
17 type
18 }
19 items {
20 id
21 name
22 amount
23 currencyCode
24 quantity
25 sku
26 description
27 metadata {
28 key
29 value
30 }
31 }
32 metadata {
33 key
34 value
35 }
36 }
37}`,
38variables: {
39/**
40 * input for the cartCreate is this schema https://zonos.com/developer/types/CartCreateInput
Sugerujemy utworzenie punktu końcowego API na serwerze, a następnie wywołanie tego punktu końcowego z integracji frontendu JS, co zostało szczegółowo opisane w następnym kroku.
Po utworzeniu koszyka po stronie serwera musisz przekazać identyfikator koszyka do skryptu JS Zonos. Można to zrobić za pomocą callback createCartId, który jest częścią funkcji Zonos.init. Checkout będzie wtedy bezpiecznie pobierać szczegóły koszyka z Zonos po otwarciu, zapobiegając jakimkolwiek manipulacjom koszykiem. Patrz poniższy przykład kodu.
Wartość createCartId nie może być wartością statyczną, musi być funkcją.
Jeśli chcesz wyświetlić krótką, dynamiczną wiadomość w Checkout — na przykład ujawnienie regulacyjne, gdy określony produkt jest w koszyku — możesz zwrócić tablicę customMessage z callback createCartId. Każdy wpis w tablicy jest renderowany w jego własnym wierszu baneru informacyjnego bezpośrednio pod Order total.
Składnia linku Markdown — [link label] następnie (https://example.com) — jest renderowana jako tag kotwicy, więc kupujący mogą kliknąć. Zwykłe adresy URL https:// w tekście są również automatycznie łączone. Wszystko inne jest renderowane jako zwykły tekst, więc HTML w ciągach jest escapowany, a nie wykonywany.
Tylko jeden baner jest pokazany na Checkout, niezależnie od tego, ile linii przekażesz.
1Zonos.init({
2// ... other fields
3checkoutSettings: {
4createCartId: async () => {
5const response = awaitfetch(
6'https://api.merchant.com/api/get-zonos-cart',
7 {
8method: 'POST',
9headers: {
10'Content-Type': 'application/json',
11 },
12 },
13 );
14const json = await response.json();
15
16return {
17cartId: json.id,
18// Each item is rendered on a new line of the same info banner.
19// Markdown links `[text](url)` become `<a>` tags.
20customMessage: [
21'Some items in your cart are subject to California regulations.',
22'Please review the required notice [here](https://oag.ca.gov/prop65).',
23 ],
24 };
25 },
26 },
27});
Uwaga: Tekst wiadomości jest renderowany jako zwykły tekst — tagi HTML w ciągach są escapowane, więc tylko składnia linku Markdown jest interpretowana. Zdecyduj, czy dołączyć customMessage po stronie serwera w zależności od zawartości koszyka, aby baner pojawił się tylko gdy jest to istotne.
Jeśli masz niestandardową logikę i chcesz wyzwolić kasę Zonos programowo, możesz użyć funkcji Zonos.triggerCheckoutInternational(), aby otworzyć okno kasy Zonos po zainicjowaniu Zonos. To wywoła callback createCartId zdefiniowany w Zonos.init powyżej i otworzy okno kasy Zonos.
1// For example: During your domestic checkout flow, trigger Zonos checkout when the user selects a non-domestic country (e.g., not "US")
2const domesticCountry = 'US';
3document.querySelector('.country-select').addEventListener('change', e => {
Jeśli chcesz oddzielić proces kasy dla kupujących krajowych i międzynarodowych, możesz dodać przycisk International checkout do swojej witryny. Zamiast ręcznego wyzwalania Checkout Zonos za pomocą Zonos.triggerCheckoutInternational, możesz skonfigurować Zonos.init za pomocą odpowiedniego selektora. Selektor będzie wyłączony do zainicjowania Zonos, gdy przycisk zostanie kliknięty, automatycznie wyzwoli kasę Zonos. To wywoła callback createCartId zdefiniowany w Zonos.init i otworzy okno kasy Zonos.
1Zonos.init({
2// ... other fields
3checkoutSettings: {
4// ... other fields
5alwaysTriggerInternationalCheckoutSelector: '#trigger-zonos-checkout', // Replace with your actual selector, button bound to this selector will always trigger Zonos checkout
Zonos Checkout może przekazywać pełny lejek kasy do twoich istniejących narzędzi analityki. Na każdym kroku Zonos emituje:
Oryginalne zdarzenie zonos-checkout-... do GA4 (poprzez gtag('event', ...)) i do Meta jako zdarzenie niestandardowe (poprzez fbq('trackCustom', ...)).
Pasujące zdarzenie standardowe do Meta, gdy istnieje — InitiateCheckout, AddPaymentInfo i Purchase — aby optymalizacja wbudowana Meta i raportowanie konwersji działały od razu.
Sposób, w jaki zdarzenia trafiają do dostawców, zależy od tego, jak Checkout jest renderowany na twojej stronie. Wybierz ścieżkę, która pasuje do twojej integracji.
Gdy element niestandardowy <zonos-checkout> jest zamontowany na twojej własnej stronie (domyślnie dla integracji skryptu JS Zonos opisanej powyżej), window.gtag i window.fbq strony są już w zasięgu. Zonos wywołuje je bezpośrednio — nie jest potrzebny relay ani przekazywanie identyfikatora piksela.
Konfiguracja:
Upewnij się, że twoja strona ma już załadowany GA4 base tag i/lub Meta Pixel base code (w taki sam sposób, w jaki śledzisz dowolną inną stronę na twojej stronie).
Włącz dostawców, którzy Cię interesują, na pulpicie Zonos w sekcji Checkout settings → Tracking (Google Analytics, Facebook Pixel lub oba).
To wszystko. Brak skryptu relay, brak customHTML, brak dodatkowych identyfikatorów do przekazania — Zonos wykrywa gtag / fbq na stronie i uruchamia zdarzenia bezpośrednio.
Gdy Checkout jest hostowany w iframe na innym pochodzeniu, nie może bezpośrednio dotrzeć do gtag / fbq twojej strony. Zonos publikuje mały skrypt relay — analyticsRelayOnInit.js — który słucha zdarzeń postMessage z iframe Checkout i przekazuje je dostawcom, których masz na swojej stronie. Pojedynczy relay obsługuje zarówno GA4, jak i Facebook Pixel jednocześnie.
Konfiguracja:
Włącz dostawców, którzy Cię interesują, na pulpicie Zonos w sekcji Checkout settings → Tracking.
Dodaj GA4 base tag i/lub Meta Pixel base code do <head> strony, która hostuje iframe Checkout.
Przekaż odpowiadające identyfikatory poprzez customHTML Checkout, aby relay wiedział, którą właściwość/piksel ma uruchomić:
1
2 window.Zonos.googleAnalyticId = 'G-XXXXXXXXXX';
3 window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';
4
Aby uzyskać instrukcje krok po kroku dla iframe, pełne odniesienie zdarzeń (w tym mapowanie ładunku purchase / Purchase) i porady dotyczące debugowania, patrz:
Synchronizuje numer twojego natywnego konta z Dashboard. Docs →
orderAddTrackingNumber
Wymagane tylko, jeśli nie drukujesz etykiet w Dashboard. Zapewnia, że śledzenie jest widoczne w Dashboard, aby Zonos mógł zagarantować twoje obliczenia Landed cost. Docs →
Potrzebne, aby wysyłać zamówienia Checkout do twojej natywnej platformy. Docs →
ORDER_STATUS_CHANGED
Utrzymuje twój system w synchronizacji z Zonos, gdy zmienia się status zamówienia (np. zrealizowane, anulowane). Docs →
7
Przetestuj swoją integrację
Przed wdrożeniem integracji Checkout na stronie, ważne jest dokładne przetestowanie wszystkich aspektów integracji, aby zapewnić gładkie doświadczenie klienta. Obejmuje to testowanie przepływu kasy, przetwarzania płatności, tworzenia zamówień i funkcjonalności webhooków.
Skonfiguruj doświadczenie po zakupie w Dashboard -> Settings -> Checkout settings w sekcji Success page type. Dostępne są trzy opcje:
Show Zonos success page (domyślna, rekomendowana) — Zonos wyświetla wbudowaną stronę dziękowania po złożeniu zamówienia. Strona jest zawsze pokazywana, nawet jeśli zamówienie nie zostanie zaimportowane do twojego systemu, więc kupujący zawsze otrzymuje potwierdzenie.
Redirect to a success page — Zonos czeka na krótkim ekranie „Order complete", dopóki zamówienie nie zostanie utworzone, a następnie przekierowuje na skonfigurowany adres URL sukcesu z zOrderNumber (i orderId dla starszych koszyków) dołączonym jako parametry zapytania.
Close the checkout modal — Zonos zamyka modał po przechwyceniu płatności. Jeśli także skonfigurujesz adres URL sukcesu, Zonos przekierowuje do tego adresu URL natychmiast po pobraniu płatności przez Stripe — bez czekania na utworzenie zamówienia — i dołącza zonosCheckoutSessionId jako parametr zapytania. Użyj tej opcji, gdy chcesz najszybszego przekazania do twojej własnej strony sukcesu.
Gdy używasz Close the checkout modal z adresem URL przekierowania, zamówienie może potrwać kilka sekund, aby dołączyć do sesji kasy po przekierowaniu. Przeczytaj zonosCheckoutSessionId z adresu URL i sonduj zapytanie GraphQL checkoutSession z serwera za pomocą tajnego tokenu poświadczeń, dopóki zamówienie nie będzie gotowe. Nigdy nie wywołuj tego z przeglądarki — tajny token poświadczeń musi pozostać po stronie serwera.
1query getCheckoutSession($id: String!)
2checkoutSession )
3order
4id
Wyślij zapytanie do https://api.zonos.com/graphql ze swoim tajnym tokenem poświadczeń z Dashboard -> Settings -> Integrations przekazanym jako nagłówek żądania credentialToken.
Tak. Jeśli chcesz otrzymać powiadomienia o utworzeniu zamówienia, w Dashboard w sekcji EmailCheckout settings możesz wprowadzić adres e-mail członków zespołu, którzy powinni być powiadamiani o utworzeniu, wysłaniu lub anulowaniu zamówienia.
Integracja niestandardowa
Integracja niestandardowa
Zbuduj end-to-end integrację Checkout na swojej niestandardowej stronie.
Lista kontrolna integracji
Postępuj zgodnie z tą kompleksową listą kontrolną, aby skonfigurować swoje konto Zonos Dashboard i zintegrować Zonos Checkout na swojej niestandardowej stronie lub platformie.
Utwórz konto Zonos
Aby rozpocząć, prosimy skontaktować się z naszym zespołem ds. sprzedaży, aby utworzyć konto i podpisać umowę. Po podpisaniu umowy otrzymasz dwie małe wpłaty na swoje konto, które należy zweryfikować.
Prosimy wysłać kwoty tych małych wpłat na adres accounting@zonos.com wraz z identyfikatorem sklepu Dashboard (CC twojemu przedstawicielowi ds. sprzedaży).
Po weryfikacji twoje dane bankowe będą wyświetlane w Dashboard -> Settings -> Billing.
Skonfiguruj ustawienia Dashboard i Checkout
Po utworzeniu konta Zonos musisz skonfigurować ustawienia w Dashboard, aby upewnić się, że Checkout działa prawidłowo w twojej witrynie. Ta sekcja obejmuje wszystkie niezbędne konfiguracje Dashboard.
Skonfiguruj wypłaty
Połącz konto bankowe, aby otrzymywać terminowe wypłaty z Checkout. Wypłaty są przetwarzane codziennie w ciągu 2 dni od przechwycenia płatności. Aby to zrobić, postępuj zgodnie z poniższymi krokami:
Skonfiguruj dozwolone domeny
Skrypt JS Zonos wymaga listy dozwolonych domen ze względów bezpieczeństwa. Zapobiega to ładowaniu skryptu przez nieautoryzowane witryny i zapewnia, że działa tylko na zatwierdzonych domenach. Bez tej konfiguracji skrypt zwróci błędy uprawnień.
Aby to skonfigurować:
example.com, powinieneś dodaćexample.comitest.example.com.Dostosuj ustawienia brandingu
Skonfiguruj ustawienia brandingu w Dashboard, aby pasowały do wyglądu i stylu swojej witryny.
Aby to zrobić, postępuj zgodnie z poniższymi krokami:
Aby uzyskać więcej informacji na temat ustawień brandingu, zapoznaj się z naszą dokumentacją.
Połącz operatora wysyłkowego
Aby podać ceny wysyłki przy kasie, musisz połączyć operatora wysyłkowego z kontem Zonos. To umożliwi Ci włączenie określonych poziomów usług wysyłkowych przy kasie.
Aby połączyć operatora wysyłkowego, postępuj zgodnie z poniższymi krokami:
Aby uzyskać więcej szczegółów na temat połączania kont operatorów, zapoznaj się z naszą dokumentacją.
Skonfiguruj strefy wysyłkowe
Strefy wysyłkowe umożliwiają skonfigurowanie, którzy operatorzy wysyłkowi i poziomy usług są dostępne dla różnych regionów świata.
Aby skonfigurować strefy wysyłkowe, postępuj zgodnie z poniższymi krokami:
Aby uzyskać więcej szczegółów na temat stref wysyłkowych, zapoznaj się z naszą dokumentacją.
Skonfiguruj rezerwową kraj pochodzenia i kod HS
Kraj pochodzenia i kod HS są używane do obliczenia dokładnych cła i podatków.
Jeśli nie podasz określonego kraju pochodzenia lub kodu HS, użyjemy rezerwowych ustawień skonfigurowanych w Dashboard.
Aby ustawić rezerwowy kraj pochodzenia i kod HS:
Zainstaluj fragment JS Zonos
Fragment JS Zonos to integracja JavaScript po stronie klienta, która włącza globalną funkcjonalność kasy na twojej stronie. Służy jako most między twoją platformą e-commerce a usługami Zonos, obsługując:
Fragment jest ładowany asynchronicznie, aby zapobiec jakimkolwiek wpływom na wydajność witryny. Inicjalizuje się za pomocą poświadczeń API sklepu i obsługuje wszystkie interakcje po stronie klienta w bezpieczny sposób. Wdrożenie ma być nieinwazyjne, wymagając minimalnych zmian w istniejącym przepływie kasy.
Poniżej znajduje się kompletny przykład obejmujący ładowanie skryptu, inicjalizację i obsługę zdarzeń, do którego należy odwołać się podczas integracji Checkout.
(async function () {const timestamp = new Date().getTime();const zonosScript = document.querySelector(`script[src*="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js"]`,);if (!zonosScript) {const script = document.createElement('script');script.src = `https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js?timestamp=${timestamp}`;script.addEventListener('load', () => {window.Zonos.({: {: () => {{: ,};},: ,},: {: ,: {.();},},: ,: ,});});..(script);}})();Obsługa buforowania przeglądarki
Zalecamy dołączenie sygnatury czasowej lub innego unikatowego identyfikatora do adresu URL, aby zapewnić, że skrypt nie jest buforowany przez przeglądarkę. Zapewni to, że zawsze ładowana jest najnowsza wersja skryptu. Pokazano to w linii 10 kompletnego przykładu.
script.src = `https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js?timestamp=${timestamp}`;Uwierzytelnij fragment JS Zonos
Po załadowaniu skryptu JS Zonos musisz go uwierzytelnić, przekazując publiczny klucz API Zonos i identyfikator sklepu do funkcji
Zonos.init. Publiczny klucz API używany do uwierzytelniania Checkout został zaprojektowany tak, aby był publikowalny, co oznacza, że można go bezpiecznie używać w kodzie frontendowym bez ujawniania poufnych informacji.Aby znaleźć identyfikator sklepu i klucz API, przejdź do Dashboard -> Settings -> Integrations. Upewnij się, że nie używasz Secret API key, ponieważ nie jest on przeznaczony do użytku w kodzie frontendowym. Pokazano to w wierszach 29 i 30 kompletnego przykładu.
Zonos.init({// ... other fieldszonosApiKey: 'Your API KEY', // Replace with your actual API key (found in Dashboard)storeId: 'Your STORE ID', // Replace with your actual store ID (found in Dashboard)// ... other fields});Zaktualizuj swoją politykę bezpieczeństwa zawartości (CSP)
Jeśli witryna ustawia Content Security Policy, dodaj domeny poniżej do odpowiednich dyrektyw CSP. Ta polityka dotyczy zarówno Checkout, jak i Hello — fragment Zonos ładuje skrypty, arkusze stylów, czcionki, obrazy i wysyła żądania sieciowe, więc zablokowanie któregokolwiek z tych zasobów spowoduje przerwanie przepływu Checkout lub wyświetlania Hello. Lista
style-srcdotyczy równieżstyle-src-elem.cdn.jsdelivr.net/npm/@zonoscdnjs.cloudflare.com/ajax/libs/zonos-elementsunpkg.com/@zonos/elementsjs.zonos.com*.js.zonos.comzonos-store-assets.s3.amazonaws.comjs.stripe.coma.stripecdn.comb.stripecdn.comc.stripecdn.comcheckout.stripe.comf.stripecdn.comhcaptcha.comhooks.stripe.comm.stripe.comm.stripe.networkpay.stripe.compayments.stripe.comq.stripe.comr.stripe.comSkonfiguruj Hello
Hello jest wymagany podczas korzystania z Checkout.
Hello odpowiada za wykrycie lokalizacji, języka i waluty odwiedzającego oraz wyświetlenie mu odpowiednich informacji. Możesz skonfigurować wszystkie ustawienia Hello w Dashboard lub w skrypcie JS Zonos. Jeśli Hello zostało już skonfigurowane w Dashboard, skrypt załaduje te ustawienia i ich użyje. Jeśli określisz jakieś wartości we właściwości
helloSettingsfunkcjiZonos.init, skrypt zamiast tego użyje tych wartości, jak pokazano poniżej.Skonfiguruj konwersję waluty w Hello w skrypcie JS
Hello używa selektorów CSS do identyfikacji elementów na twojej stronie, które wyświetlają informacje o walutach. Przekaż te selektory do właściwości
helloSettings.currencyElementSelectorfunkcjiZonos.init, aby Hello mogło wykryć i wyświetlić prawidłową walutę kupującego międzynarodowego.Możesz tutaj użyć dowolnego prawidłowego selektora CSS, na przykład
#price, .pricedo wyboru wielu różnych elementów. Pokazano to w wierszach 23 i 24 kompletnego przykładu.Zonos.init({// ... other fieldshelloSettings: {currencyElementSelector: '.price', // Replace with your actual selector},// ... other fields});Automatycznie otwórz Hello przy załadowaniu strony
Domyślnie Hello otworzy się tylko po kliknięciu przez odwiedzającego przycisku flagi. Jeśli chcesz automatycznie otworzyć Hello po załadowaniu strony, możesz wywołać funkcję
Zonos.openHelloDialog()po załadowaniu skryptu Zonos. Pokazano to w wierszach 25 i 26 kompletnego przykładu.Zonos.init({: {: {.();},},});Skonfiguruj reguły wyświetlania krajów w Dashboard
Kontroluj, które kraje kupującego widzą Hello i które kraje pojawiają się w rozwijaniu selektora kraju z Dashboard. Przejdź do Dashboard -> Settings -> Hello i znajdź sekcję Country display rules.
Widoczność widżetu
Kontroluj, które kraje kupującego widzą widżet Hello. Wybierz jedną z podstawowych reguł, a następnie użyj list Always show i Never show, aby zastąpić określone kraje.
Selektor krajów
Kontroluj, które kraje pojawiają się w rozwijaniu selektora kraju Hello, używając tych samych podstawowych reguł plus zastąpienia Always show i Never show.
Właściwości
showForCountriesishowCountryListnahelloSettingssą przestarzałe. Zamiast tego skonfiguruj reguły wyświetlania krajów w Dashboard — wartości ustawione tam będą automatycznie załadowane przez skrypt JS Zonos.Skonfiguruj Checkout
Checkout odpowiada za umożliwienie klientowi wprowadzenia informacji dotyczących wysyłki i rozliczenia, obliczenia kosztów landingu, pobrania płatności i ukończenia zamówienia.
Checkout będzie dzielić dane kontekstowe z Hello, takie jak lokalizacja, język i waluta odwiedzającego. Zapewnia to spójność doświadczenia klienta na całym procesie zakupów.
Możesz skonfigurować wszystkie ustawienia Checkout zarówno w Dashboard, jak i w skrypcie JS Zonos. Jeśli Checkout został już skonfigurowany w Dashboard, skrypt załaduje te ustawienia i ich użyje. Jeśli określisz jakieś wartości we właściwości
checkoutSettingsfunkcjiZonos.init, skrypt zamiast tego użyje tych wartości.Skonfiguruj przycisk „place order" w skrypcie JS
Skrypt JS Zonos automatycznie rozpozna kupujących międzynarodowych i skieruje ich do przepływu Checkout. Jednak musisz skonfigurować przycisk „place order" na swojej platformie, aby otwierał Checkout po kliknięciu. Można to zrobić, przekazując selektor CSS do właściwości
checkoutSettings.placeOrderButtonSelectorfunkcjiZonos.init.Jeśli masz wiele przycisków, które można użyć do złożenia zamówienia, upewnij się, że przechodzisz selektor dla każdego przycisku. Na przykład
#placeOrder, .place-order.Pokazano to w wierszu 21 kompletnego przykładu.
Zonos.init({// ... other fieldscheckoutSettings: {// ... other fieldsplaceOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s)},});Bezpiecznie utwórz szczegóły koszyka po stronie serwera
Aby wyświetlić szczegóły koszyka klientowi, musisz utworzyć funkcję po stronie serwera, która wywoła API Zonos, aby utworzyć koszyk, a następnie przekaże ten identyfikator koszyka do frontendu. Zapewni to, że szczegóły koszyka nie są ujawniane klientowi w taki sposób, aby mogły być manipulowane.
Twoje wywołanie API backendu będzie używać tajnego tokenu poświadczeń GraphQL, który różni się od publicznego tokenu używanego do uwierzytelniania skryptu JS Zonos. Ten token można pobrać w Dashboard -> Settings -> Integrations. Tajny token musi zostać przekazany jako nagłówek w twoim wywołaniu API.
Mutacja
cartCreateakceptuje listę elementów, które powinny być sformatowane zgodnie z schematem elementu koszyka.// Create new cart from serversideasync function createCart() {/*** Full cart mutation schema: https://zonos.com/developer/mutations/cartCreate* */const graphql = JSON.stringify({query: `mutation cartCreate($input: CartCreateInput!){cartCreate(input: $input) {idadjustments {amountcurrencyCodedescriptionproductIdskutype}items {idnameamountcurrencyCodequantityskudescriptionmetadata {keyvalue}}metadata {keyvalue}}}`,variables: {/*** input for the cartCreate is this schema https://zonos.com/developer/types/CartCreateInput*/input: {/*** Cart adjustment input: https://zonos.com/developer/types/CartAdjustmentInput*/adjustments: [{amount: -10,currencyCode: 'USD',/*** Enum value: https://zonos.com/developer/types/CartAdjustmentType*/type: 'CART_TOTAL',},],/*** Cart item input: https://zonos.com/developer/types/ItemInput*/items: [{name: 'Item 1',amount: 150.99,currencyCode: 'USD',description: 'Item 1 description',quantity: 2,},],/*** Cart metadata input: https://zonos.com/developer/types/CartMetadataInput*/metadata: [{: ,: ,},],},},});response = (, {: ,: {: ,: ,},: graphql,});{ data } = response.();data..;}Sugerujemy utworzenie punktu końcowego API na serwerze, a następnie wywołanie tego punktu końcowego z integracji frontendu JS, co zostało szczegółowo opisane w następnym kroku.
Przekaż identyfikator koszyka do Checkout za pośrednictwem frontendu
Po utworzeniu koszyka po stronie serwera musisz przekazać identyfikator koszyka do skryptu JS Zonos. Można to zrobić za pomocą callback
createCartId, który jest częścią funkcjiZonos.init. Checkout będzie wtedy bezpiecznie pobierać szczegóły koszyka z Zonos po otwarciu, zapobiegając jakimkolwiek manipulacjom koszykiem. Patrz poniższy przykład kodu.Wartość
createCartIdnie może być wartością statyczną, musi być funkcją.Zonos.init({// ... other fieldscheckoutSettings: {// Replace with your actual selector(s)createCartId: async () => {const response = await fetch('https://api.merchant.com/api/get-cart', {method: 'POST',headers: {'Content-Type': 'application/json',},});const json = await response.json();return json.id; // Only need to return the cart ID},},});(Opcjonalnie) Wyświetl powiadomienie pod Order total
Jeśli chcesz wyświetlić krótką, dynamiczną wiadomość w Checkout — na przykład ujawnienie regulacyjne, gdy określony produkt jest w koszyku — możesz zwrócić tablicę
customMessagez callbackcreateCartId. Każdy wpis w tablicy jest renderowany w jego własnym wierszu baneru informacyjnego bezpośrednio pod Order total.Składnia linku Markdown —
[link label]następnie(https://example.com)— jest renderowana jako tag kotwicy, więc kupujący mogą kliknąć. Zwykłe adresy URLhttps://w tekście są również automatycznie łączone. Wszystko inne jest renderowane jako zwykły tekst, więc HTML w ciągach jest escapowany, a nie wykonywany.Tylko jeden baner jest pokazany na Checkout, niezależnie od tego, ile linii przekażesz.
Zonos.init({// ... other fieldscheckoutSettings: {createCartId: async () => {const response = await fetch('https://api.merchant.com/api/get-zonos-cart',{method: 'POST',headers: {'Content-Type': 'application/json',},},);const json = await response.json();return {cartId: json.id,// Each item is rendered on a new line of the same info banner.// Markdown links `[text](url)` become `<a>` tags.customMessage: ['Some items in your cart are subject to California regulations.','Please review the required notice [here](https://oag.ca.gov/prop65).',],};},},});(Opcjonalnie) Programowo wyzwól kasę Zonos
Jeśli masz niestandardową logikę i chcesz wyzwolić kasę Zonos programowo, możesz użyć funkcji
Zonos.triggerCheckoutInternational(), aby otworzyć okno kasy Zonos po zainicjowaniu Zonos. To wywoła callbackcreateCartIdzdefiniowany wZonos.initpowyżej i otworzy okno kasy Zonos.// For example: During your domestic checkout flow, trigger Zonos checkout when the user selects a non-domestic country (e.g., not "US")const domesticCountry = 'US';document.querySelector('.country-select').addEventListener('change', e => {const country = e.target.value;if (country !== domesticCountry) {Zonos.triggerCheckoutInternational();}});(Opcjonalnie) Zawsze wyzwól selektor kasy Zonos
Jeśli chcesz oddzielić proces kasy dla kupujących krajowych i międzynarodowych, możesz dodać przycisk
International checkoutdo swojej witryny. Zamiast ręcznego wyzwalania Checkout Zonos za pomocąZonos.triggerCheckoutInternational, możesz skonfigurowaćZonos.initza pomocą odpowiedniego selektora. Selektor będzie wyłączony do zainicjowania Zonos, gdy przycisk zostanie kliknięty, automatycznie wyzwoli kasę Zonos. To wywoła callbackcreateCartIdzdefiniowany wZonos.initi otworzy okno kasy Zonos.Zonos.init({// ... other fieldscheckoutSettings: {// ... other fieldsalwaysTriggerInternationalCheckoutSelector: '#trigger-zonos-checkout', // Replace with your actual selector, button bound to this selector will always trigger Zonos checkout},});(Opcjonalnie) Śledź lejek kasy za pomocą GA4 lub Facebook Pixel
Zonos Checkout może przekazywać pełny lejek kasy do twoich istniejących narzędzi analityki. Na każdym kroku Zonos emituje:
zonos-checkout-...do GA4 (poprzezgtag('event', ...)) i do Meta jako zdarzenie niestandardowe (poprzezfbq('trackCustom', ...)).InitiateCheckout,AddPaymentInfoiPurchase— aby optymalizacja wbudowana Meta i raportowanie konwersji działały od razu.Sposób, w jaki zdarzenia trafiają do dostawców, zależy od tego, jak Checkout jest renderowany na twojej stronie. Wybierz ścieżkę, która pasuje do twojej integracji.
Integracja natywna (Checkout renderuje się bezpośrednio na twojej stronie)
Gdy element niestandardowy
<zonos-checkout>jest zamontowany na twojej własnej stronie (domyślnie dla integracji skryptu JS Zonos opisanej powyżej),window.gtagiwindow.fbqstrony są już w zasięgu. Zonos wywołuje je bezpośrednio — nie jest potrzebny relay ani przekazywanie identyfikatora piksela.Konfiguracja:
To wszystko. Brak skryptu relay, brak
customHTML, brak dodatkowych identyfikatorów do przekazania — Zonos wykrywagtag/fbqna stronie i uruchamia zdarzenia bezpośrednio.Integracja iframe (starszy iframe Checkout na
iglobalstores.com)Gdy Checkout jest hostowany w iframe na innym pochodzeniu, nie może bezpośrednio dotrzeć do
gtag/fbqtwojej strony. Zonos publikuje mały skrypt relay —analyticsRelayOnInit.js— który słucha zdarzeń postMessage z iframe Checkout i przekazuje je dostawcom, których masz na swojej stronie. Pojedynczy relay obsługuje zarówno GA4, jak i Facebook Pixel jednocześnie.Konfiguracja:
<head>strony, która hostuje iframe Checkout.asyncsrc="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js">customHTMLCheckout, aby relay wiedział, którą właściwość/piksel ma uruchomić:window.Zonos.googleAnalyticId = 'G-XXXXXXXXXX';window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';Aby uzyskać instrukcje krok po kroku dla iframe, pełne odniesienie zdarzeń (w tym mapowanie ładunku
purchase/Purchase) i porady dotyczące debugowania, patrz:Zsynchronizuj śledzenie zamówień i status na Dashboard
Aby zsynchronizować zamówienia między twoim systemem a Zonos Dashboard, wdróż te wywołania API i webhooki:
Wymagane mutacje
orderUpdateAccountOrderNumberorderAddTrackingNumberWymagane webhooki
ORDER_CREATEDORDER_STATUS_CHANGEDPrzetestuj swoją integrację
Przed wdrożeniem integracji Checkout na stronie, ważne jest dokładne przetestowanie wszystkich aspektów integracji, aby zapewnić gładkie doświadczenie klienta. Obejmuje to testowanie przepływu kasy, przetwarzania płatności, tworzenia zamówień i funkcjonalności webhooków.
Postępuj zgodnie z naszym przewodnikiem testowania, aby zweryfikować, że twoja integracja działa prawidłowo i aby zidentyfikować i naprawić wszelkie problemy przed uruchomieniem na produkcję.
Częste pytania
Poniżej znajdują się niektóre typowe pytania dotyczące procesu integracji.
Jak Zonos obsługuje potwierdzenie zamówienia?
Skonfiguruj doświadczenie po zakupie w Dashboard -> Settings -> Checkout settings w sekcji Success page type. Dostępne są trzy opcje:
zOrderNumber(iorderIddla starszych koszyków) dołączonym jako parametry zapytania.zonosCheckoutSessionIdjako parametr zapytania. Użyj tej opcji, gdy chcesz najszybszego przekazania do twojej własnej strony sukcesu.Wyszukiwanie zamówienia z
zonosCheckoutSessionIdGdy używasz Close the checkout modal z adresem URL przekierowania, zamówienie może potrwać kilka sekund, aby dołączyć do sesji kasy po przekierowaniu. Przeczytaj
zonosCheckoutSessionIdz adresu URL i sonduj zapytanie GraphQLcheckoutSessionz serwera za pomocą tajnego tokenu poświadczeń, dopóki zamówienie nie będzie gotowe. Nigdy nie wywołuj tego z przeglądarki — tajny token poświadczeń musi pozostać po stronie serwera.query getCheckoutSession($id: String!)checkoutSession )orderidWyślij zapytanie do
https://api.zonos.com/graphqlze swoim tajnym tokenem poświadczeń z Dashboard -> Settings -> Integrations przekazanym jako nagłówek żądaniacredentialToken.Czy mogę być powiadamiany, gdy zostanie utworzone zamówienie?
Tak. Jeśli chcesz otrzymać powiadomienia o utworzeniu zamówienia, w Dashboard w sekcji Email Checkout settings możesz wprowadzić adres e-mail członków zespołu, którzy powinni być powiadamiani o utworzeniu, wysłaniu lub anulowaniu zamówienia.
Czy ta strona była pomocna?