Shopify脚本API参考
脚本是用Ruby API编写的,它为您提供了很大的控制和灵活性。
有不同的脚本类型。当你在脚本编辑器应用中创建脚本时,脚本会被分配一个类型,这取决于你选择的脚本模板:OB欧宝娱乐APP
行分项脚本
行项目脚本影响购物车中的行项目,可以更改价格和授予折扣。当对购物车进行更改时,将运行这些脚本。
折扣订阅的行项脚本仅适用于订阅的第一次付款。后续付款不按脚本贴现。
一些方法只能在行分项脚本中使用吗.
航运脚本
运输脚本与航运,并且可以更改运输方式并给予运费折扣。这些脚本在签出到达送货选项页面时运行。
折扣订阅费率的发送脚本仅适用于订阅的第一次付款。后续付款不按脚本贴现。
一些方法只能在运输脚本中使用吗.
付款的脚本
支付脚本与支付,可以重命名、隐藏和重新排序支付网关。注意,支付脚本不与结账屏幕前显示的支付网关交互,比如Apple Pay。当结帐到达付款页面时,将运行这些脚本。
一些方法只能在付款脚本中使用吗.
一般的方法
以下方法可用于任何类型的脚本:
输入
方法 | 返回类型 | 描述 |
---|---|---|
.cart | 车 | 返回一个可变购物车对象。 |
.locale | 字符串 | 返回客户的区域设置。例如,在 ,fr ,或pt-BR . |
车
购物车对象仅在在线商店中可用。欧宝体育官网入口首页一些放弃的结帐可以访问cart对象。但是,如果结帐已经关闭,然后客户访问放弃的结帐,则将它们发送到预填充的结帐,并且cart对象不再存在。这是因为店面已经被废弃的结帐电子邮件所绕过。
方法 | 返回类型 | 描述 |
---|---|---|
.customer | 客户 | 返回购物车的所有者(如果有的话)。 |
.shipping_address | ShippingAddress | 返回购物车所有者的送货地址(如果有的话)。 |
.discount_code | 不同 | 返回:
|
.line_items | 列表< LineItem > | 返回包含购物车中的行项的列表。 |
.presentment_currency | 列表<字符串> | 返回客户的本地(显示)货币(in)ISO 4217格式)。例如,美元。 |
.subtotal_price | 钱 | 在应用行项目折扣之后但在应用折扣代码之前返回购物车的小计价格。 |
.total_weight | 克 | 返回购物车中所有行项的总重量。 |
CartDiscount: FixedAmount
方法 | 返回类型 | 描述 |
---|---|---|
.code | 字符串 | 返回用于应用折扣的折扣代码。 |
.amount | 钱 | 返回折扣的金额。 |
.reject({message: String}) | 零 | 拒绝应用于购物车的折扣代码。一个消息 是必需的。 |
.rejected吗? | 布尔 | 返回折扣代码是否被拒绝。 |
CartDiscount:百分比
方法 | 返回类型 | 描述 |
---|---|---|
.code | 字符串 | 返回用于应用折扣的折扣代码。 |
.percentage | 小数 | 返回折扣金额的百分比。 |
.reject({message: String}) | 零 | 拒绝应用于购物车的折扣代码。一个消息 是必需的。 |
.rejected吗? | 布尔 | 返回折扣代码是否被拒绝。 |
CartDiscount:航运
方法 | 返回类型 | 描述 |
---|---|---|
.code | 字符串 | 返回用于应用折扣的折扣代码。 |
.reject({message: String}) | 零 | 拒绝应用于购物车的折扣代码。一个消息 是必需的。 |
.rejected吗? | 布尔 | 返回折扣代码是否被拒绝。 |
客户
方法 | 返回类型 | 描述 |
---|---|---|
.id | 整数 | 返回客户的ID号。 |
字符串 | 返回客户的电子邮件地址。 | |
.tags | 列表<标记> | 返回表示为客户设置的任何标记的字符串列表。 |
.orders_count | 整数 | 返回客户所下订单的总数。 |
.total_spent | 钱 | 返回客户在所有订单上花费的总额。 |
.accepts_ob欧宝娱乐app下载地址marketing吗? | 布尔 | 返回客户是否接受营销。ob欧宝娱乐app下载地址 |
LineItem
方法 | 返回类型 | 描述 |
---|---|---|
.grams | 克 | 返回行项的总权重。 |
.line_price | 钱 | 单行项目的价格。 |
.discounted吗? | 布尔 | 返回行项目的价格是否已通过脚本或手动应用的折扣进行折扣。使用折扣代码不会影响返回值。 |
. properties | 哈希 | 返回为此行项指定的属性。 |
.variant | 变体 | 返回由行项表示的特定产品变体。 |
.quantity | 整数 | 返回此行项的数量。 |
.selling_plan_id | 整数 | 返回行项目的销售计划的ID。当商店销售订阅,并且您希望脚本检测产品变体时,此方法非常有用以订阅方式出售. |
列表
方法 | 返回类型 | 描述 |
---|---|---|
格式 | 列表 | 创建一个新对象来表示一个列表。 |
[]。 | 元素或nil | 返回指定索引处的元素。 |
强生的 | 列表 | 返回一个新列表,其中包含两个列表共有的元素,没有重复项。 |
.delete_if | 列表 | 使用可选代码块删除元素。请参阅文档Ruby的delete_if 方法. |
空虚吗? | 布尔 | 返回 |
中国当代 | 元素或nil | 返回第一个元素或 |
.index (* args,室) | Int或nil | 返回列表第一个元素的索引。如果给出一个块而不是参数,则返回该块为真的第一个元素的索引。 |
.rindex (* args,室) | Int或nil | 返回列表最后一个元素的索引。如果给出一个块而不是参数,则返回该块为真的第一个元素的索引。 |
.last | 元素或nil | 返回最后一个元素或 |
长处 | int | 返回列表中元素的个数。 |
.size | int | 长度的别名。 |
each (* args,室) | 列表 | 为列表中的每个元素调用一次块,将元素作为参数传递给块。 |
ShippingAddress
方法 | 返回类型 | 描述 |
---|---|---|
. name | 字符串 | 返回与送货地址相关联的人员的姓名。 |
.address1 | 字符串 | 返回送货地址的街道地址部分。 |
.address2 | 字符串 | 返回送货地址的街道地址部分的可选附加字段。 |
.phone | 字符串 | 返回送货地址的电话号码。 |
.city | 字符串 | 返回送货地址所在的城市。 |
. zip | 字符串 | 返回送货地址的邮政编码。 |
.province | 字符串 | 返回送货地址所在的省份/州。 |
.province_code | 字符串 | 返回送货地址所在省/州的缩写值。 |
.country_code | 字符串 | 返回送货地址所在国家的缩写值。 |
钱
方法 | 返回类型 | 描述 |
---|---|---|
.derived_from_presentment (customer_cents:X) | 钱 | 将金额(以美分为单位)从客户的本地(显示)货币转换为您的商店货币。此方法接受customer_cents 参数,该参数接受以分为单位的数字。例如,Money.derived_from_presentment (customer_cents: 500) . |
格式 | 钱 | 创建一个新对象来表示价格。 |
.zero | 钱 | 创建一个价格为0的新对象。 |
+ | 钱 | 添加了两个钱 对象。 |
- | 钱 | 减去一个钱 来自另一个对象。 |
* | 钱 | 增加一个钱 对象的一个数字。 |
钱的例子
创建一个钱
代表1000美分或10美元的对象。
创建一个钱
对象表示$1,然后将该金额乘以50。返回一个钱
对象代表50美元。
变体
方法 | 返回类型 | 描述 |
---|---|---|
.id | 整数 | 返回变量的ID号。 |
.price | 钱 | 返回变量的单价。 |
. product | 产品 | 返回该变体的相关乘积。 |
.skus | 列表<字符串> | 返回变量的库存单位(sku),通常用于跟踪库存。 |
.title | 字符串 | 返回变量的标题。 |
产品
方法 | 返回类型 | 描述 |
---|---|---|
.id | 整数 | 返回产品的ID号。 |
.gift_card吗? | 布尔 | 返回产品是否为礼品卡。 |
.tags | 列表<标记> | 返回表示为此产品设置的标记的字符串列表。 |
.product_type | 字符串 | 可以标记产品的分类,通常用于过滤和搜索。 |
.vendor | 字符串 | 返回该产品的供应商。 |
内核
内核是一个Ruby模块,它包含在每个类中。因此,每个对象都可以使用它的方法。这些方法的行为方式与其他语言中的全局函数的行为方式相同。
方法 | 返回类型 | 描述 |
---|---|---|
.exit | 没有一个 | 无错误地结束当前脚本的执行。如果在赋值之前运行Output.cart ,脚本没有效果。这是一种退出脚本的有用方法,例如,如果客户没有资格运行脚本。 |
内核的例子
行项目方法
以下方法仅在中可用行分项脚本:
车
方法 | 返回类型 | 描述 |
---|---|---|
.subtotal_price_was | 钱 | 返回应用任何折扣之前购物车的小计价格。 |
.subtotal_price_changed吗? | 布尔 | 返回小计价格是否已更改。 |
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美元”。
变体
方法 | 返回类型 | 描述 |
---|---|---|
.compare_at_price | 钱 | 返回变量的比较价格。返回零 如果变体没有比较价格。 |
运输方法
中可使用以下方法航运脚本:
输入
方法 | 返回类型 | 描述 |
---|---|---|
.shipping_rates | ShippingRateList | 返回所有运费的列表。 |
ShippingRateList
方法 | 返回类型 | 描述 |
---|---|---|
.delete_if | ShippingRateList | 使用可选代码块删除运费。请参阅文档Ruby的delete_if 方法. |
.sort ! | ShippingRateList | 使用比较运算符或可选代码块对运费排序。请参阅文档Ruby的排序! 方法. |
.sort_by ! | ShippingRateList | 使用可选代码块对运费进行排序。请参阅文档Ruby的sort_by ! 方法. |
ShippingRate
方法 | 返回类型 | 描述 |
---|---|---|
.code | 字符串 | 返回运费的代码。 |
.markup | 钱 | 返回运费的加价(如果适用)。 |
. name | 字符串 | 返回运费的名称。可以对其进行修改change_name 方法。 |
.price | 钱 | 返回运费的价格。 |
.source | 字符串 | 如果相关,返回与运费相关联的源(承运人)。不能修改。 |
.change_name (字符串new_name) | 字符串 | 修改运费的名称(最多255个字符)。不可能更改、删除或隐藏源代码。 |
.apply_discount (钱折扣,{消息:字符串}) | 钱 | 应用指定固定金额的折扣。价格不能降到0以下。需要消息。 |
.phone_required吗? | 布尔 | 返回真正的 如果需要一个电话号码来获取运费,或者假 如果不需要提供电话号码。 |
付款方法
中可使用以下方法付款的脚本:
输入
方法 | 返回类型 | 描述 |
---|---|---|
.payment_gateways | PaymentGatewaysList | 返回商店中所有支付网关的列表。 |
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
了解更多
了解更多关于: