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 | অর্থ | ডিসকাউন্টের অর্থের পরিমাণ রিটার্ন করে। |
| .reject({ message: String }) | nil | কার্টে প্রয়োগ করা ডিসকাউন্ট কোড প্রত্যাখ্যান করে। একটি message প্রয়োজন। |
| .rejected? | Boolean | ডিসকাউন্ট কোড প্রত্যাখ্যান করা হয়েছে কিনা তা রিটার্ন করে। |
CartDiscount::Percentage
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .code | স্ট্রিং | ডিসকাউন্ট প্রয়োগ করতে ব্যবহৃত ডিসকাউন্ট কোডটি রিটার্ন করে। |
| .percentage | Decimal | ডিসকাউন্টের শতকরা পরিমাণ রিটার্ন করে। |
| .reject({ message: String }) | nil | কার্টে প্রয়োগ করা ডিসকাউন্ট কোড প্রত্যাখ্যান করে। একটি message প্রয়োজন। |
| .rejected? | Boolean | ডিসকাউন্ট কোড প্রত্যাখ্যান করা হয়েছে কিনা তা রিটার্ন করে। |
CartDiscount::Shipping
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .code | স্ট্রিং | ডিসকাউন্ট প্রয়োগ করতে ব্যবহৃত ডিসকাউন্ট কোডটি রিটার্ন করে। |
| .reject({ message: String }) | nil | কার্টে প্রয়োগ করা ডিসকাউন্ট কোড প্রত্যাখ্যান করে। একটি message প্রয়োজন। |
| .rejected? | Boolean | ডিসকাউন্ট কোড প্রত্যাখ্যান করা হয়েছে কিনা তা রিটার্ন করে। |
Customer
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .id | Integer | গ্রাহকের ID নম্বর রিটার্ন করে। |
| স্ট্রিং | গ্রাহকের ইমেইল ঠিকানা রিটার্ন করে। | |
| .tags | List<Tag> | গ্রাহকের জন্য সেট করা যেকোনো ট্যাগ উপস্থাপনকারী স্ট্রিংয়ের একটি তালিকা রিটার্ন করে। |
| .orders_count | Integer | গ্রাহকের করা অর্ডারের মোট সংখ্যা রিটার্ন করে। |
| .total_spent | অর্থ | সব অর্ডারে গ্রাহকের ব্যয় করা মোট পরিমাণ রিটার্ন করে। |
| .accepts_marketing? | Boolean | গ্রাহক মার্কেটিং গ্রহণ করেন কিনা তা রিটার্ন করে। |
LineItem
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .grams | গ্রাম | লাইন আইটেমের মোট ওজন রিটার্ন করে। |
| .line_price | অর্থ | লাইন আইটেমের দাম। |
| .discounted? | Boolean | স্ক্রিপ্ট বা ম্যানুয়ালি প্রয়োগ করা ডিসকাউন্টের কারণে কোনো লাইন আইটেমের দাম কমানো হয়েছে কিনা তা রিটার্ন করে। ডিসকাউন্ট কোডের ব্যবহার রিটার্ন ভ্যালুকে প্রভাবিত করে না। |
| .properties | hash | এই লাইন আইটেমগুলোর জন্য নির্দিষ্ট করা প্রপার্টি রিটার্ন করে। |
| .variant | Variant | লাইন আইটেমের প্রতিনিধিত্ব করা নির্দিষ্ট পণ্যের ভ্যারিয়েন্ট রিটার্ন করে। |
| .quantity | Integer | এই লাইন আইটেমের পরিমাণ রিটার্ন করে। |
| .selling_plan_id | Integer | লাইন আইটেমের সেলিং প্ল্যানের ID রিটার্ন করে। স্টোর যখন সাবস্ক্রিপশন বিক্রি করে এবং কোনো পণ্যের ভ্যারিয়েন্ট সাবস্ক্রিপশন হিসেবে বিক্রি হওয়ার বিষয়টি আপনি স্ক্রিপ্টের মাধ্যমে শনাক্ত করতে চান, তখন এই পদ্ধতিটি কার্যকর হয়। |
List
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .new | List | তালিকা উপস্থাপন করতে একটি নতুন অবজেক্ট তৈরি করে। |
| .[] | Element অথবা nil |
নির্দিষ্ট ইনডেক্সের এলিমেন্ট রিটার্ন করে। |
| .& | List |
দুটি তালিকার সাধারণ এলিমেন্ট থাকা একটি নতুন তালিকা রিটার্ন করে, যেখানে কোনো ডুপ্লিকেট থাকে না। |
| .delete_if | List | ঐচ্ছিক কোড ব্লক ব্যবহার করে এলিমেন্ট মুছুন। Ruby-এর delete_if পদ্ধতির ডকুমেন্টেশন দেখুন। |
| .empty? | Boolean |
তালিকায় কোনো এলিমেন্ট না থাকলে |
| .first | Element অথবা nil |
প্রথম এলিমেন্ট রিটার্ন করে অথবা তালিকা ফাঁকা থাকলে |
| .index(*args, &block) | int অথবা nil |
তালিকার প্রথম এলিমেন্টের ইনডেক্স রিটার্ন করে। আর্গুমেন্টের পরিবর্তে ব্লক দেওয়া হলে, ব্লকটি যে প্রথম এলিমেন্টের জন্য সত্য বা true হয়, তার ইনডেক্স রিটার্ন করে। |
| .rindex(*args, &block) | int অথবা nil |
তালিকার শেষ এলিমেন্টের ইনডেক্স রিটার্ন করে। আর্গুমেন্টের পরিবর্তে ব্লক দেওয়া হলে, ব্লকটি যে প্রথম এলিমেন্টের জন্য সত্য বা true হয়, তার ইনডেক্স রিটার্ন করে। |
| .last | Element অথবা nil |
শেষ এলিমেন্ট রিটার্ন করে অথবা তালিকা ফাঁকা থাকলে |
| .length | int |
তালিকায় থাকা এলিমেন্টের সংখ্যা রিটার্ন করে। |
| .size | int |
length-এর অ্যালিয়াস। |
| .each(*args, &block) | List |
তালিকার প্রতিটি এলিমেন্টের জন্য একবার ব্লক কল করে এবং ব্লকে এলিমেন্টটিকে প্যারামিটার হিসেবে পাস করে। |
ShippingAddress
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .name | স্ট্রিং | শিপিংয়ের ঠিকানার সাথে যুক্ত ব্যক্তির নাম রিটার্ন করে। |
| .address1 | স্ট্রিং | শিপিংয়ের ঠিকানার রাস্তার ঠিকানার অংশটি রিটার্ন করে। |
| .address2 | স্ট্রিং | শিপিংয়ের ঠিকানায় রাস্তার ঠিকানার অংশের ঐচ্ছিক অতিরিক্ত ফিল্ডটি রিটার্ন করে। |
| .phone | স্ট্রিং | শিপিংয়ের ঠিকানার ফোন নম্বর রিটার্ন করে। |
| .city | স্ট্রিং | শিপিংয়ের ঠিকানার শহর রিটার্ন করে। |
| .zip | স্ট্রিং | শিপিংয়ের ঠিকানার ZIP কোড রিটার্ন করে। |
| .province | স্ট্রিং | শিপিংয়ের ঠিকানার প্রদেশ/রাজ্য রিটার্ন করে। |
| .province_code | স্ট্রিং | শিপিংয়ের ঠিকানার প্রদেশ/রাজ্যের সংক্ষিপ্ত মান রিটার্ন করে। |
| .country_code | স্ট্রিং | শিপিংয়ের ঠিকানার দেশের সংক্ষিপ্ত মান রিটার্ন করে। |
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 অবজেক্ট রিটার্ন করে।
ভ্যারিয়েন্ট
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .id | Integer | ভ্যারিয়েন্টের ID নম্বর রিটার্ন করে। |
| .price | অর্থ | ভ্যারিয়েন্টের প্রতি ইউনিটের দাম রিটার্ন করে। |
| .product | Product | ভ্যারিয়েন্টের সম্পর্কিত পণ্য রিটার্ন করে। |
| .skus | List<String> | ভ্যারিয়েন্টের স্টক কিপিং ইউনিট (SKU-গুলি) রিটার্ন করে, যা প্রায়শই ইনভেন্টরি ট্র্যাক করার জন্য ব্যবহৃত হয়। |
| .title | স্ট্রিং | ভ্যারিয়েন্টের শিরোনাম রিটার্ন করে। |
পণ্য
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .id | Integer | পণ্যের ID নম্বর রিটার্ন করে। |
| .gift_card? | Boolean | পণ্যটি কোনো গিফট কার্ড কি না তা রিটার্ন করে। |
| .tags | List<Tag> | এই পণ্যের জন্য সেট করা ট্যাগগুলো উপস্থাপন করা স্ট্রিংগুলোর একটি তালিকা রিটার্ন করে। |
| .product_type | স্ট্রিং | এমন একটি শ্রেণীকরণ যা দিয়ে একটি পণ্যকে ট্যাগ করা যেতে পারে, এটি সাধারণত ফিল্টার এবং সার্চ করার জন্য ব্যবহৃত হয়। |
| .vendor | স্ট্রিং | এই পণ্যের ভেন্ডর রিটার্ন করে। |
Kernel
Kernel হলো একটি রুবি (Ruby) মডিউল যা প্রতিটি ক্লাসে অন্তর্ভুক্ত থাকে। এর ফলে, এর পদ্ধতিগুলো প্রতিটি অবজেক্টের জন্য পাওয়া যায়। অন্যান্য ভাষায় গ্লোবাল ফাংশনগুলো যেভাবে কাজ করে, এই পদ্ধতিগুলোও ঠিক সেভাবেই কাজ করে।
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .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লাইন আইটেমের পদ্ধতি
নিচের পদ্ধতিগুলো শুধুমাত্র লাইন আইটেমের স্ক্রিপ্টে ব্যবহারযোগ্য:
কার্ট
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .subtotal_price_was | অর্থ | কোনো ডিসকাউন্ট প্রয়োগ করার আগে কার্টের উপমোট দাম রিটার্ন করে। |
| .subtotal_price_changed? | Boolean | উপমোট দাম পরিবর্তন করা হয়েছে কি না তা রিটার্ন করে। |
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_was | hash | কোনো পরিবর্তন প্রয়োগ করার আগে লাইন আইটেমের আসল প্রপার্টি হ্যাশ রিটার্ন করে। |
| .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_rates | ShippingRateList | এটি সব শিপিং রেটের একটি তালিকা ফেরত দেয়। |
ShippingRateList
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .delete_if | ShippingRateList | একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে শিপিং রেটগুলো মুছুন। Ruby-এর delete_if পদ্ধতি-এর ডকুমেন্টেশন দেখুন। |
| .sort! | ShippingRateList | তুলনামূলক অপারেটর বা একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে শিপিং রেটগুলো সাজান। Ruby-এর sort! পদ্ধতি-এর ডকুমেন্টেশন দেখুন। |
| .sort_by! | ShippingRateList | একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে শিপিং রেটগুলো সাজান। Ruby-এর sort_by! পদ্ধতি-এর ডকুমেন্টেশন দেখুন। |
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_gateways | PaymentGatewaysList | এটি স্টোরের সব পেমেন্ট গেটওয়ের একটি তালিকা ফেরত দেয়। |
PaymentGatewayList
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .delete_if | PaymentGatewayList | একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে পেমেন্ট গেটওয়েগুলো মুছুন। Ruby-এর delete_if পদ্ধতি-এর ডকুমেন্টেশন দেখুন। |
| .sort! | PaymentGatewayList | তুলনামূলক অপারেটর বা একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে পেমেন্ট গেটওয়েগুলো সাজান। Ruby-এর sort! পদ্ধতি-এর ডকুমেন্টেশন দেখুন। |
| .sort_by! | PaymentGatewayList | একটি ঐচ্ছিক কোড ব্লক ব্যবহার করে পেমেন্ট গেটওয়েগুলো সাজান। Ruby-এর sort_by! পদ্ধতি-এর ডকুমেন্টেশন দেখুন। |
PaymentGateway
| পদ্ধতি | রিটার্নের ধরন | বিবরণ |
|---|---|---|
| .name | স্ট্রিং | এটি পেমেন্ট গেটওয়ের নাম ফেরত দেয়। |
| .enabled_card_brands | List<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