DOCS

Calculate 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 Sendungen, die Zölle, Steuern und alle zusätzlichen Gebühren umfassen, die von Zollbehörden, Maklern oder Versanddienstleistern erhoben werden können. Wir garantieren diese Berechnungen oft, indem wir die Zoll-, Steuer- und Gebührenrechnung selbst bezahlen, während wir Ihnen genau das berechnen, was wir kalkulieren. In seltenen Fällen können unsere Berechnungen ohne unsere Garantie verwendet werden, wobei Sie die Differenz zwischen unserer Berechnung und der Zoll- und Steuerrechnung übernehmen.

Bereiten Sie die Eingabedaten für die Mutation vor 

Die Berechnung einer landed cost über die GraphQL API umfasst mehrere Schritte; wir haben diese Schritte in Workflows organisiert. Am Ende haben Sie alles, was Sie benötigen, um einen Anruf zu tätigen, um eine landed cost basierend auf dem Versandziel, den Artikeln im Warenkorb und dem Versand zu erhalten.

Jeder Workflow benötigt spezifische Eingabedaten. GraphQL ermöglicht es Ihnen, mehr Informationen als erforderlich einzuschließen; bitte beziehen Sie sich auf unser vollständiges API-Referenzdokument, um alle möglichen Felder zu sehen. Erforderliche Felder sind in unserem API-Referenzdokument als solche gekennzeichnet, aber dieses Zeichen gilt nur für Felder, die für die Funktionalität erforderlich sind. Einige zusätzliche Felder sind erforderlich, wenn Sie unsere Garantie nutzen.

Im Folgenden haben wir alle erforderlichen Felder für die Berechnung einer garantierten landed cost aufgelistet. Stellen Sie sicher, dass Sie diese Informationen bereit haben.

Erforderliche Eingaben für garantierte Berechnungen

partyCreateWorkflowInput

Der 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

Der 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 Preis des Artikels.
  • currencyCode: Der Währungs-Code für den Artikelbetrag.
  • quantity: Die Menge des Artikels.
  • Eines der folgenden (je nachdem, was als Ihre Artikel-Schlüssel-Prä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.

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.

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

  • amount: Die Versandkosten.
  • currencyCode: Der Währungs-Code der Versandkosten.
  • serviceLevelCode: Der Code, der das verwendete Versanddienstleistungsniveau in der Versandbewertung angibt.
landedCostWorkflowInput

Der landedCostWorkflowInput diktiert 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 werden, da dies typischerweise bedeutet, dass Zölle und Steuern 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 (NOT_FOR_RESALE) bestimmt sind.
  • tariffRate: Gibt die Methode an, die Zonos zur Berechnung der Zolltarife für dieses Angebot verwenden sollte, falls eine Reihe von Zolltarifen angewendet werden könnte. *Bei Verwendung unserer landed cost-Garantie sollte dies immer ZONOS_PREFERRED sein.

Berechnen Sie die Versandkosten: 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).

Optionen bei der Berechnung einer landed cost

GraphQL gibt Ihnen die Flexibilität, die Anfrage nach Ihren Wünschen anzupassen. Es gibt ein paar 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 übermitteln oder Classify sie generieren lassen.

HS-Codes für jeden Artikel übermitteln

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

Wenn Sie einen HS-Code übermitteln, wird Zonos ihn bei der Erstellung eines landed cost-Angebots sofort validieren. Wenn der von Ihnen angegebene HS-Code ungültig ist (d.h. er existiert nicht), wird Zonos Ihren Artikel sofort neu-classify und den neuen, gültigen HS-Code anstelle des von Ihnen angegebenen verwenden.

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 können.

HS-Codes mit Classify generieren

Wenn Sie Zonos keinen hsCode übermitteln, überprüfen wir zunächst den Zonos Katalog, um zu sehen, ob Sie einen HS-Code für Ihren Artikel gespeichert haben. Wenn nicht, rufen wir Classify auf, um eine Klassifizierung zu erstellen, die Ihre landed cost-Berechnung basierend auf den folgenden itemCreateWorkflow-Produktdetailfeldern unterstützt: description, category und material. Wenn Ihre Produktdetailfelder nicht detailliert genug sind, um eine Klassifizierung basierend auf Classify's Vertrauensbewertung zu generieren, wird der Standard-HS-Code verwendet, der Ihrem Geschäft zugewiesen ist.

Standardmäßig wird der von Classify generierte hsCode nicht in der Antwort zurückgegeben, wenn Sie keinen hsCode angeben und wir Classify aufrufen, da er nur intern zur Generierung Ihrer landed cost verwendet wird. Wenn Sie jedoch ein Classify-Abonnement haben, geben wir den HS-Code von Classify's in Ihrer landed cost-Antwort zurück.

Versandkosten

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

Versandkosten berechnen

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

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

Fügen Sie das cartonizeWorkflow (das keine Eingaben erfordert) hinzu, wenn Sie möchten, dass Zonos Ihre Artikel sortiert in Kartons, bevor die Versandkosten ermittelt werden (verwendet für dimensionales Gewicht.

Versandkosten übermitteln

Wenn Sie das serviceLevel und den amount für eine Sendung kennen, können Sie diese im shipmentRatingCreateWorkflow-Teil der Anfrage übermitteln. Wir verwenden diese Werte, um alle damit verbundenen Trägergebühren zu berechnen und diese in der Antwort zurückzugeben.

Mutation senden 

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.

Berechneter Versand
Manueller Versand

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
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
mutation {
  partyCreateWorkflow(
    input: [
      {
        location: {
          administrativeArea: "Utah"
          administrativeAreaCode: "UT"
          countryCode: US
          line1: "345 N 2450 E"
          line2: "#151"
          locality: "St George"
          postalCode: "84790"
        }
        type: ORIGIN
      }
      {
        location: {
          administrativeArea: "BC"
          administrativeAreaCode: "BC"
          countryCode: CA
          line1: "27 Sussex Dr."
          locality: "Victoria"
          postalCode: "V8T 2V9"
        }
        person: {
          email: "test@gmail.com"
          firstName: "firstName"
          lastName: "lastName"
          phone: "5022303021"
          companyName: "goProTest"
          metadata: { key: "key", value: "value" }
        }
        type: DESTINATION
      }
      {
        type: PAYOR
        location: {
          administrativeArea: "ON"
          administrativeAreaCode: "ON"
          countryCode: CA
          latitude: 1.2
          line1: "asdf"
          line2: "asdf"
          locality: "locality"
          longitude: 3423.2
          postalCode: "M4C 1A1"
        }
        person: {
          email: "test@gmail.com"
          firstName: "firstName"
          lastName: "lastName"
          phone: "5022303021"
          companyName: "goProTest"
          metadata: { key: "key", value: "value" }
        }
      }
    ]
  ) {
    type
    id
    organization
  }

  itemCreateWorkflow(
    input: [
      {
        amount: 69
        currencyCode: USD
        countryOfOrigin: US
        quantity: 1
        productId: "productId"
        hsCode: "1006.30"
        description: "description"
        measurements: [
          { type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
          { type: WEIGHT, value: 2, unitOfMeasure: POUND }
        ]
      }
      {
        amount: 62
        currencyCode: CAD
        countryOfOrigin: US
        hsCode: "1006.30"
        quantity: 1
        productId: "productId2"
        description: "description2"
        measurements: [
          { type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
          { type: WEIGHT, value: 2, unitOfMeasure: POUND }
        ]
      }
    ]
  ) {
    id
    amount
  }
  cartonizeWorkflow {
    id
    type
    items {
      item {
        id
      }
    }
  }
  shipmentRatingCalculateWorkflow {
    id
    amount
  }
  landedCostCalculateWorkflow(
    input: { endUse: FOR_RESALE, method: DAP, tariffRate: ZONOS_PREFERRED }
  ) {
    id
    duties {
      amount
      currency
    }
    taxes {
      amount
      currency
    }
    fees {
      amount
      currency
    }
  }
}

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
{
  "data": {
    "partyCreateWorkflow": [
      {
        "type": "ORIGIN",
        "id": "party_749959ae-b9ff-4de4-b4ac-59cc990c53ba",
        "organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
      },
      {
        "type": "DESTINATION",
        "id": "party_cd7ff245-76b6-464f-a7bf-151ebe1f8833",
        "organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
      },
      {
        "type": "PAYOR",
        "id": "party_00e63a9e-9735-44d9-b129-3b3e76c5df25",
        "organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
      }
    ],
    "itemCreateWorkflow": [
      {
        "id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e",
        "amount": 69
      },
      {
        "id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115",
        "amount": 62
      }
    ],
    "cartonizeWorkflow": [
      {
        "id": "carton_b34b29c1-ce27-464b-b91b-df8e4a696312",
        "type": "PACKAGE",
        "items": [
          {
            "item": {
              "id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e"
            }
          },
          {
            "item": {
              "id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115"
            }
          }
        ]
      }
    ],
    "shipmentRatingCalculateWorkflow": [
      {
        "id": "shipment_rating_96787309-9510-43cc-b4fa-c341ff80f4cc",
        "amount": 173.2
      },
      {
        "id": "shipment_rating_b0ccb109-7794-4c7c-b5cc-e2cfbbc5c8ac",
        "amount": 190.1
      }
    ],
    "landedCostCalculateWorkflow": [
      {
        "id": "landed_cost_74d3ce11-bff2-4326-9e6f-368e03ac88b4",
        "duties": [
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "taxes": [
          {
            "amount": 3.45,
            "currency": "USD"
          },
          {
            "amount": 3.1,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "fees": [
          {
            "amount": 0.13,
            "currency": "USD"
          },
          {
            "amount": 1.44,
            "currency": "USD"
          }
        ]
      },
      {
        "id": "landed_cost_7bbfd354-028c-457f-8c8e-c81bb8fa09a0",
        "duties": [
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "taxes": [
          {
            "amount": 3.45,
            "currency": "USD"
          },
          {
            "amount": 3.1,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "fees": [
          {
            "amount": 0.13,
            "currency": "USD"
          },
          {
            "amount": 1.44,
            "currency": "USD"
          }
        ]
      }
    ]
  }
}

War diese Seite hilfreich?