Shopify Flow এবং GraphQL Admin API
Shopify অ্যাডমিনকে প্রসারিত এবং উন্নত করতে পারে এমন অটোমেশন ও ইন্টিগ্রেশন বিল্ড করতে Flow, Shopify GraphQL Admin API ব্যবহার করে। ওয়ার্কফ্লোতে শর্ত ও ভ্যারিয়েবলের মূল্যায়ন করার পাশাপাশি আপনার Shopify স্টোরে অ্যাকশন নিতে Flow, API-এর 2026-01 ভার্সনটি ব্যবহার করে। যেহেতু Flow API-এ কল করার মাধ্যমে স্টোরের ডেটা অ্যাক্সেস করে, তাই Flow থেকে API-তে উপলভ্য প্রায় সব ফিল্ডেই আপনি অ্যাক্সেস করতে পারবেন।
যেহেতু Shopify প্রতি 3 মাস অন্তর নতুন API ভার্সন প্রকাশ করে, তাই ফিল্ডগুলো পরিবর্তন বা বাতিল করা হলে কিছু ওয়ার্কফ্লো আপডেট করার প্রয়োজন হতে পারে।
ওয়ার্কফ্লোতে GraphQL Admin API-এর ব্যবহার
Flow-এর বেশিরভাগ অ্যাকশনই আপনার Shopify স্টোরে পরিবর্তন করতে GraphQL Admin API ব্যবহার করে। উদাহরণস্বরূপ, অর্ডার ট্যাগ যোগ করুন অ্যাকশনটি tagsAdd মিউটেশন ব্যবহার করে। Admin API-এর অনুরোধ পাঠান অ্যাকশনটি বেশিরভাগ মিউটেশন ব্যবহার করতে পারে, যার মধ্যে এমনগুলোও রয়েছে যেগুলো Flow-তে এখনও অ্যাকশন হিসেবে উপলব্ধ নয়।
ওয়ার্কফ্লো তৈরি করার সময় আপনি প্রায়ই GraphQL Admin API সিনট্যাক্সের উপর ভিত্তি করে বিভিন্ন ফিল্ডের নাম এবং বিবরণ দেখতে পাবেন। উদাহরণস্বরূপ, কোনো ওয়ার্কফ্লোতে একটি ভ্যারিয়েন্টের মোট বিক্রয়যোগ্য পরিমাণ নির্ধারণ করতে, আপনি variants_item.inventoryQuantity ভ্যারিয়েবলটি ব্যবহার করবেন। আরেকটি উদাহরণ, কোনো গ্রাহক কোন লোকেশন থেকে আপনার ইমেইল নিউজলেটার সাবস্ক্রাইব করেছেন তা নির্ধারণ করতে, আপনি emailSubscriptionMethod ভ্যারিয়েবলটি ব্যবহার করবেন।
Flow অ্যাপ দিয়ে ওয়ার্কফ্লো তৈরি করতে আপনাকে API-তে দক্ষ হতে হবে না, তবে ভ্যারিয়েবলের নাম ও তাদের সংজ্ঞা সম্পর্কে কিছুটা ধারণা থাকলে তা আপনার কাঙ্ক্ষিত নির্দিষ্ট ওয়ার্কফ্লো লজিক তৈরি করতে সাহায্য করতে পারে। উদাহরণস্বরূপ, কোনো গ্রাহকের displayName এবং তাদের firstName-এর মধ্যকার পার্থক্য জানা থাকলে তা ব্যবহারের উদ্দেশ্যের ওপর ভিত্তি করে আপনার ওয়ার্কফ্লোকে সঠিক ডেটা অ্যাক্সেস করতে সাহায্য করতে পারে। আপনি যখন ওয়ার্কফ্লো তৈরি করবেন তখন প্রতিটি ভ্যারিয়েবলের সাথেই সংজ্ঞা দেওয়া থাকে এবং আপনি যেকোনো ভ্যারিয়েবল বা সংজ্ঞা সম্পর্কে আরও জানতে -এ ক্লিক করতে পারেন।
স্টোরের ডেটা এবং GraphQL Admin API
ওয়ার্কফ্লোগুলো শর্ত ও অ্যাকশনগুলোতে আপনার স্টোরের ডেটা ব্যবহার করে। Flow মূলত GraphQL Admin API ব্যবহার করে স্টোরের ডেটা অ্যাক্সেস করে, যার অর্থ হলো আপনার কাছে API-এর প্রায় সমস্ত ফিল্ডের অ্যাক্সেস আছে। ট্রিগার বা কোনো ডেটা পাওয়ার অ্যাকশন থেকে যদি কোনো অ্যাকশন প্রয়োজনীয় ডেটা না পায়, তাহলে ওয়ার্কফ্লোটি রান করে না এবং একটি ত্রুটির মেসেজ দেখা যায়।
উদাহরণস্বরূপ, একটি ওয়ার্কফ্লো গ্রাহক তৈরি করা হয়েছে ট্রিগার দিয়ে শুরু হয় এবং গ্রাহকের ডেটা ওয়ার্কফ্লোতে ইম্পোর্ট করে। সেই ট্রিগারের পর যদি অর্ডার ট্যাগ যোগ করুন অ্যাকশন থাকে, যার জন্য গ্রাহকের ডেটার পরিবর্তে অর্ডারের ডেটা প্রয়োজন, তাহলে ওয়ার্কফ্লোতে একটি ডেটা অনুপস্থিত থাকার ত্রুটি দেখা দেবে।
API কী আউটপুট দেয় এবং Flow-তে কী ব্যবহার করা হয় তা বুঝতে এবং আপনার ওয়ার্কফ্লো যাতে আপনার প্রত্যাশিত ডেটাই আউটপুট দেয় তা নিশ্চিত করতে আপনাকে ডেটার প্রিভিউ দেখতে অথবা API ডকুমেন্টেশন পর্যালোচনা করতে হতে পারে।
ফিল্ড আর্গুমেন্ট এবং GraphQL Admin API
কিছু GraphQL Admin API ফিল্ডের ক্ষেত্রে আর্গুমেন্ট লাগে, যা হলো অতিরিক্ত প্যারামিটার এবং এটি কী ধরনের ডেটা ফেরত দেওয়া হবে তা নির্দিষ্ট করে। উদাহরণস্বরূপ, product.inCollection ফিল্ডের একটি কালেকশন id আর্গুমেন্ট প্রয়োজন, যাতে বোঝা যায় কোন কালেকশন চেক করতে হবে। এটি ছাড়া ফিল্ডটি কোনো ফলাফল দিতে পারে না।
Flow-তে প্রয়োজনীয় আর্গুমেন্টের মান দিয়ে আপনি এই ফিল্ডগুলো থেকে ভ্যারিয়েবল তৈরি করতে পারেন, যা এরপর ওয়ার্কফ্লোতে ব্যবহার করা যায়। পরবর্তী ধাপগুলোতে সহজে রেফারেন্স দেওয়ার জন্য আপনি ভ্যারিয়েবলটিকে একটি কাস্টম নামও দিতে পারেন, যেমন product.inCollection(id: "gid://shopify/Collection/123456")-কে product.inSummerBestsellers হিসেবে নামকরণ করা।
আর্গুমেন্টসহ ফিল্ড থেকে ভ্যারিয়েবল তৈরি করার বিষয়ে আরও জানুন।
মেটাফিল্ড থেকে ভ্যারিয়েবল তৈরি করতে Flow-তে অতিরিক্ত তথ্যের প্রয়োজন হয় কারণ আপনি নিজেই প্রতিটি মেটাফিল্ডের নেমস্পেস এবং কী (key) নির্দিষ্ট করেন, তাই আর্গুমেন্টগুলো সর্বদা আপনার স্টোরের জন্যই অনন্য হয়। Flow-তে মেটাফিল্ড সম্পর্কে আরও জানুন।
API ভার্সনিং
Shopify প্রতি 3 মাস পর পর নতুন API ভার্সন রিলিজ করে এবং Flow যত তাড়াতাড়ি সম্ভব নতুন ভার্সন গ্রহণ করে, তবে এটি লেটেস্ট ভার্সনের চেয়ে কিছুটা পিছিয়ে থাকতে পারে। সম্ভব হলে ভার্সনগুলোর মধ্যে পরিবর্তনগুলো স্বয়ংক্রিয়ভাবে সমাধান করা হয়, কিন্তু কিছু পরিবর্তন সহজ বা সোজা নাও হতে পারে, যার মধ্যে নিচের যেকোনো পরিস্থিতি অন্তর্ভুক্ত থাকতে পারে:
- যখন ফিল্ডগুলো সরিয়ে নেওয়া হয় কিন্তু কোনো বিকল্প দেওয়া হয় না, তখন এটি শর্ত বা Liquid-কে কীভাবে মূল্যায়ন করা হয় তা প্রভাবিত করতে পারে।
- যখন ফিল্ডগুলো নাল (nullable) হওয়ার যোগ্য হয়ে যায়, তখন এটি শর্ত বা Liquid-কে কীভাবে মূল্যায়ন করা হয় তা প্রভাবিত করতে পারে।
- যখন ইনাম (enum) মানগুলো পরিবর্তন হয় বা নতুন ইউনিয়ন বা ইন্টারফেসের ধরন যোগ করা হয়, তখন এটি Liquid বা কোডকে প্রভাবিত করতে পারে।
- যখন মিউটেশন আর্গুমেন্টগুলো পরিবর্তন হয়, তখন এটি Admin API-এর অনুরোধ পাঠানোর অ্যাকশনগুলোর কনফিগারেশনকে প্রভাবিত করতে পারে।
কিছু ওয়ার্কফ্লো ম্যানুয়ালি আপডেট করার প্রয়োজন হতে পারে। এই ক্ষেত্রে, ওয়ার্কফ্লোগুলোতে আপডেট প্রয়োজন বা অসমর্থিত API ত্রুটি দেখাতে পারে এবং ওয়ার্কফ্লো এডিটরে প্রয়োজনীয় পরিবর্তন করতে আপনাকে প্রাসঙ্গিক API ডকুমেন্টেশনে গাইড করতে পারে। এই আপডেটগুলো সম্পন্ন এবং সেভ করা হলে, ওয়ার্কফ্লোটি স্বয়ংক্রিয়ভাবে Flow-তে উপলব্ধ লেটেস্ট API ভার্সন ব্যবহার করতে আপডেট হয়ে যায়।
API ভার্সন সামঞ্জস্যতার ত্রুটি থাকা ওয়ার্কফ্লোতে জরুরি পরিবর্তন করতে আপনি চাইলে সাময়িকভাবে সমস্যাগুলোকে উপেক্ষা করতে পারেন। যদি এই সমস্যাগুলোর সমাধান করা না হয়, তাহলে যখন Shopify পুরনো API ভার্সনটিতে আর সমর্থন দেবে না তখন ওয়ার্কফ্লোটি রান করা বন্ধ হয়ে যেতে পারে বা ত্রুটি দেখা দিতে পারে।