Shopify脚本API参考

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

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

行分项脚本

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

折扣订阅的行项脚本仅适用于订阅的第一次付款。后续付款不按脚本贴现。

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

航运脚本

运输脚本与航运,并且可以更改运输方式并给予运费折扣。这些脚本在签出到达送货选项页面时运行。

折扣订阅费率的发送脚本仅适用于订阅的第一次付款。后续付款不按脚本贴现。

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

付款的脚本

支付脚本与支付,可以重命名、隐藏和重新排序支付网关。注意,支付脚本不与结账屏幕前显示的支付网关交互,比如Apple Pay。当结帐到达付款页面时,将运行这些脚本。

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

一般的方法

以下方法可用于任何类型的脚本:

输入

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

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

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

discount_code如果折扣已应用于购物车,则存在。这并不一定意味着购物车的价格会改变。例如,如果折扣适用于高于50美元的购物车,而脚本将购物车价格降至50美元以下,discount_code仍然存在,但是购物车的价格没有变化。

参见discount_code

.line_items 列表< LineItem > 返回包含购物车中的行项的列表。
.presentment_currency 列表<字符串> 返回客户的本地(显示)货币(in)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

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

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

钱的例子

分: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模块,它包含在每个类中。因此,每个对象都可以使用它的方法。这些方法的行为方式与其他语言中的全局函数的行为方式相同。

使用Kernel对象的脚本方法
方法 返回类型 描述
.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_item=original_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。此外,还显示了客户在所有访问您的商店期间所花费的总金额:

customer = Input.cart.customer . Input.cart.line_items。每个做|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

了解更多

了解更多关于:

准备好开始使用ShOB欧宝娱乐APPopify销售了吗?

免费试用