Kirim permintaan Admin API

Tindakan Kirim permintaan Admin API dapat menggunakan sebagian besar mutasi di GraphQL Admin API untuk membuat perubahan pada toko Anda, termasuk mutasi yang belum tersedia sebagai tindakan di Flow.

Kolom

Tindakan Kirim permintaan Admin API berisi kolom-kolom berikut.

Kolom yang digunakan dalam tindakan Kirim permintaan Admin API.
KolomDeskripsi
MutasiWajib diisi. Mutasi Admin GraphQL Shopify yang ingin Anda panggil. Mutasi adalah API yang mengambil tindakan atau memperbarui data.
Input mutasiWajib diisi. Data (dalam format JSON) yang perlu Anda kirim sebagai bagian dari permintaan mutasi. Setiap mutasi memerlukan set data yang berbeda, yang didokumentasikan di tautan yang disediakan untuk setiap mutasi. Untuk menyusun JSON yang diperlukan, Anda dapat menggunakan Liquid atau tindakan Jalankan kode.

Pemicu

Tindakan Kirim permintaan Admin API dapat digunakan dalam alur kerja apa pun, dengan pemicu apa pun, selama alur kerja tersebut menyediakan data yang diperlukan untuk menyusun input mutasi.

Contoh

Contoh 1: Memperbarui templat yang digunakan untuk produk

Dalam contoh ini, kita akan menggunakan tindakan Kirim permintaan Admin API untuk memanggil mutasi productUpdate guna memperbarui templat yang digunakan untuk suatu produk.

Kolom id wajib diisi dan harus berupa GID produk yang valid. Di sini, kami mengaturnya dengan variabel Liquid {{product.id}}. Ini mengasumsikan bahwa alur kerja Anda memiliki pemicu yang menyediakan objek produk.

templateSuffix adalah nama templat yang ingin Anda terapkan pada produk. Misalnya, jika Anda ingin menerapkan templat pre-order, Anda akan mengatur templateSuffix ke pre-order.

{
  "input": {
    "templateSuffix": "pre-order",
    "id": "{{product.id}}"
  }
}

Contoh 2: Memperbarui status pembebasan pajak pelanggan

Dalam contoh ini, kita akan menggunakan tindakan Kirim permintaan Admin API untuk memanggil mutasi customerUpdate guna memperbarui status pembebasan pajak pelanggan.

Kolom id wajib diisi dan harus berupa GID pelanggan yang valid. Di sini, kami mengaturnya dengan variabel Liquid {{order.customer.id}}. Ini mengasumsikan bahwa alur kerja Anda memiliki pemicu yang menyediakan objek pesanan.

Kolom taxExempt adalah boolean yang menunjukkan apakah pelanggan bebas pajak. Dalam contoh ini, kami mengaturnya ke true.

{
  "input": {
    "id": "{{order.customer.id}}",
    "taxExempt": true
  }
}

Contoh 3: Memperbarui lokal pelanggan

Dalam contoh ini, kita akan menggunakan tindakan Kirim permintaan Admin API untuk memanggil mutasi customerUpdate guna memperbarui lokal pelanggan.

Kolom id wajib diisi dan harus berupa GID pelanggan yang valid. Di sini, kami mengaturnya dengan variabel Liquid {{customer.id}}. Ini mengasumsikan bahwa alur kerja Anda memiliki pemicu yang menyediakan objek pelanggan.

Kolom locale adalah string yang mewakili lokal pelanggan. Dalam contoh ini, kami mengaturnya ke en.

{
  "input": {
    "id": "{{customer.id}}",
    "locale": "en"
  }
}

Tips Liquid

Flow mendukung filter liquid json yang dapat berguna dalam menyusun input. Semua contoh berikut menggunakan mutasi customerUpdate dan mengasumsikan bahwa alur kerja Anda memiliki pemicu yang menyediakan objek pelanggan.

Bekerja dengan string

Contoh berikut memperbarui catatan pada pelanggan:

{% assign revisedNote = customer.note | append: " Hello from Flow!" %}

{
  "input": {
    "id": "{{ customer.id }}",
    "note": {{ revisedNote | json }},
  }
}

Filter json melakukan escape pada string untuk memastikan format JSON yang benar. Ini menghasilkan JSON berikut setelah alur kerja berjalan:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "note": "Had a \"great experience\" with their latest order. Hello from Flow!",
  }
}

Bekerja dengan array

Contoh array

Filter json mengubah array liquid menjadi array JSON. Contoh berikut menghasilkan array JSON ketika diberi array liquid:

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ tags | json }}
  }
}

Ini menghasilkan JSON berikut setelah alur kerja berjalan:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["tag1","tag2","tag3"]
  }
}

Contoh for loop

Contoh berikut menggunakan loop untuk menghasilkan elemen array, yang dipisahkan oleh koma:

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": [
      {% for tag in tags %}
        "{{ tag }}"{% unless forloop.last %},{% endunless %}
      {% endfor %}
    ]
  }
}

Ini menghasilkan JSON berikut saat alur kerja berjalan:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": [
        "tag1",
        "tag2",
        "tag3"
    ]
  }
}

Contoh map

Filter map dapat digunakan untuk mendapatkan array properti tertentu dari array objek. Dalam contoh berikut, array properti city diekstrak dari array alamat pelanggan:

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ customer.addresses | map: "city" | json }}
  }
}

Ini menghasilkan JSON berikut setelah alur kerja berjalan:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["Ottawa","Toronto"]
  }
}

Batasan

Tindakan Kirim permintaan Admin API memiliki batasan berikut:

  • Tindakan ini akan menampilkan daftar Mutations dan Mutation inputs dari versi Admin API yang digunakan oleh Flow.
  • Saat versi API baru dirilis, tindakan ini mungkin gagal jika menggunakan mutasi atau kolom yang diubah atau tidak digunakan lagi.
  • Tindakan ini tidak mendukung kueri GraphQL, hanya mutasi.
  • Tindakan ini tidak mendukung mutasi yang tidak digunakan lagi.
  • Tindakan ini tidak mendukung beberapa mutasi yang spesifik untuk aplikasi tertentu, termasuk beberapa mutasi langganan, aktivitas pemasaran, dan diskon.
  • Tindakan ini tidak mendukung mutasi asinkron atau mutasi yang menampilkan jenis Job.
  • Tindakan ini tidak mendukung mutasi yang tidak mengimplementasikan antarmuka Node.

Templat

Menambahkan item gratis (diskon 100%) ke pesanan baru

Templat ini menambahkan item gratis yang didiskon ke pesanan baru jika item tersebut tersedia. Templat ini memeriksa inventaris, menerapkan diskon 100%, dan memperbarui pesanan tanpa memberi tahu pelanggan. Otomatisasi ini akan berguna untuk (1) meningkatkan kepuasan pelanggan dengan menyertakan item gratis kejutan dalam pesanan mereka, (2) mempromosikan produk baru atau yang kurang dikenal dengan menambahkannya sebagai sampel gratis dalam pesanan, atau (3) untuk menyederhanakan promosi dengan mengotomatiskan penyertaan dan pendiskonan item gratis. Lihat templat

Mengizinkan pemesanan untuk perusahaan yang dibuat oleh permintaan akun perusahaan

Tetapkan izin akses pemesanan saat perusahaan dibuat melalui permintaan akun perusahaan. Lihat templat

Ubah templat produk saat varian kehabisan stok atau stoknya tersedia kembali

Perbarui templat produk berdasarkan inventaris untuk varian produk tersebut. Alur kerja ini memungkinkan Anda beralih di antara templat untuk produk yang stoknya ada (templat default toko), produk yang stoknya habis, dan ketika satu atau beberapa varian kehabisan stok. Lihat templat

Penuhi semua item digital dalam pesanan

Memenuhi semua item yang tidak memerlukan pengiriman fisik, seperti item digital, atau yang cocok dengan daftar SKU. Dijalankan sekali untuk setiap lokasi pemenuhan ('pesanan pemenuhan') untuk pesanan baru. Lihat templat