แหล่งอ้างอิงAPIของShopify脚本
สคริปต์เขียนด้วยการใช้งาน API ของ Ruby ซึ่งช่วยให้คุณมีความยืดหยุ่นและความสามารถในการจัดการอย่างมาก
มีประเภทสคริปต์ที่แตกต่างกันหลายประเภท สคริปต์จะได้รับมอบหมายประเภทเมื่อคุณสร้างสคริปต์ในแอป Script Editor โดยอิงจากเทมเพลตของสคริปต์ที่คุณเลือกเริ่มต้นด้วย:
สคริปต์สินค้าเฉพาะรายการ
สคริปต์สินค้าเฉพาะรายการจะมีผลต่อสินค้าเฉพาะรายการในตะกร้าสินค้าและสามารถเปลี่ยนราคาและให้ส่วนลดได้ สคริปต์เหล่านี้จะทำงานเมื่อมีการเปลี่ยนแปลงต่อตะกร้าสินค้า
สคริปต์สินค้าเฉพาะรายการที่ลดราคาการสมัครใช้งานจะมีผลเฉพาะการชำระเงินครั้งแรกสำหรับค่าสมัครใช้งานเท่านั้น สคริปต์ดังกล่าวจะไม่ลดราคาในการชำระเงินครั้งต่อๆ ไป
สคริปต์การจัดส่ง
สคริปต์การจัดส่งจะส่งผลต่อการจัดส่งและสามารถเปลี่ยนวิธีการจัดส่งและลดอัตราค่าจัดส่งได้ สคริปต์เหล่านี้จะทำงานเมื่อดำเนินไปถึงหน้าตัวเลือกการจัดส่งในขั้นตอนการใช้เงิน
สคริปต์การจัดส่งที่ลดอัตราค่าจัดส่งสำหรับการสมัครใช้งานจะมีผลกับการชำระเงินครั้งแรกของการสมัครใช้งานเท่านั้น สคริปต์จะไม่ลดราคาการชำระเงินในครั้งถัดๆ ไป
สคริปต์การชำระเงิน
สคริปต์การชำระเงินโต้ตอบกับการชำระเงินและสามารถเปลี่ยนชื่อ ซ่อนและจัดเรียงช่องทางการชำระเงินใหม่ได้ โปรดทราบว่าสคริปต์การชำระเงินไม่มีการโต้ตอบกับช่องทางการชำระเงินที่แสดงก่อนหน้าจอการชำระเงินเช่น Apple Pay สคริปต์เหล่านี้จะทำงานเมื่อการชำระเงินถึงหน้าการชำระเงินเท่านั้น
ในหน้านี้
วิธีการทั่วไป
วิธีการต่อไปนี้จะสามารถใช้งานได้ในสคริปต์ทุกประเภท:
อินพุต
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.cart | ตะกร้าสินค้า | ส่งคืนอ็อบเจกต์ตะกร้าสินค้าที่สามารถปิดได้ |
.locale | string | แสดงตำแหน่งที่ตั้งของลูกค้า ตัวอย่างเช่นen fr หรือpt-BR |
ตะกร้าสินค้า
อ็อบเจกต์ตะกร้าสินค้าใช้งานได้เฉพาะในร้านค้าออนไลน์เท่านั้น การชำระเงินที่ยังไม่เสร็จสิ้นบางรายการจะมีสิทธิ์เข้าถึงอ็อบเจกต์ตะกร้าสินค้า อย่างไรก็ตามหากการชำระเงินถูกปิดไปแล้วลูกค้าจะกลับเข้ามายังขั้นตอนการชำระเงินที่ยังไม่เสร็จสิ้น ระบบจะส่งคำสั่งซื้อดังกล่าวไปยังขั้นตอนการชำระเงินที่กรอกไว้ล่วงหน้าและอ็อบเจกต์ตะกร้าสินค้าจะไม่ปรากฎอีกต่อไป เนื่องจากมีการข้ามขั้นตอนหน้าร้านโดยอีเมลแจ้งขั้นตอนการชำระเงินที่ยังไม่เสร็จสิ้น
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.customer | ลูกค้า | ส่งคืนเจ้าของตะกร้าสินค้า (หากมี) |
.shipping_address | ShippingAddress | แสดงที่อยู่สำหรับการจัดส่งของเจ้าของตะกร้าสินค้า(หากมี) |
.discount_code | แตกต่างกันออกไป | Returns:
|
.line_items | สร้างรายการ |
แสดงรายการที่มีสินค้าเฉพาะรายการในตะกร้าสินค้า |
.presentment_currency | แสดงรายการ |
การคืนสินค้าตามสกุลเงินท้องถิ่น (Presentment) ของลูกค้า (ในรูปแบบISO 4217) เช่น USD (ดอลลาร์สหรัฐ) |
.subtotal_price | เงิน | แสดงราคารวมของตะกร้าสินค้าหลังจากมีการใช้ส่วนลดสินค้าเฉพาะรายการแต่ก่อนที่จะมีการใช้รหัสส่วนลด |
.total_weight | กรัม | แสดงน้ำหนักรวมของสินค้าเฉพาะรายการทั้งหมดในตะกร้าสินค้า |
CartDiscount::FixedAmount
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.code | สตริง | แสดงรหัสส่วนลดที่ใช้เพื่อให้ส่วนลด |
.amount | เงิน | แสดงจำนวนเงินของส่วนลด |
.reject({ message: String }) | nil | ปฏิเสธรหัสส่วนลดที่ใช้กับตะกร้าสินค้า จำเป็นต้องมีข้อความ |
.rejected? | บูลีน | แสดงผลว่ารหัสส่วนลดถูกปฏิเสธหรือไม่ |
CartDiscount::Percentage
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.code | สตริง | แสดงรหัสส่วนลดที่ใช้เพื่อให้ส่วนลด |
.percentage | ทศนิยม | แสดงจำนวนเปอร์เซ็นต์ของส่วนลด |
.reject({ message: String }) | nil | ปฏิเสธรหัสส่วนลดที่ใช้กับตะกร้าสินค้า จำเป็นต้องมีข้อความ |
.rejected? | บูลีน | แสดงผลว่ารหัสส่วนลดถูกปฏิเสธหรือไม่ |
CartDiscount::Shipping
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.code | สตริง | แสดงรหัสส่วนลดที่ใช้เพื่อให้ส่วนลด |
.reject({ message: String }) | nil | ปฏิเสธรหัสส่วนลดที่ใช้กับตะกร้าสินค้า จำเป็นต้องมีข้อความ |
.rejected? | บูลีน | แสดงผลว่ารหัสส่วนลดถูกปฏิเสธหรือไม่ |
ลูกค้า
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.id | จำนวนเต็ม | แสดงหมายเลข ID ของลูกค้า |
สตริง | แสดงที่อยู่อีเมลของลูกค้า | |
.tags | สร้างรายการ |
แสดงรายการสตริงที่แสดงถึงแท็กที่กำหนดให้สำหรับลูกค้า |
.orders_count | จำนวนเต็ม | แสดงจำนวนคำสั่งซื้อทั้งหมดที่ลูกค้าได้วางไว้ |
.total_spent | เงิน | แสดงยอดเงินทั้งหมดที่ลูกค้าใช้จ่ายสำหรับคำสั่งซื้อทั้งหมด |
.accepts_marketing? | บูลีน | แสดงผลว่าลูกค้ายอมรับการทำการตลาดหรือไม่ |
LineItem
gramsวิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.grams | แสดงน้ำหนักรวมของสินค้าเฉพาะรายการ | |
.line_price | เงิน | ราคาของสินค้าเฉพาะรายการ |
.discounted? | บูลีน | แสดงผลว่าราคาของสินค้าเฉพาะรายการนั้นได้รับส่วนลดจากสคริปต์หรือจากการใช้ส่วนลดด้วยตนเอง ทั้งนี้ การใช้รหัสส่วนลดจะไม่มีผลต่อค่าผลลัพธ์ |
.properties | แฮช | แสดงคุณสมบัติที่ระบุสำหรับสินค้าเฉพาะรายการนี้ |
.variant | ตัวเลือกสินค้า | แสดงตัวเลือกสินค้าเฉพาะรายการที่เป็นประเภทเดียวกับสินค้าเฉพาะรายการ |
.quantity | จำนวนเต็ม | แสดงจำนวนของสินค้าเฉพาะรายการนี้ |
.selling_plan_id | จำนวนเต็ม | แสดง ID ของแผนการขายสำหรับสินค้าเฉพาะรายการ โดยวิธีนี้จะเป็นประโยชน์เมื่อร้านค้าขายสินค้าในรูปแบบของการสมัครใช้งานและคุณต้องการให้สคริปต์ตรวจพบเมื่อตัวเลือกสินค้าถูกขายในรูปแบบของการสมัครใช้งาน |
รายการ
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.new | รายการ | สร้างอ็อบเจกต์ใหม่เพื่อเป็นตัวแทนรายการ |
.[] | องค์ประกอบหรือไม่มี | แสดงองค์ประกอบที่ดัชนีที่ระบุไว้ |
.& | รายการ | แสดงรายการใหม่ที่มีองค์ประกอบเหมือนกันจากทั้งสองรายการโดยไม่มีการซ้ำ |
.delete_if | รายการ | ลบองค์ประกอบด้วยทางเลือกการใช้บล็อกโค้ด ดูเอกสารประกอบสำหรับวิธีการใช้delete_if ของ Ruby |
.empty? | บูลีน | แสดงผลเป็น |
.first | องค์ประกอบหรือไม่มี | แสดงองค์ประกอบแรกหรือ |
.index(*args, &block) | int หรือไม่มี | แสดงดัชนีขององค์ประกอบแรกของรายการ หากมีการเลือกใช้บล๊อกแทนที่จะเป็นอาร์กิวเมนต์ ระบบจะแสดงผลดัชนีขององค์ประกอบชิ้นแรกที่บล๊อกนั้นเป็นไปตามที่กำหนด |
.rindex(*args, &block) | int หรือไม่มี | แสดงดัชนีขององค์ประกอบท้ายสุดของรายการ หากมีการเลือกใช้บล๊อกแทนที่จะเป็นอาร์กิวเมนต์ ระบบจะแสดงผลดัชนีขององค์ประกอบชิ้นแรกที่บล๊อกนั้นเป็นไปตามที่กำหนด |
.last | องค์ประกอบหรือไม่มี | แสดงองค์ประกอบสุดท้ายหรือ |
.length | int | แสดงจำนวนองค์ประกอบในรายการ |
.size | int | นามแฝงสำหรับความยาว |
.each(*args, &block) | รายการ | เรียกการบล็อกหนึ่งครั้งสำหรับแต่ละองค์ประกอบในรายการ และส่งผ่านองค์ประกอบเป็นพารามิเตอร์ไปยังบล็อก |
ShippingAddress
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.name | สตริง | แสดงชื่อของบุคคลที่เกี่ยวข้องกับที่อยู่สำหรับการจัดส่ง |
.address1 | สตริง | แสดงส่วนที่อยู่ของถนนของที่อยู่สำหรับการจัดส่ง |
.address2 | สตริง | แสดงช่องข้อมูลเพิ่มเติมเกี่ยวกับส่วนของถนนที่อยู่ในที่อยู่การจัดส่ง |
.phone | สตริง | แสดงหมายเลขโทรศัพท์ของที่อยู่สำหรับการจัดส่ง |
.city | สตริง | แสดงเมืองของที่อยู่สำหรับการจัดส่ง |
. zip | สตริง | แสดงรหัส ZIP ของที่อยู่สำหรับการจัดส่ง |
.province | สตริง | แสดงจังหวัด/รัฐของที่อยู่สำหรับการจัดส่ง |
.province_code | สตริง | แสดงค่าตัวย่อของจังหวัด/รัฐของที่อยู่สำหรับการจัดส่ง |
.country_code | สตริง | แสดงค่าตัวย่อของประเทศที่อยู่สำหรับการจัดส่ง |
เงิน
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.derived_from_presentment(customer_cents:X) | เงิน | แปลงจำนวนเงิน (เป็นเซ็นต์) จากสกุลเงินท้องถิ่นของลูกค้า (presentment) ไปยังสกุลเงินของร้านค้าคุณ วิธีนี้ยอมรับcustomer_cents พารามิเตอร์ซึ่งยอมรับตัวเลขในรูปแบบเซ็นต์ ตัวอย่างเช่นMoney.derived_from_presentment(customer_cents: 500) |
.new | เงิน | สร้างอ็อบเจกต์ใหม่เพื่อเป็นตัวแทนของราคา |
.zero | เงิน | สร้างอ็อบเจกต์ใหม่ที่มีราคาเป็นศูนย์ |
+ | เงิน | เพิ่มอ็อบเจกต์Money สองชิ้น |
- | เงิน | หักอ็อบเจกต์Money หนึ่งชิ้นออกจากอีกรายการ |
* | เงิน | คูณอ็อบเจกต์Money ด้วยตัวเลข |
ตัวอย่าง Money
สร้างอ็อบเจกต์Money
ที่แทนที่ 1,000 เซ็นต์หรือ $10
สร้างอ็อบเจกต์Money
ที่แทนที่ $1 จากนั้นคูณด้วย 50 และแสดงผลอ็อบเจกต์Money
แทนที่ $50
ตัวเลือกสินค้า
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.id | จำนวนเต็ม | แสดงผลหมายเลข ID ของตัวเลือกสินค้า |
.price | เงิน | แสดงผลราคาต่อหน่วยของตัวเลือกสินค้า |
.product | สินค้า | แสดงผลสินค้าที่เกี่ยวข้องของตัวเลือกสินค้า |
.skus | แสดงรายการ |
แสดงผลหน่วยจัดเก็บสต็อก (SKU) ของตัวเลือกสินค้าซึ่งมักใช้สำหรับการติดตามสินค้าคงคลัง |
.title | สตริง | แสดงผลชื่อของตัวเลือกสินค้า |
สินค้า
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.id | จำนวนเต็ม | แสดงผลหมายเลข ID ของสินค้า |
.gift_card? | บูลีน | แสดงผลว่าสินค้าเป็นบัตรของขวัญหรือไม่ |
.tags | สร้างรายการ |
แสดงผลรายการของสตริงที่เป็นตัวแทนแท็กที่กำหนดไว้สำหรับสินค้ารายการนี้ |
.product_type | สตริง | การจัดหมวดหมู่สินค้าที่สามารถใช้การแท็กได้โดยทั่วไปจะใช้สำหรับการกรองและการค้นหา |
.vendor | สตริง | แสดงผลเวนเดอร์สินค้านี้ |
Kernel
Kernelเป็นโมดูล Ruby ที่รวมอยู่ในทุกชั้น ด้วยเหตุนี้วิธีการใช้งานของ Kernel นั้นสามารถใช้งานกับทุกอ็อบเจกต์ วิธีการเหล่านี้ดำเนินการด้วยวิธีเดียวกับฟังก์ชันครอบคลุมทั้งหมดที่ทำหน้าที่ในภาษาอื่นๆ
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.exit | ไม่มี | สิ้นสุดการดำเนินการของสคริปต์ปัจจุบันโดยไม่มีข้อผิดพลาด หากมีการเรียกใช้งานก่อนที่จะมีการมอบหมายอะไรก็ตามไปยังOutput.cart สคริปต์จะไม่มีผลใดๆ นี่คือวิธีการออกจากสคริปต์ที่มีประโยชน์อย่างมาก ตัวอย่างเช่นหากลูกค้าไม่มีสิทธิ์ใช้งานสคริปต์ |
ตัวอย่าง Kernel
วิธีการสำหรับสินค้าเฉพาะรายการ
วิธีการต่อไปนี้จะสามารถใช้ได้เฉพาะในสคริปต์สินค้าเฉพาะรายการ:
ตะกร้าสินค้า
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.subtotal_price_was | เงิน | แสดงผลราคารวมของตะกร้าสินค้าก่อนที่จะมีการใช้ส่วนลดใดๆ |
.subtotal_price_changed? | บูลีน | แสดงผลว่ามีการเปลี่ยนแปลงราคารวมหรือไม่ |
LineItem
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.change_line_price(Moneynew_price, { message:String}) | เงิน | เปลี่ยนราคาของสินค้าเฉพาะรายการเป็นจำนวนที่ระบุ จำเป็นต้องมีข้อความ new_price ต้องต่ำกว่าราคาปัจจุบัน |
.original_line_price | เงิน | แสดงผลราคาเดิมของสินค้าเฉพาะรายการก่อนที่จะมีการใช้สคริปต์และส่วนลด |
.line_price_was | เงิน | แสดงผลราคาของสินค้าเฉพาะรายการก่อนที่การเปลี่ยนแปลงจะถูกนำไปใช้โดยสคริปต์ปัจจุบัน |
.line_price_changed? | บูลีน | แสดงผลว่าราคาของสินค้าเฉพาะรายการมีการเปลี่ยนแปลงหรือไม่ |
.change_properties(hashnew_properties, { message:String}) | แฮช | ตั้งค่าคุณสมบัติใหม่สำหรับสินค้าเฉพาะรายการ แฮชของคุณสมบัติเดิมจะถูกเก็บไว้ในproperties_was และแฮชของคุณสมบัติที่ถูกนำมาใช้กับวิธีนั้นจะกลายเป็นคุณสมบัติใหม่สำหรับสินค้าเฉพาะรายการ |
.properties_was | แฮช | แสดงผลแฮชของคุณสมบัติเดิมของสินค้าเฉพาะรายการก่อนที่จะมีการเปลี่ยนแปลงใดๆ |
.properties_changed? | บูลีน | ส่งกลับค่าว่ามีการเปลี่ยนแปลงคุณสมบัติสำหรับสินค้าเฉพาะรายการหรือไม่ |
.split({ take:Integer}) | LineItem | แยกสินค้าเฉพาะรายการออกเป็นสองรายการ โดยtake จะระบุจำนวนที่จะลบออกจากสินค้าเฉพาะรายการดั้งเดิมเพื่อสร้างสินค้าเฉพาะรายการใหม่ |
ตัวอย่าง .split
สคริปต์ตัวอย่างนี้จะแยกเฉพาะสินค้าที่มีชื่อว่าoriginal_line_item
ออกเป็นสินค้าเฉพาะรายการสองรายการ สินค้าเฉพาะรายการใหม่มีจำนวน 1 รายการ (ที่ระบุโดยtake: 1
) สคริปต์จะใช้ราคาหลังหักส่วนลดกับสินค้าเฉพาะรายการใหม่ด้วยข้อความ “หมวกใบที่สามในราคา $5”
ตัวเลือกสินค้า
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.compare_at_price | เงิน | ส่งกลับราคาเปรียบเทียบของตัวเลือกสินค้า ส่งกลับnil หากตัวเลือกสินค้าไม่มีราคาเปรียบเทียบ |
วิธีการจัดส่ง
วิธีการต่อไปนี้สามารถใช้งานได้ในสคริปต์การจัดส่ง:
อินพุต
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.shipping_rates | ShippingRateList | แสดงผลรายการอัตราค่าจัดส่งทั้งหมด |
ShippingRateList
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.delete_if | ShippingRateList | ลบอัตราค่าจัดส่งโดยใช้บล็อกโค้ดที่เป็นตัวเลือก ดูเอกสารประกอบสำหรับวิธีการใช้delete_if ของ Ruby |
.sort! | ShippingRateList | จัดเรียงอัตราค่าจัดส่งโดยใช้ตัวดำเนินการเปรียบเทียบหรือใช้บล็อกโค้ดที่เป็นตัวเลือก ดูเอกสารประกอบสำหรับวิธีการใช้sort! ของ Ruby |
.sort_by! | ShippingRateList | จัดเรียงอัตราค่าจัดส่งโดยใช้บล็อกโค้ดที่เป็นตัวเลือก ดูเอกสารประกอบสำหรับวิธีการใช้sort_by! ของ Ruby |
ShippingRate
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.code | สตริง | แสดงผลโค้ดของอัตราค่าจัดส่ง |
.markup | เงิน | เรียกคืนมาร์กอัปสำหรับอัตราค่าจัดส่ง หากมี |
.name | สตริง | แสดงผลชื่อของอัตราค่าจัดส่ง โดยสามารถแก้ไขได้โดยใช้วิธีchange_name |
.price | เงิน | แสดงผลราคาของอัตราค่าจัดส่ง |
.source | สตริง | แสดงผลแหล่งที่มา (ผู้ให้บริการขนส่ง) ที่เชื่อมโยงกับอัตราค่าจัดส่ง หากมีความเกี่ยวข้อง ไม่สามารถแก้ไขได้ |
.change_name(Stringnew_name) | สตริง | เปลี่ยนชื่อ(สูงสุด255ตัวอักษ)รของอัตราค่าจัดส่ง ไม่สามารถเปลี่ยน ลบ หรือซ่อนแหล่งที่มาได้ |
.apply_discount(Moneydiscount, { message: String }) | เงิน | ใช้งานส่วนลดตามจำนวนเงินคงที่ที่ระบุ ไม่สามารถลดราคาได้ต่ำกว่า 0 จำเป็นต้องระบุข้อความ |
.phone_required? | บูลีน | จะแสดงผลเป็นtrue หากจำเป็นต้องใช้หมายเลขโทรศัพท์เพื่อรับอัตราค่าจัดส่งหรือfalse หากไม่จำเป็นต้องใช้หมายเลขโทรศัพท์ |
วิธีการชำระเงิน
วิธีการต่อไปนี้จะสามารถใช้งานได้ในสคริปต์การชำระเงิน:
อินพุต
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.payment_gateways | PaymentGatewaysList | แสดงผลรายการเกตเวย์การชำระเงินทั้งหมดในร้านค้า |
PaymentGatewayList
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.delete_if | PaymentGatewayList | ลบช่องทางการชำระเงินโดยใช้บล็อกโค้ดแบบตัวเลือก ดูเอกสารประกอบสำหรับวิธีการใช้delete_if ของ Ruby |
.sort! | PaymentGatewayList | จัดเรียงช่องทางการชำระเงินโดยใช้ตัวดำเนินการเปรียบเทียบหรือใช้บล็อกโค้ดแบบตัวเลือก ดูเอกสารประกอบสำหรับวิธีการใช้sort! ของ Ruby |
.sort_by! | PaymentGatewayList | จัดเรียงช่องทางการชำระเงินโดยใช้บล็อกรหัสที่เป็นตัวเลือก ดูเอกสารประกอบสำหรับดูเอกสารประกอบสำหรับ วิธีการใช้sort_by! ของ Ruby |
PaymentGateway
วิธี | ประเภทการส่งคืน | คำอธิบาย |
---|---|---|
.name | สตริง | แสดงผลชื่อของช่องทางการชำระเงิน |
.enabled_card_brands | แสดงรายการ |
หากช่องทางการชำระเงินรองรับบัตรเครดิตให้แสดงผลรายชื่อประเภทของบัตรเครดิตที่ร้านค้ายอมรับ หากเกตเวย์ไม่รองรับบัตรเครดิตจะแสดงผลรายการที่ไม่มีอะไรทั้งสิ้น |
.change_name(Stringnew_name) | สตริง | เปลี่ยนชื่อของช่องทางการชำระเงิน ไม่สามารถเปลี่ยนชื่อช่องทางการชำระเงินที่มีโลโก้ได้ |
ตัวอย่าง
ในตัวอย่างสคริปต์สินค้าเฉพาะรายการต่อไปนี้เมื่อลูกค้าสั่งซื้อสินค้าที่ไม่ใช่บัตรของขวัญราคาสินค้าจะถูกลดลง $9 นอกจากนี้จะแสดงจำนวนเงินทั้งหมดที่ลูกค้าได้ใช้จ่ายตลอดการเข้าชมร้านค้าของคุณ:
ดูข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับ: