Send Admin API request
Дія Send Admin API request може використовувати більшість мутацій у GraphQL Admin API для внесення змін до вашого магазину, зокрема мутації, які ще не доступні як дії у Flow.
Поля
Дія Send Admin API request містить такі поля.
| Поле | Опис |
|---|---|
| Мутація | Обов’язково. Мутація Shopify GraphQL Admin, яку ви хочете викликати. Мутація — це API, що виконує дію або оновлює дані. |
| Ввідні дані мутації | Обов’язково. Дані (у форматі JSON), які потрібно надіслати як частину запиту мутації. Кожній мутації потрібен окремий набір даних, задокументований за посиланням, що надається для кожної з них. Щоб сформувати потрібний JSON, можна скористатися Liquid або дією виконання коду. |
Тригери
Дію Надіслати запит до Admin API можна використовувати в будь-якому робочому процесі з будь-яким тригером, якщо робочий процес надає дані, необхідні для формування ввідних даних мутації.
Приклади
Приклад 1. Оновлення шаблону, який використовується для товару
У цьому прикладі ми скористаємося дією Надіслати запит до Admin API для виклику мутації productUpdate, щоб оновити шаблон, який використовується для товару.
Поле id є обов’язковим і має бути дійсним GID товару. Тут ми задаємо його за допомогою змінної Liquid {{product.id}}. Це передбачає, що ваш робочий процес має тригер, який надає об'єкт товару.
templateSuffix — це назва шаблону, який потрібно застосувати до товару. Наприклад, якщо ви хочете застосувати шаблон pre-order, потрібно встановити для templateSuffix значення pre-order.
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}Приклад 2. Оновлення статусу звільнення від сплати податків для клієнта
У цьому прикладі ми скористаємося дією Надіслати запит до Admin API для виклику мутації customerUpdate, щоб оновити статус звільнення від сплати податків для клієнта.
Поле id є обов’язковим і має бути дійсним GID клієнта. Тут ми задаємо його за допомогою змінної Liquid {{order.customer.id}}. Це передбачає, що ваш робочий процес має тригер, який надає об'єкт замовлення.
Поле taxExempt — це логічне значення, яке вказує, чи звільнено клієнта від сплати податків. У цьому прикладі ми встановлюємо для нього значення true.
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}Приклад 3. Оновлення локалі клієнта
У цьому прикладі ми скористаємося дією Надіслати запит до Admin API для виклику мутації customerUpdate, щоб оновити локаль клієнта.
Поле id є обов’язковим і має бути дійсним GID клієнта. Тут ми задаємо його за допомогою змінної Liquid {{customer.id}}. Це передбачає, що ваш робочий процес має тригер, який надає об'єкт клієнта.
Поле locale — це рядок, що представляє локаль клієнта. У цьому прикладі ми встановлюємо для нього значення en.
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}Поради щодо Liquid
Flow підтримує фільтр Liquid json, який може бути корисним під час формування ввідних даних. У всіх наведених нижче прикладах використовується мутація customerUpdate і передбачається, що ваш робочий процес має тригер, який надає об’єкт клієнта.
Робота з рядками
У наступному прикладі оновлюється примітка клієнта:
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}Фільтр json екранує рядок, щоб забезпечити правильний формат JSON. У результаті після запуску робочого процесу генерується такий JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}Робота з масивами
Приклад масиву
Фільтр json перетворює масив Liquid на масив JSON. У наступному прикладі виводиться масив JSON за умови надання масиву Liquid:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}У результаті після запуску робочого процесу генерується такий JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}Приклад циклу for
У наступному прикладі використовується цикл для виведення елементів масиву, розділених комами:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}У результаті під час запуску робочого процесу генерується такий JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}Приклад map
Фільтр map можна використовувати, щоб отримати масив певної властивості з масиву об’єктів. У наступному прикладі масив властивостей city витягується з масиву адрес клієнтів:
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}У результаті після запуску робочого процесу генерується такий JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}Обмеження
Дія Надіслати запит до Admin API має такі обмеження:
- Дія відображатиме список
MutationsтаMutation inputsіз версії Admin API, яка використовується у Flow. - Після випуску нових версій API ця дія може не працювати, якщо вона використовує мутацію або поле, які було змінено або визнано застарілими.
- Ця дія не підтримує запити GraphQL — лише мутації.
- Дія не підтримує мутації, які визнано застарілими.
- Ця дія не підтримує деякі мутації, характерні для певних застосунків, включно з деякими мутаціями щодо підписок, маркетингової діяльності та знижок.
- Дія не підтримує асинхронні мутації або мутації, які повертають тип
Job. - Дія не підтримує мутації, які не реалізують інтерфейс Node.
Шаблони
Додавання безкоштовної (зі 100% знижкою) одиниці до нових замовлень
Цей шаблон додає до нових замовлень безкоштовну одиницю зі знижкою, якщо ця одиниця є в наявності. Він перевіряє запаси, застосовує 100% знижку та оновлює замовлення без сповіщення клієнта. Така автоматизація буде корисною, щоб (1) підвищити рівень задоволеності клієнтів, додавши несподіваний безкоштовний подарунок до їхнього замовлення, (2) просувати нові чи менш відомі товари, додаючи їх як безкоштовні зразки до замовлень, або (3) оптимізувати промоакції шляхом автоматизації додавання безкоштовних одиниць і застосування знижок до них. Переглянути шаблон
Дозвіл на оформлення замовлень для компаній, створених за запитами на створення облікового запису компанії
Надання дозволу на оформлення замовлень під час створення компанії за запитом на створення облікового запису компанії. Переглянути шаблон
Зміна шаблону товару, коли варіантів немає в наявності або вони знову доступні
Оновлення шаблону товару на основі запасів для варіантів цього товару. Робочий процес дає змогу перемикатися між шаблонами для товарів у наявності (шаблон магазину за замовчуванням), товарів, яких немає в наявності, і випадків, коли одного або кількох варіантів немає в наявності. Переглянути шаблон
Виконання для будь-яких цифрових одиниць у замовленні
Виконує замовлення для будь-яких одиниць, що не потребують фізичної доставки (наприклад, цифрові одиниці) або відповідають списку артикулів. Запускається один раз для кожного розташування виконання замовлення (замовлення на виконання) у межах нового замовлення. Переглянути шаблон