Айнымалыларды қалай пайдалану керек
MaviBot-та чатботтарды құру кезінде айнымалылардың не екенін және оларды тиімді пайдалану жолдарын қарастырайық.
Бір жобадағы айнымалылар мен тұрақтыларға қатысты келесі жүйелік шектеулерді ескеріңіз:
Үлгі айнымалылары:
- Ең көп саны: 100 айнымалы
- Атауының ең ұзындығы: 100 таңба
Жоба тұрақтылары:
- Ең көп саны: 50 тұрақты
- Атауының ең ұзындығы: 100 таңба
- Мәнінің ең ұзындығы: 5 000 таңба
Айнымалы – бұл бірегей мәтіндік белгімен анықталған, деректерді сақтауға арналған атаулы орын.

1-сурет: total атауымен айнымалы, төлем сомасын сақтайды.
MaviBot айнымалылардың бірнеше түрін ұсынады:
- Кірістірілген айнымалылар
- Жүйелік айнымалылар
- Пайдаланушы анықтайтын айнымалылар – бұл жоба ішінде өзіңіз жасайтын айнымалылар.
Айнымалыны жариялау дегеніміз – атаулы контейнерге мән беру. Басқаша айтқанда, a=0 сияқты өрнек a айнымалысын жариялау болып табылады. Біз құрастырушыға a айнымалысында сан сақтайтынымызды және әзірге бұл мән 0 екенін айттық (жарияладық).
Айнымалыға мән беру дегеніміз де сол мағынаны білдіреді.
«Айнымалыға функцияның мәнін беру» немесе «айнымалыны функцияға теңестіру» деген тіркестер де жиі қолданылады. Принципі бірдей: нақты мәннің орнына функцияның нәтижесі беріледі. Мысалы: s_id = tg_send_message(platform_id, "Hello!") Бұл жағдайда функцияның нәтижесі айнымалыда сақталады.
Айнымалыны қалпына келтіру дегеніміз – оған 0 мәнін беру.
Функциялар мен әдістер – бұл MaviBot алдын ала конфигурациялаған командалар жиынтығы. Көптеген функциялар параметрлерді – функция немесе әдіс түсінетін мәндерді қажет етеді. Бот қажетті параметрлерді алғаннан кейін белгілі бір команданы орындайды.
tg_send_message(platform_id, "Hello!") — бұл функция Telegram-да «Hello!» хабарламасын жібереді.

2-сурет. Функцияға берілген text1 айнымалысының мысалы.
АЙНЫМАЛЫЛАРМЕН ЖҰМЫС ІСТЕУ ЕРЕЖЕЛЕРІ:
-
Айнымалы атауы тек әріптен басталуы керек; ол саннан бастала алмайды.
Age1 - ✅ дұрыс
1Age - ❌ дұрыс емес
age1 - ✅ дұрыс - ұсынылатын нұсқа
-
Айнымалыда бос орындар немесе арнайы таңбалар болмауы керек, төменгі сызықтан (_) басқа.
Name_Surname - ✅ дұрыс
Name Surname - ❌ дұрыс емес
nameSurname - ✅ дұрыс - ұсынылатын нұсқа
Бағдарламалау тілдерінің резервтелген сөздерін айнымалы атауы ретінде пайдалануға болмайды, мысалы: print, true, false, count, sum және т.б.
-
Пайдаланушы анықтайтын айнымалылар үшін кірістірілген және жүйелік айнымалылардың атауларын пайдалану қатаң тыйым салынады. Мұндай айнымалылардың тізімін мына жерден таба аласыз. сілтеме
-
Біз ұсынамыз:
- Айнымалылар үшін латын (ағылшын) атауларын пайдаланыңыз.
- Қысқа, бірақ мағыналы айнымалы атауларын пайдаланыңыз, мысалы: totalSum, pay_name, ns, name_client және т.б.
Айнымалының мәнін қалай алуға болады
Айнымалы атауын бұйра жақшаға #{} алыңыз. Осылайша оның мәніне хабарлама мәтіні өрісінде сілтеме жасауға болады. Алайда, «Калькулятор» өрісінде айнымалының мәніне қосымша синтаксиссіз, жай ғана атауы арқылы сілтеме жасау керек.
#{} конструкциясы айнымалының мәнін алуға мүмкіндік береді. Ол «Хабарлама мәтіні» өрісінде айнымалының мәнін мәтінге енгізу үшін қолданылады.
Мысал:

Жүйе кірістірілген айнымалыларды қолдайды, мұнда бір айнымалының мәні басқа айнымалының атауының бөлігі болып табылады. Мысалы: #{q#{test#{i}}}
«Калькулятор» өрісінде айнымалыларға #{} белгілеуінсіз, олардың атаулары арқылы сілтеме жасаңыз.
Мысалы, бізде екі айнымалы бар: price (сома) және quantity (сан).
num = 10
sum = 1500

Жалпы соманы қалай көрсетуге болады
Калькуляторға келесіні енгізіңіз:
total_sum = sum1 * num2 ✅ дұрыс

Қалай жасамау керек:
total_sum = #{sum1} * #{num2} - ❌ дұрыс емес
Боттан айнымалыны қалай жоюға болады
Айнымалыны жою (тазалау) үшін «Калькулятор» өрісіне келесіні енгізіңіз:
YourVariableName =
немесе
YourVariableName = ""
Теңдік белгісінен кейін бос орын қалдырыңыз немесе қос (немесе жалқы) тырнақшаны пайдаланыңыз.
Назар аударыңыз! Айнымалының қай жерге тиесілі екенін көрсету үшін дұрыс префиксті пайдалану маңызды.
Жоба деңгейіндегі айнымалылар үшін (жоба параметрлерінде сақталады) project: префиксін пайдаланыңыз.
Мысал:
project.YourVariableName =
немесе
project.YourVariableName = ""Клиент деңгейіндегі айнымалылар үшін client префиксін пайдаланыңыз:
Мысал:
client.YourVariableName = немесе
client.YourVariableName = ""Мәміле деңгейіндегі айнымалылар үшін префикс қажет емес.
Кірістірілген айнымалылар
Кірістірілген айнымалылардың тізімі:
#{none} - хабарламаны елемеу
#{api_key} - Mavibot API шақыруларында қолданылатын API токені
#{attachment_url} - тіркемеге сілтемені қамтиды
#{attachments} - пайдаланушының хабарламасындағы тіркемелер URL мекенжайларының JSON массиві
#{avatar} - пайдаланушының аватарына сілтеме («Клиенттер» бөлімінде көрсетіледі)
#{client_id} - конструктордағы клиент идентификаторы, API сұрауларында да қолданылады
#{client_type} - клиент келген мессенджердің түрі (мәндері [осы жерде] сипатталған)
#{current_date} - жобаның уақыт белдеуіне негізделген ағымдағы күн dd.mm.yyyy форматында
#{current_time} - жобаның уақыт белдеуіне негізделген ағымдағы уақыт hh:mm форматында
#{custom_answer} - «Сервердің жауап URL мекенжайы» өрісінде көрсетілген серверден алынған жауап
#{message_from_outside} - кіріс хабарламаның түрі. Мүмкін мәндер:
&#xNAN;кәдімгі хабарлама = 0
API арқылы жіберілген хабарлама = 1
кері шақыру хабарландыруы (диалогтағы сары фон) = 3
телефония хабарландыруы (диалогтағы ашық көк фон) = 5
Бұл айнымалы әрбір кіріс хабарламамен бірге жасалады, бірақ клиент картасында көрсетілмейді.
Оны блоктардың іске қосу және қосылу шарттарын орнату үшін «Салыстыруға арналған айнымалы» өрісінде пайдалануға болады.
#{date_of_creation} - пайдаланушының ботқа қосылған немесе оған алғаш рет хабарлама жіберген күні
#{full_name} - пайдаланушының толық аты-жөні (аты мен тегі)
#{group} - клиент байланыстырылған бот (клиент картасында «Ботқа байланыстырылған» ретінде көрсетіледі)
#{main_client_id} - байланыстырылған клиент карталары тобындағы негізгі клиенттің идентификаторы
#{message_id} - клиентпен ағымдағы әңгіме күйінің идентификаторы (әдепкі бойынша NONE)
#{messenger} - клиент келген мессенджердің атауы
#{name} - пайдаланушының аты
#{next_day} - ертеңгі күн dd.mm.yyyy форматында (хабарламаларды жоспарлау үшін пайдалы)
#{order_id} - тапсырыс идентификаторы (клиент идентификаторы мен ішкі тапсырыс идентификаторы дефис арқылы бөлінген)
#{order} - пайдаланушы жіберген тапсырыстың мазмұны
#{platform_id} - хабар алмасу платформасындағы клиент идентификаторы
#{question} - пайдаланушы жіберген хабарлама
#{timestamp} - миллисекундтарды қоса алғандағы ағымдағы уақыт белгісі
#{time_of_creation} - пайдаланушының ботқа қосылған немесе оған алғаш рет хабарлама жіберген уақыты
#{wa_bot} - пайдаланушы хабарлама жіберген WhatsApp нөмірі (CRM өрістеріне беру және менеджерлер арасында лидтерді бөлу үшін пайдалы)
#{weekday} - апта күнінің нөмірі (Дүйсенбі = 1, Сейсенбі = 2, т.б.)
client_type мәндері
| Мән | Мессенджер |
|---|---|
| 1 | Telegram үшін |
| 2 | Viber үшін |
| 3 | Facebook үшін |
| 5 | онлайн чат үшін |
| 10 | Instagram үшін |
| 14 | электрондық пошта |
| 16 | Telegram Business аккаунты |
| 21 | Telegram аккаунты |
| 22 | TikTok |
Жүйелік айнымалылар
Жүйе боттың жұмысы кезінде әртүрлі орта айнымалыларын автоматты түрде жасайды. Сіз ботты құру кезінде осы айнымалыларды пайдалана аласыз. Міне, сізге пайдалы болуы мүмкін айнымалылардың тізімі.
Қосымша жүйелік айнымалыларды құжаттамадан таба аласыз. Олар өздерінің қолданылуына қатысты бөлімдерде орналасқан.
phone - телефон нөмірі
notSubscribed - егер айнымалы 1-ге тең болса, клиент хабарламалардан бас тартқан және ешқандай хабарлама алмайды
clientBlocked - клиент бұғатталған, бот ол үшін жұмыс істемейді
story_url - клиент жауап берген Instagram сторисінің идентификаторы
viewed_page - пайдаланушы онлайн чатта жазып тұрған бет
wa_bot - WhatsApp ботының телефон нөмірі
Төлем кезінде қандай айнымалылар жасалуы мүмкін екенін білу үшін «Төлем жүйесі» бөліміндегі төлем қызметтеріне арналған интеграциялық нұсқаулықтарды қараңыз.
Пайдаланушы анықтайтын айнымалылар
Пайдаланушы анықтайтын айнымалылар келесіге бөлінеді:
- Жоба айнымалылары (жалпы айнымалылар деп те аталады)
- Клиент айнымалылары
- Мәміле айнымалылары (кәдімгі айнымалылар деп те аталады)
- Тұрақтылар
Әрбір айнымалы түрі төменде түсіндіріледі.
Құрастырушы күткеннен басқа мәнді көрсеткенде немесе пайдаланғанда шатасуға жол бермеу үшін әртүрлі айнымалы түрлері үшін бірдей атауларды пайдаланбаңыз.
Айнымалыға мән беру кезінде тиісті префиксті пайдалану арқылы оның түрін көрсету маңызды:
client. (клиент айнымалылары үшін) және project. (жоба айнымалылары үшін). Мәміле айнымалылары үшін префикс қолданылмайды.
Айнымалының мәнін алу кезінде префикс алынып тасталады.
Мысал:
Клиенттеріңізден келген лайктардың санауышы ретінде қызмет ететін like деп аталатын жоба айнымалысын жасағыңыз келеді делік.project.like = 0 - жариялау, бір рет жасалады
Лайктарды санау қажет болатын блокта келесіні жазыңыз:
project.like = like + 1
Айнымалылардың басымдық тәртібі:
мәміле айнымалылары ең жоғары басымдыққа ие, одан кейін клиент айнымалылары, содан кейін жоба айнымалылары.
Мессенджер идентификаторы (platform_id)
Мессенджер идентификаторы (platform_id) – бұл пайдаланушының/чаттың/арнаның мессенджердегі идентификаторы. Оны табу үшін «Клиенттер» бөлімінде қажетті клиентпен әңгімені ашыңыз. Чат терезесінің оң жағында «Клиент туралы - Жүйелік айнымалылар» қойындысына немесе «Барлығы» қойындысына өтіңіз.
platform_id – бұл пайдаланушының бірегей мессенджер идентификаторын білдіретін тұрақты, жүйелік айнымалы.
-
Тұрақтылық: Бұл идентификатор пайдаланушы үшін тұрақты болып қалады. Олардың жазбасын конструктордан жойсаңыз да, қайта тіркелген кезде олардың
platform_idбірдей болады. - Шығу тегі: Идентификаторды пайдаланушы ботпен алғаш рет әрекеттескен кезде хабар алмасу платформасы (мысалы, Telegram, WhatsApp) тағайындайды.
Келесі мысал platform_id клиент картасында қалай көрінетінін көрсетеді.

platform_id айнымалысы кәдімгі пайдаланушылар үшін де, қауымдастықтар, арналар және чаттар үшін де бар.
Бот әкімші болып табылатын Telegram арнасының platform_id (мессенджер идентификаторын) алу үшін жеке аккаунтыңыздан арнаға хабарлама жіберіңіз. Бұл бот пен арна арасында диалогты автоматты түрде жасайды.
Арнаның platform_id мәнін "Клиент туралы" бөлімінен көшіруге болады.
Telegram-да арналарға арналған мессенджер идентификаторы әрқашан минус белгісімен (-) басталады. Функцияларды пайдаланған кезде минус белгісін қоса алғанда, бүкіл мәнді енгізуді ұмытпаңыз.
Айнымалыларды қалай пайдалану керек
Айнымалыларды триггерлерде, тапсырыстарда, пайдаланушы жауаптарында, блоктарда және т.б. пайдалануға болады. Жылжымайтын мүлік агенттігіне арналған воронка жасау кезінде нақты мысалды қарастырайық.
Сонымен, "Бастау" блогын жасайық:

1-қадам: "Рахмет" блогын жасау
Пайдаланушының енгізгені үшін алғыс білдіретін хабарламасы бар жаңа блок жасаңыз.
2-қадам: Ауысуды конфигурациялау
Осы блокқа апаратын қосылымда келесі триггерді конфигурациялаңыз:
- "Пайдаланушы деректерді енгізеді" қосқышын қосыңыз.
-
"Деректерді енгізу" өрісіне айнымалы атауын енгізіңіз:
name.

Пайдаланушының енгізгені Name айнымалысында сақталады. Бұл мәнді кез келген келесі блокта #{Name} синтаксисі арқылы айнымалыны шақыру арқылы қайта пайдалануға болады, мысалы: Қош келдіңіз, #{Name}!.

Бот келесідей жұмыс істейді:

Енді тапсырманы сәл күрделендірейік.
Дәл осы блокта пайдаланушыдан бастапқы (жаңа) немесе қайталама (сатылатын) тұрғын үйге қызығушылық танытатынын сұраймыз:

Әрі қарай, "Чат" блогындағы "Бастапқы тұрғын үй" және "Қайталама тұрғын үй" түймелерінен қосылымдар жасаңыз.

Енді блоктар ішінде айнымалыларды пайдаланудың екінші әдісін қарастырайық.
Оң жақ блокты таңдап, "Калькулятор" өрісіне келесі мәтінді енгізіңіз:
client_interest = Бастапқы тұрғын үй. Сол жақ блокқа енгізіңіз:
client_interest = Қайталама тұрғын үй.


Пайдаланушы осы блоктардың кез келгеніне ауысқанда оған айнымалы тағайындалады. Біз оны кейінірек тапсырыс жасау кезінде пайдалана аламыз.
Әрі қарай, осы блоктарда клиенттен жылжымайтын мүлікті сатып алуға арналған бюджеті туралы сұраймыз және клиенттің жауап триггерлеріне негізделген оларға апаратын көрсеткілері бар тағы екі блок жасаймыз.




"Сіздің бюджетіңіз қандай?" блогынан қосылым жасаңыз және пайдаланушыларды олардың енгізгені бойынша сегменттеу үшін триггер шартын орнатыңыз.
- Қосылым параметрлерінде "Пайдаланушы деректерді енгізеді" құсбелгісін қосыңыз.
- Клиенттің жауабын сақтау үшін айнымалы атауын (мысалы,
budget) тағайындаңыз. -
"Айнымалы" өрісінде шарт жасау үшін кірістірілген
#{question}айнымалысын (құрамында пайдаланушының соңғы хабарламасы бар) пайдаланыңыз.-
Мысал:
#{question} <= 1000000
-
Мысал:

"Лидтер" блоктарына барлық қосылымдар үшін "Пайдаланушы деректерді енгізеді" опциясын қосыңыз және айнымалыны анықтаңыз.
Мәміле туралы толығырақ ақпарат беру үшін "Лидтер" блогында тікелей қосымша айнымалыны анықтауға болады.

Енді соңғы екі блоктың түрін "Лидтер" деп өзгертіп, нәтижелерді көріңіз:
Ағынды іс жүзінде сынап көрейік:

Жасалған мәмілені және клиенттің сақталған деректерін "Клиенттер" бөліміне өтіп, тиісті әңгімені ашу арқылы қарап шығуға болады. Мәміле айнымалылары сол жерде көрінеді.

Енді сіз айнымалыларды кем дегенде үш түрлі жолмен пайдалануды білесіз:
- Пайдаланушы енгізген деректерге айнымалы атауларын тағайындау (мысалы, "Аты", "Бюджет")
- Блокқа ауысқан кезде айнымалы мәнін тағайындау (мысалы, client_interest = Бастапқы тұрғын үй)
Айнымалыларды қалай көруге болады
Клиенттің айнымалыларын көру үшін "Клиенттер" бөліміне өтіп, оның клиент картасын ашыңыз.

Айнымалылар клиент картасында тізім түрінде көрсетіледі:
- Әрбір айнымалы өз жолында орналасқан.
- Айнымалы атауы сол жақта көрсетіледі.
- Оның сәйкес мәні оң жақта көрсетіледі.
Айнымалыны өзгерту үшін:
Тізімдегі оның жолына апарып, әрекет түймесін көрсетіңіз. Осы түймені басу арқылы сіз:
- Айнымалының атауын өңдей аласыз.
- Айнымалының мәнін өңдей аласыз.
- Айнымалыны толығымен жоя аласыз.


Жүйелік айнымалыларды өңдеу мүмкін емес!
Клиент айнымалыларын қалай орнату керек
Клиент айнымалылары "Деректерді жинауды аяқтау" блогын (қызыл блок) пайдаланған кезде жойылмайды, қалпына келтірілмейді немесе жоғалмайды.
Клиент айнымалысын екі жолмен орнатуға болады: айқын және жанама.
Айнымалыны анықтаудың айқын жолы - оны воронка блоктарының бірінің "Калькулятор" өрісінде орнату.
Мысал: client.age = 28 немесе client.age = 28:

Жанама жол - көрсеткінің деректерді енгізу өрісінде айнымалыны орнату.
Мысал:
Клиенттің атын сұрайтын блокты, сондай-ақ төмендегі блокты жасайық:

Әрі қарай, қосылым параметрлеріне өтіп, "Пайдаланушы деректерді енгізеді" опциясын қосыңыз.

Айнымалыңызды атаған кезде пайдаланушының енгізгенін сақтау үшін client. префиксін пайдаланыңыз (мысалы, client.name). Бұл айнымалыға кейінірек хабарламаларда #{client.name} ретінде сілтеме жасауға болады.

Клиент айнымалылары құрастырушыда кәдімгі айнымалылар сияқты пайдаланылады, бірақ client префиксінсіз.
Жоба айнымалыларын қалай орнату керек
Жаһандық айнымалылар "Лидтер" блогын (қызыл блок) пайдаланған кезде жойылмайды, қалпына келтірілмейді немесе жоғалмайды.
Жаһандық айнымалылар боттың барлық пайдаланушыларына қолжетімді. Олар боттың әрекетін басқару немесе әртүрлі пайдаланушылар арасындағы өзара әрекеттесуді жеңілдету үшін өте қолайлы.
Қолдану жағдайының мысалы:
Бір пайдаланушы айнымалыны орнату арқылы (мысалы, project.latest_listing) маркетплейс арнасына элементті орналастыра алады, ал барлық басқа пайдаланушылар оны көріп, жауап бере алады.
Тағайындау синтаксисі
Жаһандық айнымалыны жасау немесе жаңарту үшін Калькуляторда project. префиксін пайдаланыңыз:
Мысалдар:
project.product_shop = 28project.age = 28

Оларды ешқандай префиксіз пайдалануға болады.
Деректердің кестеде қалай көрсетілетінін көрейік.

Енді "Бастау" блогын сынақ режимінде орындаңыз.

Бот жіберген хабарламада кестеден айнымалыға жазылған деректерді көре аламыз. Хабарламада #{} синтаксисі арқылы айнымалыға сілтеме жасағандықтан, онда сақталған деректер бот чатында көрсетілді.
get_records_from_table() функциясымен қалай жұмыс істеу керектігі туралы толығырақ "MaviBot кестесімен AI көмекшісі" мақаласында түсіндіріледі.
project. префиксі функцияға кесте деректерін тікелей жобаның "Айнымалылар" бөлімінде қолжетімді жаһандық айнымалыларына жазуға мүмкіндік берді.

Жоба айнымалыларын жоба параметрлерінде өңдеуге болады.
Мысал: жоба айнымалыларын пайдалану
Ботқа кіретін әрбір жаңа клиентке реттік нөмірді тағайындайтын жүйені жасаңыз.
Іске асыру:
- Жоба параметрлеріне өтіңіз.
- Жаңа жоба айнымалысын жасаңыз (мысалы,
project.client_counter).


- Оның бастапқы мәнін орнатыңыз (мысалы,
0), бұл "Ботта клиенттер жоқ" дегенді білдіреді:



Боттың бастапқы блогында келесідей логиканы қосыңыз:
- Жоба айнымалысының мәнін 1-ге арттырады.
- Жаңа мәнді ағымдағы пайдаланушыға арналған клиентке тән айнымалыға тағайындайды.

Бір клиент үшін есептегішті екі рет арттыруға болмайтындай шектеу қоюды ұмытпаңыз.

Тұрақты айнымалыларды қалай орнату керек
Тұрақтылар - жобаның өмірлік циклі бойына өзгеріссіз (немесе сирек өзгеретін) бекітілген мәндер.
Жаһандық айнымалылардан негізгі айырмашылығы:
Жаһандық айнымалылардан айырмашылығы, тұрақтылар клиентке тән. Егер тұрақтының мәні өзгертілсе, өзгеріс тек сол клиенттің сеансына ғана қолданылады.
Жалпы қолдану жағдайлары:
Тұрақтылар келесідей статикалық деректерді сақтау үшін өте қолайлы:
- Өнім бағалары мен клиенттерге жеңілдіктер
- Интеграция токендері мен API кілттері
- Сатушы немесе қолдау байланыс ақпараты
- Кез келген басқа бекітілген конфигурация мәндері
Мысал: тұрақты айнымалыларды пайдалану
Мысалы, клиенттің жеңілдігі әдепкі бойынша 10% болуы мүмкін, бірақ промокодты енгізген кезде 25% -ке өзгереді.
"Жоба параметрлері" → "Тұрақтылар" бөлімінде енгізіңіз: Жеңілдік : 10

Промокодты енгізу үшін "Триггер" блогын қосыңыз, онда discount айнымалысына 25 мәнін береміз.

Жеңілдік сомасын көрсететін айнымалыны жасыл блокта көрсетіңіз:

1-қадам: Автоматты ауысуды конфигурациялау
Сұр блоктан нөлдік секундтық таймері бар қосылым жасаңыз. Бұл жеңілдіктің дереу қолданылуын және клиенттің бастапқы блоктағы хабарламаға өтуін қамтамасыз етеді.
2-қадам: Ағынды сынау
Енді бүкіл тізбекті іске қосу және сынау үшін ботқа хабарлама жазыңыз.

Промокодсыз стандартты жеңілдік 10% құрайды. Дегенмен, жарамды промокодты енгізу жағдайды өзгертеді.

Осылайша, промокодты енгізгеннен кейін осы клиент үшін "discount" айнымалысы 25 болды.
Бұл discount = 25 сияқты тағайындау сол аттас тұрақтының мәнін өзгертудің орнына, мәміле айнымалысының мәнін орнатқандықтан болды.
Негізгі мәміле айнымалылары
name - мәміле атауы. Жобаның халықаралық нұсқасы үшін Name термині қолданылады.
description - мәміле сипаттамасы. Жобаның халықаралық нұсқасында Description қолданылады.
budget - мәміле сомасы (сан).
/set_order_vars API сұрауы арқылы айнымалыларды өңдеу үшін осы нұсқаулықтағы атауларды дәл солай, регистрді және жоба нұсқасын ескере отырып пайдалану керек.
Шектеулер
Айнымалы атауының максималды ұзындығы: 500 таңба
Айнымалы мәнінің максималды ұзындығы: 100 000 таңба
Бір клиентке немесе мәмілеге арналған айнымалылардың максималды саны: 1 000 таңба.
Айнымалылармен дұрыс жұмыс істеу жолы
Айнымалының мәнін қашан тырнақшаға алу керек?
Мысалы, client_id = 1202020202 немесе client_id = '1202020202'?
Екі синтаксис нұсқасы да функционалды түрде дұрыс. Мәнді тырнақшаға алу оның калькулятор редакторындағы визуалды ерекшеленуіне ғана әсер етеді.
Дегенмен, біркелкі кодтау конвенцияларын ұстану оқылымдылық пен қызмет көрсетуді жақсартады:
-
Сандық мәндер үшін тырнақшаны қалдырыңыз (мысалы,
discount = 25). -
Жолдық мәндер үшін тырнақшаны қолданыңыз (мысалы,
status = "active").



Клиент ID, Сайт ID, Блок ID немесе Сертификат ID сияқты идентификаторларды функцияларға берудің дұрыс синтаксисі қандай — оларды тырнақшаға алу керек пе?

ID әдіске немесе функцияға берілгенде тырнақшаға алынбауы керек:

Қайсысын қолдану керек: қос тырнақша ма, әлде жалғыз тырнақша ма?
Жалғыз немесе қос тырнақшаны қолдану арасында айырмашылық жоқ, бірақ біз қос тырнақшаны қолдануды ұсынамыз. Осылайша, мысалы, жолдың ішіне айнымалыны енгізгенде, айнымалы басқа түспен ерекшеленеді, бұл оны байқауды жеңілдетеді.

Бос орындарды қалай орналастыру керек?
Айнымалы мен теңдік белгісінің арасында бос орын болса (мысалы, *ans="yes", ans = "yes", ans= "yes", ans ="yes"?) бірдей жұмыс істей ме?

Бос орындар әдістердің, айнымалылардың немесе функциялардың жұмысына әсер етпейді. Дегенмен, оқылымдылықты жақсарту үшін кодта бос орындарды қолдану ұсынылады.
Калькуляторда түсініктемелерді қалай дұрыс жазу керек
Калькуляторда түсініктемелерді қалай жазу туралы толығырақ мына мақаладан қараңыз.
Айнымалыларды қалай салыстыру керек
Айнымалы мәндерін салыстыру арқылы чат-боттың ағынын басқара аласыз. Бұл заң талаптарына сәйкестік үшін пайдаланушының жасын тексеру немесе пайдаланушының мессенджер платформасына негізделген өзара әрекеттесуді бағыттау сияқты шартты логиканы жасауға мүмкіндік береді.
Қолдау көрсетілетін операторлар:
"+": қосу
"-"': алу
"*" көбейту
"/": бөлу
"%"': бөлудің қалдығы
"^" "**": дәрежеге шығару
"and" "AND" "&&": логикалық ЖӘНЕ
"or" "OR" "||": логикалық НЕМЕСЕ
Салыстыру операторлары:
"==" — тең
"!=" — тең емес
">" — үлкен
"<" — кіші
">=" — үлкен немесе тең
"<=" — кіші немесе тең
МАҢЫЗДЫ!
Клиент картасында кірістірілген айнымалы тег (ботты іске қосу тегі) жоқ екенін тексеру үшін келесі салыстыру әдісін қолданыңыз:
tag == "NONE"
Айнымалыларды "Айнымалы" өрісіндегі шартта салыстыру керек (қосылым параметрлерінде де, блок параметрлерінде де):
Триггер блогының "Айнымалы" өрісінде айнымалыны салыстыру мысалы.

Блок қосылымының "Айнымалы" өрісінде айнымалыны салыстыру мысалы.

Айнымалылар мен триггерлер бірге қалай жұмыс істейді
Қосылымның іске қосылуы үшін екі триггер де орындалуы керек:
- "Триггер" өрісіндегі шарт.
- "Айнымалы" өрісіндегі салыстыру логикасы.
"Айнымалы" өрісін түсіну
Егер "Айнымалы" өрісіне өрнексіз тек айнымалы атауын (мысалы, client_type) енгізсеңіз, жүйе айнымалы мәнінің бар-жоғын немесе ақиқаттығын тексереді. Ол оны пайдаланушының шикі енгізуімен салыстырмайды.
Мысал:
Төмендегі конфигурация client_type айнымалысының 6-ға тең екенін тексеру арқылы клиенттің WhatsApp-тан екенін тексереді (мұнда 6 WhatsApp-ты білдіреді).
client_type == 6

Төмендегі мысал бірдей жұмыс істейді:

Назар аударыңыз!
"Триггер" өрісінде айнымалыны салыстыру үшін бірнеше мән көрсете алмайсыз.![]()
Бұл дұрыс емес!
Бірнеше айнымалыны салыстыру қажет болса, олардың мәндерін "Айнымалы" өрісінде көрсетіңіз.
Бұл нұсқалар дұрыс.
![]()
client_type == 3 айнымалы мәні 3-ке тең болса, ауысу
attachments != None айнымалыда қандай да бір мән болса, ауысу
attachments == None айнымалы орнатылмаған болса, ауысу
product_quantity >= 100 өнім саны 100-ден үлкен немесе тең болса, ауысу
product_quantity <= 100 өнім саны 100-ден кіші немесе тең болса, ауысу
name == "John" айнымалы атауы John-ға тең болса, ауысуАйнымалының бос немесе бос емес екенін тексеру үшін өрнектерді қолданыңыз:
&#xNAN;""#{value}" == ""
"#{value}" != ""(мұнда value — айнымалы атауы).
Салыстыру операциясының нәтижесі логикалық мәнді қайтарады: True немесе False.
Өрнектің максималды ұзындығы: 1000 таңба
Әртүрлі типтегі мәндерді салыстыруға тырысқанда, әдепкі мән нәтиже ретінде қайтарылады.
"==" - False "<" - False
"!=" - True ">=" - False
">" - False "<=" - False
МАҢЫЗДЫ!
Клиент картасында кірістірілген айнымалы тег (ботты іске қосу тегі) жоқ екенін тексеру үшін келесі салыстыру әдісін қолданыңыз:
tag == "NONE"
Мысал: пайдаланушының жасын (age) тексеретін бот.
- Егер
age < 18болса, кәмелетке толмағандарға арналған хабарлама жібереді. - Егер
age >= 18болса, ересектерге арналған хабарлама жібереді.


Ағында триггері жоқ, бірақ одан уақыттық қосылымдары бар блоктың бар екенін ескеріңіз.
Бұл блок бот пайдаланушы әрекеттеріне емес, есептеу нәтижелеріне әрекет ететін ағындарды құруды көрсету үшін арнайы жасалған. Бірінші қадамда жауап айнымалыға сақталады, содан кейін салыстыру жүреді. Көрсеткілердегі кідіріс лезде жауап беру үшін 0-ге орнатылған.
"Age >= 18" салыстыруын "18-ден үлкен немесе тең" деп те көрсетуге болады.

Триггерлердегі қателерге назар аударыңыз:
![]()
![]()
![]()
Сан бір уақытта 18-ден үлкен, кіші және тең бола алмайды!
Бұл триггерлер мағынасыз. Әрбір сан 18-ден кіші, 18-ден үлкен немесе 18-ге тең.
Маңызды!
Айнымалылары бар логикалық триггерлер "Айнымалы" өрісінде жазылуы керек, "Триггер" өрісінде емес!
Мысалы, төмендегі суретте блок **phone айнымалысы толтырылған болса (яғни, None-ге тең емес) іске қосылады:

Келесі мысал операторларды біріктіруді көрсетеді:

Егер клиентте мәні 18 бен 99 аралығында болатын жас айнымалысы болса, блок іске қосылады. Егер айнымалы жоқ болса немесе жас 18-ден кіші немесе 99-дан үлкен болса, блок іске қосылмайды.
Ескерту!
Егер айнымалыны тырнақшадағы мәнмен салыстырсаңыз, тырнақша мен мән арасында бос орындар жоқ екеніне көз жеткізіңіз; әйтпесе, блок іске қосылмауы немесе дұрыс жұмыс істемеуі мүмкін!
Дұрыс (**тырнақшаның алдында немесе my_new_bot мәнінен кейін бос орын жоқ):
![]()
Қате (тырнақшаның алдында бос орын бар):
![]()