DOCS

Calculate landed cost graphql

/

Calcola un landed cost

Calcola dazi, tasse e commissioni con GraphQL.

GraphQL

Zonos calcola il totale del landed cost per le spedizioni, che include dazi, tasse e eventuali commissioni aggiuntive che le dogane, i broker o i vettori di spedizione possono addebitare. Spesso garantiamo questi calcoli pagando noi stessi la bolletta di dazi, tasse e commissioni, addebitandoti esattamente ciò che calcoliamo. In rari casi, i nostri calcoli possono essere utilizzati senza la nostra garanzia, dove ti assumi qualsiasi differenza tra il nostro calcolo e la bolletta di dazi e tasse.

Prepara l'input della mutazione 

Calcolare un landed cost tramite l'API GraphQL comporta più passaggi; abbiamo organizzato questi passaggi in flussi di lavoro. Alla fine, avrai tutto il necessario per effettuare una chiamata per ottenere un landed cost in base alla destinazione di spedizione, agli articoli nel carrello e alla spedizione.

Ogni flusso di lavoro richiede dati di input specifici. GraphQL ti consente di includere più informazioni di quelle richieste; ti preghiamo di fare riferimento alla nostra documentazione API per vedere tutti i campi possibili. I campi richiesti sono contrassegnati come tali nella nostra documentazione API, ma questo contrassegno si applica solo ai campi necessari per la funzionalità. Alcuni campi aggiuntivi sono richiesti quando si utilizza la nostra garanzia.

Di seguito, abbiamo elencato tutti i campi richiesti per calcolare un garantito landed cost. Assicurati di avere queste informazioni pronte.

Input richiesti per calcoli garantiti

partyCreateWorkflowInput

Il partyCreateWorkflowInput identifica le parti coinvolte e le loro posizioni. Visualizza lo schema completo nella nostra documentazione API GraphQL riferimento. I campi richiesti sono:

  • location
    • administrativeAreaCode: Il codice dello stato o della provincia, in due lettere. Richiesto solo per CA e BR.
    • countryCode: Il codice ISO a due lettere del paese.
    • line1: La prima riga dell'indirizzo.
    • postalCode: Il codice postale o il CAP dell'indirizzo.
  • person
    • email: L'indirizzo email della persona.
    • firstName: Il nome della persona.
    • lastName: Il cognome della persona.
    • phone: Il numero di telefono della persona.
  • type
    • DESTINATION: Le informazioni su location & person per la destinazione di spedizione.
    • ORIGIN: Le informazioni su location per l'origine della spedizione. La person associata all'origine della spedizione non è richiesta.
itemCreateWorkflowInput

Il itemCreateWorkflowInput elenca gli articoli nel carrello. Ci sono molti campi opzionali (vedi tutte le possibilità nella nostra documentazione API), ma i campi di seguito sono richiesti.

  • amount: Il prezzo dell'articolo.
  • currencyCode: Il codice della valuta per l'importo dell'articolo.
  • quantity: La quantità dell'articolo.
  • Uno dei seguenti (quello impostato come tua preferenza per la chiave dell'articolo. La tua chiave dell'articolo collega le informazioni memorizzate nel Catalogo all'articolo nel carrello e viene utilizzata durante la creazione dell'etichetta.)
    • productId: L'ID del prodotto dell'articolo.
    • sku: Lo SKU dell'articolo.

Le measurements (WEIGHT, LENGTH, WIDTH, HEIGHT) sono richieste solo se desideri cartonizzare i tuoi articoli quando ottieni una valutazione di spedizione.

shipmentRatingCreateWorkflowInput

Questo flusso di lavoro viene utilizzato quando conosci già il servizio di spedizione e il costo; se desideri che Zonos calcoli questi costi per i servizi che hai abilitato, sostituisci questo flusso di lavoro e utilizza invece il shipmentRatingCalculateWorkflow.

Il shipmentRatingCreateWorkflowInput comunica il costo di spedizione. Visualizza lo schema completo nella nostra documentazione API GraphQL riferimento. I campi richiesti sono:

  • amount: Il costo di spedizione.
  • currencyCode: Il codice della valuta del costo di spedizione.
  • serviceLevelCode: Il codice che indica il livello di servizio di spedizione utilizzato nella valutazione di spedizione.
landedCostWorkflowInput

Il landedCostWorkflowInput determina le preferenze per il calcolo del landed cost. Visualizza lo schema completo nella nostra documentazione API GraphQL riferimento. I campi richiesti sono:

  • calculationMethod: Indica la tua preferenza per come intendi spedire: DDP (dazi e tasse prepagati) o DAP (i dazi e le tasse sono pagati alla consegna, o se si applica uno schema di rimborso, vengono rimborsati tramite un codice fiscale).
    • Se utilizzi la nostra garanzia di landed cost, questo valore dovrebbe sempre essere DDP_PREFERRED, che fornirà un preventivo DDP quando possibile e un preventivo DAP se non è consentito un DDP. Utilizzare invece DAP potrebbe comportare che i costi di sbarco non siano più garantiti, poiché ciò comporta tipicamente dazi e tasse pagati alla consegna.
  • endUse: Indica se le merci sono vendute a un'altra azienda (FOR_RESALE) o per uso finale con un consumatore (NOT_FOR_RESALE).
  • tariffRate: Indica il metodo che Zonos dovrebbe utilizzare per calcolare le tariffe doganali per questo preventivo, nel caso ci sia un intervallo di tariffe doganali che potrebbero essere applicate. *Quando si utilizza la nostra garanzia di landed cost, questo dovrebbe sempre essere ZONOS_PREFERRED.

Aggiungi spedizione calcolata: Se desideri che Zonos calcoli il costo di spedizione per te, sostituisci il shipmentRatingCreateWorkflow con il shipmentRatingCalculateWorkflow. Aggiungi il cartonizeWorkflow se desideri che Zonos ordini i tuoi articoli in cartoni prima di trovare il costo di spedizione (utilizzato per il peso dimensionale).

Opzioni quando si calcola un landed cost

GraphQL ti offre la flessibilità di personalizzare la richiesta secondo le tue preferenze. Ci sono un paio di opzioni su come includere codici HS e costi di spedizione nella richiesta.

Codici HS

I codici HS influenzano le tariffe doganali e sono quindi richiesti. Puoi passare il codice HS per ciascun articolo o lasciare che Classify li generi.

Passa i codici HS per ciascun articolo

Zonos raccomanda vivamente di utilizzare codici HS specifici per prodotto poiché ciò porta a una quotazione più accurata di landed cost. Se conosci i tuoi codici HS, passa l'hsCode per ciascun item durante il itemCreateWorkflow.

Se passi un codice HS, Zonos lo convaliderà al volo quando otterrai una quotazione di landed cost. Se il codice HS fornito è non valido (significa che non esiste), Zonos ri-classify il tuo articolo al volo e utilizzerà il nuovo codice HS valido invece di quello fornito.

Se hai bisogno di aiuto per generare codici HS per i tuoi prodotti, scopri di più su Zonos Classify e su come richiedere una classificazione.

Genera codici HS con Classify

Se non passi a Zonos un hsCode, controlleremo prima il Zonos Catalog per vedere se hai un codice HS memorizzato per il tuo articolo. Se non ce l'hai, chiameremo Classify per generare una classificazione per alimentare il tuo calcolo di landed cost basato sui seguenti campi di dettaglio del prodotto del itemCreateWorkflow: description, category e material. Se i tuoi campi di dettaglio del prodotto non sono sufficientemente dettagliati per generare una classificazione basata sul punteggio di fiducia di Classify's, verrà utilizzato il codice HS predefinito assegnato al tuo negozio.

Per impostazione predefinita, se non fornisci un hsCode e chiamiamo Classify, il hsCode generato da Classify non verrà restituito nella risposta poiché sarà utilizzato solo internamente per generare il tuo landed cost. Tuttavia, se hai un abbonamento a Classify, restituiremo il codice HS di Classify's nella tua risposta di landed cost.

Costo di spedizione

Sia il livello di servizio di spedizione che il suo costo influenzano i dazi, le tasse e le spese e sono quindi richiesti. Zonos può calcolare la spedizione o puoi passarci queste informazioni.

Calcola la spedizione

Per far calcolare a Zonos i costi di spedizione, utilizza il shipmentRatingCalculateWorkflow. Le opzioni di spedizione restituite nella risposta di spedizione calcolata corrisponderanno ai serviceLevels che hai assegnato ai profili di spedizione nel Dashboard.

Risoluzione dei problemi: Se ti aspetti un serviceLevel nella risposta ma non appare, assicurati che il serviceLevel sia abilitato e sia supportato dal method che hai selezionato.

Aggiungi il cartonizeWorkflow (che non ha input) se desideri che Zonos ordini i tuoi articoli in cartoni prima di trovare il costo di spedizione (utilizzato per peso dimensionale.

Passa i costi di spedizione

Se conosci il serviceLevel e l'amount per una spedizione, puoi passarli nella porzione shipmentRatingCreateWorkflow della richiesta. Utilizzeremo quei valori per calcolare eventuali spese associate al corriere e restituirle nella risposta.

Invia la mutazione 

Una volta che hai i dati di input richiesti, invia la mutazione GraphQL all'endpoint API utilizzando la libreria o lo strumento client scelto. Ecco alcuni esempi di come puoi strutturare la mutazione.

Spedizione calcolata
Spedizione manuale

Mutazione

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
    }
  }
}

Risposta

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"
          }
        ]
      }
    ]
  }
}

Questa pagina è stata utile?