Enviar una solicitud a la Admin API
La acción Enviar una solicitud a la Admin API puede usar la mayoría de las mutaciones de la GraphQL Admin API para hacer cambios en la tienda, incluidas las mutaciones que aún no están disponibles como actions en Flow.
En esta página
Campos
La acción Enviar una solicitud a la Admin API incluye los siguientes campos.
| Campo | Descripción |
|---|---|
| Mutación | Obligatorio. La mutación de Shopify GraphQL Admin que quieres llamar. Una mutation es una API que ejecuta acciones o actualiza datos. |
| Entradas de la mutación | Obligatorio. Los datos (en JSON) que debes enviar como parte de la mutation request. Cada mutación requiere un conjunto de datos distinto, que se documenta en el enlace que se proporciona para cada mutación. Para construir el JSON necesario, puedes usar Liquid o una Run code action. |
Activadores
Puedes usar la acción Enviar una solicitud a la Admin API en cualquier flujo de trabajo, con cualquier activador, siempre que el flujo de trabajo proporcione los datos necesarios para crear las entradas de la mutación.
Ejemplos
Ejemplo 1: actualizar la plantilla que usa un producto
En este ejemplo, usaremos la acción Enviar una solicitud a la Admin API para llamar a la mutación productUpdate y actualizar la plantilla que usa un producto.
El campo id es obligatorio y debe ser un GID de producto válido. Aquí lo configuramos con la variable de Liquid {{product.id}}. Esto supone que el flujo de trabajo tiene un activador que proporciona un objeto de producto.
El templateSuffix es el nombre de la plantilla que quieres aplicar al producto. Por ejemplo, si quieres aplicar la plantilla pre-order, establece el templateSuffix en pre-order.
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}Ejemplo 2: actualizar el estado de exención de impuestos de un cliente
En este ejemplo, usaremos la acción Enviar una solicitud a la Admin API para llamar a la mutación customerUpdate y actualizar el estado de exención de impuestos de un cliente.
El campo id es obligatorio y debe ser un GID de cliente válido. Aquí lo configuramos con la variable de Liquid {{order.customer.id}}. Esto supone que el flujo de trabajo tiene un activador que proporciona un objeto de pedido.
El campo taxExempt es un booleano que indica si el cliente tiene exención de impuestos. En este ejemplo, lo establecemos en true.
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}Ejemplo 3: actualizar la región de un cliente
En este ejemplo, usaremos la acción Enviar una solicitud a la Admin API para llamar a la mutación customerUpdate y actualizar la región de un cliente.
El campo id es obligatorio y debe ser un GID de cliente válido. Aquí lo configuramos con la variable de Liquid {{customer.id}}. Esto supone que el flujo de trabajo tiene un activador que proporciona un objeto de cliente.
El campo locale es una cadena que representa la región del cliente. En este ejemplo, lo establecemos en en.
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}Consejos de Liquid
Flow admite un filtro de Liquid json que puede ser útil para crear los datos de entrada. Todos los siguientes ejemplos usan la mutación customerUpdate y suponen que el flujo de trabajo tiene un activador que proporciona un objeto de cliente.
Trabajar con cadenas
El siguiente ejemplo actualiza la nota de un cliente:
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}El filtro json escapa la cadena para garantizar un JSON válido. Esto da como resultado el siguiente JSON cuando se ejecuta el flujo de trabajo:
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}Trabajar con arreglos
Ejemplo de arreglo
El filtro json transforma un arreglo de Liquid en un arreglo JSON. El siguiente ejemplo genera un arreglo JSON cuando recibe un arreglo de Liquid:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}Esto da como resultado el siguiente JSON cuando se ejecuta el flujo de trabajo:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}Ejemplo de bucle for
El siguiente ejemplo usa un bucle para mostrar los elementos de un arreglo, separados por comas:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}Esto da como resultado el siguiente JSON cuando se ejecuta el flujo de trabajo:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}Ejemplo de map
El filtro map se puede usar para obtener un arreglo de una propiedad específica a partir de un arreglo de objetos. En el siguiente ejemplo, se extrae un arreglo de propiedades city de un arreglo de direcciones de clientes:
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}Esto da como resultado el siguiente JSON cuando se ejecuta el flujo de trabajo:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}Limitaciones
La acción Enviar una solicitud a la Admin API tiene las siguientes limitaciones:
- La acción mostrará una lista de
MutationsyMutation inputsde la versión de Admin API que usa Flow. - Cuando se publiquen new API versions, esta acción podría fallar si usa una mutación o un campo que se cambió o se declaró obsoleto.
- La acción no admite consultas de GraphQL, solo mutaciones.
- La acción no admite mutaciones que se hayan declarado obsoletas.
- La acción no admite algunas mutaciones específicas de ciertas aplicaciones, incluidas algunas mutaciones de suscripción, de actividades de marketing y de descuentos.
- La acción no admite mutaciones asincrónicas ni mutaciones que devuelvan un tipo
Job. - La acción no admite mutaciones que no implementen la interfaz Node.
Plantillas
Agregar un artículo gratis (descuento del 100 %) a los pedidos nuevos
Esta plantilla agrega un artículo gratis a los pedidos nuevos si hay existencias. Verifica el inventario, aplica un descuento del 100 % y actualiza el pedido sin notificar al cliente. Esta automatización puede ayudar a (1) aumentar la satisfacción del cliente al incluir un artículo gratis sorpresa en el pedido, (2) promocionar productos nuevos o poco conocidos al agregarlos como muestras gratuitas en los pedidos o (3) agilizar las promociones al automatizar la inclusión y el descuento de artículos gratis. View template
Permitir pedidos para empresas creadas a partir de solicitudes de cuenta de empresa
Asigna un permiso para hacer pedidos cuando se crea una empresa mediante una solicitud de cuenta de empresa. View template
Cambia la plantilla de producto cuando las variantes estén agotadas o vuelvan a estar disponibles
Actualiza la plantilla de producto según el inventario de las variantes del producto. Este flujo de trabajo permite cambiar entre plantillas: con existencias (la plantilla predeterminada de la tienda), agotado y cuando una o más variantes estén agotadas. View template
Preparar los artículos digitales de un pedido
Prepara los artículos que no requieren entrega física, como los digitales, o que coinciden con una lista de SKU. Se ejecuta una vez por cada sucursal de preparación (la 'orden de preparación') de un pedido nuevo. View template