Разбиране на условията в Shopify Flow

Условието е стъпка в работен процес, в която се взема решение как да се процедира въз основа на това дали е изпълнен набор от критерии. Всяка стъпка на условие има 2 възможности: Вярно, когато критериите са изпълнени, и Невярно, когато критериите не са изпълнени. Ако не дефинирате следваща стъпка за някоя от възможностите, като изберете друго условие или действие, тогава изпълнението на работния процес спира.

Например, ако Вашият работен процес се задейства при създаване на поръчка, тогава дадено условие може да провери дали в поръчката е използван конкретен код за отстъпка AFFILIATE10. Ако е използван, тогава опцията Вярно може да доведе до действие, което изпраща имейл до маркетинговия партньор, за да го уведоми, че кодът му е бил използван. Ако не е използван, тогава опцията Невярно може да е празна, което означава, че не се случва нищо повече и изпълнението на работния процес приключва.

Един работен процес може да има произволен брой условия в зависимост от сложността на работния Ви процес. Условията могат също да се свързват с други условия или действия в зависимост от това какво искате да прави работният процес. Условията могат да бъдат настроени да се свързват последователно (например, ако условие A е вярно, проверете за условие B; ако A е невярно, проверете за C) или можете да ги настроите да се случват едновременно като част от една и съща стъпка (например, проверете дали A, B или C е вярно).

Изготвяне на условия за Вашия работен процес

За разлика от тригера или действието, които можете да изберете от предварително зададен списък с налични опции в Shopify Flow, условията се изготвят от нулата чрез избиране на променливи, логически оператори и стойности за създаване на условния израз:

  • Променливата е заместващ текст, който дефинира данните, които условието използва. Например, ако едно условие трябва да провери за конкретен код за отстъпка в дадена поръчка, тогава променливата ще бъде order.discountCode. Променливите използват точковата нотация на GraphQL Admin API.
  • Един логически оператор показва как работният процес трябва да определи дали условието е изпълнено. Логическите оператори могат да се прилагат на ниво променлива или когато са включени няколко променливи като част от общите критерии на условието:
    • Опциите на ниво променлива включват оператори на ниво поле като По-голямо от или Започва с или оператори за списък като Поне един от или Всички от.
    • Опциите на ниво условие включват AND, което означава, че всички променливи трябва да са верни, за да се счита условието за вярно като цяло, или OR, което означава, че поне 1 променлива трябва да е вярна, за да се счита условието за вярно като цяло.
  • Стойността е действителната информация, която променливата търси. Например, ако конкретният order.discountCode, който искате работният процес да провери, е AFFILIATE10, тогава това ще бъде стойността, която да включите като част от условието.

Докато избирате своите променливи и оператори, стъпката на условието в работната област на Shopify Flow се актуализира, за да отрази Вашия условен израз на разбираем език, така че да можете да проверите отново дали условието, което изграждате, е форматирано правилно. Можете да щракнете върху Добавяне на описание, за да замените условния израз по подразбиране със собствено описание.

Научете по-подробна информация за елементите на условията в Shopify Flow.

Разбиране на променливите в условията

При изготвянето на стъпка на условие в работен процес първата стъпка, която системата Ви подканва да направите, е да добавите променлива. Но какво е променлива?

В Shopify Flow променливата е заместващ текст, който посочва данните, използвани от условието в работния процес. Когато дадено условие гласи „Ако A е по-голямо от 10…“, частта A е променливата. Избирането на променлива за дадено условие по същество казва на условието конкретно кои данни да оцени.

Променливите се форматират с помощта на точковата нотация на GraphQL Admin API. Не е необходимо да владеете добре API, за да създавате работни процеси с приложението Flow, но основното разбиране на имената на променливите и техните дефиниции може да Ви помогне да изградите специфичната логика на работния процес, която желаете.

За да разберете какви данни представя дадена променлива, разгледайте следната информация за променливите:

Съвет: Получете помощ за променливите от асистента на Dev Docs

Ако не сте сигурни коя променлива да изберете, когато изграждате Вашето условие, обмислете да помолите за съвет асистента на Shopify Dev Docs. Асистентът на Dev Docs има достъп до цялата документация относно GraphQL Admin API и може да предложи варианти как да форматирате условие в Shopify Flow:

  1. Отидете на Shopify Dev Docs.
  2. Натиснете „Ask Assistant“, за да отворите панела за чат.
  3. В полето за съобщения въведете своята заявка, например: „Коя променлива да използвам в Shopify Flow, ако искам достъп до данните за тагове на клиенти, когато тригерът ми започва с „Order created“?“.
  4. Натиснете Enter или щракнете върху Изпращане.

Разчитане на точковата нотация за променливи

Когато избирате променливи, ще забележите, че са форматирани като ключови думи, разделени с точки, например order.customer.tag. Този формат показва стъпките, които API предприема, за да стигне до данните, които искате да използвате. Всяка „стъпка“ на променливата е разделена с точка, а пътят до данните се чете отляво надясно. Променливите могат да се различават по дължина в зависимост от това къде се съхраняват данните в API и от пътя, по който работният процес достига до тях.

Например:

  • order.email: Проверява имейл адреса, свързан с клиента за поръчката. Това е подобно на начина, по който може да щракнете върху поръчка и след това да проверите имейл адреса в подробностите за поръчката.
  • refunds_item.staffMember.name: Проверява поръчката за възстановяване на сума за артикул, преминава към информацията за служителя, свързана с това възстановяване, и проверява пълното име на този служител.

Когато избирате променлива, помислете как бихте навигирали в администраторския панел на Shopify, за да намерите желаната информация. Вероятно е API да трябва да поеме по подобен път, което може да Ви помогне да определите как да бъде форматирана променливата Ви.

Например, ако преглеждате нова поръчка и искате да знаете в коя RFM група е свързаният с нея клиент. Може да Ви хрумне да щракнете върху името на клиента в поръчката, за да бъдете пренасочени към страницата с подробностите за него в администраторския панел на Shopify. След това може да проверите резюмето на анализа на клиента, за да видите каква стойност се показва в колоната RFM група.

Променливата, която бихте използвали, за да върнете същите данни в Shopify Flow, би използвала подобен път: order.customer.statistics.rfmGroup.

Изисквания за данни за променливите

Променливите изискват данни. Ако за променливата не са налични правилните данни, тогава състоянието няма да работи и работният процес ще бъде неуспешен. В зависимост от това кой тригер сте избрали за начало на Вашия работен процес, опциите за това кои променливи да добавите към състоянията си се променят, за да отразят възможните опции въз основа на наличните данни.

Например, ако Вашият работен процес започва с тригера Създаден продукт, тогава състоянията, които създавате от този тригер, са ограничени до променливите, налични от набора от данни за продукт. Следователно променливи като product.category.name, product.vendor и variants_item.displayName са налични за използване като част от състоянието. За разлика от тях, променливи като customer.verifiedEmail или subscriptionContracts_item.status няма да се покажат като опции, тъй като не са свързани с набора от данни за продукта.

Това обаче не означава непременно, че данните, съдържащи се в други набори от данни, са напълно недостъпни. До някои данни може да се достигне по няколко пътя в API по същия начин, по който може да щракате върху различни връзки, за да стигнете до една и съща страница в администраторския панел на Shopify. На практика това означава, че различните тригери изискват различна нотация на променливите, за да върнат една и съща информация.

Например, искате Вашият работен процес да проверява таговете в профила на клиента. Ако работният Ви процес започва с тригера Създадена поръчка, тогава променливата ще бъде order.customer.tags, защото работният процес започва с данните за поръчката, след това проверява информацията за клиента в поръчката, а след това – таговете на този клиент. Ако работният Ви процес започва с тригера Създаден клиент, тогава променливата ще бъде просто customer.tags, защото работният процес започва с данните за клиента, така че може директно да премине към проверка на таговете в профила на клиента.

Поради стила на точковата нотация в Shopify Flow, търсенето на променливи, които да се използват в състояние въз основа на ключови думи, може да върне няколко резултата. Разбирането на това какво показва пътят на променливата е важно при определянето коя променлива да изберете, когато изграждате Вашето състояние.

Например Вашият работен процес използва тригера Създадена поръчка и Вие търсите променлива, използвайки ключовата дума tags. Вашето търсене може да върне следните резултати, които проверяват за различна информация в поръчката:

  • order.tags: Таговете, приложени към самата поръчка. Например #спешна поръчка или #подарък.
  • order.customer.tags: Таговете, приложени към клиента, който е направил поръчката. Например #VIP или #партньор.
  • order.lineItems.product.tags: Таговете, приложени към продуктите, закупени в поръчката. Например #чупливо или #изискваID.

В зависимост от това кой тип тагове искате да проверява работният процес, трябва да изберете правилната променлива, така че Вашето състояние да функционира според очакванията.

Разбиране на логическите оператори в състоянията

Логическите оператори определят как се прилага Вашето състояние и водят до това твърдението да бъде вярно или невярно. Когато едно състояние гласи „Ако А е по-голямо от 10…“, частта е по-голямо от е логическият оператор. Избирането на логически оператор за дадено състояние по същество указва на състоянието как да оцени променливата.

В работните процеси на Shopify Flow има 3 вида логически оператори:

  • Оператори на ниво поле, като например По-голямо от или Започва с.
  • Оператори за списък, като например Поне един от или Всички от.
  • Оператори на ниво състояние, като например И или ИЛИ.

Операторите на ниво поле и операторите за списък се прилагат на ниво променлива, а операторите на ниво състояние се прилагат за цялостното състояние и могат да се използват за комбиниране на няколко променливи в едно единствено състояние.

Операторите на ниво поле са най-често срещаният тип оператори, използвани във всеки вид твърдение с променлива. С операторите на ниво поле можете да създавате условни твърдения като „Ако А е по-голямо от 10, тогава направете X“ или „Ако Б съдържа «VIP», тогава направете X“, за да имате по-голям контрол върху това кои стойности на променливата връщат резултат „вярно“. Равно на е логическият оператор по подразбиране.

Операторите за списък могат да се прилагат само за променливи, които могат да върнат списък с резултати. Например променливата lineItems_item.variant.price връща цената за продуктов вариант в поръчката, която може да върне списък с резултати, когато клиентът е закупил няколко продукта в една и съща поръчка. Това означава, че можете да приложите оператор за списък, като например Поне един от, когато искате условно твърдение като „lineItems_item.variant.price е по-голямо от 10 $“ да е вярно, когато в поръчката има поне 1 продуктов вариант над 10 $. За разлика от тях, операторите за списък не се показват за променливи, които могат да върнат само 1 резултат наведнъж. Например има само 1 възможна стойност за променлива като order.createdAt, тъй като една поръчка може да бъде създадена само веднъж, така че операторите за списък не се показват като опции за промяна на твърдението, съдържащо тази променлива.

Оператори на ниво условие, като например AND и OR, Ви позволяват да включите множество променливи в едно и също условие. Например, вместо прост условен израз като „Ако А е равно на 5, тогава направете X“, можете да изградите по-сложни условия като „Ако А е равно на 5 и B е по-голямо от 10, тогава направете X“, което изисква и двете променливи A и B да бъдат верни, или „Ако A е равно на 5, или B е по-голямо от 10, или C е по-малко от 1, тогава направете X“, което изисква само една от A, B или C да бъде вярна. Използвайте AND, когато всичко в работния процес трябва да е вярно; използвайте OR, когато е достатъчно да бъде изпълнен който и да е един критерий, за да бъде условието вярно.

Защо това е важно: Разбирането на начина, по който работят логическите оператори в условията, Ви позволява да изграждате работни процеси, които проверяват точно за желаните от Вас критерии. С 3-те вида логически оператори можете да създавате детайлни и сложни условни изрази, за да създавате работни процеси, които проверяват за много специфични условия.

Научете повече за логическите оператори в условията.