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.

Campos

La acción Enviar una solicitud a la Admin API incluye los siguientes campos.

Campos usados en la acción Enviar una solicitud a la Admin API.
CampoDescripción
MutaciónObligatorio. 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ónObligatorio. 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 Mutations y Mutation inputs de 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