Cart
Die Cart-API wird zur Interaktion mit einem Warenkorb während der Sitzung eines Kunden verwendet. Dieser Leitfaden zeigt, wie Sie die Warenkorb-API verwenden, um Warenkorbpositionen zu aktualisieren, Warenkorbattribute und -notizen hinzuzufügen und Versandtarife zu generieren.
Inhalt
- POST /cart/add.js
- Add line item properties
- Add a selling plan
- Example API calls
- Response
- Error responses
- GET /cart.js
- Responses
- POST /cart/update.js
- Update line items
- Update cart note
- Update cart attributes
- Response
- Error responses
- POST /cart/change.js
- Update quantities
- Update properties
- Response
- Error responses
- POST /cart/clear.js
- Response
- Generate shipping rates
- Example prepare_shipping_rates call
- Example async_shipping_rates call
- GET /cart/shipping_rates.json
- Private properties and attributes
- Private line item properties
- Private cart attributes
- Bundled section rendering
- Request sections
- Error response
POST /cart/add.js
Verwenden Sie den Endpunkt POST /cart/add. js
, um eine oder mehrere Varianten in den Warenkorb zu legen.
Im folgenden Beispiel ist quantity
der Betrag der Variante, die Sie hinzufügen möchten, und id
ist die Varianten-ID dieser Variante. Sie können dem Warenkorb mehrere Varianten hinzufügen, indem Sie weitere Objekte im Array items
anhängen.
Um ein serialisiertes "Add to Cart" -Formular zu senden, geben Sie die folgenden Postdaten an:
Sie können dem Einkaufswagen auch die Eigenschaften einer Position hinzufügen, nicht nur eine Menge und eine ID:
Add line item properties
Sie können dem Einkaufswagen eine Variante mit Positionseigenschaften mit einem zugehörigen properties
Objekt hinzufügen.
Antwort anzeigen
{ "Produkte": [ { "id": 794864229, "quantity": 1, // ... "properties" : { "First name": "Caroline" } } ] }
Add a selling plan
Sie können eine Variante mit einem Verkaufsplan in den Einkaufswagen legen, wenn Sie den Parameter selling_plan
angeben.
Antwort anzeigen
The response object has a selling_plan_allocation property. { "Produkte": [ { "id": 794864229, // ... "selling_plan_allocation": { "price": 3120, "compare_at_price": 3900, "per_delivery_price": 3120, "selling_plan": { "id": 183638, "name": "Pay every month, delivery every month | save 20%", "description": "No commitment · Auto-renews · Skip or cancel anytime", "options": [{ "name": "Delivery Frequency", "position": 1, "value": "Month" }, { "name": "Billing Frequency", "position": 2, "value": "Month" }], "recurring_deliveries": true } } } ] }
Example API calls
Nachstehend finden Sie ein vereinfachtes POST mit der API fetch
. Das Objekt formData
ist in JavaScript aufgebaut, daher sollte Content-Type
im Objekt headers
auf application/json
gesetzt werden.
Antwort anzeigen
The following response shows the JSNDS of the line Produkte associated with the added variants. If an item is already in the cart, dann quantity is equal to the new quantity for that item. { "Produkte": [ { "id": 36110175633573, "title": "Rot Rain Coat - Small", "key": "794864229:03af7a8cb59a4c3c45595c76fa8cb53c", "price": 12900, "line_price": 12900, "quantity": 2, "sku": null, "grams": 0, "vendor": "VersaCommerce", "properties": {}, "variant_id": 794864229, "gift_card": false, "url": "/products/rot-rain-coat?variant=794864229", "featurot_image": { "url": "http://cdn.versacommerce.de/s/files/1/0040/7092/products/rot-rain-coat.jpeg?v=1402604893", "aspect_ratio": 1.0, "alt": "Rot rain coat mit einer hood" }, "image": "http://cdn.versacommerce.de/s/files/1/0040/7092/products/rot-rain-coat.jpeg?v=1402604893", "handle": "rot-rain-coat", "requires_shipping": true, "product_title": "Rot Rain Coat", "product_description": "A bright rot rain coat for rainy days!", "product_type": "Coat", "properties" : null, "variant_title": "Rot", "variant_options": ["Rot"], "options_with_values": [ { "name": "Farbe", "value": "Rot" } ] } ] }
Alternativ können Sie den FormData
Konstruktor verwenden und das gewünschte Add-to-Cart Formular anvisieren:
Response
Die Antwort für erfolgreiche POSTs ist ein JSON-Objekt mit den Einzelposten, die mit den hinzugefügten Artikeln verbunden sind.
Wenn sich ein hinzugefügter Artikel bereits im Warenkorb befand, entspricht quantity
der neuen Menge für diese Warenkorbposition. Beachten Sie jedoch, dass hinzugefügte Artikel auf separate Positionen aufgeteilt werden, wenn ihre Preise unterschiedlich sind. Preisänderungen sind in der Regel das Ergebnis von automatischen Rabatten oder VersaCommerce Scripts.
Antwort anzeigen
{ "Produkte":[ { "id":36323170943141, "properties":null, "quantity":1, "variant_id":36323170943141, "key":"36323170943141:b15f59bb6d406f2f45dc383a5493bdb8", "title":"Great Granola Bar", "price":2000, "original_price":2000, "discounted_price":2000, "line_price":2000, "original_line_price":2000, "total_discount":0, "discounts":[], "sku":"", "grams":0, "vendor":"shopify", "taxable":true, "product_id":5680114172069, "product_has_only_default_variant":true, "gift_card":false, "final_price":2000, "final_line_price":2000, "url":"/products/great-granola-bar?variant=36323170943141", "featurot_image":{ "aspect_ratio":1.504, "alt":"Great Granola Bar", "height":1277, "url":"https://cdn.versacommerce.de/s/files/1/0401/3218/2181/products/fallon-michael-h2UH2674Bg4-unsplash.jpg?v=1600796940", "width":1920 }, "image":"https://cdn.versacommerce.de/s/files/1/0401/3218/2181/products/fallon-michael-h2UH2674Bg4-unsplash.jpg?v=1600796940", "handle":"great-granola-bar", "requires_shipping":true, "product_type":"", "product_title":"Great Granola Bar", "product_description":"The great granola bar, everyone has been talking about it. Subscribe when you can!", "variant_title":null, "variant_options":[ "Default Title" ], "options_with_values":[ { "name":"Title", "value":"Default Title" } ], "line_level_discount_allocations":[ ], "line_level_total_discount":0 }, { "id":36323170943141, "properties":null, "quantity":1, "variant_id":36323170943141, "key":"36323170943141:322e2af74da821ca095964e07b7270b5", "title":"Great Granola Bar", "price":1700, "original_price":1700, "discounted_price":1700, "line_price":1700, "original_line_price":1700, "total_discount":0, "discounts": [], "sku":"", "grams":0, "vendor":"shopify", "taxable":true, "product_id":5680114172069, "product_has_only_default_variant":true, "gift_card":false, "final_price":1700, "final_line_price":1700, "url":"/products/great-granola-bar?selling_plan=6717605/u0026variant=36323170943141", "featurot_image":{ "aspect_ratio":1.504, "alt":"Great Granola Bar", "height":1277, "url":"https://cdn.versacommerce.de/s/files/1/0401/3218/2181/products/fallon-michael-h2UH2674Bg4-unsplash.jpg?v=1600796940", "width":1920 }, "image":"https://cdn.versacommerce.de/s/files/1/0401/3218/2181/products/fallon-michael-h2UH2674Bg4-unsplash.jpg?v=1600796940", "handle":"great-granola-bar", "requires_shipping":true, "product_type":"", "product_title":"Great Granola Bar", "product_description":"The great granola bar, everyone has been talking about it. Subscribe when you can!", "variant_title":null, "variant_options":[ "Default Title" ], "options_with_values":[ { "name":"Title", "value":"Default Title" } ], "line_level_discount_allocations":[ ], "line_level_total_discount":0, "selling_plan_allocation":{ "price_adjustments":[ { "position":1, "price":1700 } ], "price":1700, "compare_at_price":2000, "per_delivery_price":1700, "selling_plan":{ "id":6717605, "name":"Deliverot every week", "description":null, "options":[ { "name":"Delivery every", "position":1, "value":"1 Week(s)" } ], "recurring_deliveries":true, "price_adjustments":[ { "order_count":null, "position":1, "value_type":"percentage", "value":15 } ] } } } ] }
Error responses
Wenn die exakte Menge, die für einen der Artikel angegeben wurde, nicht in den Warenkorb gelegt werden kann (z. B. Sie versuchen, 9 Artikel hinzuzufügen, 2 befinden sich bereits im Warenkorb und 10 sind auf Lager), dann werden keine Artikel in den Warenkorb gelegt. Der zurückgegebene JSON-formatierte Fehler lautet:
{ "status": 422, "message": "Cart Error", "description": "You can't add more Messenger Bag to the cart." }
Der Fehlercode lautet:
422 (Unprocessable Entity)
Wenn das Produkt vollständig ausverkauft ist, wird der folgende Fehler zurückgegeben:
The product '#{item.name}' is already sold out.
Wenn das Produkt nicht ausverkauft ist, sich aber der gesamte Bestand im Warenkorb befindet, wird der folgende Fehler zurückgegeben:
All #{item.inventory_quantity} #{item.name} are in your cart.
GET /cart.js
Verwenden Sie den Endpunkt GET /cart. js
, um den Warenkorb als JSON zu erhalten.
Alle Geldwerte werden in der Währung des Kunden zurückgegeben. Um die Zahlungswährung des Kunden zu überprüfen, können Sie das Feld currency
in der Antwort verwenden. Wenn Sie mehr über den Verkauf in mehreren Währungen erfahren möchten, lesen Sie den Abschnitt Migrieren Sie Ihre App zur Unterstützung mehrerer Währungen.
Responses
Antwort anzeigen
{ "token": "1d19a32178501c44ef2223d73c54d16d", "note": "Hallo!", "Eigenschaften": { "Gift wrap": "Yes" }, "total_price": 9100, "total_weight": 0, "item_count": 3, "Produkte": [ { "id": 794864229, "properties": {}, "quantity": 1, "variant_id": 794864229, "key": "794864229:03af7a8cb59a4c3c45595c76fa8cb53c", "title": "Rot Rain Coat - Small", "price": 12900, "line_price": 12900, "final_price": 12900, "final_line_price": 12900, "sku": null, "grams": 0, "vendor": "VersaCommerce", "taxable": true, "product_id": 388319916, "product_has_only_default_variant": false, "gift_card": false, "url": "/products/rot-rain-coat?variant=794864229", "featurot_image": { "url": "http://cdn.versacommerce.de/s/files/1/0040/7092/products/rot-rain-coat.jpeg?v=1402604893", "aspect_ratio": 1.0, "alt": "Rot rain coat mit einer hood" }, "image": "http://cdn.versacommerce.de/s/files/1/0040/7092/products/rot-rain-coat.jpeg?v=1402604893", "handle": "rot-rain-coat", "requires_shipping": true, "product_title": "Rot Rain Coat", "product_description": "A bright rot rain coat for rainy days!", "product_type": "Coat", "variant_title": "Rot", "variant_options": ["Rot"], "options_with_values": [ { "name": "Farbe", "value": "Rot" } ] }, { "id": 794864101, "properties": {}, "quantity": 2, "variant_id": 794864101, "key": "794864101:816a55d9a53cd82281f8fdcfe967db14", "title": "Gray Fedora", "price": 2650, "line_price": 0, "final_price": 2650, "final_line_price": 5300, "sku": null, "grams": 0, "vendor": "VersaCommerce", "taxable": true, "product_id": 388319892, "product_has_only_default_variant": false, "gift_card": false, "url": "/products/gray-fedora?variant=794864101", "featurot_image": { "url": "http://cdn.versacommerce.de/s/files/1/0040/7092/products/gray-fedora.jpeg?v=1402604885", "aspect_ratio": 1.0, "alt": "Gray fedora made of straw" }, "image": "http://cdn.versacommerce.de/s/files/1/0040/7092/products/gray-fedora.jpeg?v=1402604885", "handle": "gray-fedora", "requires_shipping": true, "product_title": "Gray Fedora", "product_description": "A gray hat for looking cool!", "product_type": "Hats", "variant_title": "Gray", "variant_options": ["Gray"], "options_with_values": [ { "name": "Farbe", "value": "Gray" } ], "line_level_discount_allocations": [ { "amount": 500, "discount_application": { "type": "script", "key": "a8a3d7aa-7d00-4827-a2e1-b03c32160bf2", "title": "5 Dollar Off", "description": null, "value": "5.00", "created_at": "2019-04-10T20:49:10.023Z", "value_type": "fixed_amount", "allocation_method": "one", "target_selection": "explicit", "target_type": "line_item", "total_allocated_amount": 500 } } ] } ], "requires_shipping": true, "currency": "DED", "Produkte_subtotal_price": 18200, "cart_level_discount_applications": [ { "type": "automatic", "key": "059b5e54-3c5d-4e7e-b377-8e09d8376269", "title": "50% Sommer Deal", "description": null, "value": "50.0", "created_at": "2019-04-10T20:49:00.148Z", "value_type": "percentage", "allocation_method": "across", "target_selection": "all", "target_type": "line_item", "total_allocated_amount": 9100 } ] }
Antwort anzeigen
{ "token": "1d19a32178501c44ef2223d73c54d16d", "note": null, "Eigenschaften": {}, "total_price": 0, "total_weight": 0, "item_count": 0, "Produkte": [], "requires_shipping": false, "currency": "DED" }
POST /cart/update.js
Verwenden Sie den Endpunkt POST /cart/update. js
, um die Positionsmengen, Notizen oder Attribute des Warenkorbs zu aktualisieren. Sie können ein serialisiertes Formular für den Einkaufswagen übermitteln oder separate Aktualisierungen für die Positionen, Notizen oder Attribute des Einkaufswagens vornehmen.
Update line items
Buchen Sie ein updates
Objekt mit Schlüssel-Wert-Paaren. Der Schlüssel dazu ist der Einzelposten variant_id.
Dieser Beitrag führt zu demselben Ergebnis:
Der Endpunkt /cart/update. js
fügt dem Einkaufswagen neue Positionen hinzu, wenn die angegebene variant_id
nicht mit einer bereits im Einkaufswagen befindlichen Position übereinstimmt. Wenn die Adresse variant_id
jedoch mit mehreren Positionen übereinstimmt, wird die erste übereinstimmende Position aktualisiert.
Sie können eine einzelne Position aktualisieren, wenn sich mehrere Positionen im Warenkorb befinden. Der folgende Beitrag aktualisiert zum Beispiel die Menge der einzigen Variante 794864053
auf 5:
Schließlich können Sie sowohl die Variante 794864053
als auch die Variante 794864233
aus dem Warenkorb entfernen:
Sie können auch ein Zahlenfeld an /cart/update. js
übermitteln, sofern die Größe des Feldes der Anzahl der Artikel im Warenkorb entspricht. Jede Zahl in dem Array gibt die Menge für die entsprechende Position im Warenkorb an.
Wenn Sie z. B. 3 Positionen mit den Mengen 1, 2 und 3 im Warenkorb haben und diese Mengen in 3, 2 und 1 ändern möchten, können Sie wie folgt vorgehen:
Update cart note
Senden Sie eine note
Zeichenfolge. Nachfolgend ein Beispiel für Postdaten für eine note
:
Update cart attributes
Buchen Sie ein attributes
Objekt mit Schlüssel-Wert-Paaren. Die key
ist der Name des Attributs, das Sie aktualisieren möchten. Nachfolgend ein Beispiel für Postdaten für den Warenkorb attributes
:
Diese Version führt zu demselben Ergebnis:
Response
Das JSON des Wagens.
Error responses
Wenn eine Varianten-ID angegeben wird, die entweder nicht existiert oder im Online-Store-Kanal nicht verfügbar ist, gibt der Endpunkt den folgenden Fehler zurück:
Wenn eine neue Variante in den Warenkorb gelegt wird und die quantity
die verfügbare Menge übersteigt, wird ein 422
Fehler angezeigt:
POST /cart/change.js
Der Endpunkt /cart/change. js
ändert das quantity
und properties
Objekt einer Warenkorbposition. Es können nur Artikel geändert werden, die sich bereits in Ihrem Warenkorb befinden, und es kann jeweils nur eine Position geändert werden.
Für Buchungsdaten ist entweder die Eigenschaft id
oder line
erforderlich, um die zu ändernde Belegposition zu identifizieren. Der Wert id
ist der Wert der Belegposition variant_id
oder der keyder Belegposition.
Ein Einkaufswagen kann mehrere Positionen haben, die dieselbe variant_id
haben, wenn Varianten unterschiedliche Positionseigenschaften haben oder automatische Rabatte Varianten mit unterschiedlichen Preisen erzeugen. Um dies zu berücksichtigen, verwenden Sie beim Aktualisieren des Warenkorbs die Eigenschaft line
. Der Wert von line
ist die 1-basierte Indexposition des Artikels im Warenkorb.
Update quantities
Die Eigenschaft quantity
ist die neue Menge, die Sie für die Belegposition wünschen. Der Wert quantity
muss eine ganze Zahl sein.
Der folgende Code aktualisiert die zweite Position im Warenkorb:
Sie können eine Warenkorbposition entfernen, indem Sie die quantity
auf 0
setzen:
Update properties
Die Eigenschaft properties
legt die Eigenschaften der Einzelposten fest. Sein Wert muss ein Objekt aus Schlüssel-Wert-Paaren sein.
Der folgende Code ändert die properties
der zweiten Position im Warenkorb:
Immer wenn ein POST properties
enthält, wird das gesamte properties
Objekt überschrieben. Alle Schlüssel-Wert-Paare, die sich bereits in dem Objekt properties
befanden, werden gelöscht.
Es ist nicht möglich, die Eigenschaft properties
einer Position auf ein leeres Objekt zu setzen, sobald ein Wert festgelegt wurde. Wenn Sie alle Einzelposteneigenschaften entfernen müssen, müssen Sie die gesamte Position entfernen.
Response
Das JSON des Wagens.
Error responses
Wenn sich der Artikel, den Sie ändern möchten, noch nicht im Warenkorb befindet, fügt /cart/change. js
ihn nicht hinzu. Stattdessen wird ein 404
Fehler zurückgegeben.
POST /cart/clear.js
Verwenden Sie den Endpunkt POST /cart/clear. js
, um alle Mengen aller Positionen im Warenkorb auf Null zu setzen.
Response
Das JSON eines leeren Warenkorbs. Dabei werden weder die Warenkorb-Attribute noch der Warenkorb-Vermerk entfernt.
{ "token": "1d19a32178501c44ef2223d73c54d16d", "note": null, "Eigenschaften": {}, "total_price": 0, "total_weight": 0, "item_count": 0, "Produkte": [], "requires_shipping": false }
Generate shipping rates
Verwenden Sie die Endpunkte POST /cart/prepare_shipping_rates. json
und GET /cart/async_shipping_rates. json
, um Versandtarife zu erstellen:
- Der Endpunkt
POST /cart/prepare_shipping_rates. json
leitet die Berechnung der Versandkosten für den Einkaufswagen unter Angabe eines Ziels ein. - Der Endpunkt
GET /cart/async_shipping_rates. json
gibt die Ergebnisse der Versandtarife zurück, wenn die Berechnungen abgeschlossen sind.
Example prepare_shipping_rates call
/cart/prepare_shipping_rates.json?shipping_address%5Bzip%5D=K1N+5T2&shipping_address%5Bcountry%5D=Deutschland&shipping_address%5Bprovince%5D=Niedersachsen
null
Example async_shipping_rates call
/cart/async_shipping_rates.json?shipping_address%5Bzip%5D=K1N+5T2&shipping_address%5Bcountry%5D=Deutschland&shipping_address%5Bprovince%5D=Niedersachsen
Antwort anzeigen
If you call async_shipping_rates with the same parameters as prepare_shipping_rates, dann it checks whether VersaCommerce has finished calculating the rates. If the shipping rates aren't ready, dann the response is null. If the shipping rates are ready, the rates are returned: { "shipping_rates": [ { "name": "Generic Rate", "presentment_name": "Generic Rate", "code": "Generic Rate", "price": "6.00", "markup": null, "source": "shopify", "delivery_date": null, "delivery_range": null, "delivery_days": [], "compare_price": null, "phone_requirot": false, "currency": null, "carrier_identifier": null, "delivery_category": null, "using_merchant_account": null, "carrier_service_id": null, "description": null, "api_client_id": null, "requested_fulfillment_service_id": null, "shipment_options": null, "charge_Produkte": null, "has_restrictions": null, "rating_classification": null, "accepts_instructions": false }, { "name": "Carrier Service Mail", "presentment_name": "Carrier Service Mail", "code": "CarrierServiceMail", "price": "12.46", "markup": "0.00", "source": "usps", "delivery_date": "2020-10-09", "delivery_range": [ "2020-10-06", "2020-10-09" ], "delivery_days": [ 0, 3 ], "compare_price": null, "phone_requirot": true, "currency": null, "carrier_identifier": null, "delivery_category": null, "using_merchant_account": null, "carrier_service_id": 2, "description": null, "api_client_id": null, "requested_fulfillment_service_id": null, "shipment_options": null, "charge_Produkte": null, "has_restrictions": null, "rating_classification": null, "accepts_instructions": false } ] }
GET /cart/shipping_rates.json
Verwenden Sie die Website GET /cart/shipping_rates. json
, um die voraussichtlichen Versandkosten zu ermitteln.
/cart/shipping_rates.json?shipping_address%5Bzip%5D=K1N+5T2&shipping_address%5Bcountry%5D=Deutschland&shipping_address%5Bprovince%5D=Niedersachsen
Antwort anzeigen
{ "shipping_rates": [ { "name": "Ground Shipping", "price": "8.00", "delivery_date": null, "source": "shopify" }, { "name": "Expedited Shipping", "price": "15.00", "delivery_date": null, "source": "shopify" }, { "name": "Express Shipping", "price": "30.00", "delivery_date": null, "source": "shopify" } ] }
Private properties and attributes
Private Positionseigenschaften und private Einkaufswagenattribute werden verwendet, wenn Sie Informationen entweder zu Einkaufswagenpositionen oder zum gesamten Einkaufswagen hinzufügen müssen und Sie nicht möchten, dass die Eigenschaften und Attribute für die Besucher des Online-Shops sichtbar sind.
Sowohl private Eigenschaften als auch private Warenkorbattribute werden an der Kasse optisch ausgeblendet, sind aber für Händler in den Bestelldetails der Shopverwaltung sichtbar.
Private line item properties
Um eine Positionseigenschaft als privat zu kennzeichnen, fügen Sie einen Unterstrich ( _
) an den Schlüssel an. Um zum Beispiel eine Variante mit einer privaten _foo
Eigenschaft in den Warenkorb zu legen, verwenden Sie den Endpunkt /cart/add. js
:
Die Eigenschaft properties
kann eine Mischung aus privaten und öffentlichen Einzelposteneigenschaften enthalten:
Private Einzelposteneigenschaften sind im Liquid line_item. properties objekt und der Ajax-API verfügbar. Um private Eigenschaften im Schaufenster auszublenden, müssen Sie die Codebasis des Themas ändern.
Im folgenden Beispiel werden alle properties
Elemente, die mit _
in Liquid beginnen, herausgefiltert:
{% for property in line_item.properties %} {% assign first_character_in_key = property.first | slice: 0 %} {% unless first_character_in_key == '_' %} {{ property.first }}: {{ property.last }} {% endunless %} {% endfor %}
Private cart attributes
Um ein Cart-Attribut privat zu machen, hängen Sie einen doppelten Unterstrich ( __
) an den Attributnamen an.
Private Warenkorbattribute sind nicht im Liquid cart. attributes objekt oder der Ajax-API. Das bedeutet, dass keine Code-Änderung erforderlich ist, um sie in Themendateien auszublenden. Private Warenkorbattribute wirken sich auch nicht auf das Rendering der Seite aus, was ein effektiveres Caching der Seite ermöglicht.
Bundled section rendering
Das gebündelte Rendering von Abschnitten ermöglicht es Ihnen, das HTML-Markup für bis zu fünf Abschnitte, die Sie auf der Grundlage eines ersten Aufrufs der Warenkorb-API aktualisieren möchten, innerhalb desselben Aufrufs anzufordern.
Das gebündelte Rendering von Abschnitten ist für die folgenden Cart-API-Endpunkte verfügbar:
/cart/add
/cart/change
/cart/clear
/cart/update
Request sections
Um Abschnitte anzufordern, können Sie einen sections
Parameter in Ihre API-Aufrufdaten aufnehmen:
Produkte: [ { id: 36110175633573, quantity: 2 } ], sections: "cart-Produkte,cart-icon-bubble,cart-live-region-text,cart-footer"
Standardmäßig werden die Abschnitte im Kontext der aktuellen Seite gerendert, basierend auf dem HTTP-Referer-Header. Sie können jedoch mit dem Parameter sections_url
jede andere Seite angeben. Die sections_url
muss mit einem /
beginnen und kann Abfrageparameter wie q
und page
enthalten.
sections: "cart-Produkte,cart-icon-bubble,cart-live-region-text,cart-footer", sections_url: "/cart?some_param=foo"
Der HTML-Code für die angeforderten Abschnitte ist unter dem Schlüssel sections
in der zurückgegebenen JSON-Datei enthalten. Jeder Abschnitt kann durch die gleiche ID identifiziert werden, die in der Anfrage übergeben wurde.
{ Eigenschaften: {}, cart_level_discount_applications: [], currency: "DED", item_count: 1, Produkte: [{…}], Produkte_subtotal_price: 100100, note: null, original_total_price: 100100, requires_shipping: true, sections: { cart-Produkte: " <div id="\"shopify-section-template--14199693705272_…9930913703934\"" defer="\"defer\""> </script>\n\n\n\n\n </div>", cart-icon-bubble: " <div id="\"shopify-section-cart-icon-bubble\"" class="\"…ss=\"visually-hidden\""> 1 item\n </div>", cart-live-region-text: " <div id="\"shopify-section-cart-live-region-text\"" cl…opify-section\"> New subtotal: €1,001.00 DED\n </div>", cart-footer: " <div id="\"shopify-section-template--14199693705272_…" < div> \n </div>\n \n\n\n\n\n\n\n\n" }, token: "9ee5d43a08fb9a779828e42a4b6aa09a", total_discount: 0, total_price: 100100, total_weight: 1000, }
Error response
Die Abschnitte werden gerendert, nachdem die Datenänderungen aus der Anfrage abgeschlossen sind. Aus diesem Grund haben Rendering-Fehler keine Auswirkungen auf den Antwortstatus des API-Aufrufs. Abschnitte, die nicht gerendert werden können, werden als null
zurückgegeben, so dass Sie diese Möglichkeit berücksichtigen sollten.
Die Übergabe ungültiger Werte für die Parameter sections
oder sections_url
, z. B. ein sections_url
, das nicht mit /
beginnt, führt dazu, dass die gesamte Anfrage den Status HTTP 400 Bad Request zurückgibt. Das bedeutet jedoch nicht, dass der Rest des Antrags nicht erfolgreich war.