Shopify افعال مکمل گائیڈ: پیمانے پر کاروباری منطق کو حسب ضرورت بنائیں
Shopify فنکشنز ڈویلپرز کو بنیادی کامرس منطق کو اپنی مرضی کے مطابق کرنے کی اجازت دیتے ہیں جو بیرونی سرورز کے بجائے Shopify کے انفراسٹرکچر کے اندر چلتی ہے۔ اس کا مطلب ہے حسب ضرورت ڈسکاؤنٹ کیلکولیشنز، ادائیگی کے طریقہ کار کی فلٹرنگ، شپنگ ریٹ میں ترمیم، اور کارٹ کی توثیق نیٹ ورک میں تاخیر کے بغیر ملی سیکنڈز میں عمل میں آتی ہے۔ فنکشنز نے اسکرپٹ ایڈیٹر (Shopify Scripts) کی جگہ لے لی اور پلیٹ فارم پر بیک اینڈ کسٹمائزیشن کے مستقبل کی نمائندگی کی۔ یہ گائیڈ ہر فنکشن کی قسم، ترقیاتی ورک فلو، اور تعیناتی پیٹرن کا احاطہ کرتا ہے۔
اہم نکات
- Shopify فنکشنز Shopify کے انفراسٹرکچر کے اندر ایک WebAssembly سینڈ باکس میں کام کرتے ہیں، ذیلی 5ms کے عمل کے اوقات کو یقینی بناتے ہوئے
- پانچ فنکشن APIs دستیاب ہیں: چھوٹ، ادائیگی کی تخصیص، ترسیل حسب ضرورت، کارٹ کی توثیق، اور آرڈر روٹنگ
- فنکشنز Rust، JavaScript، یا کسی بھی زبان میں لکھے جاتے ہیں جو WebAssembly کو مرتب کرتی ہے۔
- ہر فنکشن GraphQL استفسار کے نتائج کے ذریعے ان پٹ وصول کرتا ہے اور سٹرکچرڈ آؤٹ پٹ واپس کرتا ہے جو Shopify آپریشن پر لاگو ہوتا ہے۔
- فنکشنز Shopify ایپس کے حصے کے طور پر تعینات ہوتے ہیں اور تاجروں کے ذریعے منتظم کے ذریعے کنفیگر کیے جا سکتے ہیں
Shopify فنکشنز کیا ہیں؟
Shopify فنکشن ہلکے وزن والے پروگرام ہیں جو پہلے سے طے شدہ ایکسٹینشن پوائنٹس پر مخصوص کامرس آپریشنز کو اپنی مرضی کے مطابق بناتے ہیں۔ ویب ہکس (جو بیرونی سرورز کو ڈیٹا بھیجتے ہیں) کے برعکس، فنکشنز Shopify کے انفراسٹرکچر کے اندر WebAssembly ماڈیولز کے طور پر چلتے ہیں، اس بات کی ضمانت:
- رفتار: ذیلی 5ms عمل درآمد (کوئی نیٹ ورک تاخیر نہیں)
- ** اعتبار **: کوئی بیرونی سرور پر انحصار نہیں ہے۔
- پیمانہ: صلاحیت کی منصوبہ بندی کے بغیر کسی بھی ٹریفک والیوم کو ہینڈل کرتا ہے۔
- سیکیورٹی: بغیر فائل سسٹم یا نیٹ ورک تک رسائی کے سینڈ باکسڈ ایگزیکیوشن
فنکشن APIs
| API | مقصد | کی جگہ لے لیتا ہے |
|---|---|---|
| چھوٹ | حسب ضرورت ڈسکاؤنٹ منطق (BOGO، ٹائرڈ، مشروط) | Shopify اسکرپٹس (لائن آئٹم کی چھوٹ) |
| ادائیگی حسب ضرورت | چیک آؤٹ پر ادائیگی کے طریقے دکھائیں/چھپائیں/دوبارہ ترتیب دیں | ادائیگی کا طریقہ مشروط منطق |
| ڈلیوری حسب ضرورت | شپنگ کی شرحوں، ناموں اور دستیابی میں ترمیم کریں۔ شپنگ کی شرح سکرپٹ | |
| کارٹ کی توثیق | کارٹ کے مشمولات کی توثیق کریں اور غلط امتزاج کو بلاک کریں | کارٹ انتساب کی توثیق |
| آرڈر روٹنگ | تکمیل کے مقام کے انتخاب کو حسب ضرورت بنائیں | پہلے سے طے شدہ مقام کی روٹنگ |
ترقیاتی ماحول
شرائط
- Shopify CLI (تازہ ترین ورژن)
- Node.js 18+
- ایک Shopify پارٹنر اکاؤنٹ اور ڈیولپمنٹ اسٹور
- مورچا ٹول چین (زنگ پر مبنی افعال کے لیے) یا جاوا اسکرپٹ رن ٹائم
ایک فنکشن بنانا
Shopify CLI کا استعمال کرتے ہوئے ایک نیا فنکشن اسکافولڈ کریں:
npx shopify app generate extension چلائیں اور فنکشن کی قسم منتخب کریں۔ CLI پیدا کرتا ہے:
| فائل | مقصد |
|---|---|
src/run.js (یا run.rs) | فنکشن منطق |
input.graphql | ان پٹ ڈیٹا کی وضاحت کرنے والا گراف کیو ایل سوال |
shopify.extension.toml | کنفیگریشن اور میٹا ڈیٹا |
schema.graphql | Shopify API سکیما (خود کار طریقے سے تیار کردہ) |
ترقیاتی ورک فلو
- ان پٹ استفسار کی وضاحت کریں:
input.graphqlمیں گراف کیو ایل کا استفسار لکھیں جو آپ کے فنکشن کو درکار ڈیٹا حاصل کرتا ہے۔ - منطق کو نافذ کریں:
src/run.jsمیں فنکشن لکھیں جو ان پٹ کو آؤٹ پٹ میں تبدیل کرتا ہے۔ - مقامی طور پر ٹیسٹ:
npx shopify app function testکے ساتھ یونٹ ٹیسٹ چلائیں - تعینات:
npx shopify app deployکے ساتھ Shopify پر پش کریں - کنفیگر: مرچنٹس ایپ کے UI کے ذریعے فنکشن پیرامیٹرز کو ترتیب دیتے ہیں
رعایتی افعال
ڈسکاؤنٹ کے افعال کیسے کام کرتے ہیں۔
ڈسکاؤنٹ فنکشن کارٹ ڈیٹا (لائن آئٹمز، کسٹمر کی معلومات، ڈسکاؤنٹ کوڈز) وصول کرتا ہے اور درخواست دینے کے لیے ڈسکاؤنٹ آپریشنز واپس کرتا ہے۔ جب بھی کارٹ کا جائزہ لیا جاتا ہے تو فنکشن چلتا ہے---صفحہ لوڈ، آئٹم شامل/ہٹانے، اور چیک آؤٹ انٹری پر۔
عام ڈسکاؤنٹ پیٹرن
X خریدیں حاصل کریں Y: جب کارٹ میں پروڈکٹ X ہو تو پروڈکٹ Y پر فیصد یا مقررہ رعایت کا اطلاق کریں۔
ٹائیرڈ ڈسکاؤنٹس: کارٹ کی کل کی بنیاد پر بڑھتی ہوئی چھوٹ کا اطلاق کریں (100 USD سے زیادہ 10%، 200 USD سے زیادہ 15%، 500 USD سے زیادہ 20%)۔
کسٹمر کے لیے مخصوص قیمتوں کا تعین: کسٹمر کے ٹیگز یا میٹا فیلڈز کو چیک کریں اور سیگمنٹ کے لیے مخصوص رعایتیں لاگو کریں (تھوک، VIP، ملازم)۔
بنڈل ڈسکاؤنٹس: جب مخصوص پروڈکٹ کے امتزاج کارٹ میں ہوں، تو بنڈل ڈسکاؤنٹ لگائیں (تینوں خریدیں، 25% بچائیں)۔
حجم کی چھوٹ: مقدار کی بنیاد پر فی یونٹ رعایت کا اطلاق کریں (مکمل قیمت پر 1-9 یونٹس، 10-24 پر 10% چھوٹ، 25+ پر 20% چھوٹ)۔
ان پٹ استفسار کی مثال
ڈسکاؤنٹ فنکشن کا ان پٹ استفسار عام طور پر درخواست کرتا ہے:
- پروڈکٹ IDs، مختلف IDs، مقدار اور قیمتوں کے ساتھ کارٹ لائن آئٹمز
- کسٹمر کی معلومات (ID، tags، metafields) اگر گاہک کی تقسیم کا استعمال کر رہے ہیں۔
- ڈسکاؤنٹ کوڈ اگر کوڈ پر مبنی رعایت کی توثیق کر رہا ہو۔
- پروڈکٹ کے مخصوص رعایتی اصولوں کے لیے پروڈکٹ میٹا فیلڈز
آؤٹ پٹ سٹرکچر
فنکشن ڈسکاؤنٹ آپریشنز کی ایک صف واپس کرتا ہے:
| آپریشن | تفصیل |
|---|---|
productDiscount | مخصوص پروڈکٹس/ویرینٹس پر رعایت کا اطلاق کریں |
orderDiscount | آرڈر کی کل پر رعایت کا اطلاق کریں |
freeShipping | شپنگ چارجز کو ہٹا دیں |
ہر آپریشن میں ڈسکاؤنٹ ویلیو (فی صد یا مقررہ رقم)، گاہک کو دکھایا جانے والا پیغام، اور وہ شرائط شامل ہوتی ہیں جن کے تحت یہ لاگو ہوتا ہے۔
ادائیگی حسب ضرورت افعال
کیسز استعمال کریں۔
- ادائیگی کے طریقے چھپائیں: حد سے اوپر کے آرڈرز کے لیے "کیش آن ڈیلیوری" چھپائیں
- دوبارہ ترتیب دینے کے طریقے: کسٹمر کے مقام کی بنیاد پر پہلے سب سے مقبول ادائیگی کا طریقہ دکھائیں۔
- نام بدلنے کے طریقے: مقامی ادائیگی کے طریقے کے نام ڈسپلے کریں۔
- پیغام رسانی شامل کریں: ادائیگی کے مخصوص طریقوں کے آگے اضافی معلومات دکھائیں۔
نفاذ کا نمونہ
فنکشن کارٹ کی تفصیلات اور دستیاب ادائیگی کے طریقے حاصل کرتا ہے۔ یہ ان کارروائیوں کو واپس کرتا ہے جو ادائیگی کے طریقہ کار کی فہرست میں ترمیم کرتے ہیں:
| آپریشن | اثر |
|---|---|
hide | چیک آؤٹ سے ادائیگی کا طریقہ ہٹائیں |
rename | ادائیگی کے طریقے کا ڈسپلے نام تبدیل کریں |
move | ادائیگی کے طریقوں کو دوبارہ ترتیب دیں |
ڈلیوری حسب ضرورت افعال
کیسز استعمال کریں۔
- شپنگ کے اختیارات کا نام تبدیل کریں: کیریئر ریٹ کے ناموں کے بجائے "ایکسپریس ڈیلیوری (2-3 دن)" دکھائیں
- اختیارات چھپائیں: خراب ہونے والی مصنوعات کے لیے گراؤنڈ شپنگ کو ہٹا دیں۔
- ری آرڈر کے اختیارات: فوری آرڈرز کے لیے پہلے تیز ترین آپشن دکھائیں۔
- میسجنگ شامل کریں: ہر آپشن کے آگے ڈیلیوری کی تخمینی تاریخیں دکھائیں۔
نفاذ
فنکشن کنفیگرڈ کیریئرز سے شپنگ ریٹس وصول کرتا ہے اور تبدیلیاں واپس کرتا ہے۔ ان پٹ میں کارٹ لائن آئٹمز (مصنوعات کی اقسام کو چیک کرنے کے لیے)، شپنگ ایڈریس (مقام پر مبنی قواعد کے لیے)، اور دستیاب ترسیل کے اختیارات شامل ہیں۔
کارٹ کی توثیق کے افعال
کیسز استعمال کریں۔
- مقدار کی حد: محدود ایڈیشن کی مصنوعات کی زیادہ سے زیادہ 5 یونٹ
- مجموعی پابندیاں: پروڈکٹ A اور پروڈکٹ B ایک ہی کارٹ میں نہیں ہو سکتے (غیر موافق)
- کم سے کم تقاضے: تھوک کھاتوں کو کم از کم 100 USD کا آرڈر دینا چاہیے
- جغرافیائی پابندیاں: بعض مصنوعات کو محدود علاقوں میں بھیجنے سے روکیں۔
توثیق آؤٹ پٹ
جب توثیق ناکام ہوجاتی ہے، فنکشن اس کے ساتھ ایک خرابی لوٹاتا ہے:
- ٹارگٹ: کون سی کارٹ لائن یا خود کارٹ
- پیغام: گاہک کو درپیش غلطی کا پیغام
- شدت: خرابی (چیک آؤٹ کو روکتا ہے) یا وارننگ (اجازت دیتا ہے لیکن مطلع کرتا ہے)
جانچ کے افعال
یونٹ ٹیسٹنگ
بغیر تعیناتی کے مقامی طور پر کام کی جانچ کریں:
- نمونہ ان پٹ ڈیٹا کے ساتھ ٹیسٹ فکسچر بنائیں
- فکسچر کے خلاف فنکشن چلائیں۔
- آؤٹ پٹ متوقع نتائج سے مماثل ثابت کریں۔
Shopify CLI ٹیسٹ بوائلر پلیٹ تیار کرتا ہے:
| ٹیسٹ کا منظر نامہ | کیا تصدیق کرنی ہے |
|---|---|
| خالی ٹوکری | فنکشن کوئی آپریشن نہیں لوٹاتا ہے |
| کوالیفائنگ کارٹ | درست رعایت/ترمیم لاگو |
| ایج کیسز | حد کی قدریں، زیادہ سے زیادہ مقداریں |
| خرابی سے نمٹنے | غلط ان پٹ خوبصورتی سے سنبھالا گیا |
| کارکردگی | عمل درآمد 5ms کے تحت مکمل ہوتا ہے |
پیش نظارہ موڈ
شائع کرنے سے پہلے ڈیولپمنٹ اسٹور میں افعال کی جانچ کریں:
- فنکشن کو اپنے ڈیولپمنٹ اسٹور پر تعینات کریں۔
- Configure it through the app admin
- کارٹ میں مصنوعات شامل کریں اور رویے کی تصدیق کریں۔
- Shopify CLI آؤٹ پٹ میں فنکشن ایگزیکیوشن لاگز کو چیک کریں۔
کارکردگی کے تحفظات
عملدرآمد کی حدود
| حد | قدر |
|---|---|
| پھانسی کا وقت | 5ms زیادہ سے زیادہ |
| یادداشت | 12 MB |
| ان پٹ سائز | 64 KB |
| آؤٹ پٹ سائز | 64 KB |
| ہدایات | 1 ملین Wasm ہدایات |
اصلاح کی تجاویز
- ان پٹ استفسار کو صرف ان فیلڈز تک کم سے کم کریں جن کی آپ کی منطق کی ضرورت ہے۔
- پیچیدہ نیسٹڈ لوپس سے بچیں --- تلاش کے لیے ہیش میپس استعمال کریں۔
- فنکشن کے بجائے ایپ کنفیگریشن میں قدروں کی پہلے سے گنتی کریں۔
- کارکردگی کے اہم افعال کے لیے زنگ استعمال کریں (جاوا اسکرپٹ سے 2-3x تیز)
- Shopify CLI پرفارمنس ٹولز کا استعمال کرتے ہوئے پروفائل فنکشن کا نفاذ
مرچنٹ کنفیگریشن
ایپ کنفیگریشن UI
فنکشنز کو آپ کی ایپ کے UI کے ذریعے ترتیب دیا جاتا ہے، نہ کہ براہ راست Shopify ایڈمن میں۔ ایک ترتیب والا صفحہ بنائیں جو:
- فنکشن کا مقصد اور موجودہ سیٹنگز دکھاتا ہے۔
- تاجروں کو پیرامیٹرز سیٹ کرنے کی اجازت دیتا ہے (حد، مصنوعات کے انتخاب، فیصد)
- کنفیگریشن کو میٹا فیلڈز کے طور پر اسٹور کرتا ہے جسے فنکشن رن ٹائم پر پڑھتا ہے۔
- محفوظ کرنے سے پہلے ان پٹ کی توثیق کرتا ہے۔
کنفیگریشن اسٹوریج
ایپ میٹا فیلڈز کا استعمال کرتے ہوئے فنکشن کنفیگریشن کو اسٹور کریں:
- رعایت پر میٹا فیلڈز: حد کی مقدار، فیصد کی قدریں، پروڈکٹ IDs
- ایپ ڈیٹا اسٹوریج: پیچیدہ کنفیگریشن جیسے ٹائرڈ رولز، کسٹمر سیگمنٹس
- فنکشن کنفیگریشن: فنکشن کے ان پٹ کے حصے کے طور پر ان پٹ استفسار کے ذریعے پاس کیا گیا
ECOSIRE فنکشن ڈیولپمنٹ سروسز
حسب ضرورت Shopify فنکشنز کو کامرس ڈومین کی مہارت اور WebAssembly کی ترقی کی مہارت دونوں کی ضرورت ہوتی ہے۔ ECOSIRE کی Shopify ایپ ڈیولپمنٹ سروسز میں فنکشن ڈیزائن، نفاذ، جانچ اور تعیناتی شامل ہیں۔ ہماری ٹیم آپ کے کاروباری قواعد کے مطابق ڈسکاؤنٹ انجن، ادائیگی کی تخصیصات، اور توثیق کی منطق بناتی ہے۔ جاری ضروریات کے لیے، ہماری سپورٹ سروسز آپ کے حسب ضرورت افعال کو برقرار رکھتی ہے اور اسے تیار کرتی ہے جیسے جیسے Shopify کا پلیٹ فارم آگے بڑھتا ہے۔
متعلقہ پڑھنا
- Shopify Checkout Extensibility
- Shopify ایپ ڈویلپمنٹ گائیڈ
- Shopify API انٹیگریشن گائیڈ
- Shopify فلو آٹومیشن
- Shopify Plus Enterprise Guide
کیا Shopify فنکشنز Shopify اسکرپٹس کو تبدیل کرتے ہیں؟
جی ہاں Shopify اسکرپٹ کو فرسودہ کر دیا گیا ہے اور فنکشنز اس کا متبادل ہیں۔ کلیدی فرق: فنکشنز WebAssembly کے طور پر چلتے ہیں (روبی نہیں)، ایپس کے ذریعے تعینات کرتے ہیں (اسکرپٹ ایڈیٹر نہیں)، اور مزید ایکسٹینشن پوائنٹس کو سپورٹ کرتے ہیں۔ موجودہ اسکرپٹس کام کرتی رہیں لیکن Shopify فنکشنز میں منتقل ہونے کی تجویز کرتا ہے۔
کیا غیر ڈویلپرز Shopify فنکشنز بنا سکتے ہیں؟
براہ راست نہیں۔ فنکشنز کو پروگرامنگ کا علم درکار ہوتا ہے (جاوا اسکرپٹ یا رسٹ)۔ تاہم، ڈویلپرز کنفیگریشن UIs کے ساتھ ایپس بنا سکتے ہیں جو تاجروں کو کوڈنگ کے بغیر فنکشن رویے کو اپنی مرضی کے مطابق کرنے دیتی ہیں۔ Shopify App Store پر بہت سی ایپس ایک مرچنٹ کے موافق انٹرفیس پیش کرتے ہوئے اندرونی طور پر فنکشنز کا استعمال کرتی ہیں۔
کیا اس بات کی کوئی حد ہے کہ ایک اسٹور پر کتنے فنکشنز چل سکتے ہیں؟
Shopify انسٹال کردہ فنکشنز کی تعداد پر سخت حد نہیں لگاتا ہے۔ تاہم، ہر چیک آؤٹ کا جائزہ تمام قابل اطلاق افعال کو ترتیب وار چلاتا ہے، لہذا کارکردگی کے تحفظات لاگو ہوتے ہیں۔ 5ms فی فنکشن کی حد یقینی بناتی ہے کہ انفرادی افعال چیک آؤٹ کو سست نہیں کر سکتے، لیکن درجنوں فنکشنز کا ہونا نظریاتی طور پر چیک آؤٹ کے کل تشخیص کے وقت کو متاثر کر سکتا ہے۔
تحریر
ECOSIRE Research and Development Team
ECOSIRE میں انٹرپرائز گریڈ ڈیجیٹل مصنوعات بنانا۔ Odoo انٹیگریشنز، ای کامرس آٹومیشن، اور AI سے چلنے والے کاروباری حل پر بصیرت شیئر کرنا۔
متعلقہ مضامین
AI Personalization for eCommerce: Individualized Experiences That Convert
Deploy AI personalization for eCommerce with product recommendations, dynamic content, personalized search, and customer journey optimization for 15-30% higher conversions.
Headless Shopify with Hydrogen: Build High-Performance Custom Storefronts
Complete guide to building headless Shopify storefronts with Hydrogen framework covering Remix, Storefront API, Oxygen hosting, and performance optimization.
Building Mobile-First Shopify Stores: Complete Optimization Guide
Build mobile-first Shopify stores that convert. Covers theme selection, mobile UX, checkout optimization, app performance, and Shopify-specific mobile strategies.