Siapkan input mutasi
Menghitung landed cost melalui GraphQL API melibatkan beberapa langkah; kami telah mengorganisir langkah-langkah ini ke dalam alur kerja. Pada akhirnya, Anda akan memiliki semua yang Anda butuhkan untuk melakukan satu panggilan untuk mendapatkan landed cost berdasarkan tujuan pengiriman, barang dalam keranjang, dan pengiriman.
Setiap alur kerja membutuhkan data input spesifik. GraphQL memungkinkan Anda untuk menyertakan lebih banyak informasi daripada yang diperlukan; silakan merujuk ke referensi API kami untuk melihat semua bidang yang mungkin. Bidang yang diperlukan ditandai sebagai demikian dalam referensi API kami, tetapi tanda ini hanya berlaku untuk bidang yang diperlukan untuk fungsionalitas. Beberapa bidang tambahan diperlukan saat menggunakan jaminan kami.
Di bawah ini, kami telah mencantumkan semua bidang yang diperlukan untuk menghitung biaya yang dijamin landed cost. Pastikan Anda memiliki informasi ini siap.
Input yang diperlukan untuk perhitungan yang dijamin
partyCreateWorkflowInput
partyCreateWorkflowInput
mengidentifikasi pihak-pihak yang terlibat dan lokasi mereka. Lihat skema lengkap di referensi API GraphQL. Bidang yang diperlukan adalah:
location
administrativeAreaCode
: Kode negara bagian atau provinsi, dalam dua huruf. Hanya diperlukan untuk CA dan BR.countryCode
: Kode ISO dua huruf negara.line1
: Baris pertama alamat.postalCode
: Kode pos atau kode zip alamat.
person
email
: Alamat email orang tersebut.firstName
: Nama depan orang tersebut.lastName
: Nama belakang orang tersebut.phone
: Nomor telepon orang tersebut.
type
DESTINATION
: Informasilocation
&person
untuk tujuan pengiriman.ORIGIN
: Informasilocation
untuk asal pengiriman.person
yang terkait dengan asal pengiriman tidak diperlukan.
itemCreateWorkflowInput
itemCreateWorkflowInput
mencantumkan barang-barang dalam keranjang. Ada banyak bidang opsional (lihat semua kemungkinan di referensi API kami), tetapi bidang di bawah ini adalah yang diperlukan.
amount
: Harga barang.currencyCode
: Kode mata uang untuk jumlah barang.quantity
: Jumlah barang.- Salah satu dari berikut ini (mana yang ditetapkan sebagai preferensi kunci barang Anda. Kunci barang Anda menghubungkan informasi yang disimpan di Katalog dengan barang dalam keranjang dan digunakan selama pembuatan label.)
productId
: ID produk barang.sku
: SKU barang.
measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) hanya diperlukan jika Anda ingin mengemas barang Anda saat mendapatkan penilaian pengiriman.
shipmentRatingCreateWorkflowInput
Alur kerja ini digunakan ketika Anda sudah mengetahui layanan pengiriman dan biayanya; jika Anda ingin Zonos menghitung biaya ini untuk layanan yang telah Anda aktifkan, ganti alur kerja ini dan gunakan shipmentRatingCalculateWorkflow
sebagai gantinya.
shipmentRatingCreateWorkflowInput
mengkomunikasikan biaya pengiriman. Lihat skema lengkap di referensi API GraphQL. Bidang yang diperlukan adalah:
amount
: Biaya pengiriman.currencyCode
: Kode mata uang dari biaya pengiriman.serviceLevelCode
: Kode yang menunjukkan tingkat layanan pengiriman yang digunakan dalam penilaian pengiriman.
landedCostWorkflowInput
landedCostWorkflowInput
menentukan preferensi untuk perhitungan landed cost. Lihat skema lengkap di referensi API GraphQL. Bidang yang diperlukan adalah:
calculationMethod
: Menunjukkan preferensi Anda untuk cara Anda berencana mengirim: DDP (bea dan pajak dibayar di muka) atau DAP (baik bea dan pajak dibayar saat pengiriman, atau jika skema remittance berlaku, mereka dibayarkan melalui ID pajak).- Jika Anda menggunakan jaminan landed cost kami, nilai ini harus selalu
DDP_PREFERRED
, yang akan memberikan kutipan DDP jika memungkinkan dan kutipan DAP jika kutipan DDP tidak diizinkan. MenggunakanDAP
sebagai gantinya dapat mengakibatkan biaya yang ditanggung tidak lagi dijamin, karena ini biasanya mengakibatkan bea dan pajak dibayar saat pengiriman.
- Jika Anda menggunakan jaminan landed cost kami, nilai ini harus selalu
endUse
: Menunjukkan apakah barang dijual kepada bisnis lain (FOR_RESALE
) atau untuk digunakan akhir dengan konsumen (NOT_FOR_RESALE
).tariffRate
: Menunjukkan metode yang harus digunakan Zonos untuk menghitung tarif bea untuk kutipan ini, jika ada rentang tarif bea yang dapat diterapkan. *Saat menggunakan jaminan landed cost kami, ini harus selaluZONOS_PREFERRED
.
Tambahkan pengiriman yang dihitung: Jika Anda ingin Zonos menghitung biaya pengiriman untuk Anda, ganti
shipmentRatingCreateWorkflow
denganshipmentRatingCalculateWorkflow
. TambahkancartonizeWorkflow
jika Anda ingin Zonos mengurutkan barang Anda ke dalam karton sebelum menemukan biaya pengiriman (digunakan untuk berat dimensi).
Opsi saat menghitung landed cost
GraphQL memberi Anda fleksibilitas untuk menyesuaikan permintaan sesuai preferensi Anda. Ada beberapa opsi untuk bagaimana Anda menyertakan kode HS dan biaya pengiriman dalam permintaan.
Kode HS
Kode HS mempengaruhi tarif bea dan oleh karena itu diperlukan. Anda dapat mengirimkan kode HS untuk setiap item atau membiarkan Classify menghasilkan kode tersebut.
Zonos sangat merekomendasikan menggunakan kode HS spesifik produk karena ini menghasilkan kutipan landed cost yang lebih akurat. Jika Anda mengetahui kode HS Anda, kirimkan hsCode
untuk setiap item
selama itemCreateWorkflow
.
Jika Anda mengirimkan kode HS, Zonos akan memvalidasinya secara langsung saat mendapatkan kutipan landed cost. Jika kode HS yang Anda berikan tidak valid (artinya tidak ada), Zonos akan mengulang-classify item Anda secara langsung dan menggunakan kode HS baru yang valid sebagai pengganti kode yang Anda berikan.
Jika Anda memerlukan bantuan untuk menghasilkan kode HS untuk produk Anda, pelajari tentang Zonos Classify dan bagaimana cara meminta klasifikasi.
Jika Anda tidak mengirimkan Zonos sebuah hsCode
, kami akan terlebih dahulu memeriksa Zonos Catalog untuk melihat apakah Anda memiliki kode HS yang tersimpan untuk item Anda. Jika tidak, kami akan memanggil Classify untuk menghasilkan klasifikasi yang mendukung perhitungan landed cost Anda berdasarkan bidang detail produk itemCreateWorkflow
berikut: description
, category
, dan material
. Jika bidang detail produk Anda tidak cukup rinci untuk menghasilkan klasifikasi berdasarkan skor kepercayaan Classify's, kode HS default yang ditetapkan untuk toko Anda akan digunakan.
Secara default, jika Anda tidak menyediakan hsCode
dan kami memanggil Classify, hsCode
yang dihasilkan oleh Classify tidak akan dikembalikan dalam respons karena hanya akan digunakan secara internal untuk menghasilkan landed cost Anda. Namun, jika Anda memiliki langganan Classify, kami akan mengembalikan kode HS Classify's dalam respons landed cost Anda.
Biaya pengiriman
Baik tingkat layanan pengiriman maupun biayanya mempengaruhi bea, pajak, dan biaya dan oleh karena itu diperlukan. Zonos dapat menghitung biaya pengiriman atau Anda dapat mengirimkan ini kepada kami.
Untuk membuat Zonos menghitung biaya pengiriman, gunakan shipmentRatingCalculateWorkflow
. Opsi pengiriman yang dikembalikan dalam respons pengiriman yang dihitung akan berkorelasi dengan serviceLevels
yang telah Anda tetapkan untuk profil pengiriman di Dashboard.
Pemecahan Masalah: Jika Anda mengharapkan
serviceLevel
dalam respons tetapi tidak muncul, harap pastikan bahwaserviceLevel
diaktifkan dan didukung olehmethod
yang Anda pilih.
Tambahkan cartonizeWorkflow
(yang tidak memiliki input) jika Anda ingin Zonos mengurutkan item Anda ke dalam karton sebelum menemukan biaya pengiriman (digunakan untuk berat dimensional.
Jika Anda mengetahui serviceLevel
dan amount
untuk pengiriman, Anda dapat mengirimkan nilai tersebut dalam bagian shipmentRatingCreateWorkflow
dari permintaan. Kami akan menggunakan nilai tersebut untuk menghitung biaya pengangkut terkait dan mengembalikannya dalam respons.
Kirim mutasi
Setelah Anda memiliki data input yang diperlukan, kirimkan mutasi GraphQL ke endpoint API menggunakan pustaka atau alat klien pilihan Anda. Berikut adalah beberapa contoh tentang bagaimana Anda dapat menyusun mutasi.
Mutasi
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
}
}
}
Respon
{
"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"
}
]
}
]
}
}
Hitung landed cost
Hitung bea, pajak, dan biaya dengan GraphQL.GraphQL
Zonos menghitung total landed cost untuk pengiriman, yang mencakup bea, pajak, dan biaya tambahan yang mungkin dikenakan oleh bea cukai, broker, atau pengangkut. Kami sering menjamin perhitungan ini dengan membayar tagihan bea, pajak, dan biaya sendiri sambil mengenakan biaya persis seperti yang kami hitung. Dalam kasus yang jarang terjadi, perhitungan kami dapat digunakan tanpa jaminan kami, di mana Anda menanggung perbedaan antara perhitungan kami dan tagihan bea dan pajak.