DOCS

Hitung landed cost - GraphQL

Hitung landed cost

Hitung bea, pajak, dan biaya dengan GraphQL.

GraphQL

Zonos menghitung total landed cost untuk pengiriman internasional—termasuk bea, pajak, dan biaya tambahan yang dikenakan oleh bea cukai, broker, atau pengangkut. Dalam banyak kasus, kami menjamin perhitungan ini dengan membayar tagihan akhir sendiri dan membebankan kepada Anda persis apa yang kami hitung. Dalam beberapa kasus, Anda dapat menggunakan landed cost kami tanpa jaminan, yang berarti Anda bertanggung jawab atas perbedaan antara perhitungan kami dan biaya sebenarnya.

Siapkan permintaan 

Menghitung landed cost API memerlukan beberapa input, yang telah kami atur dalam alur kerja. Setelah selesai, Anda akan dapat membuat satu permintaan untuk mengembalikan landed cost berdasarkan tujuan pengiriman, barang dalam keranjang, dan detail pengiriman.

Setiap alur kerja memiliki input yang diperlukan sendiri. GraphQL memungkinkan Anda untuk mengirimkan lebih banyak data daripada yang diperlukan, tetapi hanya bidang tertentu yang diperlukan untuk mengembalikan landed cost. Ini ditandai dengan jelas dalam referensi API kami untuk melihat semua bidang yang mungkin.

Perhatikan bahwa beberapa bidang bersifat kondisional diperlukan jika Anda ingin perhitungan Anda dijamin.

Di bawah ini, kami telah menguraikan semua bidang yang diperlukan untuk menghitung landed cost yang dijamin. Pastikan informasi ini disertakan sebelum membuat permintaan Anda.

Input yang diperlukan untuk perhitungan yang dijamin

partyCreateWorkflowInput

partyCreateWorkflowInput mengidentifikasi pihak-pihak yang terlibat dan lokasi mereka. Lihat skema lengkap di referensi API GraphQL kami. 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 dari negara.
    • line1: Baris pertama alamat.
    • postalCode: Kode pos atau kode zip dari alamat.
  • person
    • email: Alamat email orang tersebut.
    • firstName: Nama depan orang tersebut.
    • lastName: Nama belakang orang tersebut.
    • phone: Nomor telepon orang tersebut.
  • type
    • DESTINATION: Informasi location & person untuk tujuan pengiriman.
    • ORIGIN: Informasi location 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: Nilai dari satu unit produk yang dikirim, sebelum dikalikan dengan jumlah. Perhatikan bahwa ini berbeda dari definisi pos item pos. Jika quantity item adalah 1, ini adalah total biaya item. Jika quantity item >1, API akan mengalikan amount item dengan quantity item untuk mendapatkan total untuk item tersebut. Jangan masukkan total harga semua unit item dalam amount.
  • currencyCode: Kode mata uang untuk jumlah item.
  • quantity: Jumlah item. API akan mengalikan amount item dengan quantity item untuk mendapatkan total untuk item tersebut.
  • countryOfOrigin: Negara tempat item diproduksi.
  • Salah satu dari berikut ini (mana yang ditetapkan sebagai preferensi kunci item Anda. Kunci item Anda menghubungkan informasi yang disimpan di Katalog dengan item dalam keranjang dan digunakan selama pembuatan label.)
    • productId: ID produk item.
    • sku: SKU item.

measurements (WEIGHT, LENGTH, WIDTH, HEIGHT) hanya diperlukan jika Anda ingin kartonisasi barang Anda saat mendapatkan penilaian pengiriman.

cartonsCreateWorkflowInput

cartonsCreateWorkflowInput hanya memerlukan input itu sendiri. Lihat skema lengkap di referensi API GraphQL kami untuk melihat semua nilai yang dapat dikirim. Penting untuk mengirimkan dimensi dan berat karton jika Zonos menghitung biaya 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 dengan menggunakan shipmentRatingCalculateWorkflow sebagai gantinya.

shipmentRatingCreateWorkflowInput mengkomunikasikan biaya pengiriman. Lihat skema lengkap di referensi API GraphQL kami. 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 kami. Bidang yang diperlukan adalah:

  • calculationMethod: Menunjukkan preferensi Anda untuk cara Anda berencana untuk 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. Menggunakan DAP sebagai gantinya dapat mengakibatkan biaya yang ditanggung tidak lagi dijamin, karena ini biasanya mengakibatkan bea dan pajak dibayar saat pengiriman.
  • 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 selalu ZONOS_PREFERRED.

Tambahkan pengiriman yang dihitung: Jika Anda ingin Zonos menghitung biaya pengiriman untuk Anda, ganti shipmentRatingCreateWorkflow dengan shipmentRatingCalculateWorkflow. Tambahkan cartonizeWorkflow jika Anda ingin Zonos mengurutkan barang Anda ke dalam karton sebelum menemukan biaya pengiriman (digunakan untuk berat dimensi).

Kode HS dan opsi pengiriman

GraphQL memberi Anda fleksibilitas untuk menyesuaikan permintaan sesuai preferensi Anda. Ada beberapa opsi tentang bagaimana Anda menyertakan kode HS dan biaya pengiriman dalam permintaan.

Kode HS

Kode HS memengaruhi tarif bea dan oleh karena itu diperlukan. Anda dapat mengirimkan kode HS untuk setiap item atau membiarkan Classify yang menghasilkan kode tersebut.

Kirim kode HS untuk setiap item

Zonos sangat menyarankan menggunakan kode HS spesifik produk karena 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 meng-classify ulang 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 cara meminta klasifikasi.

Hasilkan kode HS dengan Classify

Jika Anda tidak mengirimkan hsCode ke Zonos, kami akan terlebih dahulu memeriksa Katalog Zonos untuk melihat apakah Anda memiliki kode HS yang tersimpan untuk item Anda. Jika tidak, kami akan memanggil Classify untuk menghasilkan klasifikasi guna 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, maka kode HS default yang ditetapkan ke toko Anda akan digunakan.

Biaya pengiriman

Baik tingkat layanan pengiriman maupun biayanya memengaruhi bea, pajak, dan biaya lainnya sehingga diperlukan. Zonos dapat menghitung biaya pengiriman atau Anda dapat mengirimkannya kepada kami.

Hitung biaya pengiriman

Untuk meminta Zonos menghitung biaya pengiriman, gunakan shipmentRatingCalculateWorkflow. Opsi pengiriman yang dikembalikan dalam respons pengiriman yang dihitung akan sesuai dengan serviceLevels yang telah Anda tetapkan pada profil pengiriman di Dashboard.

Pemecahan masalah: Jika Anda mengharapkan serviceLevel dalam respons tetapi tidak muncul, pastikan bahwa serviceLevel tersebut diaktifkan dan didukung oleh method yang Anda pilih.

Tambahkan cartonizeWorkflow (yang tidak memiliki input) jika Anda ingin Zonos mengelompokkan item Anda ke dalam karton sebelum mencari biaya pengiriman (digunakan untuk berat dimensi).

Kirim biaya pengiriman

Jika Anda mengetahui serviceLevel dan amount untuk pengiriman, Anda dapat mengirimkannya dalam bagian shipmentRatingCreateWorkflow dari permintaan. Kami akan menggunakan nilai tersebut untuk menghitung biaya operator terkait dan mengembalikannya dalam respons.

Meminta landed cost melalui API 

Setelah Anda memiliki data input yang diperlukan, kirim mutasi GraphQL ke endpoint API menggunakan pustaka klien atau alat pilihan Anda. Berikut beberapa contoh bagaimana Anda dapat menyusun mutasi.

Gunakan permintaan ini ketika Anda meminta Zonos menghitung biaya pengiriman sebagai bagian dari permintaan Landed Cost. Kami kemudian akan menghitung bea dan pajak atas pengiriman jika dikenakan oleh negara tujuan.

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

Variabel

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

Respon

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

Langkah selanjutnya: Buat pesanan

Setelah Anda menghitung landed cost dan menerima landedCostId dari respons API, Anda harus membuat pesanan untuk menyelesaikan transaksi di sistem Zonos. Gunakan mutasi orderCreate dan masukkan landedCostId dari kutipan Anda. Pelajari lebih lanjut tentang membuat pesanan.


Minta landed cost di Dashboard 

Anda juga dapat menghitung biaya landed secara langsung di Zonos Dashboard tanpa menggunakan API. Ini berguna untuk menguji perhitungan, melatih tim Anda, atau mendapatkan kutipan cepat untuk pertanyaan pelanggan.

Dashboard menggunakan endpoint API yang sama seperti yang dijelaskan di atas, sehingga hasilnya akan sesuai dengan apa yang Anda dapatkan dari panggilan API langsung. Ini menjadikannya cara yang bagus untuk memvalidasi integrasi API Anda atau menjelajahi bagaimana berbagai input mempengaruhi perhitungan.

Menggunakan kalkulator Dashboard

Dengan kalkulator landed cost di Dashboard, Anda dapat mendapatkan kutipan dengan tarif pengiriman yang dihitung, membuat kutipan dengan biaya pengiriman yang diketahui, atau memproses beberapa kutipan secara massal.

Gunakan alur ini ketika Anda mengetahui tingkat layanan pengiriman dan biaya untuk pengiriman Anda.

  1. Pergi ke DashboardOrdersQuotes
  2. Klik Kutipan baru
  3. Opsional — Ubah lokasi alamat pengiriman Anda
  4. Pilih Negara tujuan dari dropdown
  5. Masukkan jumlah pengiriman
    • Tingkat layanan bersifat opsional; menambahkannya memungkinkan kami untuk menghitung biaya pengangkut yang berlaku
  6. Tambahkan detail item untuk pengiriman
    • Ketika Anda memasukkan deskripsi, kami secara otomatis classify produk dan menghasilkan kode HS
    • Anda dapat menimpa kode HS yang dihasilkan jika diperlukan
    • Untuk beberapa item, klik Simpan dan tambahkan lainnya. Jika tidak, klik Simpan
  7. Opsional — Klik Opsi lebih lanjut untuk mengubah:
    • Jenis penjualan menjadi Untuk dijual kembali
    • Mode pengiriman menjadi Biaya pengiriman tidak dibayar
  8. Klik Dapatkan kutipan
    • Untuk melakukan perubahan, klik Edit formulir dan ubah detail apa pun
    • Klik Dapatkan kutipan lagi untuk memperbarui

Kutipan landed cost akan muncul di sebelah kanan, termasuk biaya produk, pengiriman, dan impor. Perluas kutipan untuk melihat rincian terperinci dari item, pengiriman, bea, pajak, dan biaya. Semua kutipan disimpan di halaman kutipan untuk referensi di masa mendatang.

Edit kutipan yang ada: Klik Kutipan lagi di kanan atas untuk mengubah kutipan yang ada daripada memulai dari awal.

Manfaat menggunakan Dashboard

  • Tanpa kode yang diperlukan — Hasilkan kutipan melalui antarmuka yang ramah pengguna
  • Pelatihan tim — Membantu anggota tim non-teknis memahami komponen landed cost
  • Validasi API — Verifikasi integrasi API Anda menghasilkan hasil yang diharapkan
  • Dukungan pelanggan — Cepat menghasilkan kutipan untuk pertanyaan pelanggan
  • Pemrosesan massal — Menangani beberapa perhitungan secara efisien (segera hadir)

Kutipan Dashboard mencakup rincian terperinci yang sama yang tersedia melalui API, menjadikannya pelengkap yang sangat baik untuk integrasi otomatis Anda.

Apakah halaman ini bermanfaat?