Shopify Functions Complete Guide: Customize Business Logic at Scale

Master Shopify Functions for custom discounts, payment method filtering, shipping rate manipulation, and cart validation with this complete development guide.

E
ECOSIRE Research and Development Team
|16 مارچ، 202610 منٹ پڑھیں2.2k الفاظ|

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.graphqlShopify API سکیما (خود کار طریقے سے تیار کردہ)

ترقیاتی ورک فلو

  1. ان پٹ استفسار کی وضاحت کریں: input.graphql میں گراف کیو ایل کا استفسار لکھیں جو آپ کے فنکشن کو درکار ڈیٹا حاصل کرتا ہے۔
  2. منطق کو نافذ کریں: src/run.js میں فنکشن لکھیں جو ان پٹ کو آؤٹ پٹ میں تبدیل کرتا ہے۔
  3. مقامی طور پر ٹیسٹ: npx shopify app function test کے ساتھ یونٹ ٹیسٹ چلائیں
  4. تعینات: npx shopify app deploy کے ساتھ Shopify پر پش کریں
  5. کنفیگر: مرچنٹس ایپ کے 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 کا آرڈر دینا چاہیے
  • جغرافیائی پابندیاں: بعض مصنوعات کو محدود علاقوں میں بھیجنے سے روکیں۔

توثیق آؤٹ پٹ

جب توثیق ناکام ہوجاتی ہے، فنکشن اس کے ساتھ ایک خرابی لوٹاتا ہے:

  • ٹارگٹ: کون سی کارٹ لائن یا خود کارٹ
  • پیغام: گاہک کو درپیش غلطی کا پیغام
  • شدت: خرابی (چیک آؤٹ کو روکتا ہے) یا وارننگ (اجازت دیتا ہے لیکن مطلع کرتا ہے)

جانچ کے افعال

یونٹ ٹیسٹنگ

بغیر تعیناتی کے مقامی طور پر کام کی جانچ کریں:

  1. نمونہ ان پٹ ڈیٹا کے ساتھ ٹیسٹ فکسچر بنائیں
  2. فکسچر کے خلاف فنکشن چلائیں۔
  3. آؤٹ پٹ متوقع نتائج سے مماثل ثابت کریں۔

Shopify CLI ٹیسٹ بوائلر پلیٹ تیار کرتا ہے:

ٹیسٹ کا منظر نامہکیا تصدیق کرنی ہے
خالی ٹوکریفنکشن کوئی آپریشن نہیں لوٹاتا ہے
کوالیفائنگ کارٹدرست رعایت/ترمیم لاگو
ایج کیسزحد کی قدریں، زیادہ سے زیادہ مقداریں
خرابی سے نمٹنےغلط ان پٹ خوبصورتی سے سنبھالا گیا
کارکردگیعمل درآمد 5ms کے تحت مکمل ہوتا ہے

پیش نظارہ موڈ

شائع کرنے سے پہلے ڈیولپمنٹ اسٹور میں افعال کی جانچ کریں:

  1. فنکشن کو اپنے ڈیولپمنٹ اسٹور پر تعینات کریں۔
  2. Configure it through the app admin
  3. کارٹ میں مصنوعات شامل کریں اور رویے کی تصدیق کریں۔
  4. Shopify CLI آؤٹ پٹ میں فنکشن ایگزیکیوشن لاگز کو چیک کریں۔

کارکردگی کے تحفظات

عملدرآمد کی حدود

حدقدر
پھانسی کا وقت5ms زیادہ سے زیادہ
یادداشت12 MB
ان پٹ سائز64 KB
آؤٹ پٹ سائز64 KB
ہدایات1 ملین Wasm ہدایات

اصلاح کی تجاویز

  • ان پٹ استفسار کو صرف ان فیلڈز تک کم سے کم کریں جن کی آپ کی منطق کی ضرورت ہے۔
  • پیچیدہ نیسٹڈ لوپس سے بچیں --- تلاش کے لیے ہیش میپس استعمال کریں۔
  • فنکشن کے بجائے ایپ کنفیگریشن میں قدروں کی پہلے سے گنتی کریں۔
  • کارکردگی کے اہم افعال کے لیے زنگ استعمال کریں (جاوا اسکرپٹ سے 2-3x تیز)
  • Shopify CLI پرفارمنس ٹولز کا استعمال کرتے ہوئے پروفائل فنکشن کا نفاذ

مرچنٹ کنفیگریشن

ایپ کنفیگریشن UI

فنکشنز کو آپ کی ایپ کے UI کے ذریعے ترتیب دیا جاتا ہے، نہ کہ براہ راست Shopify ایڈمن میں۔ ایک ترتیب والا صفحہ بنائیں جو:

  1. فنکشن کا مقصد اور موجودہ سیٹنگز دکھاتا ہے۔
  2. تاجروں کو پیرامیٹرز سیٹ کرنے کی اجازت دیتا ہے (حد، مصنوعات کے انتخاب، فیصد)
  3. کنفیگریشن کو میٹا فیلڈز کے طور پر اسٹور کرتا ہے جسے فنکشن رن ٹائم پر پڑھتا ہے۔
  4. محفوظ کرنے سے پہلے ان پٹ کی توثیق کرتا ہے۔

کنفیگریشن اسٹوریج

ایپ میٹا فیلڈز کا استعمال کرتے ہوئے فنکشن کنفیگریشن کو اسٹور کریں:

  • رعایت پر میٹا فیلڈز: حد کی مقدار، فیصد کی قدریں، پروڈکٹ IDs
  • ایپ ڈیٹا اسٹوریج: پیچیدہ کنفیگریشن جیسے ٹائرڈ رولز، کسٹمر سیگمنٹس
  • فنکشن کنفیگریشن: فنکشن کے ان پٹ کے حصے کے طور پر ان پٹ استفسار کے ذریعے پاس کیا گیا

ECOSIRE فنکشن ڈیولپمنٹ سروسز

حسب ضرورت Shopify فنکشنز کو کامرس ڈومین کی مہارت اور WebAssembly کی ترقی کی مہارت دونوں کی ضرورت ہوتی ہے۔ ECOSIRE کی Shopify ایپ ڈیولپمنٹ سروسز میں فنکشن ڈیزائن، نفاذ، جانچ اور تعیناتی شامل ہیں۔ ہماری ٹیم آپ کے کاروباری قواعد کے مطابق ڈسکاؤنٹ انجن، ادائیگی کی تخصیصات، اور توثیق کی منطق بناتی ہے۔ جاری ضروریات کے لیے، ہماری سپورٹ سروسز آپ کے حسب ضرورت افعال کو برقرار رکھتی ہے اور اسے تیار کرتی ہے جیسے جیسے Shopify کا پلیٹ فارم آگے بڑھتا ہے۔

متعلقہ پڑھنا

کیا Shopify فنکشنز Shopify اسکرپٹس کو تبدیل کرتے ہیں؟

جی ہاں Shopify اسکرپٹ کو فرسودہ کر دیا گیا ہے اور فنکشنز اس کا متبادل ہیں۔ کلیدی فرق: فنکشنز WebAssembly کے طور پر چلتے ہیں (روبی نہیں)، ایپس کے ذریعے تعینات کرتے ہیں (اسکرپٹ ایڈیٹر نہیں)، اور مزید ایکسٹینشن پوائنٹس کو سپورٹ کرتے ہیں۔ موجودہ اسکرپٹس کام کرتی رہیں لیکن Shopify فنکشنز میں منتقل ہونے کی تجویز کرتا ہے۔

کیا غیر ڈویلپرز Shopify فنکشنز بنا سکتے ہیں؟

براہ راست نہیں۔ فنکشنز کو پروگرامنگ کا علم درکار ہوتا ہے (جاوا اسکرپٹ یا رسٹ)۔ تاہم، ڈویلپرز کنفیگریشن UIs کے ساتھ ایپس بنا سکتے ہیں جو تاجروں کو کوڈنگ کے بغیر فنکشن رویے کو اپنی مرضی کے مطابق کرنے دیتی ہیں۔ Shopify App Store پر بہت سی ایپس ایک مرچنٹ کے موافق انٹرفیس پیش کرتے ہوئے اندرونی طور پر فنکشنز کا استعمال کرتی ہیں۔

کیا اس بات کی کوئی حد ہے کہ ایک اسٹور پر کتنے فنکشنز چل سکتے ہیں؟

Shopify انسٹال کردہ فنکشنز کی تعداد پر سخت حد نہیں لگاتا ہے۔ تاہم، ہر چیک آؤٹ کا جائزہ تمام قابل اطلاق افعال کو ترتیب وار چلاتا ہے، لہذا کارکردگی کے تحفظات لاگو ہوتے ہیں۔ 5ms فی فنکشن کی حد یقینی بناتی ہے کہ انفرادی افعال چیک آؤٹ کو سست نہیں کر سکتے، لیکن درجنوں فنکشنز کا ہونا نظریاتی طور پر چیک آؤٹ کے کل تشخیص کے وقت کو متاثر کر سکتا ہے۔

E

تحریر

ECOSIRE Research and Development Team

ECOSIRE میں انٹرپرائز گریڈ ڈیجیٹل مصنوعات بنانا۔ Odoo انٹیگریشنز، ای کامرس آٹومیشن، اور AI سے چلنے والے کاروباری حل پر بصیرت شیئر کرنا۔

Chat on WhatsApp