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_addressShippingAddressکارٹ کے مالک کا شپنگ ایڈریس ریٹرن کرتا ہے (اگر کوئی ہے)۔
.discount_codeمختلف ہوتی ہے ریٹرن کرتا ہے:
  • اگر کارٹ میں کوئی ڈسکاؤنٹ کوڈ نہیں ہے تو nil
  • اگر کارٹ پر ایک مقررہ ڈسکاؤنٹ کی رقم لاگو ہے تو CartDiscount::FixedAmount
  • اگر کارٹ پر فیصد کے لحاظ سے ڈسکاؤنٹ لاگو ہے تو CartDiscount::Percentage
  • اگر کارٹ پر شپنگ کا ڈسکاؤنٹ لاگو ہے تو CartDiscount::Shipping
  • ایک واحد ڈسکاؤنٹ کوڈ ریٹرن کرتا ہے (حدود دیکھیں)

اگر کارٹ پر ڈسکاؤنٹ لاگو کیا گیا ہے تو discount_code موجود ہوتا ہے۔ اس کا لازمی طور پر یہ مطلب نہیں ہے کہ کارٹ کی قیمت تبدیل ہو جاتی ہے۔ مثال کے طور پر، اگر 50$ سے اوپر والے کارٹس پر ڈسکاؤنٹ لاگو ہوتا ہے، اور ایک سکرپٹ کارٹ کی قیمت کو 50$ سے کم کر دیتی ہے، تو discount_code اب بھی موجود ہوتا ہے لیکن کارٹ کی قیمت تبدیل نہیں ہوتی۔

<p><a href="/manual/checkout-settings/script-editor/examples/vat-script">See an example of <code>discount_code</code></a>.</p>
  </td>
</tr>
<tr>
  <td scope="row">.line_items</td>
  <td><a href="#list">List</a>&lt;LineItem&gt;</td>
  <td>Returns a list containing the line items in the cart.</td>
</tr>
<tr>
  <td scope="row">.presentment_currency</td>
  <td><a href="#list">List</a>&lt;String&gt;</td>
  <td>Returns the customer's local (presentment) currency (in <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO 4217</a> format). For example, USD. </td>
</tr>
<tr>
  <td scope="row">.subtotal_price</td>
  <td><a href="#money">Money</a></td>
  <td>Returns the subtotal price of the cart after line item discounts are applied but before discount codes are applied.</td>
</tr>
<tr>
  <td scope="row">.total_weight</td>
  <td><a href="https://shopify.dev/api/liquid/objects/line_item#line_item-grams">grams</a></td>
  <td>Returns the total weight of all the line items in the cart.</td>
</tr>

CartDiscount::FixedAmount

CartDiscount::FixedAmount آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.codeسٹرنگڈسکاؤنٹ لاگو کرنے کے لیے استعمال ہونے والا ڈسکاؤنٹ کوڈ ریٹرن کرتا ہے۔
.amountMoneyڈسکاؤنٹ کی رقم ریٹرن کرتا ہے۔
.reject({ message: String })nilکارٹ پر لاگو ڈسکاؤنٹ کوڈ کو مسترد (reject) کرتا ہے۔ ایک message درکار ہے۔
.rejected?بولینریٹرن کرتا ہے کہ آیا ڈسکاؤنٹ کوڈ کو مسترد کیا گیا تھا۔

CartDiscount::Percentage

CartDiscount::Percentage آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.codeسٹرنگڈسکاؤنٹ لاگو کرنے کے لیے استعمال ہونے والا ڈسکاؤنٹ کوڈ ریٹرن کرتا ہے۔
.percentageاعشاریہ (Decimal)ڈسکاؤنٹ کی فیصد کی مقدار ریٹرن کرتا ہے۔
.reject({ message: String })nilکارٹ پر لاگو ڈسکاؤنٹ کوڈ کو مسترد (reject) کرتا ہے۔ ایک message درکار ہے۔
.rejected?بولینریٹرن کرتا ہے کہ آیا ڈسکاؤنٹ کوڈ کو مسترد کیا گیا تھا۔

CartDiscount::Shipping

CartDiscount::Shipping آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.codeسٹرنگڈسکاؤنٹ لاگو کرنے کے لیے استعمال ہونے والا ڈسکاؤنٹ کوڈ ریٹرن کرتا ہے۔
.reject({ message: String })nilکارٹ پر لاگو ڈسکاؤنٹ کوڈ کو مسترد (reject) کرتا ہے۔ ایک message درکار ہے۔
.rejected?بولینریٹرن کرتا ہے کہ آیا ڈسکاؤنٹ کوڈ کو مسترد کیا گیا تھا۔

کسٹمر

کسٹمر آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.idانٹیجرکسٹمر کا ID نمبر واپس کرتا ہے۔
.emailسٹرنگکسٹمر کا ای میل ایڈریس واپس کرتا ہے۔
.tagsList<Tag>کسٹمر کے لیے سیٹ کردہ کسی بھی ٹیگز کی نمائندگی کرنے والی سٹرنگز کی فہرست واپس کرتا ہے۔
.orders_countانٹیجرکسٹمر کے دیے گئے آرڈرز کی کل تعداد واپس کرتا ہے۔
.total_spentMoneyکسٹمر کی جانب سے تمام آرڈرز پر خرچ کی گئی کل رقم واپس کرتا ہے۔
.accepts_marketing?بولینواپس کرتا ہے کہ آیا کسٹمر مارکیٹنگ قبول کرتا ہے یا نہیں۔

LineItem

LineItem آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.gramsgramsلائن آئٹم کا کل وزن واپس کرتا ہے۔
.line_priceMoneyلائن آئٹم کی قیمت۔
.discounted?بولینواپس کرتا ہے کہ آیا لائن آئٹم کی قیمت پر کسی سکرپٹ یا مینوئل طور پر لاگو کردہ ڈسکاؤنٹ کے ذریعے رعایت دی گئی ہے یا نہیں۔ ڈسکاؤنٹ کوڈز کا استعمال واپسی کی قدر کو متاثر نہیں کرتا۔
.propertiesہیشاس لائن آئٹم کے لیے مخصوص کردہ پراپرٹیز واپس کرتا ہے۔
.variantVariantلائن آئٹم کے ذریعے نمائندگی کرنے والا مخصوص پراڈکٹ ویریئنٹ واپس کرتا ہے۔
.quantityانٹیجراس لائن آئٹم کی مقدار واپس کرتا ہے۔
.selling_plan_idانٹیجرلائن آئٹم کے لیے سیلنگ پلان کی ID واپس کرتا ہے۔ یہ طریقہ اس وقت مفید ہوتا ہے جب سٹور سبسکرپشنز فروخت کرتا ہے اور آپ چاہتے ہیں کہ سکرپٹ اس بات کا پتہ لگائے کہ کب کسی پراڈکٹ ویریئنٹ کو بطور سبسکرپشن فروخت کیا گیا ہے۔

List

List آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.newListفہرست کی نمائندگی کے لیے ایک نیا آبجیکٹ تخلیق کرتا ہے۔
.[]Element یا nil

مخصوص انڈیکس پر موجود ایلیمنٹ واپس کرتا ہے۔

.&List

ایک نئی فہرست واپس کرتا ہے جس میں دونوں فہرستوں کے مشترکہ ایلیمنٹس شامل ہوں، اور اس میں کوئی ڈپلیکیٹ نہ ہو۔

.delete_ifListاختیاری کوڈ بلاک کا استعمال کرتے ہوئے ایلیمنٹس حذف کریں۔ Ruby کے delete_if طریقے کے لیے دستاویزات دیکھیں۔
.empty?بولین

اگر فہرست میں کوئی ایلیمنٹس شامل نہ ہوں تو true واپس کرتا ہے۔

.firstElement یا nil

پہلا ایلیمنٹ واپس کرتا ہے یا اگر فہرست خالی ہو تو nil واپس کرتا ہے۔

.index(*args, &block)int یا nil

فہرست کے پہلے ایلیمنٹ کا انڈیکس واپس کرتا ہے۔ اگر دلیل کے بجائے کوئی بلاک دیا گیا ہو، تو یہ اس پہلے ایلیمنٹ کا انڈیکس واپس کرتا ہے جس کے لیے بلاک درست (true) ہو۔

.rindex(*args, &block)int یا nil

فہرست کے آخری ایلیمنٹ کا انڈیکس واپس کرتا ہے۔ اگر دلیل کے بجائے کوئی بلاک دیا گیا ہو، تو یہ اس پہلے ایلیمنٹ کا انڈیکس واپس کرتا ہے جس کے لیے بلاک درست (true) ہو۔

.lastElement یا nil

آخری ایلیمنٹ واپس کرتا ہے یا اگر فہرست خالی ہو تو nil واپس کرتا ہے۔

.lengthint

فہرست میں موجود ایلیمنٹس کی تعداد واپس کرتا ہے۔

.sizeint

length کا متبادل (Alias)۔

.each(*args, &block)List

فہرست کے ہر ایلیمنٹ کے لیے ایک بار بلاک کال کرتا ہے، اور ایلیمنٹ کو بلاک کے پیرامیٹر کے طور پر پاس کرتا ہے۔

ShippingAddress

ShippingAddress آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.nameسٹرنگشپنگ ایڈریس سے وابستہ شخص کا نام واپس کرتا ہے۔
.address1سٹرنگشپنگ ایڈریس کے سٹریٹ ایڈریس کا حصہ واپس کرتا ہے۔
.address2سٹرنگشپنگ ایڈریس کے سٹریٹ ایڈریس حصے کی اختیاری اضافی فیلڈ واپس کرتا ہے۔
.phoneسٹرنگشپنگ ایڈریس کا فون نمبر واپس کرتا ہے۔
.cityسٹرنگشپنگ ایڈریس کا شہر واپس کرتا ہے۔
.zipسٹرنگشپنگ ایڈریس کا ZIP کوڈ واپس کرتا ہے۔
.provinceسٹرنگشپنگ ایڈریس کا صوبہ/ریاست واپس کرتا ہے۔
.province_codeسٹرنگشپنگ ایڈریس کے صوبے/ریاست کی مخفف قدر واپس کرتا ہے۔
.country_codeسٹرنگشپنگ ایڈریس کے ملک کی مخفف قدر واپس کرتا ہے۔

Money

Money آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقے
طریقہریٹرن کی قسمتفصیل
.derived_from_presentment(customer_cents:X)Moneyرقم کو (سینٹس میں) کسٹمر کی مقامی (پریزنٹمنٹ) کرنسی سے آپ کے سٹور کی کرنسی میں تبدیل کرتا ہے۔ یہ طریقہ customer_cents پیرامیٹر کو قبول کرتا ہے، جو سینٹس میں ایک نمبر قبول کرتا ہے۔ مثال کے طور پر، Money.derived_from_presentment(customer_cents: 500)۔
.newMoneyقیمت کی نمائندگی کے لیے ایک نیا آبجیکٹ تخلیق کرتا ہے۔
.zeroMoney

صفر کی قیمت کے ساتھ ایک نیا آبجیکٹ بناتا ہے۔

+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 نمبر واپس کرتا ہے۔
.priceMoneyویرینٹ کی یونٹ پرائس واپس کرتا ہے۔
.productپروڈکٹویرینٹ کی متعلقہ پروڈکٹ واپس کرتا ہے۔
.skusلسٹ<String>ویرینٹ کے سٹاک کیپنگ یونٹ (SKUs) واپس کرتا ہے، جو اکثر انوینٹری ٹریک کرنے کے لیے استعمال ہوتے ہیں۔
.titleسٹرنگویرینٹ کا ٹائٹل واپس کرتا ہے۔

پروڈکٹ

پروڈکٹ آبجیکٹ استعمال کرنے والے سکرپٹ میتھڈ
طریقہریٹرن کی قسمتفصیل
.idانٹیجرپروڈکٹ کا ID نمبر واپس کرتا ہے۔
.gift_card?بولینواپس کرتا ہے کہ آیا پروڈکٹ گفٹ کارڈ ہے یا نہیں۔
.tagsList<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_wasMoneyکوئی بھی ڈسکاؤنٹ لاگو ہونے سے پہلے کارٹ کی سب ٹوٹل پرائس واپس کرتا ہے۔
.subtotal_price_changed?بولینواپس کرتا ہے کہ آیا سب ٹوٹل پرائس تبدیل ہوئی ہے یا نہیں۔

LineItem

لائن آئٹم سکرپٹ میں لائن آئٹم آبجیکٹ استعمال کرنے والے سکرپٹ میتھڈ
طریقہریٹرن کی قسمتفصیل
.change_line_price(Money new_price, { message: String }) Moneyلائن آئٹم کی قیمت کو مخصوص کردہ رقم میں تبدیل کریں۔ ایک message درکار ہے۔ new_price کا موجودہ قیمت سے کم ہونا لازمی ہے۔
.original_line_priceMoneyسکرپٹ اور ڈسکاؤنٹ لاگو ہونے سے پہلے لائن آئٹم کی اصل قیمت واپس کرتا ہے۔
.line_price_wasMoneyموجودہ سکرپٹ کے ذریعے تبدیلیاں لاگو ہونے سے پہلے لائن آئٹم کی قیمت واپس کرتا ہے۔
.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_priceMoneyویرینٹ کی compare-at قیمت واپس کرتا ہے۔ اگر ویرینٹ کی کوئی compare-at قیمت نہیں ہے تو nil واپس کرتا ہے۔

شپنگ کے طریقے

درج ذیل میتھڈ شپنگ سکرپٹ میں استعمال کیے جا سکتے ہیں:

ان پٹ

شپنگ سکرپٹ میں ان پٹ آبجیکٹ استعمال کرنے والے سکرپٹ میتھڈ
طریقہریٹرن کی قسمتفصیل
.shipping_ratesShippingRateListشپنگ کے تمام ریٹ کی ایک لسٹ واپس کرتا ہے۔

ShippingRateList

شپنگ سکرپٹ میں ShippingRateList آبجیکٹ استعمال کرنے والے سکرپٹ میتھڈ
طریقہریٹرن کی قسمتفصیل
.delete_ifShippingRateListاختیاری کوڈ بلاک استعمال کر کے شِپنگ ریٹ ڈیلیٹ کریں۔ Ruby کے delete_if طریقہ کار کے لیے دستاویزات دیکھیں۔
.sort!ShippingRateListموازنہ آپریٹر یا اختیاری کوڈ بلاک استعمال کر کے شِپنگ ریٹ ترتیب دیں۔ Ruby کے sort! طریقہ کار کے لیے دستاویزات دیکھیں۔
.sort_by!ShippingRateListاختیاری کوڈ بلاک استعمال کر کے شِپنگ ریٹ ترتیب دیں۔ Ruby کے sort_by! طریقہ کار کے لیے دستاویزات دیکھیں۔

ShippingRate

شِپنگ سکرپٹ میں ShippingRate آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقہ کار
طریقہریٹرن کی قسمتفصیل
.codeسٹرنگشِپنگ ریٹ کا کوڈ واپس کرتا ہے۔
.markupMoneyاگر قابل اطلاق ہو، تو شِپنگ ریٹ کے لیے مارک اپ واپس کرتا ہے۔
.nameسٹرنگشِپنگ ریٹ کا نام واپس کرتا ہے۔ اسے change_name طریقہ کار استعمال کر کے تبدیل کیا جا سکتا ہے۔
.priceMoneyشِپنگ ریٹ کی قیمت واپس کرتا ہے۔
.sourceسٹرنگاگر متعلقہ ہو تو، شِپنگ ریٹ سے وابستہ سورس (کیریئر) واپس کرتا ہے۔ اسے تبدیل نہیں کیا جا سکتا۔
.change_name(String new_name)سٹرنگ شِپنگ ریٹ کا نام (زیادہ سے زیادہ 255 حروف) تبدیل کرتا ہے۔ سورس کو تبدیل کرنا، ڈیلیٹ کرنا یا چھپانا ممکن نہیں ہے۔
.apply_discount(Money discount, { message: String })Moneyمخصوص کردہ طے شدہ رقم کا ڈسکاؤنٹ لاگو کرتا ہے۔ قیمت کو 0 سے کم نہیں کیا جا سکتا۔ ایک پیغام درکار ہے۔
.phone_required?بولیناگر شِپنگ ریٹ حاصل کرنے کے لیے فون نمبر درکار ہو تو true واپس کرتا ہے، یا اگر فون نمبر درکار نہ ہو تو false واپس کرتا ہے۔

ادائیگی کے طریقے

درج ذیل طریقہ کار پیمنٹ سکرپٹ میں استعمال کے قابل ہیں:

ان پٹ

پیمنٹ سکرپٹ میں Input آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقہ کار
طریقہریٹرن کی قسمتفصیل
.payment_gatewaysPaymentGatewaysListسٹور میں تمام پیمنٹ گیٹ وے کی فہرست واپس کرتا ہے۔

PaymentGatewayList

پیمنٹ سکرپٹ میں PaymentGatewayList آبجیکٹ استعمال کرنے والے سکرپٹ کے طریقہ کار
طریقہریٹرن کی قسمتفصیل
.delete_ifPaymentGatewayListاختیاری کوڈ بلاک استعمال کر کے پیمنٹ گیٹ وے ڈیلیٹ کریں۔ 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

مزید جانیں

اس بارے میں مزید جانیں: