ข้อมูลอ้างอิง 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 สคริปต์เหล่านี้จะทำงานเมื่อขั้นตอนการชำระเงินไปถึงหน้าการชำระเงิน

เมธอดบางรายการสามารถใช้ได้ในสคริปต์การชำระเงินเท่านั้น

เมธอดทั่วไป

เมธอดต่อไปนี้สามารถใช้ได้ในสคริปต์ทุกประเภท:

อินพุต

เมธอดอินพุตของสคริปต์
เมธอดประเภทการส่งคืนคำอธิบาย
.cartCartส่งคืนอ็อบเจกต์ Cart ที่เปลี่ยนแปลงได้
.localeสตริงส่งคืนตำแหน่งที่ตั้งของลูกค้า ตัวอย่างเช่น en, fr หรือ pt-BR

Cart

อ็อบเจกต์ Cart มีให้ใช้งานเฉพาะบนร้านค้าออนไลน์เท่านั้น ขั้นตอนการชำระเงินที่ยังไม่เสร็จสิ้นบางส่วนสามารถเข้าถึงอ็อบเจกต์ Cart ได้ อย่างไรก็ตาม หากขั้นตอนการชำระเงินได้ถูกปิดไปแล้วและลูกค้าเข้าเยี่ยมชมขั้นตอนการชำระเงินที่ยังไม่เสร็จสิ้น ระบบจะส่งลูกค้าไปยังขั้นตอนการชำระเงินที่กรอกข้อมูลไว้ล่วงหน้าและจะไม่มีอ็อบเจกต์ Cart อยู่อีกต่อไป ทั้งนี้เนื่องจากหน้าร้านถูกข้ามโดยอีเมลแจ้งขั้นตอนการชำระเงินที่ยังไม่เสร็จสิ้น

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ Cart
เมธอดประเภทการส่งคืนคำอธิบาย
.customerCustomerส่งคืนเจ้าของตะกร้าสินค้า (หากมี)
.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
เมธอดประเภทการส่งคืนคำอธิบาย
.codeStringส่งคืนรหัสส่วนลดที่นำมาใช้
.amountMoneyส่งคืนจำนวนเงินของส่วนลด
.reject({ message: String })nilปฏิเสธรหัสส่วนลดที่ปรับใช้กับตะกร้าสินค้า โดยต้องระบุ message
.rejected?Booleanส่งคืนค่าว่าเป็นรหัสส่วนลดที่ถูกปฏิเสธหรือไม่

CartDiscount::Percentage

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ CartDiscount::Percentage
เมธอดประเภทการส่งคืนคำอธิบาย
.codeStringส่งคืนรหัสส่วนลดที่นำมาใช้
.percentageDecimalคืนค่าจำนวนเปอร์เซ็นต์ของส่วนลด
.reject({ message: String })nilปฏิเสธรหัสส่วนลดที่ปรับใช้กับตะกร้าสินค้า โดยต้องระบุ message
.rejected?Booleanส่งคืนค่าว่าเป็นรหัสส่วนลดที่ถูกปฏิเสธหรือไม่

CartDiscount::Shipping

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ CartDiscount::Shipping
เมธอดประเภทการส่งคืนคำอธิบาย
.codeStringส่งคืนรหัสส่วนลดที่นำมาใช้
.reject({ message: String })nilปฏิเสธรหัสส่วนลดที่ปรับใช้กับตะกร้าสินค้า โดยต้องระบุ message
.rejected?Booleanส่งคืนค่าว่าเป็นรหัสส่วนลดที่ถูกปฏิเสธหรือไม่

ลูกค้า

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ Customer
เมธอดประเภทการส่งคืนคำอธิบาย
.idIntegerคืนค่าหมายเลข ID ของลูกค้า
.emailStringคืนค่าที่อยู่อีเมลของลูกค้า
.tagsList<Tag>คืนค่ารายการสตริงที่แสดงแท็กใดๆ ที่ตั้งค่าไว้สำหรับลูกค้า
.orders_countIntegerคืนค่าจำนวนคำสั่งซื้อทั้งหมดที่ลูกค้าเคยสั่ง
.total_spentMoneyคืนค่ายอดรวมที่ลูกค้าได้ใช้จ่ายไปกับคำสั่งซื้อทั้งหมด
.accepts_marketing?Booleanคืนค่าว่าลูกค้ายินยอมรับการตลาดหรือไม่

สินค้าเฉพาะรายการ

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ LineItem
เมธอดประเภทการส่งคืนคำอธิบาย
.gramsgramsคืนค่าน้ำหนักรวมของสินค้าเฉพาะรายการ
.line_priceMoneyราคาสินค้าเฉพาะรายการ
.discounted?Booleanคืนค่าว่าราคาสินค้าเฉพาะรายการได้รับการลดราคาโดยสคริปต์หรือส่วนลดที่ใช้ด้วยตนเองหรือไม่ การใช้รหัสส่วนลดจะไม่มีผลต่อค่าที่ส่งคืน
.propertieshashคืนค่าคุณสมบัติที่ระบุไว้สำหรับสินค้าเฉพาะรายการนี้
.variantVariantคืนค่าตัวเลือกสินค้าที่เจาะจงซึ่งแสดงโดยสินค้าเฉพาะรายการ
.quantityIntegerคืนค่าจำนวนของสินค้าเฉพาะรายการนี้
.selling_plan_idIntegerคืนค่า ID ของแผนการขายสำหรับสินค้าเฉพาะรายการ เมธอดนี้มีประโยชน์เมื่อร้านค้าขายสินค้าแบบการซื้อแบบเหมาจ่ายล่วงหน้า และคุณต้องการให้สคริปต์ตรวจจับเมื่อตัวเลือกสินค้าถูก ขายเป็นแบบการซื้อแบบเหมาจ่ายล่วงหน้า

List

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ List
เมธอดประเภทการส่งคืนคำอธิบาย
.newListสร้างอ็อบเจกต์ใหม่เพื่อใช้แทนรายการ
.[]Element or nil

คืนค่าองค์ประกอบที่ดัชนีที่ระบุ

.&List

คืนค่ารายการใหม่ที่มีองค์ประกอบซึ่งมีอยู่ร่วมกันในทั้งสองรายการ โดยไม่มีรายการที่ซ้ำกัน

.delete_ifListลบองค์ประกอบโดยใช้บล็อกโค้ดที่เลือกได้ ดูเอกสารประกอบสำหรับเมธอด delete_if ของ Ruby
.empty?Boolean

คืนค่า true หากรายการไม่มีองค์ประกอบใดๆ

.firstElement or nil

คืนค่าองค์ประกอบแรก หรือคืนค่า nil หากรายการว่างเปล่า

.index(*args, &block)int or nil

คืนค่าดัชนีขององค์ประกอบแรกในรายการ หากระบุบล็อกแทนอาร์กิวเมนต์ จะคืนค่าดัชนีขององค์ประกอบแรกที่บล็อกมีค่าเป็นจริง

.rindex(*args, &block)int or nil

คืนค่าดัชนีขององค์ประกอบสุดท้ายในรายการ หากระบุบล็อกแทนอาร์กิวเมนต์ จะคืนค่าดัชนีขององค์ประกอบแรกที่บล็อกมีค่าเป็นจริง

.lastElement or nil

คืนค่าองค์ประกอบสุดท้าย หรือคืนค่า nil หากรายการว่างเปล่า

.lengthint

คืนค่าจำนวนองค์ประกอบในรายการ

.sizeint

ชื่อแฝงสำหรับ length

.each(*args, &block)List

เรียกใช้บล็อกหนึ่งครั้งสำหรับแต่ละองค์ประกอบในรายการ โดยส่งองค์ประกอบนั้นเป็นพารามิเตอร์ไปยังบล็อก

ที่อยู่ที่จัดส่ง

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ 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 และส่งคืนอ็อบเจกต์ Money ที่แสดงมูลค่า $50

ตัวเลือกสินค้า

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ Variant
เมธอดประเภทการส่งคืนคำอธิบาย
.idIntegerส่งคืนหมายเลข ID ของตัวเลือกสินค้า
.priceMoneyส่งคืนราคาต่อหน่วยของตัวเลือกสินค้า
.productสินค้าส่งคืนสินค้าที่เกี่ยวข้องของตัวเลือกสินค้า
.skusรายการ<สตริง>ส่งคืนรหัสสินค้าคงคลัง (SKU) ของตัวเลือกสินค้า ซึ่งมักใช้เพื่อติดตามสินค้าคงคลัง
.titleStringส่งคืนชื่อของตัวเลือกสินค้า

สินค้า

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ Product
เมธอดประเภทการส่งคืนคำอธิบาย
.idIntegerส่งคืนหมายเลข ID ของสินค้า
.gift_card?Booleanส่งคืนค่าที่ระบุว่าสินค้าเป็นบัตรของขวัญหรือไม่
.tagsList<Tag>ส่งคืนรายการสตริงที่แสดงแท็กที่กำหนดไว้สำหรับสินค้านี้
.product_typeStringการจัดหมวดหมู่ที่สามารถใช้แท็กกับสินค้าได้ ซึ่งโดยทั่วไปแล้วจะใช้สำหรับการกรองและการค้นหา
.vendorStringส่งคืนผู้ขายของสินค้านี้

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

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ Cart ในสคริปต์สินค้าเฉพาะรายการ
เมธอดประเภทการส่งคืนคำอธิบาย
.subtotal_price_wasMoneyส่งคืนยอดรวมของตะกร้าสินค้าก่อนที่จะใช้ส่วนลดใดๆ
.subtotal_price_changed?Booleanส่งคืนค่าที่ระบุว่ายอดรวมมีการเปลี่ยนแปลงหรือไม่

สินค้าเฉพาะรายการ

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ LineItem ในสคริปต์สินค้าเฉพาะรายการ
เมธอดประเภทการส่งคืนคำอธิบาย
.change_line_price(Money new_price, { message: สตริง }) Moneyเปลี่ยนราคาสินค้าเฉพาะรายการเป็นจำนวนเงินที่ระบุ จำเป็นต้องระบุ message โดย new_price ต้องต่ำกว่าราคาปัจจุบัน
.original_line_priceMoneyส่งคืนราคาดั้งเดิมของสินค้าเฉพาะรายการก่อนที่จะใช้สคริปต์และส่วนลด
.line_price_wasMoneyส่งคืนราคาสินค้าเฉพาะรายการก่อนที่สคริปต์ปัจจุบันจะทำการเปลี่ยนแปลง
.line_price_changed?Booleanส่งคืนค่าที่ระบุว่าราคาสินค้าเฉพาะรายการมีการเปลี่ยนแปลงหรือไม่
.change_properties(แฮช new_properties, { message: สตริง }) hashกำหนดคุณสมบัติใหม่สำหรับสินค้าเฉพาะรายการ แฮชของคุณสมบัติดั้งเดิมจะถูกจัดเก็บไว้ใน properties_was และแฮชของคุณสมบัติที่ส่งไปยังเมธอดจะกลายเป็นคุณสมบัติใหม่สำหรับสินค้าเฉพาะรายการ
.properties_washashส่งคืนแฮชคุณสมบัติดั้งเดิมของสินค้าเฉพาะรายการก่อนที่จะมีการเปลี่ยนแปลงใดๆ
.properties_changed?Booleanส่งคืนค่าที่ระบุว่าคุณสมบัติสำหรับสินค้าเฉพาะรายการมีการเปลี่ยนแปลงหรือไม่
.split({ take: จำนวนเต็ม })สินค้าเฉพาะรายการแบ่งสินค้าเฉพาะรายการหนึ่งรายการออกเป็นสองรายการ 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

ตัวเลือกสินค้า

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ Variant ในสคริปต์สินค้าเฉพาะรายการ
เมธอดประเภทการส่งคืนคำอธิบาย
.compare_at_priceMoneyส่งคืนราคาเปรียบเทียบของตัวเลือกสินค้า ส่งคืนค่า nil หากตัวเลือกสินค้าไม่มีราคาเปรียบเทียบ

วิธีจัดส่ง

เมธอดต่อไปนี้ใช้ได้ในสคริปต์การจัดส่ง

อินพุต

เมธอดของสคริปต์ที่ใช้อ็อบเจกต์ Input ในสคริปต์การจัดส่ง
เมธอดประเภทการส่งคืนคำอธิบาย
.shipping_ratesรายการอัตราค่าจัดส่งแสดงรายการอัตราค่าจัดส่งทั้งหมด

ShippingRateList

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ ShippingRateList ในสคริปต์การจัดส่ง
เมธอดประเภทการส่งคืนคำอธิบาย
.delete_ifรายการอัตราค่าจัดส่งลบอัตราค่าจัดส่งโดยใช้บล็อกโค้ดที่ไม่บังคับ โปรดดูเอกสารประกอบสำหรับเมธอด delete_if ของ Ruby
.sort!รายการอัตราค่าจัดส่งจัดเรียงอัตราค่าจัดส่งโดยใช้ตัวดำเนินการเปรียบเทียบหรือใช้บล็อกโค้ดที่ไม่บังคับ โปรดดูเอกสารประกอบสำหรับเมธอด sort! ของ Ruby
.sort_by!รายการอัตราค่าจัดส่งจัดเรียงอัตราค่าจัดส่งโดยใช้บล็อกโค้ดที่ไม่บังคับ โปรดดูเอกสารประกอบสำหรับเมธอด sort_by! ของ Ruby

ShippingRate

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ ShippingRate ในสคริปต์การจัดส่ง
เมธอดประเภทการส่งคืนคำอธิบาย
.codeStringแสดงรหัสของอัตราค่าจัดส่ง
.markupMoneyแสดงมาร์กอัปสำหรับอัตราค่าจัดส่ง หากมี
.nameStringแสดงชื่อของอัตราค่าจัดส่ง ซึ่งสามารถแก้ไขได้โดยใช้เมธอด change_name
.priceMoneyแสดงราคาของอัตราค่าจัดส่ง
.sourceStringแสดงแหล่งที่มา (ผู้ขนส่ง) ที่เชื่อมโยงกับอัตราค่าจัดส่ง หากมี ซึ่งไม่สามารถแก้ไขได้
.change_name(String new_name)String เปลี่ยนชื่อ (สูงสุด 255 อักขระ) ของอัตราค่าจัดส่ง ไม่สามารถเปลี่ยน ลบ หรือซ่อนแหล่งที่มาได้
.apply_discount(Money discount, { message: String })Moneyใช้ส่วนลดตามจำนวนคงที่ที่ระบุ ไม่สามารถลดราคาให้ต่ำกว่า 0 ได้ ทั้งนี้จำเป็นต้องมีข้อความประกอบ
.phone_required?Booleanแสดงผลเป็น true หากต้องใช้หมายเลขโทรศัพท์เพื่อรับอัตราค่าจัดส่ง หรือแสดงผลเป็น false หากไม่ต้องใช้หมายเลขโทรศัพท์

วิธีการชำระเงิน

เมธอดต่อไปนี้สามารถใช้ได้ในสคริปต์การชำระเงิน

อินพุต

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ Input ในสคริปต์การชำระเงิน
เมธอดประเภทการส่งคืนคำอธิบาย
.payment_gatewaysPaymentGatewaysListแสดงรายการช่องทางการชำระเงินทั้งหมดในร้านค้า

PaymentGatewayList

เมธอดสคริปต์ที่ใช้อ็อบเจกต์ PaymentGatewayList ในสคริปต์การชำระเงิน
เมธอดประเภทการส่งคืนคำอธิบาย
.delete_ifPaymentGatewayListลบช่องทางการชำระเงินโดยใช้บล็อกโค้ดที่ไม่บังคับ โปรดดูเอกสารประกอบสำหรับเมธอด delete_if ของ Ruby
.sort!PaymentGatewayListจัดเรียงช่องทางการชำระเงินโดยใช้ตัวดำเนินการเปรียบเทียบหรือใช้บล็อกโค้ดที่ไม่บังคับ โปรดดูเอกสารประกอบสำหรับเมธอด sort! ของ Ruby
.sort_by!PaymentGatewayListจัดเรียงช่องทางการชำระเงินโดยใช้บล็อกโค้ดที่ไม่บังคับ โปรดดูเอกสารประกอบสำหรับเมธอด sort_by! ของ Ruby

PaymentGateway

เมธอดประเภทการส่งคืนคำอธิบาย
.nameStringแสดงชื่อของช่องทางการชำระเงิน
.enabled_card_brandsรายการ<สตริง>

หากช่องทางการชำระเงินรองรับบัตรเครดิต ระบบจะแสดงรายการประเภทบัตรเครดิตที่ร้านค้ายอมรับ แต่หากช่องทางดังกล่าวไม่รองรับบัตรเครดิต ระบบจะแสดงรายการว่างเปล่า

.change_name(String new_name)Stringเปลี่ยนชื่อของช่องทางการชำระเงิน ไม่สามารถเปลี่ยนชื่อช่องทางการชำระเงินที่มีโลโก้ได้

ตัวอย่าง

ในตัวอย่างสคริปต์สินค้าเฉพาะรายการต่อไปนี้ เมื่อลูกค้าสั่งซื้อสินค้าที่ไม่ใช่บัตรของขวัญ ราคาสินค้าจะลดลง 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

ดูข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับเรื่องต่อไปนี้