Admin API-এর অনুরোধ পাঠান
Admin API-এর অনুরোধ পাঠান অ্যাকশনটি আপনার স্টোরে পরিবর্তন আনতে GraphQL Admin API-এর অধিকাংশ মিউটেশন ব্যবহার করতে পারে, যার মধ্যে Flow-তে অ্যাকশন হিসেবে এখনও লভ্য নয় এমন মিউটেশনগুলোও অন্তর্ভুক্ত রয়েছে।
ফিল্ড
Admin API-এর অনুরোধ পাঠান অ্যাকশনে নিচের ফিল্ডগুলো রয়েছে।
| ফিল্ড | বিবরণ |
|---|---|
| মিউটেশন | আবশ্যিক। আপনি যে Shopify GraphQL Admin মিউটেশনটিকে কল করতে চান। মিউটেশন হলো একটি API যা কোনো অ্যাকশন সম্পন্ন করে বা ডেটা আপডেট করে। |
| মিউটেশনের ইনপুট | আবশ্যিক। যে ডেটা (JSON-এ) আপনাকে আপনার মিউটেশনের অনুরোধের অংশ হিসেবে পাঠাতে হবে। প্রতিটি মিউটেশনের জন্য আলাদা ডেটা সেটের প্রয়োজন হয়, যা প্রতিটি মিউটেশনের জন্য দেওয়া লিঙ্কে নথিবদ্ধ করা আছে। প্রয়োজনীয় JSON তৈরি করতে, আপনি Liquid বা একটি Run code অ্যাকশন ব্যবহার করতে পারেন। |
ট্রিগার
যতক্ষণ পর্যন্ত ওয়ার্কফ্লোটি মিউটেশনের ইনপুট তৈরি করার জন্য প্রয়োজনীয় ডেটা প্রদান করে, ততক্ষণ পর্যন্ত Admin API-এর অনুরোধ পাঠান অ্যাকশনটি যেকোনো ট্রিগারের সাথে যেকোনো ওয়ার্কফ্লোতে ব্যবহার করা যেতে পারে।
উদাহরণ
উদাহরণ 1: কোনো পণ্যের জন্য ব্যবহৃত টেমপ্লেট আপডেট করা
এই উদাহরণে, আমরা কোনো পণ্যের জন্য ব্যবহৃত টেমপ্লেটটি আপডেট করতে productUpdate মিউটেশনকে কল করার জন্য Admin API-এর অনুরোধ পাঠান অ্যাকশনটি ব্যবহার করব।
id ফিল্ডটি আবশ্যিক এবং এটি অবশ্যই একটি বৈধ প্রোডাক্ট GID হতে হবে। এখানে, আমরা {{product.id}} Liquid ভেরিয়েবল দিয়ে এটি সেট করেছি। এর মানে হলো আপনার ওয়ার্কফ্লোতে এমন একটি ট্রিগার আছে, যা একটি প্রোডাক্ট অবজেক্ট প্রদান করে।
templateSuffix হলো সেই টেমপ্লেটের নাম যা আপনি পণ্যে প্রয়োগ করতে চান। উদাহরণস্বরূপ, আপনি যদি pre-order টেমপ্লেট প্রয়োগ করতে চান, তবে আপনাকে templateSuffix-এর মান pre-order হিসেবে সেট করতে হবে।
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}উদাহরণ 2: কোনো গ্রাহকের ট্যাক্স অব্যাহতি স্ট্যাটাস আপডেট করুন
এই উদাহরণে, আমরা কোনো গ্রাহকের ট্যাক্স অব্যাহতি স্ট্যাটাস আপডেট করতে customerUpdate মিউটেশন কল করার জন্য Admin API-এর অনুরোধ পাঠান অ্যাকশনটি ব্যবহার করব।
id ফিল্ডটি আবশ্যক এবং এটি অবশ্যই একটি বৈধ গ্রাহক GID হতে হবে। এখানে, আমরা {{order.customer.id}} Liquid ভেরিয়েবলের মাধ্যমে এটি সেট করেছি। এটি ধরে নেয় যে, আপনার ওয়ার্কফ্লোতে এমন একটি ট্রিগার আছে যা অর্ডার অবজেক্ট প্রদান করে।
taxExempt ফিল্ডটি একটি বুলিয়ান যা নির্দেশ করে যে গ্রাহক ট্যাক্স থেকে অব্যাহতি পেয়েছেন কি না। এই উদাহরণে, আমরা এটিকে true হিসেবে সেট করেছি।
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}উদাহরণ 3: কোনো গ্রাহকের লোকেল আপডেট করুন
এই উদাহরণে, আমরা কোনো গ্রাহকের লোকেল আপডেট করতে customerUpdate মিউটেশন কল করার জন্য Admin API-এর অনুরোধ পাঠান অ্যাকশনটি ব্যবহার করব।
id ফিল্ডটি আবশ্যক এবং এটি অবশ্যই একটি বৈধ গ্রাহক GID হতে হবে। এখানে, আমরা {{customer.id}} Liquid ভেরিয়েবলের মাধ্যমে এটি সেট করেছি। এটি ধরে নেয় যে, আপনার ওয়ার্কফ্লোতে এমন একটি ট্রিগার আছে যা গ্রাহক অবজেক্ট প্রদান করে।
locale ফিল্ডটি একটি স্ট্রিং যা গ্রাহকের লোকেলকে তুলে ধরে। এই উদাহরণে, আমরা এটিকে en হিসেবে সেট করেছি।
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}Liquid-এর টিপস
Flow একটি json liquid ফিল্টার সাপোর্ট করে যা ইনপুট তৈরি করার ক্ষেত্রে বেশ কার্যকর হতে পারে। নিচের উদাহরণগুলোর প্রতিটিতে customerUpdate মিউটেশন ব্যবহার করা হয়েছে এবং ধরে নেওয়া হয়েছে যে আপনার ওয়ার্কফ্লোতে এমন একটি ট্রিগার আছে যা গ্রাহক অবজেক্ট প্রদান করে।
স্ট্রিং নিয়ে কাজ করা
নিচের উদাহরণটি কোনো গ্রাহকের নোট আপডেট করে:
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}সঠিক JSON নিশ্চিত করতে json ফিল্টারটি স্ট্রিং এস্কেপ করে। ওয়ার্কফ্লো রান করার পরে এর ফলে নিচের JSON-টি পাওয়া যায়:
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}অ্যারে নিয়ে কাজ করা
অ্যারের উদাহরণ
json ফিল্টারটি liquid অ্যারেকে JSON অ্যারেতে রূপান্তর করে। নিচের উদাহরণে liquid অ্যারে প্রদান করা হলে একটি JSON অ্যারে আউটপুট পাওয়া যায়:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}ওয়ার্কফ্লো রান করার পরে এর ফলে নিচের JSON-টি পাওয়া যায়:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}For লুপের উদাহরণ
কমার মাধ্যমে আলাদা করে কোনো অ্যারের ইলিমেন্ট আউটপুট করার জন্য নিচের উদাহরণে একটি লুপ ব্যবহার করা হয়েছে:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}ওয়ার্কফ্লো রান করার সময় এর ফলে নিচের JSON-টি পাওয়া যায়:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}Map-এর উদাহরণ
অবজেক্টের অ্যারে থেকে কোনো নির্দিষ্ট প্রপার্টির অ্যারে পেতে map ফিল্টার ব্যবহার করা যেতে পারে। নিচের উদাহরণে, গ্রাহকের ঠিকানার একটি অ্যারে থেকে city প্রপার্টির একটি অ্যারে আলাদা করা হয়েছে:
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}ওয়ার্কফ্লো রান করার পরে এর ফলে নিচের JSON-টি পাওয়া যায়:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}সীমাবদ্ধতা
Admin API-এর অনুরোধ পাঠান অ্যাকশনে নিচের সীমাবদ্ধতাগুলো রয়েছে:
- Flow-তে ব্যবহৃত Admin API ভার্সন থেকে এই অ্যাকশনটি
MutationsএবংMutation inputs-এর একটি তালিকা প্রদর্শন করবে। - নতুন API ভার্সন রিলিজ করা হলে, এই অ্যাকশনটি এমন কোনো মিউটেশন বা ফিল্ড ব্যবহার করলে ব্যর্থ হতে পারে যা পরিবর্তন করা হয়েছে বা বাতিল করা হয়েছে।
- অ্যাকশনটি GraphQL কোয়েরি সাপোর্ট করে না, শুধুমাত্র মিউটেশন সাপোর্ট করে।
- বাতিল করা হয়েছে এমন মিউটেশন এই অ্যাকশনটি সাপোর্ট করে না।
- এই অ্যাকশনটি নির্দিষ্ট অ্যাপের জন্য নির্দিষ্ট কিছু মিউটেশন সাপোর্ট করে না, যার মধ্যে কয়েকটি সাবস্ক্রিপশন, মার্কেটিং অ্যাক্টিভিটি এবং ডিসকাউন্ট মিউটেশন অন্তর্ভুক্ত রয়েছে।
- এই অ্যাকশনটি অ্যাসিনক্রোনাস (asynchronous) মিউটেশন বা
Jobটাইপ রিটার্ন করে এমন মিউটেশন সাপোর্ট করে না। - এই অ্যাকশনটি এমন মিউটেশন সাপোর্ট করে না যা নোড ইন্টারফেস প্রয়োগ করে না।
টেমপ্লেট
নতুন অর্ডারে বিনামূল্যে (100% ডিসকাউন্টে) আইটেম যোগ করুন
আইটেমটি স্টকে থাকলে এই টেমপ্লেটটি নতুন অর্ডারে বিনামূল্যে, ডিসকাউন্টযুক্ত আইটেম যোগ করে। এটি ইনভেন্টরি চেক করে, 100% ডিসকাউন্ট প্রয়োগ করে এবং গ্রাহককে না জানিয়েই অর্ডার আপডেট করে। এই অটোমেশনটি নিচের বিষয়গুলোর জন্য উপকারী হতে পারে: (1) অর্ডারে গ্রাহকের অজান্তেই একটি বিনামূল্যের আইটেম অন্তর্ভুক্ত করে গ্রাহক সন্তুষ্টি বাড়াতে, (2) অর্ডারে বিনামূল্যের স্যাম্পল হিসেবে নতুন বা স্বল্প-পরিচিত পণ্য যোগ করে সেগুলোর প্রচার করতে অথবা (3) বিনামূল্যে আইটেম অন্তর্ভুক্ত ও ডিসকাউন্ট করার কাজ অটোমেট করে প্রচারণাকে সহজতর করতে। টেমপ্লেট দেখুন
কোম্পানির অ্যাকাউন্ট অনুরোধের মাধ্যমে তৈরি করা কোম্পানিগুলোর জন্য অর্ডার করার অনুমতি দিন
কোম্পানির অ্যাকাউন্ট অনুরোধের মাধ্যমে কোনো কোম্পানি তৈরি হলে অর্ডারের অনুমতি অ্যাসাইন করুন। টেমপ্লেট দেখুন
ভ্যারিয়েন্ট স্টকে না থাকলে বা পুনরায় স্টকে আসলে পণ্যের টেমপ্লেট পরিবর্তন করুন
পণ্যের ভ্যারিয়েন্টগুলোর ইনভেন্টরির ওপর ভিত্তি করে পণ্যের টেমপ্লেট আপডেট করুন। ওয়ার্কফ্লোটি আপনাকে স্টকে থাকা (স্টোরের ডিফল্ট টেমপ্লেট), স্টকে না থাকা এবং এক বা একাধিক ভ্যারিয়েন্ট স্টকে না থাকার টেমপ্লেটগুলোর মধ্যে অদলবদল করার অনুমতি দেয়। টেমপ্লেট দেখুন
কোনো অর্ডারের যেকোনো ডিজিটাল আইটেম ফুলফিল করুন
ফিজিক্যালি ডেলিভারি করার প্রয়োজন নেই এমন কোনো আইটেম (যেমন, ডিজিটাল আইটেম) অথবা নির্দিষ্ট SKU তালিকার সাথে মিলে যায় এমন আইটেম পূরণ করে। এটি নতুন অর্ডারের ক্ষেত্রে প্রতিটি ফুলফিলমেন্ট লোকেশনের ('ফুলফিলমেন্ট অর্ডার') জন্য একবার রান করে। টেমপ্লেট দেখুন