Shopify脚本API参考

脚本是使用Ruby API编写的,该API为您提供了大量的控制和灵活性。

有不同的脚本类型。当你在脚本编辑器中创建脚本时,脚本会被分配一个类型,基于你选择的脚本模板开始:OB欧宝娱乐APP

行项脚本

行项目脚本影响购物车中的行项目,并可以更改价格和授予折扣。当对购物车进行更改时,将运行这些脚本。

折扣订阅的行项脚本仅应用于订阅的第一次付款。后续付款不会被脚本折算。

一些方法只能在行项目脚本中使用

航运脚本

传送脚本与航运,并可以更改运输方式和提供运费折扣。这些脚本在结帐到达运输选项页面时运行。

对订阅的发送率进行折扣的发送脚本仅适用于订阅的第一次付款。后续付款不会被脚本折算。

一些方法只能在运输脚本中使用

付款的脚本

支付脚本与支付,并且可以重命名、隐藏和重新排序支付网关。请注意,支付脚本不会与结帐屏幕前显示的支付网关(如Apple Pay)交互。这些脚本在结帐到达支付页面时运行。

一些方法只能在支付脚本中使用

一般的方法

以下方法在任何类型的脚本中都可用:

输入

脚本输入法
方法 返回类型 描述
.cart 返回一个可变的购物车对象。
.locale 字符串 返回客户的区域。例如,fr,或pt-BR

购物车对象仅在在线商店中可用。欧宝体育官网入口首页一些废弃的签出可以访问购物车对象。但是,如果一个结帐已经关闭,然后客户访问废弃的结帐,它将他们发送到预填充的结帐,并且购物车对象不再存在。这是因为店面已经被废弃的结帐电子邮件绕过了。

使用Cart对象的脚本方法
方法 返回类型 描述
.customer 客户 返回购物车的所有者(如果有的话)。
.shipping_address ShippingAddress 返回购物车所有者的送货地址(如果有的话)。
.discount_code 不同 返回:

discount_code如果已对购物车应用折扣,则存在。这并不一定意味着购物车的价格会发生变化。例如,如果折扣适用于50美元以上的购物车,并且脚本将购物车价格降低到50美元以下,discount_code仍然存在,但推车的价格不变。

参见discount_code

.line_items 列表< LineItem > 返回包含购物车中的行项目的列表。
.presentment_currency 列表<字符串> 返回客户的当地(提示)货币(元)ISO 4217格式)。例如,美元。
.subtotal_price 返回应用行项目折扣之后、应用折扣代码之前购物车的小计价格。
.total_weight 返回购物车中所有行项目的总权重。

CartDiscount: FixedAmount

使用CartDiscount::FixedAmount对象的脚本方法
方法 返回类型 描述
.code 字符串 返回用于应用折扣的折扣代码。
.amount 返回折扣的金额。
.reject({message: String}) 拒绝应用于购物车的折扣代码。一个消息是必需的。
.rejected吗? 布尔 返回折扣代码是否被拒绝。

CartDiscount:百分比

使用CartDiscount::Percentage对象的脚本方法
方法 返回类型 描述
.code 字符串 返回用于应用折扣的折扣代码。
.percentage 小数 返回折扣的百分比金额。
.reject({message: String}) 拒绝应用于购物车的折扣代码。一个消息是必需的。
.rejected吗? 布尔 返回折扣代码是否被拒绝。

CartDiscount:航运

使用CartDiscount::Shipping对象的脚本方法
方法 返回类型 描述
.code 字符串 返回用于应用折扣的折扣代码。
.reject({message: String}) 拒绝应用于购物车的折扣代码。一个消息是必需的。
.rejected吗? 布尔 返回折扣代码是否被拒绝。

客户

使用Customer对象的脚本方法
方法 返回类型 描述
.id 整数 返回客户的ID号。
.email 字符串 返回客户的电子邮件地址。
.tags 列表<标记> 返回表示为客户设置的任何标记的字符串列表。
.orders_count 整数 返回客户下的订单总数。
.total_spent 返回客户在所有订单上花费的总金额。
.accepts_ob欧宝娱乐app下载地址marketing吗? 布尔 返回客户是否接受营销。ob欧宝娱乐app下载地址

LineItem

使用LineItem对象的脚本方法
方法 返回类型 描述
.grams 返回行项目的总权重。
.line_price 产品的价格。
.discounted吗? 布尔 返回行项目的价格是否已通过脚本或手动应用的折扣进行折扣。折扣码的使用不会影响返回值。
. properties 哈希 返回为此行项目指定的属性。
.variant 变体 返回行项目表示的特定产品变体。
.quantity 整数 返回此行项目的数量。
.selling_plan_id 整数 返回行项目的销售计划ID。当商店出售订阅,并且您希望脚本检测产品变体时,此方法非常有用以订阅形式出售

列表

使用List对象的脚本方法
方法 返回类型 描述
格式 列表 创建一个新对象来表示一个列表。
[]。 元素或nil

返回指定索引处的元素。

强生的 列表

返回一个新列表,其中包含两个列表的公共元素,没有重复元素。

.delete_if 列表 使用可选代码块删除元素。请参阅相关文档Ruby的delete_if方法
空虚吗? 布尔

返回真正的如果列表中不包含任何元素。

中国当代 元素或nil

返回第一个元素或如果列表为空。

.index (* args,室) Int或nil

返回列表第一个元素的索引。如果给出了块而不是参数,则返回该块为真的第一个元素的索引。

.rindex (* args,室) Int或nil

返回列表中最后一个元素的索引。如果给出了块而不是参数,则返回该块为真的第一个元素的索引。

.last 元素或nil

返回最后一个元素或如果列表为空。

长处 int

返回列表中元素的个数。

.size int

长度的别名。

each (* args,室) 列表

为列表中的每个元素调用一次块,将该元素作为参数传递给块。

ShippingAddress

使用ShippingAddress对象的脚本方法
方法 返回类型 描述
. name 字符串 返回与送货地址相关联的人员的姓名。
.address1 字符串 返回送货地址的街道地址部分。
.address2 字符串 返回送货地址的街道地址部分的可选附加字段。
.phone 字符串 返回送货地址的电话号码。
.city 字符串 返回送货地址所在的城市。
. zip 字符串 返回送货地址的邮政编码。
.province 字符串 返回收货地址所在的省/州。
.province_code 字符串 返回收货地址的省/州的缩写值。
.country_code 字符串 返回收货地址所在国家的缩写值。

使用Money对象的脚本方法
方法 返回类型 描述
.derived_from_presentment (customer_cents:X 将金额(以分为单位)从客户的本地(提示)货币转换为您的商店货币。此方法接受customer_cents参数,该参数接受以分为单位的数字。例如,Money.derived_from_presentment (customer_cents: 500)
格式 创建一个新对象来表示价格。
.zero

创建一个价格为零的新对象。

+ 添加了两个对象。
- 减去一个对象从另一个对象。
增加一个对象的一个数字。

钱的例子

分:1000

创建一个对象,表示1000美分,或10美元。

分:One hundred.50

创建一个对象表示$1,然后将金额乘以50。返回一个对象表示$50。

变体

使用Variant对象的脚本方法
方法 返回类型 描述
.id 整数 返回变量的ID号。
.price 返回变量的单价。
. product 产品 返回该变体的关联乘积。
.skus 列表<字符串> 返回变体的库存单位(sku),这些单位通常用于跟踪库存。
.title 字符串 返回变量的标题。

产品

使用Product对象的脚本方法
方法 返回类型 描述
.id 整数 返回产品的ID号。
.gift_card吗? 布尔 返回产品是否是礼品卡。
.tags 列表<标记> 返回表示为此产品设置的标记的字符串列表。
.product_type 字符串 一种可以对产品进行标记的分类,通常用于过滤和搜索。
.vendor 字符串 返回此产品的供应商。

内核

内核是包含在每个类中的Ruby模块。因此,它的方法对每个对象都可用。这些方法的作用与其他语言中的全局函数相同。

使用内核对象的脚本方法
方法 返回类型 描述
.exit 没有一个 无错误地结束当前脚本的执行。如果在分配任何东西之前运行此命令Output.cart,脚本无效。这是一种有用的退出脚本的方法,例如,如果客户没有资格运行脚本。

内核的例子

客户输入客户如果客户& &客户电子邮件end_with吗?“@mycompany.com”#员工没有资格获得这次晋升。退出结束

行项目方法

以下方法仅适用于行项脚本

在行项目脚本中使用Cart对象的脚本方法
方法 返回类型 描述
.subtotal_price_was 返回应用任何折扣之前购物车的小计价格。
.subtotal_price_changed吗? 布尔 返回小计价格是否发生了变化。

LineItem

在行项目脚本中使用LineItem对象的脚本方法
方法 返回类型 描述
.change_line_price (New_price,{消息:字符串}) 将行项目的价格更改为指定的金额。一个消息是必需的。new_price必须比现在的价格低。
.original_line_price 返回行项目在应用脚本和折扣之前的原始价格。
.line_price_was 返回行项目在当前脚本应用更改之前的价格。
.line_price_changed吗? 布尔 返回行项目的价格是否已更改。
.change_properties (哈希New_properties,{消息:字符串}) 哈希 设置行项目的新属性。原始属性哈希存储在其中properties_was传递给方法的属性散列成为行项的新属性。
.properties_was 哈希 返回行项目在应用任何更改之前的原始属性哈希。
.properties_changed吗? 布尔 返回行项目的属性是否已更改。
.split ({:整数}) LineItem 将一个行项目拆分为两个行项目。指定要从原始行项目中删除的数量以创建新行项目。

.split例子

这个示例脚本拆分名为original_line_item分成两行项目。新行项的数量为1(由带:1).然后,脚本将折扣价格应用于新行项目,消息为“第三顶帽子5美元”。

如果original_line_item数量> =3.new_line_itemoriginal_line_item分裂花:1new_line_itemchange_line_price分:500),信息:“第三顶帽子5美元”line_items<<new_line_item结束

变体

在行项目脚本中使用Variant对象的脚本方法
方法 返回类型 描述
.compare_at_price 返回比较变量的价格。返回如果变种在价格上没有比较。

运输方法

以下方法可用于航运脚本

输入

在发送脚本中使用Input对象的脚本方法
方法 返回类型 描述
.shipping_rates ShippingRateList 返回所有运输费率的列表。

ShippingRateList

在发送脚本中使用ShippingRateList对象的脚本方法
方法 返回类型 描述
.delete_if ShippingRateList 使用可选代码块删除运费。请参阅相关文档Ruby的delete_if方法
.sort ! ShippingRateList 使用比较运算符或可选代码块对运费进行排序。请参阅相关文档Ruby的排序!方法
.sort_by ! ShippingRateList 使用可选代码块对运费进行排序。请参阅相关文档Ruby的sort_by !方法

ShippingRate

在发送脚本中使用ShippingRate对象的脚本方法
方法 返回类型 描述
.code 字符串 返回运输费率的代码。
.markup 返回运费的标记(如果适用)。
. name 字符串 返回运费的名称。属性可以对其进行修改change_name方法。
.price 返回运费的价格。
.source 字符串 返回与运费相关的源(承运人)。它不能被修改。
.change_name (字符串new_name) 字符串 更改运费的名称(最多255个字符)。不可能更改,删除或隐藏源。
.apply_discount (折扣,{消息:字符串}) 应用指定固定金额的折扣。价格不能降到0美元以下。需要一个消息。
.phone_required吗? 布尔 返回真正的如果需要电话号码才能获得运费,或者如果不需要电话号码。

付款方法

以下方法可用于付款的脚本

输入

在支付脚本中使用Input对象的脚本方法
方法 返回类型 描述
.payment_gateways PaymentGatewaysList 返回商店中所有支付网关的列表。

PaymentGatewayList

在支付脚本中使用PaymentGatewayList对象的脚本方法
方法 返回类型 描述
.delete_if PaymentGatewayList 使用可选代码块删除支付网关。请参阅相关文档Ruby的delete_if方法
.sort ! PaymentGatewayList 使用比较操作符或可选代码块对支付网关进行排序。请参阅相关文档Ruby的排序!方法
.sort_by ! PaymentGatewayList 使用可选代码块对支付网关进行排序。请参阅相关文档Ruby的sort_by !方法

PaymentGateway

方法 返回类型 描述
. name 字符串 返回支付网关的名称。
.enabled_card_brands 列表<字符串>

如果支付网关支持信用卡,则返回商店接受的信用卡类型的列表。如果网关不支持信用卡,则返回一个空列表。

.change_name (字符串new_name) 字符串 修改支付网关的名称。带有标识的支付网关不能重命名。

例子

在下面的行项目脚本示例中,当客户订购的产品不是礼品卡时,该产品的价格将降低9美元。此外,该顾客在你的商店中所花费的总金额也会显示出来:

Input.cart.line_items. customer = Input.cart.customer每个做|line_item| product = line_item.variant。如果Product .gift_card?line_item.change_line_price (line_item。line_price -钱。新(分:900), message: customer.total_spent) end Output.cart = Input.cart

了解更多

了解更多:

准备好开始与ShoOB欧宝娱乐APPpify销售?

免费试用