支付脚本示例

支付脚本与支付网关交互,并可以更改网关的标题、可见性和显示位置。这些脚本在客户每次结帐时访问付款方法页面时运行。支付脚本不能与之交互加速签出,因为在客户到达结帐页面之前,就会向他们显示加速结帐。

要使用此页上的模板,请使用空白模板创建一个新脚本。

步骤:

  1. 从你的Shopify管理员,转到应用程序>脚本编辑器
  2. 点击创建脚本
  3. 点击支付网关
  4. 选择空白模板,然后按创建脚本
  5. Ruby源代码节,删除默认代码行:输出。车=输入.车
  6. 从此页复制脚本,并将其粘贴到Ruby源代码部分。
  7. 编辑可定制的设置部分的脚本,以便在存储中发挥作用。
  8. 测试脚本。有关更多信息,请参阅测试和调试Shopify脚本
  9. 后测试:
    • 点击保存草稿保存未发表的脚本草稿,或者
    • 点击保存并发布创建并发布脚本。

显示特定客户的网关

使用此脚本仅向特定标记的客户显示特定的网关选项。

属性仅向客户显示特定的网关贵宾标记—网关对于任何其他客户都是隐藏的。

# ================================ 可定制的设置  ================================# ================================================================#显示客户标签的网关如果我们有一个匹配的客户,输入的网关将是#显示,所有其他将被隐藏。否则,输入的# gateway将被隐藏。# - 'customer_tag_match_type'决定我们是否寻找客户#是否使用输入的标签进行标记。可以是:# - ':include'检查客户是否被标记# - ':exclude'以确保客户没有被标记# - 'customer_tags'是一个客户标签列表,用于触发#活动# - 'gateway_match_type'决定下面的字符串是否#应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'gateway_names'是一个用于标识网关的字符串列表# ================================================================SHOW_GATEWAYS_FOR_CUSTOMER_TAGcustomer_tag_match_type:包括customer_tags:“customer_tag”“another_tag”),gateway_match_type:精确gateway_names:“网关”“其他网关”),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# CustomerTagSelector#查找所提供的客户是否有任何输入的标记。# ================================================================CustomerTagSelectordef初始化match_type标签@comparatormatch_type= =:包括?“什么?”“没有吗?”@ tags标签地图|标签|标签downcase结束def比赛吗?客户customer_tags客户标签地图|标签|标签downcase@ tagscustomer_tags).发送@comparator结束结束# ================================================================# GatewayNameSelector查找所提供的网关名是否与#输入的名称。# ================================================================GatewayNameSelectordef初始化match_typegateway_names@comparatormatch_type= =:确切?“= =”“有吗?”@gateway_namesgateway_names地图|名字|名字downcase结束def比赛吗?payment_gateway@gateway_names任何?|名字|payment_gateway名字downcase发送@comparator名字结束结束# ================================================================# ShowGatewaysForCustomerTagCampaign如果客户有任何输入的标记,则输入的网关根据输入的设置显示/隐藏# ================================================================ShowGatewaysForCustomerTagCampaigndef初始化活动@campaigns活动结束def运行payment_gateways@campaigns每一个|运动|customer_tag_selectorCustomerTagSelector运动: customer_tag_match_type),运动: customer_tags),customer_match客户nil ??customer_tag_selector比赛吗?客户gateway_name_selectorGatewayNameSelector运动: gateway_match_type),运动: gateway_names),payment_gatewaysdelete_if|payment_gateway|gateway_name_selector比赛吗?payment_gateway! =customer_match结束结束结束结束活动ShowGatewaysForCustomerTagCampaignSHOW_GATEWAYS_FOR_CUSTOMER_TAG),活动每一个|运动|运动运行输入输入payment_gateways结束输出payment_gateways输入payment_gateways

隐藏特定客户的网关

使用此脚本为特定标记的客户隐藏特定网关。

方法为客户隐藏特定的网关HIDE_GATEWAY标签。

# ================================ 可定制的设置  ================================# ================================================================#隐藏客户标签的网关如果我们有一个匹配的客户,输入的网关将是#隐藏。# - 'customer_tag_match_type'决定我们是否寻找客户#是否使用输入的标签进行标记。可以是:# - ':include'检查客户是否被标记# - ':exclude'以确保客户没有被标记# - 'customer_tags'是一个客户标签列表,用于触发#活动# - 'gateway_match_type'决定下面的字符串是否#应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'gateway_names'是一个用于标识网关的字符串列表# ================================================================HIDE_GATEWAYS_FOR_CUSTOMER_TAGcustomer_tag_match_type:包括customer_tags:“customer_tag”“another_tag”),gateway_match_type:精确gateway_names:“网关”“其他网关”),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# CustomerTagSelector#查找所提供的客户是否有任何输入的标记。# ================================================================CustomerTagSelectordef初始化match_type标签@comparatormatch_type= =:包括?“什么?”“没有吗?”@ tags标签地图|标签|标签downcase结束def比赛吗?客户customer_tags客户标签地图|标签|标签downcase@ tagscustomer_tags).发送@comparator结束结束# ================================================================# GatewayNameSelector查找所提供的网关名是否与#输入的名称。# ================================================================GatewayNameSelectordef初始化match_typegateway_names@comparatormatch_type= =:确切?“= =”“有吗?”@gateway_namesgateway_names地图|名字|名字downcase结束def比赛吗?payment_gateway@gateway_names任何?|名字|payment_gateway名字downcase发送@comparator名字结束结束# ================================================================# HideGatewaysForCustomerTagCampaign如果我们有一个匹配的客户,输入的网关将是#隐藏。# ================================================================HideGatewaysForCustomerTagCampaigndef初始化活动@campaigns活动结束def运行payment_gateways返回如果客户nil ?@campaigns每一个|运动|customer_tag_selectorCustomerTagSelector运动: customer_tag_match_type),运动: customer_tags),下一个除非customer_tag_selector比赛吗?客户gateway_name_selectorGatewayNameSelector运动: gateway_match_type),运动: gateway_names),payment_gatewaysdelete_if|payment_gateway|gateway_name_selector比赛吗?payment_gateway结束结束结束结束活动HideGatewaysForCustomerTagCampaignHIDE_GATEWAYS_FOR_CUSTOMER_TAG),活动每一个|运动|运动运行输入输入payment_gateways结束输出payment_gateways输入payment_gateways

隐藏特定产品的网关

使用此脚本可在将特定项目添加到购物车时隐藏特定网关。

例如,如果客户订购了一顶帽子,就隐藏一个特定的网关。

# ================================ 可定制的设置  ================================# ================================================================#隐藏产品的网关#如果购物车中包含任何匹配的物品,则输入的网关#是隐藏的。# - 'product_selector_match_type'决定我们是否寻找#与输入选择器匹配或不匹配的产品。可以号是:# - ':include'检查产品是否匹配# - ':exclude'以确保产品不匹配# - 'product_selector_type'决定产品的合格程度#将被识别。可以是:# - ':tag'按标签查找产品# - ':type'按类型查找产品# - ':vendor'按供应商查找产品# - ':product_id'按ID查找产品# - ':variant_id'通过变量ID查找产品# - ':subscription'查找订阅产品# - 'product_selectors'是一个字符串或数字的列表#通过上述选择器类型识别产品# - 'gateway_match_type'决定下面的字符串是否#应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'gateway_names'是一个用于标识网关的字符串列表# ================================================================HIDE_GATEWAY_FOR_PRODUCTproduct_selector_match_type:包括product_selector_type: product_idproduct_selectors:12345678909871234567890986),gateway_match_type:精确gateway_names:“网关”“其他网关”),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ProductSelector#根据输入的标准查找匹配的产品。# ================================================================ProductSelectordef初始化match_typeselector_type选择器@match_typematch_type@comparatormatch_type= =:包括?“什么?”“没有吗?”@selector_typeselector_type@ selector选择器结束def比赛吗?line_item如果自我respond_to吗?@selector_type自我发送@selector_typeline_item其他的提高RuntimeError“无效的产品选择器类型”结束结束def标签line_itemproduct_tagsline_item变体产品标签地图|标签|标签downcase@ selector@ selector地图|选择器|选择器downcase@ selectorproduct_tags).发送@comparator结束def类型line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品product_typedowncase结束def供应商line_item@ selector@ selector地图|选择器|选择器downcase@match_type= =:包括= =@ selector包括什么?line_item变体产品供应商downcase结束defproduct_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体产品id结束defvariant_idline_item@match_type= =:包括= =@ selector包括什么?line_item变体id结束def订阅line_itemline_itemselling_plan_idnil ?结束结束# ================================================================# GatewayNameSelector查找所提供的网关名是否与#输入的名称。# ================================================================GatewayNameSelectordef初始化match_typegateway_names@comparatormatch_type= =:确切?“= =”“有吗?”@gateway_namesgateway_names地图|名字|名字downcase结束def比赛吗?payment_gateway@gateway_names任何?|名字|payment_gateway名字downcase发送@comparator名字结束结束# ================================================================# HideGatewayForProductCampaign#如果购物车中包含任何匹配的物品,则输入的网关#是隐藏的。# ================================================================HideGatewayForProductCampaigndef初始化活动@campaigns活动结束def运行payment_gateways@campaigns每一个|运动|product_selectorProductSelector运动: product_selector_match_type),运动: product_selector_type),运动: product_selectors),下一个除非line_items任何?|line_item|product_selector比赛吗?line_itemgateway_name_selectorGatewayNameSelector运动: gateway_match_type),运动: gateway_names),payment_gatewaysdelete_if|payment_gateway|gateway_name_selector比赛吗?payment_gateway结束结束结束结束活动HideGatewayForProductCampaignHIDE_GATEWAY_FOR_PRODUCT),活动每一个|运动|运动运行输入输入payment_gateways结束输出payment_gateways输入payment_gateways

显示特定国家的网关

当客户从特定国家订购时,使用此脚本仅显示特定网关。

例如,如果客户从加拿大订购,则只显示特定的网关-对于任何其他国家的地址,网关都是隐藏的。

# ================================ 可定制的设置  ================================# ================================================================#显示国家的网关如果收货地址国家与输入的任何国家相匹配#国家,输入的网关(s)将显示,以及所有其他#将被隐藏。否则,输入的网关将被隐藏。# - 'country_code_match_type'决定是否查找购物车是否匹配输入的选择器。可以是:# - ':include'在列表中查找一个国家# - ':exclude'以确保该国家不在列表中# - 'country_codes'是一个2个字符的缩写列表#适用国家# - 'gateway_match_type'决定下面的字符串是否#应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'gateway_names'是一个用于标识网关的字符串列表# ================================================================SHOW_GATEWAYS_FOR_COUNTRYcountry_code_match_type:包括country_code:“CA”),gateway_match_type:精确gateway_names:“网关”“其他网关”),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# CountrySelector#查找所提供的国家代码是否与输入的国家代码匹配#字符串。# ================================================================CountrySelectordef初始化match_type国家@match_typematch_type@countries国家地图|国家|国家upcase结束def比赛吗?country_code@match_type= =:包括= =@countries包括什么?country_codeupcase结束结束# ================================================================# GatewayNameSelector查找所提供的网关名是否与#输入的名称。# ================================================================GatewayNameSelectordef初始化match_typegateway_names@comparatormatch_type= =:确切?“= =”“有吗?”@gateway_namesgateway_names地图|名字|名字downcase结束def比赛吗?payment_gateway@gateway_names任何?|名字|payment_gateway名字downcase发送@comparator名字结束结束# ================================================================# ShowGatewaysForCountryCampaign如果收货地址国家与输入的任何国家相匹配#国家,输入的网关(s)将显示,以及所有其他#将被隐藏。否则,输入的网关将被隐藏。# ================================================================ShowGatewaysForCountryCampaigndef初始化活动@campaigns活动结束def运行payment_gateways地址shipping_address@campaigns每一个|运动|country_selectorCountrySelector运动: country_code_match_type),运动: country_code),country_match地址nil ??country_selector比赛吗?地址country_codegateway_name_selectorGatewayNameSelector运动: gateway_match_type),运动: gateway_names),payment_gatewaysdelete_if|payment_gateway|gateway_name_selector比赛吗?payment_gateway! =country_match结束结束结束结束活动ShowGatewaysForCountryCampaignSHOW_GATEWAYS_FOR_COUNTRY),活动每一个|运动|运动运行输入输入payment_gateways结束输出payment_gateways输入payment_gateways

隐藏特定国家的网关

使用此脚本隐藏特定国家的支付网关。

例如,对加拿大的客户隐藏一个特定的网关。

# ================================ 可定制的设置  ================================# ================================================================#隐藏国家的入口如果收货地址国家与输入的任何国家相匹配# countries,输入的网关将被隐藏。# - 'country_code_match_type'决定是否查找购物车是否匹配输入的选择器。可以是:# - ':include'在列表中查找一个国家# - ':exclude'以确保该国家不在列表中# - 'country_codes'是一个2个字符的缩写列表#适用国家# - 'gateway_match_type'决定下面的字符串是否#应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'gateway_names'是一个用于标识网关的字符串列表# ================================================================HIDE_GATEWAYS_FOR_COUNTRYcountry_code_match_type:包括country_code:“CA”),gateway_match_type:精确gateway_names:“网关”“其他网关”),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# CountrySelector#查找所提供的国家代码是否与输入的国家代码匹配#字符串。# ================================================================CountrySelectordef初始化match_type国家@match_typematch_type@countries国家地图|国家|国家upcase结束def比赛吗?country_code@match_type= =:包括= =@countries包括什么?country_codeupcase结束结束# ================================================================# GatewayNameSelector查找所提供的网关名是否与#输入的名称。# ================================================================GatewayNameSelectordef初始化match_typegateway_names@comparatormatch_type= =:确切?“= =”“有吗?”@gateway_namesgateway_names地图|名字|名字downcase结束def比赛吗?payment_gateway@gateway_names任何?|名字|payment_gateway名字downcase发送@comparator名字结束结束# ================================================================# HideGatewaysForCountryCampaign如果收货地址国家与输入的任何国家相匹配# countries,输入的网关将被隐藏。# ================================================================HideGatewaysForCountryCampaigndef初始化活动@campaigns活动结束def运行payment_gateways地址shipping_address返回如果地址nil ?@campaigns每一个|运动|country_selectorCountrySelector运动: country_code_match_type),运动: country_code),下一个除非country_selector比赛吗?地址country_codegateway_name_selectorGatewayNameSelector运动: gateway_match_type),运动: gateway_names),payment_gatewaysdelete_if|payment_gateway|gateway_name_selector比赛吗?payment_gateway结束结束结束结束活动HideGatewaysForCountryCampaignHIDE_GATEWAYS_FOR_COUNTRY),活动每一个|运动|运动运行输入输入payment_gateways结束输出payment_gateways输入payment_gateways

按花费显示网关

如果客户花费超过一定数量,则使用此脚本显示特定的网关。

例如,如果客户花费1000美元或更多,则显示特定的网关,否则隐藏它。

# ================================ 可定制的设置  ================================# ================================================================#显示开销阈值的网关#如果购物车总数大于或等于输入的# threshold,则显示输入的网关。# -“threshold”是客户必须消费的金额#命令查看输入的网关# - 'gateway_match_type'决定下面的字符串是否#应该是完全匹配或部分匹配。可以是:# - ':exact'用于精确匹配# - ':partial'表示部分匹配# - 'gateway_names'是一个用于标识网关的字符串列表# ================================================================SHOW_GATEWAYS_FOR_THRESHOLD阈值:500gateway_match_type:精确gateway_names:“网关”“其他网关”),},# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# GatewayNameSelector查找所提供的网关名是否与#输入的名称。# ================================================================GatewayNameSelectordef初始化match_typegateway_names@comparatormatch_type= =:确切?“= =”“有吗?”@gateway_namesgateway_names地图|名字|名字downcase结束def比赛吗?payment_gateway@gateway_names任何?|名字|payment_gateway名字downcase发送@comparator名字结束结束# ================================================================# ShowGatewaysForThresholdCampaign#如果购物车总数大于或等于输入的# threshold,则显示输入的网关。# ================================================================ShowGatewaysForThresholdCampaigndef初始化活动@campaigns活动结束def运行payment_gateways@campaigns每一个|运动|下一个除非subtotal_price<分:One hundred.运动:阈值])gateway_name_selectorGatewayNameSelector运动: gateway_match_type),运动: gateway_names),payment_gatewaysdelete_if|payment_gateway|gateway_name_selector比赛吗?payment_gateway结束结束结束结束活动ShowGatewaysForThresholdCampaignSHOW_GATEWAYS_FOR_THRESHOLD),活动每一个|运动|运动运行输入输入payment_gateways结束输出payment_gateways输入payment_gateways

重新排序网关

使用此脚本更改提供给客户的支付网关的默认顺序。

# ================================ 可定制的设置  ================================# ================================================================#重新排序网关#您希望网关显示的顺序# ================================================================DESIRED_GATEWAY_ORDER“支付网关1”“支付网关2”“支付网关3”# ================================ 脚本代码(不要编辑 ) ================================# ================================================================# ReorderGatewaysCampaign#将网关重新排序到输入的顺序# ================================================================ReorderGatewaysCampaigndef初始化desired_order@desired_orderdesired_order地图||downcase结束def运行payment_gatewayspayment_gatewayssort_by !|payment_gateway|@desired_order指数payment_gateway名字downcase||浮动::结束结束活动ReorderGatewaysCampaignDESIRED_GATEWAY_ORDER),活动每一个|运动|运动运行输入输入payment_gateways结束输出payment_gateways输入payment_gateways

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

免费试用