DOCS

Berechnen Sie landed cost - GraphQL

Berechnen Sie eine landed cost

Berechnen Sie Zölle, Steuern und Gebühren mit GraphQL.

GraphQL

Zonos berechnet die gesamte landed cost für internationale Sendungen – einschließlich Zöllen, Steuern und zusätzlichen Gebühren, die von Zollbehörden, Maklern oder Spediteuren erhoben werden. In den meisten Fällen garantieren wir diese Berechnungen, indem wir die endgültige Rechnung selbst bezahlen und Ihnen genau das berechnen, was wir kalkuliert haben. In einigen Fällen können Sie unsere landed cost ohne Garantie nutzen, was bedeutet, dass Sie die Verantwortung für etwaige Unterschiede zwischen unserer Berechnung und den tatsächlichen Gebühren übernehmen.

Bereiten Sie die Anfrage vor 

Die Berechnung einer landed cost API erfordert mehrere Eingaben, die wir in Workflows organisiert haben. Sobald dies abgeschlossen ist, können Sie eine einzelne Anfrage stellen, um eine landed cost basierend auf dem Versandziel, den Artikeln im Warenkorb und den Versanddetails zurückzugeben.

Jeder Workflow hat seine eigenen erforderlichen Eingaben. GraphQL ermöglicht es Ihnen, mehr Daten als nötig zu übermitteln, aber nur bestimmte Felder sind erforderlich, um eine landed cost zurückzugeben. Diese sind in unserem API-Referenzdokument klar gekennzeichnet, um alle möglichen Felder zu sehen.

Bitte beachten Sie, dass einige Felder bedingt erforderlich sind, wenn Sie möchten, dass Ihre Berechnung garantiert wird.

Im Folgenden haben wir alle Felder aufgeführt, die erforderlich sind, um eine garantierte landed cost zu berechnen. Stellen Sie sicher, dass diese Informationen vor der Anfrage enthalten sind.

Erforderliche Eingaben für garantierte Berechnungen

partyCreateWorkflowInput

Das partyCreateWorkflowInput identifiziert die beteiligten Parteien und deren Standorte. Sehen Sie das vollständige Schema in unserer GraphQL API Referenz. Erforderliche Felder sind:

  • location
    • administrativeAreaCode: Der Bundesstaat oder Provinzcode, in zwei Buchstaben. Nur erforderlich für CA und BR.
    • countryCode: Der zweibuchstabige ISO-Code des Landes.
    • line1: Die erste Zeile der Adresse.
    • postalCode: Die Postleitzahl oder ZIP-Code der Adresse.
  • person
    • email: Die E-Mail-Adresse der Person.
    • firstName: Der Vorname der Person.
    • lastName: Der Nachname der Person.
    • phone: Die Telefonnummer der Person.
  • type
    • DESTINATION: Die location & person Informationen für das Versandziel.
    • ORIGIN: Die location Informationen für den Versandursprung. Die person, die mit dem Versandursprung verbunden ist, ist nicht erforderlich.
itemCreateWorkflowInput

Das itemCreateWorkflowInput listet die Artikel im Warenkorb auf. Es gibt viele optionale Felder (sehen Sie alle Möglichkeiten in unserer API-Referenz), aber die folgenden Felder sind erforderlich.

  • amount: Der Wert eines einzelnen Produkts, das versendet wird, bevor es mit der Menge multipliziert wird. Bitte beachten Sie, dass dies von der postalischen Definition eines Postartikels abweicht. Wenn die quantity des Artikels 1 beträgt, ist dies der Gesamtkosten des Artikels. Wenn die quantity des Artikels >1 beträgt, multipliziert die API den Artikel amount mit der quantity, um die Gesamtsumme für den Artikel zu erhalten. Geben Sie nicht den Gesamtpreis aller Einheiten des Artikels im amount an.
  • currencyCode: Der Währungscode für den Artikelbetrag.
  • quantity: Die Menge des Artikels. Die API multipliziert den Artikel amount mit der quantity, um die Gesamtsumme für den Artikel zu erhalten.
  • countryOfOrigin: Das Land, in dem der Artikel hergestellt wurde.
  • Eines der folgenden (je nachdem, was als Ihre Artikel-Schlüsselpräferenz festgelegt ist). Ihr Artikel-Schlüssel verbindet Informationen, die im Katalog gespeichert sind, mit dem Artikel im Warenkorb und wird während der Etikettenerstellung verwendet.)
    • productId: Die Produkt-ID des Artikels.
    • sku: Die SKU des Artikels.

Die measurements (WEIGHT, LENGTH, WIDTH, HEIGHT) sind nur erforderlich, wenn Sie Ihre Artikel beim Erhalten einer Versandbewertung kartonisieren möchten.

cartonsCreateWorkflowInput

Das cartonsCreateWorkflowInput erfordert nur die Eingabe selbst. Sehen Sie das vollständige Schema in unserer GraphQL API Referenz, um alle Werte zu sehen, die übergeben werden können. Es ist wichtig, die Abmessungen und das Gewicht des Kartons anzugeben, wenn Zonos die Versandkosten berechnet.

shipmentRatingCreateWorkflowInput

Dieser Workflow wird verwendet, wenn Sie bereits den Versanddienst und die Kosten kennen; wenn Sie möchten, dass Zonos diese Kosten für die von Ihnen aktivierten Dienste berechnet, ersetzen Sie diesen Workflow durch den shipmentRatingCalculateWorkflow.

Das shipmentRatingCreateWorkflowInput kommuniziert die Versandkosten. Sehen Sie das vollständige Schema in unserer GraphQL API Referenz. Erforderliche Felder sind:

  • amount: Die Versandkosten.
  • currencyCode: Der Währungscode der Versandkosten.
  • serviceLevelCode: Der Code, der das verwendete Versanddienstleistungsniveau angibt.
landedCostWorkFlowInput

Das landedCostWorkFlowInput bestimmt die Präferenzen für die Berechnung der landed cost. Sehen Sie das vollständige Schema in unserer GraphQL API Referenz. Erforderliche Felder sind:

  • calculationMethod: Gibt Ihre Präferenz an, wie Sie versenden möchten: DDP (vorausbezahlte Zölle und Steuern) oder DAP (entweder Zölle und Steuern werden bei der Lieferung bezahlt, oder wenn ein Rückerstattungsschema gilt, werden sie über eine Steuer-ID erstattet).
    • Wenn Sie unsere landed cost-Garantie nutzen, sollte dieser Wert immer DDP_PREFERRED sein, was ein DDP-Angebot bereitstellt, wenn möglich, und ein DAP-Angebot, wenn ein DDP-Angebot nicht zulässig ist. Die Verwendung von DAP anstelle dessen kann dazu führen, dass die Landed Costs nicht mehr garantiert sind, da dies typischerweise zu Zöllen und Steuern führt, die bei der Lieferung bezahlt werden.
  • endUse: Gibt an, ob die Waren an ein anderes Unternehmen verkauft werden (FOR_RESALE) oder für den Endverbrauch mit einem Verbraucher bestimmt sind (NOT_FOR_RESALE).
  • tariffRate: Gibt die Methode an, die Zonos zur Berechnung der Zolltarife für dieses Angebot verwenden soll, falls eine Reihe von Zolltarifen angewendet werden könnte. *Bei Verwendung unserer landed cost-Garantie sollte dies immer ZONOS_PREFERRED sein.

Berechnete Versandkosten hinzufügen: Wenn Sie möchten, dass Zonos die Versandkosten für Sie berechnet, ersetzen Sie den shipmentRatingCreateWorkflow durch den shipmentRatingCalculateWorkflow. Fügen Sie den cartonizeWorkflow hinzu, wenn Sie möchten, dass Zonos Ihre Artikel in Kartons sortiert bevor die Versandkosten ermittelt werden (verwendet für dimensionales Gewicht).

HS-Code und Versandoptionen

GraphQL bietet Ihnen die Flexibilität, die Anfrage nach Ihren Wünschen anzupassen. Es gibt einige Optionen, wie Sie HS-Codes und Versandkosten in die Anfrage einbeziehen können.

HS-Codes

HS-Codes beeinflussen die Zolltarife und sind daher erforderlich. Sie können den HS-Code für jeden Artikel übergeben oder Classify diese generieren lassen.

HS-Codes für jeden Artikel übergeben

Zonos empfiehlt dringend die Verwendung produktspezifischer HS-Codes, da dies zu einem genaueren landed cost-Angebot führt. Wenn Sie Ihre HS-Codes kennen, übergeben Sie den hsCode für jeden item während des itemCreateWorkflow.

Wenn Sie einen HS-Code übergeben, validiert Zonos diesen in Echtzeit, wenn es ein landed cost-Angebot erstellt. Falls der von Ihnen angegebene HS-Code ungültig ist (d.h. nicht existiert), wird Zonos Ihr Element neu-classify und den neuen, gültigen HS-Code verwenden, anstatt den von Ihnen bereitgestellten.

Wenn Sie Hilfe bei der Generierung von HS-Codes für Ihre Produkte benötigen, erfahren Sie mehr über Zonos Classify und wie Sie eine Klassifizierung anfordern.

HS-Codes mit Classify generieren

Wenn Sie Zonos keinen hsCode übergeben, prüfen wir zunächst Zonos Catalog, ob für Ihren Artikel ein HS-Code gespeichert ist. Falls nicht, rufen wir Classify auf, um eine Klassifikation zu erstellen, die Ihre landed cost-Berechnung basierend auf den folgenden itemCreateWorkflow-Produktdetailfeldern unterstützt: description, category und material. Falls Ihre Produktdetailfelder nicht detailliert genug sind, um eine Klassifikation anhand von Classify's Confidence-Scoring zu erstellen, wird der Standard-HS-Code verwendet, der Ihrer Store zugewiesen wurde.

Versandkosten

Sowohl das Versanddienstleistungsniveau als auch die Kosten beeinflussen die Zölle, Steuern und Gebühren und sind daher erforderlich. Zonos kann den Versand berechnen oder Sie können uns diese Daten übergeben.

Versandkosten berechnen

Um Zonos die Versandkosten berechnen zu lassen, verwenden Sie den shipmentRatingCalculateWorkflow. Die in der berechneten Versandantwort zurückgegebenen Versandoptionen korrespondieren mit den serviceLevels, die Sie in den Versandprofilen im Dashboard zugewiesen haben.

Fehlerbehebung: Wenn Sie in der Antwort ein serviceLevel erwarten, es aber nicht erscheint, stellen Sie bitte sicher, dass das serviceLevel aktiviert ist und vom gewählten method unterstützt wird.

Fügen Sie den cartonizeWorkflow hinzu (der keine Eingaben hat), wenn Sie möchten, dass Zonos Ihre Artikel vor der Ermittlung der Versandkosten in Kartons sortiert (verwendet für dimensional weight).

Versandkosten übergeben

Wenn Sie das serviceLevel und den amount für eine Sendung kennen, können Sie diese im Abschnitt shipmentRatingCreateWorkflow der Anfrage übergeben. Wir verwenden diese Werte, um etwaige anfallende Carrier-Gebühren zu berechnen und diese in der Antwort zurückzugeben.

Anfrage eines landed cost via API 

Sobald Sie die erforderlichen Eingabedaten haben, senden Sie die GraphQL-Mutation an den API-Endpunkt mit Ihrer gewählten Client-Bibliothek oder Ihrem Tool. Hier sind einige Beispiele, wie Sie die Mutation strukturieren können.

Verwenden Sie diese Anfrage, wenn Zonos die Versandkosten im Rahmen der Landed Cost-Anfrage berechnen soll. Wir berechnen dann Zölle und Steuern auf den Versand, falls diese vom Zielland erhoben werden.

Mutation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
mutation CalculateLandedCost(
  $parties: [PartyCreateWorkflowInput!]!
  $items: [ItemCreateWorkflowInput!]!
  $landedCostConfig: LandedCostWorkFlowInput!
) {
  partyCreateWorkflow(input: $parties) {
    type
    id
    organization
  }
  itemCreateWorkflow(input: $items) {
    id
    amount
    productId
  }
  cartonizeWorkflow {
    id
    type
    items {
      item {
        id
      }
    }
  }
  shipmentRatingCalculateWorkflow {
    id
    amount
  }
  landedCostCalculateWorkflow(input: $landedCostConfig) {
    id
    duties {
      amount
      currency
      note
    }
    taxes {
      amount
      currency
      note
    }
    fees {
      amount
      currency
      note
    }
  }
}

Variablen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{
  "parties": [
    {
      "location": {
        "administrativeArea": "Utah",
        "administrativeAreaCode": "UT",
        "countryCode": "US",
        "line1": "345 N 2450 E",
        "line2": "#151",
        "locality": "St George",
        "postalCode": "84790"
      },
      "type": "ORIGIN"
    },
    {
      "location": {
        "administrativeArea": "New South Wales",
        "administrativeAreaCode": "NSW",
        "countryCode": "AU",
        "line1": "123 George Street",
        "line2": "Apartment 5B",
        "locality": "Sydney",
        "postalCode": "2000"
      },
      "person": {
        "email": "aussie.customer@gmail.com",
        "firstName": "James",
        "lastName": "Thompson",
        "phone": "+61412345678",
        "companyName": "Sydney Trading Co",
        "metadata": { "key": "customer_type", "value": "premium" }
      },
      "type": "DESTINATION"
    },
    {
      "type": "PAYOR",
      "location": {
        "administrativeArea": "Victoria",
        "administrativeAreaCode": "VIC",
        "countryCode": "AU",
        "latitude": -37.8136,
        "line1": "456 Collins Street",
        "line2": "Suite 12",
        "locality": "Melbourne",
        "longitude": 144.9631,
        "postalCode": "3000"
      },
      "person": {
        "email": "billing@reallysilkstore.com.au",
        "firstName": "Sarah",
        "lastName": "Mitchell",
        "phone": "+61398765432",
        "companyName": "Really Silk Store",
        "metadata": { "key": "billing_contact", "value": "primary" }
      }
    }
  ],
  "items": [
    {
      "amount": 120,
      "currencyCode": "USD",
      "countryOfOrigin": "US",
      "quantity": 1,
      "productId": "productId1",
      "hsCode": null,
      "description": "leather wallet",
      "measurements": [
        { "type": "WIDTH", "value": 1, "unitOfMeasure": "CENTIMETER" },
        { "type": "LENGTH", "value": 2, "unitOfMeasure": "CENTIMETER" },
        { "type": "HEIGHT", "value": 4, "unitOfMeasure": "CENTIMETER" },
        { "type": "WEIGHT", "value": 1, "unitOfMeasure": "POUND" }
      ]
    },
    {
      "amount": 55,
      "currencyCode": "USD",
      "countryOfOrigin": "US",
      "quantity": 1,
      "productId": "productId2",
      "hsCode": "6206.30",
      "description": "t-shirt",
      "measurements": [
        { "type": "WIDTH", "value": 4, "unitOfMeasure": "CENTIMETER" },
        { "type": "LENGTH", "value": 4, "unitOfMeasure": "CENTIMETER" },
        { "type": "HEIGHT", "value": 5, "unitOfMeasure": "CENTIMETER" },
        { "type": "WEIGHT", "value": 1.5, "unitOfMeasure": "POUND" }
      ]
    }
  ],
  "landedCostConfig": {
    "calculationMethod": "DDP_PREFERRED",
    "endUse": "NOT_FOR_RESALE",
    "tariffRate": "ZONOS_PREFERRED"
  }
}

Antwort

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
{
  "data": {
    "partyCreateWorkflow": [
      {
        "type": "ORIGIN",
        "id": "party_01044774-758f-4021-b8dd-e17d97609647",
        "organization": "organization_1ff864e0-58cf-4efa-9031-e8c323cf4c0e"
      },
      {
        "type": "DESTINATION",
        "id": "party_0m6wgfjmhbnf2",
        "organization": "organization_1ff864e0-58cf-4efa-9031-e8c323cf4c0e"
      },
      {
        "type": "PAYOR",
        "id": "party_0m6wgfjn5bnfh",
        "organization": "organization_1ff864e0-58cf-4efa-9031-e8c323cf4c0e"
      }
    ],
    "itemCreateWorkflow": [
      {
        "id": "item_0m6wgfjpfw9fz",
        "amount": 120,
        "productId": "productId1"
      },
      {
        "id": "item_0m6wgfjpfw9g0",
        "amount": 55,
        "productId": "productId2"
      }
    ],
    "cartonizeWorkflow": [
      {
        "id": "carton_0m6wgfme53aqb",
        "type": "PACKAGE",
        "items": [
          {
            "item": {
              "id": "item_0m6wgfjpfw9g0"
            }
          },
          {
            "item": {
              "id": "item_0m6wgfjpfw9fz"
            }
          }
        ]
      }
    ],
    "shipmentRatingCalculateWorkflow": [
      {
        "id": "shipment_rating_0m6wgfmghvhh1",
        "amount": 24.8864
      }
    ],
    "landedCostCalculateWorkflow": [
      {
        "id": "landed_cost_7730b476-1307-4d14-8f76-3b37bd162054",
        "duties": [],
        "taxes": [
          {
            "amount": 5.5,
            "currency": "USD",
            "note": null
          },
          {
            "amount": 0.7822,
            "currency": "USD",
            "note": null
          },
          {
            "amount": 12,
            "currency": "USD",
            "note": null
          },
          {
            "amount": 1.7065,
            "currency": "USD",
            "note": null
          }
        ],
        "fees": [
          {
            "amount": 0,
            "currency": "USD",
            "note": null
          },
          {
            "amount": 0.8,
            "currency": "USD",
            "note": null
          },
          {
            "amount": 0,
            "currency": "USD",
            "note": null
          }
        ]
      }
    ]
  },
  "errors": []
}

Nächster Schritt: Eine Bestellung erstellen

Nachdem Sie einen landed cost berechnet und die landedCostId aus der API-Antwort erhalten haben, sollten Sie eine Bestellung erstellen, um die Transaktion im Zonos-System abzuschließen. Verwenden Sie die orderCreate-Mutation und übergeben Sie die landedCostId aus Ihrem Angebot. Erfahren Sie mehr über Bestellungen erstellen.


Fordern Sie einen landed cost im Dashboard an 

Sie können auch die Landekosten direkt im Zonos Dashboard berechnen, ohne die API zu verwenden. Dies ist hilfreich für das Testen von Berechnungen, das Trainieren Ihres Teams oder das schnelle Erhalten von Angeboten für Kundenanfragen.

Das Dashboard verwendet die gleichen API-Endpunkte, die oben beschrieben sind, sodass die Ergebnisse mit denen übereinstimmen, die Sie durch direkte API-Aufrufe erhalten würden. Dies macht es zu einer großartigen Möglichkeit, Ihre API-Integration zu validieren oder zu erkunden, wie sich verschiedene Eingaben auf die Berechnungen auswirken.

Verwendung des Dashboard-Rechners

Mit dem landed cost-Rechner im Dashboard können Sie Angebote mit berechneten Versandkosten erhalten, Angebote mit bekannten Versandkosten erstellen oder mehrere Angebote in großen Mengen verarbeiten.

Verwenden Sie diesen Ablauf, wenn Sie den Versanddienstleistungsgrad und die Kosten für Ihre Sendung kennen.

  1. Gehen Sie zu DashboardBestellungenAngebote
  2. Klicken Sie auf Neues Angebot
  3. Optional — Ändern Sie den Standort Ihrer Absenderadresse
  4. Wählen Sie ein Bestimmungsland aus dem Dropdown-Menü
  5. Geben Sie den Versandbetrag ein
    • Der Dienstleistungsgrad ist optional; wenn Sie ihn hinzufügen, können wir die anfallenden Gebühren des Versanddienstleisters berechnen
  6. Fügen Sie die Artikeldetails für die Sendung hinzu
    • Wenn Sie eine Beschreibung eingeben, klassifizieren wir automatisch classify das Produkt und generieren einen HS-Code
    • Sie können den generierten HS-Code bei Bedarf überschreiben
    • Für mehrere Artikel klicken Sie auf Speichern und weiteren hinzufügen. Andernfalls klicken Sie auf Speichern
  7. Optional — Klicken Sie auf Weitere Optionen, um zu ändern:
    • Verkaufstyp auf Zum Wiederverkauf
    • Liefermodus auf Lieferung ohne Zollgebühren
  8. Klicken Sie auf Angebot einholen
    • Um Änderungen vorzunehmen, klicken Sie auf Formular bearbeiten und ändern Sie die Details
    • Klicken Sie erneut auf Angebot einholen, um zu aktualisieren

Ein landed cost-Angebot wird rechts angezeigt, einschließlich Produkt-, Versand- und Importkosten. Erweitern Sie das Angebot, um detaillierte Aufschlüsselungen von Artikeln, Versand, Zöllen, Steuern und Gebühren zu sehen. Alle Angebote werden auf der Angebotsseite für zukünftige Referenzen gespeichert.

Vorhandene Angebote bearbeiten: Klicken Sie auf Angebot erneut, um ein vorhandenes Angebot zu ändern, anstatt von vorne zu beginnen.

Vorteile der Verwendung des Dashboards

  • Kein Programmieren erforderlich — Generieren Sie Angebote über eine benutzerfreundliche Oberfläche
  • Teamausbildung — Helfen Sie nicht-technischen Teammitgliedern, die Komponenten des landed cost zu verstehen
  • API-Validierung — Überprüfen Sie, ob Ihre API-Integration die erwarteten Ergebnisse liefert
  • Kundensupport — Schnell Angebote für Kundenanfragen generieren
  • Massenverarbeitung — Mehrere Berechnungen effizient bearbeiten (demnächst verfügbar)

Die Angebote im Dashboard enthalten die gleichen detaillierten Aufschlüsselungen, die über die API verfügbar sind, und sind somit eine hervorragende Ergänzung zu Ihrer automatisierten Integration.

War diese Seite hilfreich?