Отстраняване на грешки в Shopify Flow
Shopify Flow Ви помага да автоматизирате задачи и процеси във Вашия магазин, но може да срещнете грешки или да достигнете определени ограничения при създаване или редактиране на работни процеси. Тази страница обяснява често срещани проблеми, с които може да се сблъскате, като например ограничения на работния процес и грешки в данните, и предоставя насоки как да ги разрешите. Разбирането на тези грешки може да Ви помогне да отстранявате проблеми и да поддържате безпроблемната работа на работните си процеси.
На тази страница
Грешки при създаване на работни процеси
При създаване на работен процес може да срещнете грешки, които Ви пречат да добавите нов такъв. Това са някои грешки, които може да срещнете:
Надвишен брой работни процеси
Когато създавате нов работен процес, може да срещнете грешка, която гласи: Достигнали сте максималния лимит от 1000 позволени работни процеса. За да продължите, изтрийте всички неизползвани работни процеси и опитайте отново.
Flow ограничава броя на работните процеси, които един магазин може да има, с лимит от 1000. Това включва активни и неактивни работни процеси. Ако достигнете този лимит и искате да създадете нов работен процес, тогава изтрийте неизползваните или неактивните работни процеси.
Ако Вашият магазин е имал повече от 1000 работни процеса преди въвеждането на този лимит, то той може да продължи да работи с повече от 1000 работни процеса. Въпреки това, за да създавате нови работни процеси, трябва да сте под лимита.
Може да срещнете тази грешка при извършване на редица действия в приложението Flow:
- Създаване на нов работен процес
- Дублиране на работен процес
- Импортиране на работен процес
- Инсталиране на шаблон
Твърде много работни процеси за един и същ тригер
При активиране на работен процес може да видите предупреждение, че във Вашия магазин има над 10 активни работни процеса, използващи един и същ тригер.
Наличието на много работни процеси с един и същ тригер може да доведе до проблеми с ефективността, тъй като при всяко задействане на тригера Flow трябва да обработи всички свързани работни процеси. Това разклоняване може да доведе до по-дълги времена за изпълнение и повишен разход на ресурси.
За да намалите броя на работните процеси за един тригер, обмислете следните подходи:
- Обединяване на работните процеси, които използват един и същ тригер, в един работен процес с множество разклонения и условия.
- Деактивиране или изтриване на работни процеси, които вече не са необходими.
- Проверка дали вместо това за някои работни процеси не може да се използва по-конкретен тригер.
Грешки при редактиране на работни процеси
Когато редактирате работен процес, може да срещнете грешки, които Ви пречат да го запазите. Следват често срещани грешки, които може да срещнете, докато редактирате работен процес:
Данните не са намерени
Когато добавяте ново действие към работен процес, може да срещнете грешка, която гласи Данните не са намерени:

Тази грешка възниква, защото много действия, включително Добавяне на етикети на продукти, изискват ресурс на Shopify, като например продукт. Ако този ресурс не е наличен, тогава действието не може да се изпълни. Често работните процеси може да съдържат данни, които са подобни на изискваните, но всъщност не предоставят това, което е необходимо.
Следващите раздели описват често срещани сценарии, които могат да причинят тази грешка, и как да ги разрешите.
Проблем 1: Предоставен е списък от „Извличане на данни“, когато е бил необходим единичен артикул
Често работният процес предоставя списък с ресурси на Shopify, но действието позволява само един ресурс. Например работният процес предоставя списък с продукти чрез Извличане на данни за продукт, но действието Добавяне на етикети на продукти изисква един-единствен продукт.
За да разрешите тази грешка, можете да добавите действие За всеки, за да преминете през списъка и да извикате действието за всеки артикул в него. Този пример илюстрира както грешката, така и решението с помощта на За всеки:

Проблем 2: Предоставен е списък от тригера, когато е бил необходим единичен артикул
Подобна грешка може да възникне, когато дадено действие изисква един-единствен ресурс, но тригерът предоставя списък. Например, Маркиране на поръчка за изпълнение като изпълнена изисква поръчка за изпълнение, но тригерът идва от поръчка, която предоставя списък с поръчки за изпълнение.
За да разрешите тази грешка, както при Проблем 1, можете да добавите действие За всеки, за да преминете през списъка и да извикате действието за всеки артикул в него:

Като алтернатива можете да използвате друг тригер, който предоставя необходимия ресурс. Например вместо да използвате тригера Създадена поръчка, можете да използвате тригера Поръчка за изпълнение е готова за изпълнение, който предоставя една-единствена поръчка за изпълнение.

Проблем 3: Не са предоставени данни от тригера „Планирано време“
Тригерът Планирано време не предоставя данни за ресурси на Shopify. Ако се опитате да свържете действия, които изискват ресурси на Shopify след тригера, тогава ще срещнете грешката.
За да разрешите тази грешка, добавете действие, като например Извличане на данни за продукт, което предоставя необходимите данни. Както е отбелязано в Проблем 1, трябва също така да добавите действие За всеки, за да преминете през всеки списък, който се връща от действие, което извлича данни.

Проблем 4: Не са предоставени данни от тригер на приложение
Подобно на проблем 3, някои тригери, създадени от приложения, не предоставят необходимите данни за ресурси на Shopify. Например тригер „Създаден отзив“ може да предоставя имейл адрес, но не и обект клиент, който е необходим за много действия, като например Добавяне на етикети на клиенти.
За да разрешите тази грешка, може да успеете да използвате действие „Извличане на данни“, за да получите необходимия Ви ресурс на Shopify. Например можете да използвате Извличане на данни за клиент, за да получите обекта на клиента от имейл адреса, предоставен от тригера. Както и при другите проблеми, трябва също да добавите действие За всеки, за да преминете през всеки списък, който се връща от действие, което извлича данни.
Ако „Извличане на данни“ не е опция, тогава може да се наложи да се свържете с разработчика на приложението, за да го попитате дали може да промени своя тригер, така че да предоставя необходимите данни.
Надвишен брой стъпки на изчакване
Когато добавяте нови стъпки на изчакване към Вашия работен процес, може да срещнете грешка, която гласи: Работните процеси трябва да имат 40 или по-малко стъпки на изчакване.
Flow ограничава броя на стъпките на изчакване, разрешени в един работен процес, до 40. Ако срещнете тази грешка, значи сте надвишили този лимит. За да разрешите проблема, премахнете стъпки на изчакване от друго място във Вашия работен процес.
Ако вече сте имали работни процеси, съдържащи повече от 40 стъпки на изчакване преди въвеждането на този лимит, то Вашият работен процес продължава да функционира според очакванията. Въпреки това, за да добавите допълнителни стъпки на изчакване, първо трябва да премахнете съществуващи такива, за да останете под лимита.
Освен това общото време за изчакване във всички стъпки на изчакване не може да надвишава 90 дни.
Надвишен лимит за размер на стойността на полето за конфигурация
Когато редактирате стойността на полетата за конфигурация в рамките на условията във Вашия работен процес, може да срещнете грешка, която гласи: Стойността на полето за конфигурация трябва да е под 50kB.
Flow ограничава размера на стойността на полето за конфигурация до 50 kB данни. Когато срещнете тази грешка, Вие сте достигнали или надвишили лимита. За да разрешите проблема, съкратете дължината на данните, които добавяте в това поле.
Ако вече имате полета за конфигурация със стойност 50 kB или повече, тогава Вашите работни процеси продължават да се изпълняват според очакванията. Въпреки това, за да направите промени във Вашия работен процес, трябва да преразгледате стойността, причиняваща грешката.
Грешки при изпълнение на работен процес
Когато при изпълнение на работен процес възникне грешка, то се маркира като неуспешно. Съобщението за грешка се показва в подробностите за изпълнението на работния процес. Следват често срещани грешки, които може да срещнете, когато изпълнението на работен процес е неуспешно:
- Временните грешки са грешки, които възникват, когато Flow не може да изпълни дадена задача. За тези грешки се правят повторни опити, докато не станат успешни или не достигнат лимита за изчакване.
- Постоянните грешки са грешки, които възникват, когато Flow не може да изпълни дадена задача и за нея не може да се направи повторен опит.
Временни грешки
Временните грешки са грешки, които възникват, когато Flow не може да изпълни дадена задача. За тези грешки се правят повторни опити, докато не станат успешни или не достигнат лимита за изчакване. Например, ако Flow не може да се свърже с партньор при изпълнение на действие с конектор, тогава Flow прави многократни повторни опити за задачата, преди да се откаже.
Повторните опити са разпределени във времето, като забавянето между всеки следващ опит се увеличава спрямо предходното. Обикновено, когато в даден работен процес възникват временни грешки, той остава в състояние „в изпълнение“ за дълго време, докато се правят повторни опити за задачите.
Когато повторният опит за дадена задача е успешен, работният процес продължава. Ако при повторен опит за задача възникне постоянна грешка, работният процес е неуспешен. Всяка секция на работен процес има комбиниран горен лимит на изпълнение от 36 часа. Ако стъпка с временни грешки не успее, преди да бъде достигнат този лимит, работният процес е неуспешен.
Работните процеси със стъпки за изчакване се разделят на секции, което влияе върху начина, по който се изчисляват лимитите за изчакване в работния процес. Всяка секция е група от задачи, които се изпълняват заедно, и всяка има собствен 36-часов лимит. Например, ако даден работен процес има стъпка за изчакване, която изчаква един час, тогава задачите преди стъпката за изчакване ще се изпълнят заедно в една секция, а задачите след нея – в друга. Ако работният процес има няколко стъпки за изчакване, тогава задачите между всяка стъпка за изчакване ще се изпълнят заедно в една секция. Работните процеси без стъпка за изчакване се считат за една секция.
Спорадичните временни грешки са често срещано явление. Въпреки това, ако имате работен процес, който постоянно среща една и съща временна грешка при множество изпълнения, може да се наложи той да бъде преконфигуриран.
Изтекло време за изпълнение на стъпка
Грешки от типа Изтекло време за изпълнение на стъпка обикновено възникват, когато дадена задача в работния процес се опитва да заяви твърде много данни в рамките на една секция. Тази грешка често се появява в работни процеси, които обхождат списъци в цикъл, особено вложени списъци, които са твърде големи за бърза обработка.
Когато възникне тази грешка, тригерът или стъпката за изчакване се показва като повторен опит.
За да разрешите този проблем, прегледайте условията, които имат достъп до списъци и вложени списъци, за да потвърдите, че са зададени правилно. Често срещан проблем е условие, което проверява всички продукти в даден магазин, вместо само продуктите в дадена поръчка.
Статус 5XX
Повечето действия във Flow включват извършване на HTTP повиквания. Понякога проблеми с мрежата или други сървърни проблеми могат да доведат до неуспех на HTTP повикванията и да върнат код за грешка между 500 и 599. Еднократното появяване на тази грешка не е проблем, но повтарящите се случаи може да показват проблем със сървъра, обработващ задачата, а не с начина, по който е конфигурирана стъпката.
Този тип грешка се показва най-често при действието Изпращане на HTTP заявка, но може да се случи при повечето задачи.
Ограничение на скоростта на GraphQL
Общият обем работа, извършен от работен процес, е ограничен от ограниченията на скоростта на API, които се определят отчасти от Вашия план. Обикновено тези лимити не се достигат, освен ако работният процес не е много сложен или не съдържа непреднамерена грешка в дизайна.
Следващите примери описват ситуации, които могат да доведат до тази грешка:
- Liquid или условия в работния процес обхождат в цикъл списък с големи количества данни, като например проверка на стойности на метаполета, които съдържат HTML.
- Liquid или условия в работния процес обхождат в цикъл голям списък, като например обхождане в цикъл на
shop.ordersв голям магазин. - Работен процес води до безкраен цикъл, в който той продължава да създава нови свои изпълнения. Например, това може да се случи, ако работният процес използва тригера Добавени тагове на клиент и включва действието Добавяне на тагове на клиент.
Ако лимитът бъде достигнат, тогава получавате грешка GraphQL throttled. Тази грешка може да засегне други работни процеси, когато те се опитат да се изпълнят, така че я разрешете незабавно, ако възникне.
Постоянни грешки
Постоянните грешки са грешки, които възникват, когато Flow не може да изпълни дадена задача и за нея не може да се направи повторен опит. Например, ако Flow не може да изпрати имейл, защото имейл адресът е невалиден, той не прави повторен опит за задачата. Вместо това работният процес е неуспешен.
Изискваните ID полета са празни
Действията в Shopify изискват един или повече ресурси, като например продукт, клиент или поръчка, за да се изпълнят. Ако необходимият ресурс не е наличен, действието не може да се изпълни по предназначение. Например, в администраторския панел на Shopify може да бъде създадена поръчка без клиент. Ако изпълните действие, като например Добавяне на тагове на клиент, то е неуспешно с тази грешка.
За да предотвратите тази грешка, добавете условие преди действието, за да проверите дали ресурсът съществува. В предишния пример, ако искате да изпратите вътрешен имейл в същия работен процес като Добавяне на тагове на клиент, можете или да поставите действието за имейл преди стъпката, която може да е неуспешна, или да използвате един от следните подходи:
Поставете действията в паралелни клонове (където 2 или повече клона излизат от една стъпка):

Добавете условие преди действието, за да проверите дали клиентът присъства. Например, можете да проверите дали поръчка / клиент / id не е празно и съществува.

Липсващо разрешение за акаунт в Google Sheets
Конекторът за Google Sheets изисква да свържете своя акаунт в Google с Flow, за да има разрешение да пише в таблицата. Тази грешка може да възникне, когато Flow няма разрешение да пише в дадена таблица, или защото акаунтът е бил разкачен от Flow, или защото този акаунт няма достъп до тази таблица.
За да разрешите това, уверете се, че акаунтът, използван за конектора, може да отвори таблицата и има достъп за редактиране. Ако е свързан грешен акаунт, можете да го разкачите и да свържете нов.
Стъпки:
- Отворете съществуващ работен процес или създайте нов.
- Добавете действие към работния процес.
- Изберете конектора Google Sheets.
- Натиснете Разкачване, а след това – Свързване, за да свържете отново правилния акаунт в Google.
Клиентът не приема маркетингови съобщения
Действието Изпращане на маркетингов имейл не изпраща имейли до клиенти, които не са се съгласили да ги получават, и е постоянно неуспешно, ако работният процес се опита да го направи.
За да разрешите това, добавете условие в работния процес, което проверява абонаментния статус на клиентите. Можете да се уверите, че клиентите са се съгласили да получават маркетингови имейли, преди да им ги изпратите. Следвайте стъпките в Управление на списък с абонати по имейл.
Липсващ ресурс за [тип ресурс]
Тази грешка показва, че ресурс, като например клиент или поръчка, е бил изтрит, преди работният процес да успее да извлече данните му. Най-често това се случва след стъпка за изчакване, но е възможно да се случи и при тригера, ако ресурсът бъде изтрит много бързо след настъпването на събитието на тригера.
Получаване на известие при възникване на грешка
Ако наличието на грешки ще повлияе на операциите на Вашия магазин, тогава можете да настроите известия, които да се задействат при възникване на грешка. Известията за грешки могат да бъдат изградени като работен процес с помощта на тригера Възникна грешка в работния процес. Те са създадени да ограничават излишните сигнали, така че ще получавате само по едно известие за всяка версия на работния процес.
За да започнете, можете да използвате един от следните шаблони:
- Получаване на предупреждение от Shopify при откриване на грешки в изпълнението на работен процес
- Получаване на известие по имейл при откриване на грешки в изпълнението на работен процес
- Получаване на известие в Slack при откриване на грешки в изпълнението на работен процес
Повторно стартиране на изпълнения
В някои случаи изпълнението на работен процес може да срещне грешка или да не протече по предвидения начин. След като отстраните неизправностите и коригирате проблемите в съответния работен процес, миналите изпълнения могат да бъдат стартирани отново ръчно, за да се коригира със задна дата резултатът от тях. Научете повече за повторното стартиране на изпълнения на работни процеси.
Изпълнение (с ограничение на скоростта)
В някои случаи един или повече работни процеси могат да използват твърде много ресурси. За да предотврати това да причини проблеми, Flow умишлено ограничава изпълнението на процесите във Вашия магазин, което може да доведе до забавяния и грешки поради изтичане на времето за изчакване. Този проблем може да бъде разрешен чрез пренаписване на неефективни работни процеси, обикновено за да се поправи бъг, поради който те не са функционирали по предназначение.
Твърде дълго изпълнение
Това съобщение показва, че изпълненията на даден работен процес отнемат много време. Това обикновено се причинява от използването на голямо количество данни в работен процес, чието извличане отнема много време на Flow.
Тези случаи обикновено се причиняват от дълбоки пътища на заявките, които преминават през множество списъци с артикули (като например заявка за всички метаполета за всички продукти във всички колекции, към които принадлежи даден продукт):

Това също така често е свързано с изтичане на времето за изчакване на стъпката на тригера на работния процес.
Работните процеси, които преминават циклично през всички метаполета, често могат да бъдат подобрени, като се използва само конкретно метаполе. Достъпът до множество вложени списъци (като например всички продукти във всички колекции за даден продукт) или до особено големи списъци (като дефиниции на метаполета, които съдържат всички метаполета за всички обекти) може да е бил осъществен неволно. Избирането на правилното поле (един продукт или едно метаполе на обект) може значително да подобри ефективността. В други случаи използването на действието „Получаване на данни за продукт/поръчка/клиент“ с филтър за заявки може значително да намали броя на използваните обекти, като същевременно се запази достъпът до релевантните такива.
Обработване на твърде много данни
Това съобщение показва, че изпълненията на даден работен процес генерират голямо количество данни. Това обикновено се причинява от наличието на сложни условия, които проверяват много полета, най-често поради проверка на полета в няколко слоя списъци.
Например условие като „За поне един таг на този клиент, за поне един ред от поръчката, за поне един таг на реда“ може да доведе до извършването на много проверки и генерирането на много данни за показване на резултатите от тези проверки:

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