Invio richiesta API Admin

L'azione Invia richiesta API Admin invia una modifica all'API Admin di GraphQL di Shopify. In questo modo, puoi eseguire quasi tutte le azioni che l'API consente tramite Flow.

Campi

L'azione Invia richiesta API Admin contiene i campi seguenti.

Campi utilizzati nell'azione Invia richiesta API Admin.
CampoDescrizione
ModificaObbligatoria. La modifica all'Admin di GraphQL di Shopify che desideri chiamare. Una modifica è un'API che effettua azioni o aggiorna i dati.
Input di modificaObbligatorio. I dati (in JSON) che devi inviare come parte della richiesta di modifica. Ogni modifica richiede un set di dati diverso, contenuto nel link fornito per ciascuna modifica. Per creare il JSON necessario puoi utilizzare Liquid o un'azione Esegui codice.

Trigger

L'azione Invia richiesta API Admin può essere utilizzata in qualsiasi flusso di lavoro, con qualsiasi trigger, purché il flusso di lavoro fornisca i dati necessari per creare gli input di modifica.

Esempi

Esempio 1: aggiornamento del modello utilizzato per un prodotto

In questo esempio utilizzeremo l'azione Invio richiesta API Admin per richiamare la modifica productUpdate e aggiornare il modello utilizzato per un prodotto.

Il campo id è richiesto e deve essere un prodotto GID valido. Qui l'abbiamo impostato con la variabile Liquid {{product.id}}. Questo presuppone che il flusso di lavoro abbia un trigger che fornisce un oggetto prodotto.

templateSuffix è il nome del modello che desideri applicare al prodotto. Ad esempio, se desideri applicare il modello pre-order, imposta templateSuffix su pre-order.

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

Esempio 2: aggiornamento dello stato di esenzione fiscale di un cliente

In questo esempio, utilizzeremo l'azione Invio richiesta API Admin per richiamare la modifica customerUpdate per aggiornare lo stato di esenzione fiscale di un cliente.

Il campo id è richiesto e deve essere un GID cliente valido. Qui l'abbiamo impostato con la variabile Liquid {{order.customer.id}}. Questo presuppone che il flusso di lavoro abbia un trigger che fornisce un oggetto ordine.

Il campo taxExempt è un booleano che indica se il cliente è esente da imposte. In questo esempio lo impostiamo su true.

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

Esempio 3: aggiornamento delle impostazioni locali di un cliente

In questo esempio, utilizzeremo l'azione Invio richiesta API Admin per richiamare la modifica customerUpdate per aggiornare le impostazioni locali del cliente.

Il campo id è richiesto e deve essere un GID cliente valido. Qui l'abbiamo impostato con la variabile Liquid {{customer.id}}. Questo presuppone che il flusso di lavoro abbia un trigger che fornisce un oggetto cliente.

Il campo locale è una stringa che rappresenta le impostazioni locali del cliente. In questo esempio lo impostiamo su en.

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

Consigli Liquid

Flow supporta un filtro Liquid json che può essere utile nella costruzione dell'input. I seguenti esempi utilizzano tutti la mutazione customerUpdate e presuppongono che il tuo flusso di lavoro abbia un trigger che fornisce un oggetto cliente.

Lavorare con le stringhe

Il seguente esempio aggiorna la nota su un cliente:

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

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

Il filtro json elude la stringa per garantire un JSON corretto. Dopo l'esecuzione del flusso di lavoro, ne risulta il seguente JSON:

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

Lavoro con gli array

Esempio con array

Il filtro json trasforma un array Liquid in un array JSON. L'esempio seguente genera un array JSON quando si dispone di un array Liquid:

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

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

Dopo l'esecuzione del flusso di lavoro, ne risulta il seguente JSON:

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

Esempio for loop

L'esempio seguente utilizza un loop per generare gli elementi di un array, separati da virgole:

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

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

Quando il flusso di lavoro è in esecuzione, ne risulta il seguente JSON:

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

Esempio con mappa

Il filtro mappa può essere utilizzato per ottenere un array di una determinata proprietà da un array di oggetti. Nell'esempio seguente, un array delle proprietà city viene estratto da un array di indirizzi dei clienti:

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

Dopo l'esecuzione del flusso di lavoro, ne risulta il seguente JSON:

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

Limitazioni

L'azione Invia richiesta API Admin presenta le seguenti limitazioni:

  • L'azione mostra un elenco di Mutations e Mutation inputs dalla versione API Shopify Admin 2024-04.
  • Quando la versione API Admin viene aggiornata, questa azione può non andare a buon fine se si basa su un campo con una modifica che causa un'interruzione.
  • L'azione non supporta le query GraphQL, ma solo le modifiche.
  • L'azione non supporta le modifiche deprecate.
  • L'azione non supporta alcune modifiche specifiche di alcune app, tra cui alcuni abbonamenti, attività di marketing e modifiche degli sconti.
  • L'azione non supporta le modifiche asincrone e le modifiche che restituiscono un tipo Job.
  • L'azione non supporta le modifiche che non implementano l'interfaccia Nodo.
Non trovi le risposte che stai cercando? Siamo qui per aiutarti.