Kód futtatása

A Kód futtatása művelet JavaScriptet hajt végre. A munkafolyamat korábbi lépéseiből származó adatokat bemenetként átadhatja a Kód futtatása műveletnek, és az értékeket visszaadhatja a későbbi lépésekben való felhasználásra.

Mezők

A Kód futtatása művelet a következő mezőket tartalmazza.

A „Kód futtatása” műveletben használt mezők.
MezőLeírás
BemenetKötelező. Egy GraphQL-lekérdezés, amellyel a korábbi lépésekből származó adatok bemenetként használhatók a Kód futtatása művelethez.
KimenetKötelező. A művelet által visszaadandó adatok ábrázolása, a GraphQL séma-definíciós nyelvén (SDL) meghatározva.
KódKötelező. Az a JavaScript, amelyet a Kód futtatása művelet végrehajt.

Bemeneti adatok

A Kód futtatása művelet előtt lezajló lépésekből bemeneti adatok adhatók át. Ezen adatok belefoglalásához írhat egy GraphQL-lekérdezést a Bemenet mezőbe. A lekérdezésből visszaadott adatok az export default-tal megjelölt, konvenció szerint main nevű függvény input argumentumaként lesznek elérhetők.

A bemeneti lekérdezés a Flow környezeti adataira vonatkozó lekérdezés, nem pedig a Shopify Admin API-ra irányuló lekérdezés. Ezért nem szúrhat be Shopify-lekérdezést a bemeneti adatokba. Ezenkívül a Flow kezeli a lekérdezésben az edges és nodes elemeket, így nem kell ezeket vagy más lapozási szintaxist hozzáadnia a lekérdezéshez.

Példa egy olyan bemenetre, amely lekéri a rendelési megjegyzést és egy sortétel címét:

{
  order {
    note
    lineItems {
      title
    }
  }
}

Ezek az adatok egy input változóvá alakulnak, amely felhasználható a kódban:

export default function main(input) {
  // input.order.note
  // input.order.lineItems[0].title
}

A bemenetek a függvényaláírásban is destrukturálhatók:

export default function main({order}) {
  // order.note
  // order.lineItems[0].title
}

Metamezők

Az egyes metamezőértékek „Kód futtatása” műveletben való eléréséhez először hozzá kell adnia a metamezőt a Flow környezeti adataihoz. Ez a „Kód futtatása” műveleten kívül bármely más műveletben vagy feltételben megtehető. Például hozzáadhat egy Kimenet naplózása műveletet, majd követheti az utasításokat a metamező hozzáadásához.

Miután egy metamezőt hozzáadott a munkafolyamat-környezethez, elérheti azt a „Kód futtatása” műveletben. Tegyük fel például, hogy hozzáadott egy rendelési metamezőt giftMessage aliasnévvel. Ekkor a bemeneti lekérdezésben a következőképpen érheti el:

{
  order {
    giftMessage {
      value
    }
  }
}

Kimeneti adatok

A Kód futtatása művelet egyéni adatokat adhat vissza. A kód által visszaadott adatok típusának meghatározásához használja a Kimenet mezőt és a GraphQL sémadefiniáló nyelvét (SDL). A támogatott kimeneti típusok a String, az Int, a Float, a Boolean és az ID, amelyek a kötelező mezők, listák és egyéni adatok megadására vonatkozóan követik az SDL specifikációját.

Például egy giftMessage nevű karakterlánc és egy totalGifts nevű szám visszaadásához:

type Output {
  "The message to include in the gift"
  giftMessage: String!
  "The total number of gifts"
  totalGifts: Int!
}

A megjegyzések megadása nem kötelező, de ezek írják le az adatokat a Flow felhasználói felületén. Ha ezeket az adatokat a JavaScript-kódban szeretné kimenetként megadni, adjon vissza egy, a típusnak megfelelő objektumot:

export default function main(input) {
  // your code
  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

Összetettebb adatok visszaadásához egyéni típust is definiálhat. Például egy Gift nevű típus visszaadásához, amely egy message nevű karakterláncot és egy amount nevű számot tartalmaz:

type Output {
  "The gift to send"
  gifts: [Gift!]!
}

type Gift {
  "The message to include in the gift"
  message: String!
  "The total number of gifts"
  amount: Int!
}

Ha hozzá szeretne férni ezekhez az adatokhoz a műveletet követő lépésekben, használja a Kód futtatása nevű változót, amelynek típusa a Kód futtatása művelet konfigurációjában megadott Output séma szerint lesz meghatározva. Ezt a változót feltételekben és műveletekben is használhatja.

Console.log

A console.log használatával hibaelhárítási célból adatokat küldhet a Flow munkafolyamat-futtatási naplójába. A kimenet látható lesz a munkafolyamat futtatási naplójában. Például a következők érvényesek:

export default function main(input) {
  console.log('Hello, world!');
  //Hello, world!
  console.log(input);
  // { order: { note: 'Hello', lineItems: [ { title: 'World' } ] } }
  console.log(input.order, 'is the order');
  // { note: 'Hello', lineItems: [ { title: 'World' } ] }
  // is the order

  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

A Kód futtatása műveletben nem használhatja a console.info, a console.error vagy más funkciókat.

Példa

A kódműveletre vonatkozó példák a Flow-példák adattárában találhatók.

Korlátozások

A Kód futtatása műveletre a következő korlátozások vonatkoznak:

  • A Kód futtatása művelet támogatja az ECMA2020 JavaScriptet. Nem támogatja a NodeJS vagy a CommonJS API-kat, illetve a modulok importálását.
  • A kódja nem indíthat HTTP-hívásokat (fetch).
  • Véletlenszerű és óraalapú funkciók nem használhatók. A dátumadatok, például a scheduledAt vagy a createdAt, bemenetként átadhatók.
  • A Console.log nem a böngészőkonzolba naplóz.
  • Az adatcsomag méretének csökkentése érdekében a kimeneti adatcsomag csak a további lépésekben használt változókat adja vissza.
  • Nem adhat hozzá metamezőaliast közvetlenül a Kód futtatása műveletben. Ehhez tekintse meg az ezen az oldalon található Metamezők szakaszt.

Ezenkívül a következő korlátozások érvényesek:

  • A bemeneti adatlekérdezés legfeljebb 5000 karakter hosszú lehet.
  • A kimeneti adatséma legfeljebb 5000 karakter hosszú lehet.
  • A kimeneti adatcsomag és a Console.log kimenete együttesen legfeljebb 50 KB lehet.
  • A kód legfeljebb 50 000 karakter hosszú lehet.
  • A teljes végrehajtási idő legfeljebb 5 másodperc lehet.
  • A memóriahasználat legfeljebb 10 MB lehet.

Sablonok

Ingyenes (100%-os kedvezménnyel ellátott) tétel hozzáadása az új rendelésekhez

Ez a sablon egy ingyenes, kedvezményes tételt ad az új rendelésekhez, ha a tétel készleten van. Ellenőrzi a készletet, 100%-os kedvezményt alkalmaz, és a vásárló értesítése nélkül frissíti a rendelést. Ez a munkafolyamat a következő esetekben segíthet az automatizálásban:

  • Növelheti a vásárlói elégedettséget azáltal, hogy meglepetésként egy ingyenes tételt ad a rendelésükhöz.
  • Új vagy kevésbé ismert termékeket népszerűsíthet azáltal, hogy ingyenes mintaként hozzáadja őket a rendelésekhez.
  • Egyszerűsítheti a promóciókat az ingyenes tételek hozzáadásának és kedvezményezésének automatizálásával.

Sablon megtekintése

Inaktív visszavételek törlése

Automatikusan törli azokat a visszavételeket, amelyek visszatérítése vagy készletre vétele egy bizonyos időn belül nem történt meg. Sablon megtekintése

Előtaggal ellátott címkék átalakítása termék-metamezővé a Kód futtatása művelet segítségével

Ez a munkafolyamat azokat a címkéket, amelyek egy előtaggal (például „color:”) kezdődnek, hozzáadja egy termék-metamezőlistához. A Kód futtatása műveletet használja a címkék és a metamezőlistában meglévő tételek elemzésére. A munkafolyamat egy termék létrehozásakor fut le, de manuálisan is futtatható meglévő termékeken. Sablon megtekintése

Értesítés küldése, ha egy vásárló egy termék több változatát rendeli meg

E-mail-értesítést kap, amikor egy vásárló ugyanannak a terméknek több változatát rendeli meg. Sablon megtekintése

Értesítés küldése, ha a rendelés csomagot tartalmaz

Ez a munkafolyamat egy rendelés létrehozásakor indul el, és ellenőrzi, hogy a rendelésben szereplő termékek bármelyikét csomag részeként vásárolták-e meg. Ha ilyet talál, egy belső e-mailt küld a csomag részleteivel. Ezenkívül ezt a munkafolyamatot kiindulási pontként használhatja bármely olyan felhasználási esethez, amelynek során egy rendelésen belüli csomag jelenlétét kell észlelni. Sablon megtekintése

Rendelések címkézése a hozzájuk tartozó UTM-kampánnyal

Címkéket ad azokhoz a rendelésekhez, amelyek tartalmazzák a hozzájuk tartozó UTM-kampányok nevét. Sablon megtekintése