Shopify脚本API参考
脚本是使用Ruby API编写的,该API为您提供了大量的控制和灵活性。
有不同的脚本类型。当你在脚本编辑器中创建脚本时,脚本会被分配一个类型,基于你选择的脚本模板开始:OB欧宝娱乐APP
行项脚本
行项目脚本影响购物车中的行项目,并可以更改价格和授予折扣。当对购物车进行更改时,将运行这些脚本。
折扣订阅的行项脚本仅应用于订阅的第一次付款。后续付款不会被脚本折算。
一些方法只能在行项目脚本中使用.
航运脚本
传送脚本与航运,并可以更改运输方式和提供运费折扣。这些脚本在结帐到达运输选项页面时运行。
对订阅的发送率进行折扣的发送脚本仅适用于订阅的第一次付款。后续付款不会被脚本折算。
一些方法只能在运输脚本中使用.
付款的脚本
支付脚本与支付,并且可以重命名、隐藏和重新排序支付网关。请注意,支付脚本不会与结帐屏幕前显示的支付网关(如Apple Pay)交互。这些脚本在结帐到达支付页面时运行。
一些方法只能在支付脚本中使用.
一般的方法
以下方法在任何类型的脚本中都可用:
输入
方法 | 返回类型 | 描述 |
---|---|---|
.cart | 车 | 返回一个可变的购物车对象。 |
.locale | 字符串 | 返回客户的区域。例如,在 ,fr ,或pt-BR . |
车
购物车对象仅在在线商店中可用。欧宝体育官网入口首页一些废弃的签出可以访问购物车对象。但是,如果一个结帐已经关闭,然后客户访问废弃的结帐,它将他们发送到预填充的结帐,并且购物车对象不再存在。这是因为店面已经被废弃的结帐电子邮件绕过了。
方法 | 返回类型 | 描述 |
---|---|---|
.customer | 客户 | 返回购物车的所有者(如果有的话)。 |
.shipping_address | ShippingAddress | 返回购物车所有者的送货地址(如果有的话)。 |
.discount_code | 不同 | 返回:
|
.line_items | 列表< LineItem > | 返回包含购物车中的行项目的列表。 |
.presentment_currency | 列表<字符串> | 返回客户的当地(提示)货币(元)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 | 钱 | 创建一个价格为零的新对象。 |
+ | 钱 | 添加了两个钱 对象。 |
- | 钱 | 减去一个钱 对象从另一个对象。 |
* | 钱 | 增加一个钱 对象的一个数字。 |
钱的例子
创建一个钱
对象,表示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美元。此外,该顾客在你的商店中所花费的总金额也会显示出来:
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
了解更多
了解更多: