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।

কার্ট

কার্ট অবজেক্টটি কেবল অনলাইন স্টোরে উপলভ্য থাকে। কিছু পরিত্যক্ত চেকআউটে কার্ট অবজেক্টের অ্যাক্সেস থাকে। তবে, যদি কোনো চেকআউট বন্ধ করা হয় এবং এরপর কোনো গ্রাহক সেই পরিত্যক্ত চেকআউটে ভিজিট করেন, তবে এটি তাদেরকে আগে থেকে পূরণ করা চেকআউটে পাঠায় এবং কার্ট অবজেক্টটি আর থাকে না। এর কারণ হলো, পরিত্যক্ত চেকআউট ইমেইলের মাধ্যমে স্টোরফ্রন্ট বাইপাস করা হয়েছে।

Cart অবজেক্ট ব্যবহার করা স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.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স্ট্রিংডিসকাউন্ট প্রয়োগ করতে ব্যবহৃত ডিসকাউন্ট কোডটি রিটার্ন করে।
.amountঅর্থডিসকাউন্টের অর্থের পরিমাণ রিটার্ন করে।
.reject({ message: String })nilকার্টে প্রয়োগ করা ডিসকাউন্ট কোড প্রত্যাখ্যান করে। একটি message প্রয়োজন।
.rejected?Booleanডিসকাউন্ট কোড প্রত্যাখ্যান করা হয়েছে কিনা তা রিটার্ন করে।

CartDiscount::Percentage

CartDiscount::Percentage অবজেক্ট ব্যবহার করা Script পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.codeস্ট্রিংডিসকাউন্ট প্রয়োগ করতে ব্যবহৃত ডিসকাউন্ট কোডটি রিটার্ন করে।
.percentageDecimalডিসকাউন্টের শতকরা পরিমাণ রিটার্ন করে।
.reject({ message: String })nilকার্টে প্রয়োগ করা ডিসকাউন্ট কোড প্রত্যাখ্যান করে। একটি message প্রয়োজন।
.rejected?Booleanডিসকাউন্ট কোড প্রত্যাখ্যান করা হয়েছে কিনা তা রিটার্ন করে।

CartDiscount::Shipping

CartDiscount::Shipping অবজেক্ট ব্যবহার করা Script পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.codeস্ট্রিংডিসকাউন্ট প্রয়োগ করতে ব্যবহৃত ডিসকাউন্ট কোডটি রিটার্ন করে।
.reject({ message: String })nilকার্টে প্রয়োগ করা ডিসকাউন্ট কোড প্রত্যাখ্যান করে। একটি message প্রয়োজন।
.rejected?Booleanডিসকাউন্ট কোড প্রত্যাখ্যান করা হয়েছে কিনা তা রিটার্ন করে।

Customer

Customer অবজেক্ট ব্যবহার করা Script পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.idIntegerগ্রাহকের ID নম্বর রিটার্ন করে।
.emailস্ট্রিংগ্রাহকের ইমেইল ঠিকানা রিটার্ন করে।
.tagsList<Tag>গ্রাহকের জন্য সেট করা যেকোনো ট্যাগ উপস্থাপনকারী স্ট্রিংয়ের একটি তালিকা রিটার্ন করে।
.orders_countIntegerগ্রাহকের করা অর্ডারের মোট সংখ্যা রিটার্ন করে।
.total_spentঅর্থসব অর্ডারে গ্রাহকের ব্যয় করা মোট পরিমাণ রিটার্ন করে।
.accepts_marketing?Booleanগ্রাহক মার্কেটিং গ্রহণ করেন কিনা তা রিটার্ন করে।

LineItem

LineItem অবজেক্ট ব্যবহার করা Script পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.gramsগ্রামলাইন আইটেমের মোট ওজন রিটার্ন করে।
.line_priceঅর্থলাইন আইটেমের দাম।
.discounted?Booleanস্ক্রিপ্ট বা ম্যানুয়ালি প্রয়োগ করা ডিসকাউন্টের কারণে কোনো লাইন আইটেমের দাম কমানো হয়েছে কিনা তা রিটার্ন করে। ডিসকাউন্ট কোডের ব্যবহার রিটার্ন ভ্যালুকে প্রভাবিত করে না।
.propertieshashএই লাইন আইটেমগুলোর জন্য নির্দিষ্ট করা প্রপার্টি রিটার্ন করে।
.variantVariantলাইন আইটেমের প্রতিনিধিত্ব করা নির্দিষ্ট পণ্যের ভ্যারিয়েন্ট রিটার্ন করে।
.quantityIntegerএই লাইন আইটেমের পরিমাণ রিটার্ন করে।
.selling_plan_idIntegerলাইন আইটেমের সেলিং প্ল্যানের ID রিটার্ন করে। স্টোর যখন সাবস্ক্রিপশন বিক্রি করে এবং কোনো পণ্যের ভ্যারিয়েন্ট সাবস্ক্রিপশন হিসেবে বিক্রি হওয়ার বিষয়টি আপনি স্ক্রিপ্টের মাধ্যমে শনাক্ত করতে চান, তখন এই পদ্ধতিটি কার্যকর হয়।

List

List অবজেক্ট ব্যবহার করা Script পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.newListতালিকা উপস্থাপন করতে একটি নতুন অবজেক্ট তৈরি করে।
.[]Element অথবা nil

নির্দিষ্ট ইনডেক্সের এলিমেন্ট রিটার্ন করে।

.&List

দুটি তালিকার সাধারণ এলিমেন্ট থাকা একটি নতুন তালিকা রিটার্ন করে, যেখানে কোনো ডুপ্লিকেট থাকে না।

.delete_ifListঐচ্ছিক কোড ব্লক ব্যবহার করে এলিমেন্ট মুছুন। Ruby-এর delete_if পদ্ধতির ডকুমেন্টেশন দেখুন।
.empty?Boolean

তালিকায় কোনো এলিমেন্ট না থাকলে true রিটার্ন করে।

.firstElement অথবা nil

প্রথম এলিমেন্ট রিটার্ন করে অথবা তালিকা ফাঁকা থাকলে nil রিটার্ন করে।

.index(*args, &block)int অথবা nil

তালিকার প্রথম এলিমেন্টের ইনডেক্স রিটার্ন করে। আর্গুমেন্টের পরিবর্তে ব্লক দেওয়া হলে, ব্লকটি যে প্রথম এলিমেন্টের জন্য সত্য বা true হয়, তার ইনডেক্স রিটার্ন করে।

.rindex(*args, &block)int অথবা nil

তালিকার শেষ এলিমেন্টের ইনডেক্স রিটার্ন করে। আর্গুমেন্টের পরিবর্তে ব্লক দেওয়া হলে, ব্লকটি যে প্রথম এলিমেন্টের জন্য সত্য বা true হয়, তার ইনডেক্স রিটার্ন করে।

.lastElement অথবা nil

শেষ এলিমেন্ট রিটার্ন করে অথবা তালিকা ফাঁকা থাকলে nil রিটার্ন করে।

.lengthint

তালিকায় থাকা এলিমেন্টের সংখ্যা রিটার্ন করে।

.sizeint

length-এর অ্যালিয়াস।

.each(*args, &block)List

তালিকার প্রতিটি এলিমেন্টের জন্য একবার ব্লক কল করে এবং ব্লকে এলিমেন্টটিকে প্যারামিটার হিসেবে পাস করে।

ShippingAddress

ShippingAddress অবজেক্ট ব্যবহার করা Script পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.nameস্ট্রিংশিপিংয়ের ঠিকানার সাথে যুক্ত ব্যক্তির নাম রিটার্ন করে।
.address1স্ট্রিংশিপিংয়ের ঠিকানার রাস্তার ঠিকানার অংশটি রিটার্ন করে।
.address2স্ট্রিংশিপিংয়ের ঠিকানায় রাস্তার ঠিকানার অংশের ঐচ্ছিক অতিরিক্ত ফিল্ডটি রিটার্ন করে।
.phoneস্ট্রিংশিপিংয়ের ঠিকানার ফোন নম্বর রিটার্ন করে।
.cityস্ট্রিংশিপিংয়ের ঠিকানার শহর রিটার্ন করে।
.zipস্ট্রিংশিপিংয়ের ঠিকানার ZIP কোড রিটার্ন করে।
.provinceস্ট্রিংশিপিংয়ের ঠিকানার প্রদেশ/রাজ্য রিটার্ন করে।
.province_codeস্ট্রিংশিপিংয়ের ঠিকানার প্রদেশ/রাজ্যের সংক্ষিপ্ত মান রিটার্ন করে।
.country_codeস্ট্রিংশিপিংয়ের ঠিকানার দেশের সংক্ষিপ্ত মান রিটার্ন করে।

Money

Money অবজেক্ট ব্যবহার করা স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.derived_from_presentment(customer_cents:X)অর্থগ্রাহকের স্থানীয় (প্রদর্শিত) মুদ্রা থেকে একটি পরিমাণকে (সেন্টে) আপনার স্টোরের মুদ্রায় কনভার্ট করে। এই পদ্ধতিটি customer_cents প্যারামিটার গ্রহণ করে, যা সেন্টে একটি সংখ্যা গ্রহণ করে। উদাহরণস্বরূপ, Money.derived_from_presentment(customer_cents: 500)।
.newঅর্থমূল্য উপস্থাপন করার জন্য একটি নতুন অবজেক্ট তৈরি করে।
.zeroঅর্থ

শূন্য মূল্যের একটি নতুন অবজেক্ট তৈরি করে।

+অর্থদুটি Money অবজেক্ট যোগ করে।
-অর্থএকটি Money অবজেক্ট থেকে অন্যটি বিয়োগ করে।
*অর্থএকটি Money অবজেক্টকে কোনো সংখ্যা দিয়ে গুণ করে।

Money-এর উদাহরণ

Money.new(cents: 1000)

1000 সেন্ট বা $10 উপস্থাপন করে এমন একটি Money অবজেক্ট তৈরি করে।

Money.new(cents: 100) * 50

$1 উপস্থাপন করে এমন একটি Money অবজেক্ট তৈরি করে, এরপর ওই পরিমাণটিকে 50 দিয়ে গুণ করে। $50 উপস্থাপন করে এমন একটি Money অবজেক্ট রিটার্ন করে।

ভ্যারিয়েন্ট

ভ্যারিয়েন্ট অবজেক্ট ব্যবহার করা স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.idIntegerভ্যারিয়েন্টের ID নম্বর রিটার্ন করে।
.priceঅর্থভ্যারিয়েন্টের প্রতি ইউনিটের দাম রিটার্ন করে।
.productProductভ্যারিয়েন্টের সম্পর্কিত পণ্য রিটার্ন করে।
.skusList<String>ভ্যারিয়েন্টের স্টক কিপিং ইউনিট (SKU-গুলি) রিটার্ন করে, যা প্রায়শই ইনভেন্টরি ট্র্যাক করার জন্য ব্যবহৃত হয়।
.titleস্ট্রিংভ্যারিয়েন্টের শিরোনাম রিটার্ন করে।

পণ্য

পণ্য অবজেক্ট ব্যবহার করা স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.idIntegerপণ্যের ID নম্বর রিটার্ন করে।
.gift_card?Booleanপণ্যটি কোনো গিফট কার্ড কি না তা রিটার্ন করে।
.tagsList<Tag>এই পণ্যের জন্য সেট করা ট্যাগগুলো উপস্থাপন করা স্ট্রিংগুলোর একটি তালিকা রিটার্ন করে।
.product_typeস্ট্রিংএমন একটি শ্রেণীকরণ যা দিয়ে একটি পণ্যকে ট্যাগ করা যেতে পারে, এটি সাধারণত ফিল্টার এবং সার্চ করার জন্য ব্যবহৃত হয়।
.vendorস্ট্রিংএই পণ্যের ভেন্ডর রিটার্ন করে।

Kernel

Kernel হলো একটি রুবি (Ruby) মডিউল যা প্রতিটি ক্লাসে অন্তর্ভুক্ত থাকে। এর ফলে, এর পদ্ধতিগুলো প্রতিটি অবজেক্টের জন্য পাওয়া যায়। অন্যান্য ভাষায় গ্লোবাল ফাংশনগুলো যেভাবে কাজ করে, এই পদ্ধতিগুলোও ঠিক সেভাবেই কাজ করে।

Kernel অবজেক্ট ব্যবহার করা স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.exitকোনোটিই নয়কোনো ত্রুটি ছাড়াই বর্তমান স্ক্রিপ্টের কাজ শেষ করে। Output.cart-এ কোনো কিছু বরাদ্দ করার আগে এটি চালানো হলে, স্ক্রিপ্টের কোনো প্রভাব থাকে না। স্ক্রিপ্ট থেকে বের হওয়ার জন্য এটি একটি কার্যকরী উপায়, উদাহরণস্বরূপ, যদি গ্রাহক স্ক্রিপ্টটি চালানোর জন্য অযোগ্য হন।

Kernel-এর উদাহরণ

customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
  # Employees are not eligible for this promotion.
  exit
end

লাইন আইটেমের পদ্ধতি

নিচের পদ্ধতিগুলো শুধুমাত্র লাইন আইটেমের স্ক্রিপ্টে ব্যবহারযোগ্য:

কার্ট

লাইন আইটেম স্ক্রিপ্টে Cart অবজেক্ট ব্যবহার করা স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.subtotal_price_wasঅর্থকোনো ডিসকাউন্ট প্রয়োগ করার আগে কার্টের উপমোট দাম রিটার্ন করে।
.subtotal_price_changed?Booleanউপমোট দাম পরিবর্তন করা হয়েছে কি না তা রিটার্ন করে।

LineItem

লাইন আইটেম স্ক্রিপ্টে LineItem অবজেক্ট ব্যবহার করা স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.change_line_price(Money new_price, { message: String }) অর্থলাইন আইটেমের দামটি নির্দিষ্ট পরিমাণে পরিবর্তন করে। একটি message আবশ্যক। new_price-এর মান অবশ্যই বর্তমান দামের চেয়ে কম হতে হবে।
.original_line_priceঅর্থস্ক্রিপ্ট এবং ডিসকাউন্ট প্রয়োগ করার আগে লাইন আইটেমের আসল দাম রিটার্ন করে।
.line_price_wasঅর্থবর্তমান স্ক্রিপ্টের মাধ্যমে পরিবর্তনগুলো প্রয়োগ করার আগে লাইন আইটেমের দাম রিটার্ন করে।
.line_price_changed?Booleanলাইন আইটেমের দাম পরিবর্তন করা হয়েছে কি না তা রিটার্ন করে।
.change_properties(hash new_properties, { message: String }) hashএকটি লাইন আইটেমের জন্য নতুন প্রপার্টি সেট করে। আসল প্রপার্টি হ্যাশটি properties_was-এ স্টোর করা থাকে এবং যে প্রপার্টি হ্যাশটি পদ্ধতিতে পাস করা হয় সেটি লাইন আইটেমের জন্য নতুন প্রপার্টি হয়ে যায়।
.properties_washashকোনো পরিবর্তন প্রয়োগ করার আগে লাইন আইটেমের আসল প্রপার্টি হ্যাশ রিটার্ন করে।
.properties_changed?Booleanলাইন আইটেমের জন্য প্রপার্টি পরিবর্তন করা হয়েছে কি না তা রিটার্ন করে।
.split({ take: Integer })LineItemএকটি লাইন আইটেমকে দুটি লাইন আইটেমে ভাগ করে। নতুন লাইন আইটেম তৈরি করতে আসল লাইন আইটেম থেকে কী পরিমাণ সরাতে হবে 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অর্থএটি ভ্যারিয়েন্টের তুলনামূলক মূল্য ফেরত দেয়। যদি ভ্যারিয়েন্টের কোনো তুলনামূলক মূল্য না থাকে, তাহলে এটি nil ফেরত দেয়।

শিপিংয়ের পদ্ধতি

শিপিং স্ক্রিপ্ট-এ নিচের পদ্ধতিগুলো ব্যবহারযোগ্য:

ইনপুট

শিপিং স্ক্রিপ্টে ইনপুট অবজেক্ট ব্যবহার করে স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.shipping_ratesShippingRateListএটি সব শিপিং রেটের একটি তালিকা ফেরত দেয়।

ShippingRateList

শিপিং স্ক্রিপ্টে ShippingRateList অবজেক্ট ব্যবহার করে স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.delete_ifShippingRateListএকটি ঐচ্ছিক কোড ব্লক ব্যবহার করে শিপিং রেটগুলো মুছুন। Ruby-এর delete_if পদ্ধতি-এর ডকুমেন্টেশন দেখুন।
.sort!ShippingRateListতুলনামূলক অপারেটর বা একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে শিপিং রেটগুলো সাজান। Ruby-এর sort! পদ্ধতি-এর ডকুমেন্টেশন দেখুন।
.sort_by!ShippingRateListএকটি ঐচ্ছিক কোড ব্লক ব্যবহার করে শিপিং রেটগুলো সাজান। Ruby-এর sort_by! পদ্ধতি-এর ডকুমেন্টেশন দেখুন।

ShippingRate

শিপিং স্ক্রিপ্টে ShippingRate অবজেক্ট ব্যবহার করে স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.codeস্ট্রিংএটি শিপিং রেটের কোড ফেরত দেয়।
.markupঅর্থপ্রযোজ্য হলে, এটি কোনো শিপিং রেটের জন্য মার্কআপ ফেরত দেয়।
.nameস্ট্রিংএটি শিপিং রেটের নাম ফেরত দেয়। change_name পদ্ধতি ব্যবহার করে এটি পরিবর্তন করা যেতে পারে।
.priceঅর্থএটি শিপিং রেটের মূল্য ফেরত দেয়।
.sourceস্ট্রিংপ্রাসঙ্গিক হলে, এটি শিপিং রেটের সাথে যুক্ত উৎস (ক্যারিয়ার) ফেরত দেয়। এটি পরিবর্তন করা যাবে না।
.change_name(String new_name)স্ট্রিং শিপিং রেটের নাম (সর্বোচ্চ 255 অক্ষর) পরিবর্তন করে। উৎস পরিবর্তন করা, মুছে ফেলা বা লুকানো সম্ভব নয়।
.apply_discount(Money discount, { message: String })অর্থএটি নির্দিষ্ট পরিমাণের ডিসকাউন্ট প্রয়োগ করে। মূল্য 0-এর নিচে কমানো যাবে না। একটি মেসেজ প্রয়োজন।
.phone_required?Booleanশিপিং রেট পেতে ফোন নম্বরের প্রয়োজন হলে এটি true ফেরত দেয়, আর ফোন নম্বরের প্রয়োজন না হলে false ফেরত দেয়।

পেমেন্ট পদ্ধতি

পেমেন্ট স্ক্রিপ্ট-এ নিচের পদ্ধতিগুলো ব্যবহারযোগ্য:

ইনপুট

পেমেন্ট স্ক্রিপ্টে ইনপুট অবজেক্ট ব্যবহার করে স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.payment_gatewaysPaymentGatewaysListএটি স্টোরের সব পেমেন্ট গেটওয়ের একটি তালিকা ফেরত দেয়।

PaymentGatewayList

পেমেন্ট স্ক্রিপ্টে PaymentGatewayList অবজেক্ট ব্যবহার করে স্ক্রিপ্ট পদ্ধতি
পদ্ধতিরিটার্নের ধরনবিবরণ
.delete_ifPaymentGatewayListএকটি ঐচ্ছিক কোড ব্লক ব্যবহার করে পেমেন্ট গেটওয়েগুলো মুছুন। Ruby-এর delete_if পদ্ধতি-এর ডকুমেন্টেশন দেখুন।
.sort!PaymentGatewayListতুলনামূলক অপারেটর বা একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে পেমেন্ট গেটওয়েগুলো সাজান। Ruby-এর sort! পদ্ধতি-এর ডকুমেন্টেশন দেখুন।
.sort_by!PaymentGatewayListএকটি ঐচ্ছিক কোড ব্লক ব্যবহার করে পেমেন্ট গেটওয়েগুলো সাজান। Ruby-এর sort_by! পদ্ধতি-এর ডকুমেন্টেশন দেখুন।

PaymentGateway

পদ্ধতিরিটার্নের ধরনবিবরণ
.nameস্ট্রিংএটি পেমেন্ট গেটওয়ের নাম ফেরত দেয়।
.enabled_card_brandsList<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