Ten przewodnik zawiera techniczną dokumentację interfejsu API i schematy ładunków do integracji interfejsu Cart API protokołu Universal Commerce Protocol (UCP) w wersji 2026-04-08.
Zanim zaczniesz tworzyć punkty końcowe, zapoznaj się z omówieniem interfejsu Cart API, aby poznać ogólne koncepcje i wymagania wstępne.
Utwórz koszyk
Ten punkt końcowy umożliwia utworzenie nowej sesji koszyka. Aby przeprowadzić integrację, zaimplementuj punkt końcowy CreateCart (POST /carts). Gdy użytkownik zdecyduje się przenieść koszyk, Google wywoła ten punkt końcowy ze wszystkimi szczegółami dotyczącymi pozycji. Twój system musi odpowiedzieć continue_url, kierując użytkownika do wstępnie wypełnionego koszyka w Twojej witrynie.
- Punkt końcowy:
POST /carts - Reguła: pojedyncza prośba
CreateCart(POST /carts) jest uruchamiana tylko wtedy, gdy użytkownik kliknie przycisk przenoszenia (np. Do kasy w sklepie), aby przenieść koszyk do Twojego sklepu.
Proces koszyka
Proces i stan koszyka działają w ten sposób:
- Gromadzenie w Google: gdy użytkownik dodaje produkty do koszyka, Google gromadzi je lokalnie. Google nie wysyła wielu wywołań interfejsu API podczas dodawania produktów.
- Ładunek: pojedyncze żądanie
POST /cartsbędzie zawierać pełną tablicę wszystkich zgromadzonych wartościline_items. - Przekierowanie i stan: backend sprzedawcy odpowiada za pomocą kodu
continue_url, który wskazuje wstępnie wypełniony koszyk w jego witrynie.
Żądanie: Google wysyła tablicę line_items do dodania do koszyka.
Przykładowe żądanie:
{
"line_items": [
{
"item": {
"id": "item_123"
},
"quantity": 2
}
]
}
Odpowiedź: zwracasz zainicjowaną sesję koszyka, w tym szczegóły elementu zamówienia, sumy i continue_url. Pole continue_url w odpowiedzi musi kierować użytkownika z powrotem na stronę w Twojej witrynie, na której może on dalej zarządzać koszykiem. Zwykle prowadzi on do koszyka lub strony płatności z sesją zidentyfikowaną przez wstępnie wczytany parametr id.
Przykład odpowiedzi:
{
"ucp": {
"version": "2026-04-08",
"capabilities": {
"dev.ucp.shopping.cart": [{"version": "2026-04-08"}]
}
},
"id": "cart_abc123",
"line_items": [
{
"id": "li_1",
"item": {
"id": "item_123",
"title": "Red T-Shirt",
"price": 2500
},
"quantity": 2,
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
]
}
],
"currency": "USD",
"totals": [
{
"type": "subtotal",
"amount": 5000
},
{
"type": "total",
"amount": 5000,
"display_text": "Estimated total (taxes calculated at checkout)"
}
],
// Used for redirecting the user back to the merchant's cart experience from Google surfaces.
"continue_url": "https://business.example.com/checkout?cart=cart_abc123",
// Indicate the timestamp at which the cart session will expire and become invalid.
"expires_at": "2026-01-16T12:00:00Z"
}
Obsługa błędów
Pełne wytyczne dotyczące formatowania komunikatów o błędach oraz różnic między błędami protokołu a błędami logiki biznesowej znajdziesz w artykule Kody błędów.