Shopify Scripts API کا حوالہ
سکرپٹ ایک Ruby API کی مدد سے لکھے جاتے ہیں جو آپ کو بہت زیادہ کنٹرول اور لچک فراہم کرتی ہے۔
سکرپٹس کی مختلف اقسام ہیں۔ جب آپ Script Editor ایپ میں سکرپٹ بناتے ہیں تو ایک سکرپٹ کو قسم تفویض کی جاتی ہے، جس کی بنیاد اس پر ہوتی ہے کہ آپ شروع کرنے کے لیے کون سا سکرپٹ ٹیمپلیٹ منتخب کرتے ہیں:
لائن آئٹم سکرپٹس
لائن آئٹم سکرپٹس کارٹ میں موجود لائن آئٹمز کو متاثر کرتی ہیں اور قیمتیں تبدیل کر سکتی ہیں نیز ڈسکاؤنٹ دے سکتی ہیں۔ یہ سکرپٹس اس وقت رن ہوتی ہیں جب کارٹ میں کوئی تبدیلی کی جاتی ہے۔
ایسی لائن آئٹم سکرپٹس جو کسی سبسکرپشن پر ڈسکاؤنٹ دیتی ہیں، وہ صرف سبسکرپشن کی پہلی پیمنٹ پر لاگو ہوتی ہیں۔ بعد والی پیمنٹس پر سکرپٹ کے ذریعے ڈسکاؤنٹ نہیں دیا جاتا۔
شپنگ سکرپٹس
شپنگ سکرپٹس شپنگ کے ساتھ تعامل کرتی ہیں، اور شپنگ کے طریقے تبدیل کر سکتی ہیں نیز شپنگ ریٹس پر ڈسکاؤنٹ دے سکتی ہیں۔ یہ سکرپٹس اس وقت رن ہوتی ہیں جب چیک آؤٹ شپنگ کے اختیارات والے صفحے تک پہنچتا ہے۔
ایسی شپنگ سکرپٹس جو کسی سبسکرپشن کے شپنگ ریٹ پر ڈسکاؤنٹ دیتی ہیں، وہ صرف سبسکرپشن کی پہلی پیمنٹ پر لاگو ہوتی ہیں۔ بعد والی پیمنٹس پر سکرپٹ کے ذریعے ڈسکاؤنٹ نہیں دیا جاتا۔
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>پیمنٹ سکرپٹس
پیمنٹ سکرپٹس پیمنٹس کے ساتھ تعامل کرتی ہیں، اور پیمنٹ گیٹ ویز کا نام تبدیل، انہیں پوشیدہ اور دوبارہ ترتیب دے سکتی ہیں۔ نوٹ کریں کہ پیمنٹ سکرپٹس چیک آؤٹ سکرین سے پہلے دکھائے جانے والے پیمنٹ گیٹ ویز، جیسے Apple Pay، کے ساتھ تعامل نہیں کرتیں۔ یہ سکرپٹس اس وقت رن ہوتی ہیں جب چیک آؤٹ پیمنٹ کے صفحے تک پہنچتا ہے۔
کچھ طریقے صرف پیمنٹ سکرپٹس میں استعمال کیے جا سکتے ہیں۔
عمومی طریقے
درج ذیل طریقے کسی بھی قسم کی سکرپٹ میں استعمال کیے جا سکتے ہیں:
ان پٹ
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .cart | کارٹ | ایک قابل تغیر (mutable) کارٹ آبجیکٹ ریٹرن کرتا ہے۔ |
| .locale | سٹرنگ | کسٹمر کا لوکیل ریٹرن کرتا ہے۔ مثال کے طور پر، en، fr، یا pt-BR۔ |
کارٹ
کارٹ آبجیکٹ صرف آن لائن سٹور پر دستیاب ہے۔ کچھ ترک شدہ چیک آؤٹس کو کارٹ آبجیکٹ تک رسائی حاصل ہوتی ہے۔ تاہم، اگر ایک چیک آؤٹ بند کر دیا گیا ہے اور پھر کسٹمر ترک شدہ چیک آؤٹ پر جاتا ہے، تو یہ انہیں پہلے سے پُر شدہ چیک آؤٹ پر بھیج دیتا ہے اور کارٹ آبجیکٹ مزید موجود نہیں رہتا ہے۔ اس کی وجہ یہ ہے کہ ترک شدہ چیک آؤٹ ای میل کے ذریعے سٹور فرنٹ کو بائی پاس کر دیا گیا ہے۔
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .customer | کسٹمر | کارٹ کے مالک کو ریٹرن کرتا ہے (اگر کوئی ہے)۔ |
| .shipping_address | ShippingAddress | کارٹ کے مالک کا شپنگ ایڈریس ریٹرن کرتا ہے (اگر کوئی ہے)۔ |
| .discount_code | مختلف ہوتی ہے |
ریٹرن کرتا ہے:
اگر کارٹ پر ڈسکاؤنٹ لاگو کیا گیا ہے تو |
CartDiscount::FixedAmount
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .code | سٹرنگ | ڈسکاؤنٹ لاگو کرنے کے لیے استعمال ہونے والا ڈسکاؤنٹ کوڈ ریٹرن کرتا ہے۔ |
| .amount | Money | ڈسکاؤنٹ کی رقم ریٹرن کرتا ہے۔ |
| .reject({ message: String }) | nil | کارٹ پر لاگو ڈسکاؤنٹ کوڈ کو مسترد (reject) کرتا ہے۔ ایک message درکار ہے۔ |
| .rejected? | بولین | ریٹرن کرتا ہے کہ آیا ڈسکاؤنٹ کوڈ کو مسترد کیا گیا تھا۔ |
CartDiscount::Percentage
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .code | سٹرنگ | ڈسکاؤنٹ لاگو کرنے کے لیے استعمال ہونے والا ڈسکاؤنٹ کوڈ ریٹرن کرتا ہے۔ |
| .percentage | اعشاریہ (Decimal) | ڈسکاؤنٹ کی فیصد کی مقدار ریٹرن کرتا ہے۔ |
| .reject({ message: String }) | nil | کارٹ پر لاگو ڈسکاؤنٹ کوڈ کو مسترد (reject) کرتا ہے۔ ایک message درکار ہے۔ |
| .rejected? | بولین | ریٹرن کرتا ہے کہ آیا ڈسکاؤنٹ کوڈ کو مسترد کیا گیا تھا۔ |
CartDiscount::Shipping
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .code | سٹرنگ | ڈسکاؤنٹ لاگو کرنے کے لیے استعمال ہونے والا ڈسکاؤنٹ کوڈ ریٹرن کرتا ہے۔ |
| .reject({ message: String }) | nil | کارٹ پر لاگو ڈسکاؤنٹ کوڈ کو مسترد (reject) کرتا ہے۔ ایک message درکار ہے۔ |
| .rejected? | بولین | ریٹرن کرتا ہے کہ آیا ڈسکاؤنٹ کوڈ کو مسترد کیا گیا تھا۔ |
کسٹمر
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .id | انٹیجر | کسٹمر کا ID نمبر واپس کرتا ہے۔ |
| سٹرنگ | کسٹمر کا ای میل ایڈریس واپس کرتا ہے۔ | |
| .tags | List<Tag> | کسٹمر کے لیے سیٹ کردہ کسی بھی ٹیگز کی نمائندگی کرنے والی سٹرنگز کی فہرست واپس کرتا ہے۔ |
| .orders_count | انٹیجر | کسٹمر کے دیے گئے آرڈرز کی کل تعداد واپس کرتا ہے۔ |
| .total_spent | Money | کسٹمر کی جانب سے تمام آرڈرز پر خرچ کی گئی کل رقم واپس کرتا ہے۔ |
| .accepts_marketing? | بولین | واپس کرتا ہے کہ آیا کسٹمر مارکیٹنگ قبول کرتا ہے یا نہیں۔ |
LineItem
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .grams | grams | لائن آئٹم کا کل وزن واپس کرتا ہے۔ |
| .line_price | Money | لائن آئٹم کی قیمت۔ |
| .discounted? | بولین | واپس کرتا ہے کہ آیا لائن آئٹم کی قیمت پر کسی سکرپٹ یا مینوئل طور پر لاگو کردہ ڈسکاؤنٹ کے ذریعے رعایت دی گئی ہے یا نہیں۔ ڈسکاؤنٹ کوڈز کا استعمال واپسی کی قدر کو متاثر نہیں کرتا۔ |
| .properties | ہیش | اس لائن آئٹم کے لیے مخصوص کردہ پراپرٹیز واپس کرتا ہے۔ |
| .variant | Variant | لائن آئٹم کے ذریعے نمائندگی کرنے والا مخصوص پراڈکٹ ویریئنٹ واپس کرتا ہے۔ |
| .quantity | انٹیجر | اس لائن آئٹم کی مقدار واپس کرتا ہے۔ |
| .selling_plan_id | انٹیجر | لائن آئٹم کے لیے سیلنگ پلان کی ID واپس کرتا ہے۔ یہ طریقہ اس وقت مفید ہوتا ہے جب سٹور سبسکرپشنز فروخت کرتا ہے اور آپ چاہتے ہیں کہ سکرپٹ اس بات کا پتہ لگائے کہ کب کسی پراڈکٹ ویریئنٹ کو بطور سبسکرپشن فروخت کیا گیا ہے۔ |
List
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .new | List | فہرست کی نمائندگی کے لیے ایک نیا آبجیکٹ تخلیق کرتا ہے۔ |
| .[] | Element یا nil |
مخصوص انڈیکس پر موجود ایلیمنٹ واپس کرتا ہے۔ |
| .& | List |
ایک نئی فہرست واپس کرتا ہے جس میں دونوں فہرستوں کے مشترکہ ایلیمنٹس شامل ہوں، اور اس میں کوئی ڈپلیکیٹ نہ ہو۔ |
| .delete_if | List | اختیاری کوڈ بلاک کا استعمال کرتے ہوئے ایلیمنٹس حذف کریں۔ Ruby کے delete_if طریقے کے لیے دستاویزات دیکھیں۔ |
| .empty? | بولین |
اگر فہرست میں کوئی ایلیمنٹس شامل نہ ہوں تو |
| .first | Element یا nil |
پہلا ایلیمنٹ واپس کرتا ہے یا اگر فہرست خالی ہو تو |
| .index(*args, &block) | int یا nil |
فہرست کے پہلے ایلیمنٹ کا انڈیکس واپس کرتا ہے۔ اگر دلیل کے بجائے کوئی بلاک دیا گیا ہو، تو یہ اس پہلے ایلیمنٹ کا انڈیکس واپس کرتا ہے جس کے لیے بلاک درست (true) ہو۔ |
| .rindex(*args, &block) | int یا nil |
فہرست کے آخری ایلیمنٹ کا انڈیکس واپس کرتا ہے۔ اگر دلیل کے بجائے کوئی بلاک دیا گیا ہو، تو یہ اس پہلے ایلیمنٹ کا انڈیکس واپس کرتا ہے جس کے لیے بلاک درست (true) ہو۔ |
| .last | Element یا nil |
آخری ایلیمنٹ واپس کرتا ہے یا اگر فہرست خالی ہو تو |
| .length | int |
فہرست میں موجود ایلیمنٹس کی تعداد واپس کرتا ہے۔ |
| .size | int |
length کا متبادل (Alias)۔ |
| .each(*args, &block) | List |
فہرست کے ہر ایلیمنٹ کے لیے ایک بار بلاک کال کرتا ہے، اور ایلیمنٹ کو بلاک کے پیرامیٹر کے طور پر پاس کرتا ہے۔ |
ShippingAddress
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .name | سٹرنگ | شپنگ ایڈریس سے وابستہ شخص کا نام واپس کرتا ہے۔ |
| .address1 | سٹرنگ | شپنگ ایڈریس کے سٹریٹ ایڈریس کا حصہ واپس کرتا ہے۔ |
| .address2 | سٹرنگ | شپنگ ایڈریس کے سٹریٹ ایڈریس حصے کی اختیاری اضافی فیلڈ واپس کرتا ہے۔ |
| .phone | سٹرنگ | شپنگ ایڈریس کا فون نمبر واپس کرتا ہے۔ |
| .city | سٹرنگ | شپنگ ایڈریس کا شہر واپس کرتا ہے۔ |
| .zip | سٹرنگ | شپنگ ایڈریس کا ZIP کوڈ واپس کرتا ہے۔ |
| .province | سٹرنگ | شپنگ ایڈریس کا صوبہ/ریاست واپس کرتا ہے۔ |
| .province_code | سٹرنگ | شپنگ ایڈریس کے صوبے/ریاست کی مخفف قدر واپس کرتا ہے۔ |
| .country_code | سٹرنگ | شپنگ ایڈریس کے ملک کی مخفف قدر واپس کرتا ہے۔ |
Money
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Money | رقم کو (سینٹس میں) کسٹمر کی مقامی (پریزنٹمنٹ) کرنسی سے آپ کے سٹور کی کرنسی میں تبدیل کرتا ہے۔ یہ طریقہ customer_cents پیرامیٹر کو قبول کرتا ہے، جو سینٹس میں ایک نمبر قبول کرتا ہے۔ مثال کے طور پر، Money.derived_from_presentment(customer_cents: 500)۔ |
| .new | Money | قیمت کی نمائندگی کے لیے ایک نیا آبجیکٹ تخلیق کرتا ہے۔ |
| .zero | Money |
صفر کی قیمت کے ساتھ ایک نیا آبجیکٹ بناتا ہے۔ |
| + | Money | دو Money آبجیکٹ کو جمع کرتا ہے۔ |
| - | Money | ایک Money آبجیکٹ کو دوسرے سے تفریق کرتا ہے۔ |
| * | Money | ایک Money آبجیکٹ کو کسی نمبر سے ضرب دیتا ہے۔ |
Money کی مثالیں
Money.new(cents: 1000)ایک Money آبجیکٹ بناتا ہے جو 1000 سینٹس، یا $10 کی نمائندگی کرتا ہے۔
Money.new(cents: 100) * 50ایک Money آبجیکٹ بناتا ہے جو $1 کی نمائندگی کرتا ہے، پھر اس رقم کو 50 سے ضرب دیتا ہے۔ $50 کی نمائندگی کرنے والا Money آبجیکٹ واپس کرتا ہے۔
ویرینٹ
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .id | انٹیجر | ویرینٹ کا ID نمبر واپس کرتا ہے۔ |
| .price | Money | ویرینٹ کی یونٹ پرائس واپس کرتا ہے۔ |
| .product | پروڈکٹ | ویرینٹ کی متعلقہ پروڈکٹ واپس کرتا ہے۔ |
| .skus | لسٹ<String> | ویرینٹ کے سٹاک کیپنگ یونٹ (SKUs) واپس کرتا ہے، جو اکثر انوینٹری ٹریک کرنے کے لیے استعمال ہوتے ہیں۔ |
| .title | سٹرنگ | ویرینٹ کا ٹائٹل واپس کرتا ہے۔ |
پروڈکٹ
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .id | انٹیجر | پروڈکٹ کا ID نمبر واپس کرتا ہے۔ |
| .gift_card? | بولین | واپس کرتا ہے کہ آیا پروڈکٹ گفٹ کارڈ ہے یا نہیں۔ |
| .tags | List<Tag> | اس پروڈکٹ کے لیے سیٹ کردہ ٹیگ کی نمائندگی کرنے والے سٹرنگ کی ایک لسٹ واپس کرتا ہے۔ |
| .product_type | سٹرنگ | ایک زمرہ بندی جس کے ساتھ کسی پروڈکٹ کو ٹیگ کیا جا سکتا ہے، جسے عام طور پر فلٹر کرنے اور تلاش کرنے کے لیے استعمال کیا جاتا ہے۔ |
| .vendor | سٹرنگ | اس پروڈکٹ کا وینڈر واپس کرتا ہے۔ |
کرنل
کرنل ایک Ruby ماڈیول ہے جو ہر کلاس میں شامل ہوتا ہے۔ نتیجے کے طور پر، اس کے میتھڈ ہر آبجیکٹ کے لیے دستیاب ہوتے ہیں۔ یہ میتھڈ اسی طرح کام کرتے ہیں جیسے دوسری زبانوں میں گلوبل فنکشن کام کرتے ہیں۔
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .exit | کوئی نہیں | بغیر کسی خرابی کے موجودہ سکرپٹ کی کارروائی ختم کرتا ہے۔ اگر Output.cart کو کچھ بھی تفویض کیے جانے سے پہلے اسے چلایا جاتا ہے، تو سکرپٹ کا کوئی اثر نہیں ہوتا ہے۔ یہ سکرپٹ سے باہر نکلنے کا ایک مفید طریقہ ہے، مثال کے طور پر، اگر گاہک سکرپٹ چلانے کے لیے نااہل ہے۔ |
کرنل کی مثال
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endلائن آئٹم میتھڈ
درج ذیل میتھڈ صرف لائن آئٹم سکرپٹ میں استعمال کے قابل ہیں:
کارٹ
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .subtotal_price_was | Money | کوئی بھی ڈسکاؤنٹ لاگو ہونے سے پہلے کارٹ کی سب ٹوٹل پرائس واپس کرتا ہے۔ |
| .subtotal_price_changed? | بولین | واپس کرتا ہے کہ آیا سب ٹوٹل پرائس تبدیل ہوئی ہے یا نہیں۔ |
LineItem
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Money | لائن آئٹم کی قیمت کو مخصوص کردہ رقم میں تبدیل کریں۔ ایک message درکار ہے۔ new_price کا موجودہ قیمت سے کم ہونا لازمی ہے۔ |
| .original_line_price | Money | سکرپٹ اور ڈسکاؤنٹ لاگو ہونے سے پہلے لائن آئٹم کی اصل قیمت واپس کرتا ہے۔ |
| .line_price_was | Money | موجودہ سکرپٹ کے ذریعے تبدیلیاں لاگو ہونے سے پہلے لائن آئٹم کی قیمت واپس کرتا ہے۔ |
| .line_price_changed? | بولین | واپس کرتا ہے کہ آیا لائن آئٹم کی قیمت تبدیل ہوئی ہے یا نہیں۔ |
| .change_properties(hash new_properties, { message: String }) | ہیش | لائن آئٹم کے لیے نئی پراپرٹی سیٹ کرتا ہے۔ اصل پراپرٹی ہیش properties_was میں محفوظ کی جاتی ہے اور جو پراپرٹی ہیش میتھڈ کو پاس کی جاتی ہے وہ لائن آئٹم کے لیے نئی پراپرٹی بن جاتی ہے۔ |
| .properties_was | ہیش | کوئی بھی تبدیلی لاگو ہونے سے پہلے لائن آئٹم کی اصل پراپرٹی ہیش واپس کرتا ہے۔ |
| .properties_changed? | بولین | واپس کرتا ہے کہ آیا لائن آئٹم کی پراپرٹی تبدیل ہوئی ہے یا نہیں۔ |
| .split({ take: Integer }) | لائن آئٹم | ایک لائن آئٹم کو دو لائن آئٹم میں تقسیم کرتا ہے۔ take بتاتا ہے کہ نیا لائن آئٹم بنانے کے لیے اصل لائن آئٹم سے کتنی مقدار ہٹانی ہے۔ |
.split کی مثال
یہ مثالی سکرپٹ original_line_item نامی لائن آئٹم کو دو لائن آئٹم میں تقسیم کرتا ہے۔ نئے لائن آئٹم کی مقدار 1 ہے (take: 1 کے ذریعے بتائی گئی ہے)۔ پھر سکرپٹ "Third hat for 5 dollars" کے پیغام کے ساتھ نئے لائن آئٹم پر ایک رعایتی قیمت لاگو کرتا ہے۔
if original_line_item.quantity >= 3
new_line_item = original_line_item.split(take: 1)
new_line_item.change_line_price(Money.new(cents: 500), message: "Third hat for 5 dollars")
cart.line_items << new_line_item
endویرینٹ
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .compare_at_price | Money | ویرینٹ کی compare-at قیمت واپس کرتا ہے۔ اگر ویرینٹ کی کوئی compare-at قیمت نہیں ہے تو nil واپس کرتا ہے۔ |
شپنگ کے طریقے
درج ذیل میتھڈ شپنگ سکرپٹ میں استعمال کیے جا سکتے ہیں:
ان پٹ
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .shipping_rates | ShippingRateList | شپنگ کے تمام ریٹ کی ایک لسٹ واپس کرتا ہے۔ |
ShippingRateList
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .delete_if | ShippingRateList | اختیاری کوڈ بلاک استعمال کر کے شِپنگ ریٹ ڈیلیٹ کریں۔ Ruby کے delete_if طریقہ کار کے لیے دستاویزات دیکھیں۔ |
| .sort! | ShippingRateList | موازنہ آپریٹر یا اختیاری کوڈ بلاک استعمال کر کے شِپنگ ریٹ ترتیب دیں۔ Ruby کے sort! طریقہ کار کے لیے دستاویزات دیکھیں۔ |
| .sort_by! | ShippingRateList | اختیاری کوڈ بلاک استعمال کر کے شِپنگ ریٹ ترتیب دیں۔ Ruby کے sort_by! طریقہ کار کے لیے دستاویزات دیکھیں۔ |
ShippingRate
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .code | سٹرنگ | شِپنگ ریٹ کا کوڈ واپس کرتا ہے۔ |
| .markup | Money | اگر قابل اطلاق ہو، تو شِپنگ ریٹ کے لیے مارک اپ واپس کرتا ہے۔ |
| .name | سٹرنگ | شِپنگ ریٹ کا نام واپس کرتا ہے۔ اسے change_name طریقہ کار استعمال کر کے تبدیل کیا جا سکتا ہے۔ |
| .price | Money | شِپنگ ریٹ کی قیمت واپس کرتا ہے۔ |
| .source | سٹرنگ | اگر متعلقہ ہو تو، شِپنگ ریٹ سے وابستہ سورس (کیریئر) واپس کرتا ہے۔ اسے تبدیل نہیں کیا جا سکتا۔ |
| .change_name(String new_name) | سٹرنگ | شِپنگ ریٹ کا نام (زیادہ سے زیادہ 255 حروف) تبدیل کرتا ہے۔ سورس کو تبدیل کرنا، ڈیلیٹ کرنا یا چھپانا ممکن نہیں ہے۔ |
| .apply_discount(Money discount, { message: String }) | Money | مخصوص کردہ طے شدہ رقم کا ڈسکاؤنٹ لاگو کرتا ہے۔ قیمت کو 0 سے کم نہیں کیا جا سکتا۔ ایک پیغام درکار ہے۔ |
| .phone_required? | بولین | اگر شِپنگ ریٹ حاصل کرنے کے لیے فون نمبر درکار ہو تو true واپس کرتا ہے، یا اگر فون نمبر درکار نہ ہو تو false واپس کرتا ہے۔ |
ادائیگی کے طریقے
درج ذیل طریقہ کار پیمنٹ سکرپٹ میں استعمال کے قابل ہیں:
ان پٹ
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | سٹور میں تمام پیمنٹ گیٹ وے کی فہرست واپس کرتا ہے۔ |
PaymentGatewayList
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .delete_if | PaymentGatewayList | اختیاری کوڈ بلاک استعمال کر کے پیمنٹ گیٹ وے ڈیلیٹ کریں۔ Ruby کے delete_if طریقہ کار کے لیے دستاویزات دیکھیں۔ |
| .sort! | PaymentGatewayList | موازنہ آپریٹر یا اختیاری کوڈ بلاک استعمال کر کے پیمنٹ گیٹ وے ترتیب دیں۔ Ruby کے sort! طریقہ کار کے لیے دستاویزات دیکھیں۔ |
| .sort_by! | PaymentGatewayList | اختیاری کوڈ بلاک استعمال کر کے پیمنٹ گیٹ وے ترتیب دیں۔ Ruby کے sort_by! طریقہ کار کے لیے دستاویزات دیکھیں۔ |
PaymentGateway
| طریقہ | ریٹرن کی قسم | تفصیل |
|---|---|---|
| .name | سٹرنگ | پیمنٹ گیٹ وے کا نام واپس کرتا ہے۔ |
| .enabled_card_brands | لسٹ<String> |
اگر پیمنٹ گیٹ وے کریڈٹ کارڈز کو سپورٹ کرتا ہے، تو سٹور کے ذریعے قبول کی جانے والی کریڈٹ کارڈ کی اقسام کی فہرست واپس کرتا ہے۔ اگر گیٹ وے کریڈٹ کارڈز کو سپورٹ نہیں کرتا، تو خالی فہرست واپس کرتا ہے۔ |
| .change_name(String new_name) | سٹرنگ | پیمنٹ گیٹ وے کا نام تبدیل کرتا ہے۔ لوگو والے پیمنٹ گیٹ وے کا نام تبدیل نہیں کیا جا سکتا۔ |
مثالیں
درج ذیل لائن آئٹم سکرپٹ کی مثال میں، جب کوئی کسٹمر ایسی پروڈکٹ آرڈر کرتا ہے جو گفٹ کارڈ نہیں ہے، تو پروڈکٹ کی قیمت $9 کم ہو جاتی ہے۔ نیز، کسٹمر کی جانب سے آپ کے سٹور کے تمام وزٹ کے دوران خرچ کی گئی کل رقم دکھائی جاتی ہے:
customer = Input.cart.customer
Input.cart.line_items.each do |line_item|
product = line_item.variant.product
next if product.gift_card?
line_item.change_line_price(line_item.line_price - Money.new(cents: 900), message: customer.total_spent)
end
Output.cart = Input.cart
مزید جانیں
اس بارے میں مزید جانیں: