支付脚本示例

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

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

步骤:

  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_TAG({customer_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}@ tags&customer_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_TAG({customer_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}@ tags&customer_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_PRODUCT({product_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}@ selector&product_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_item}gateway_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

显示特定国家的网关

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

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

# ================================ 可定制的设置  ================================# ================================================================显示国家/地区的网关##如果收货地址国家匹配任何输入的# countries,将显示输入的网关,以及所有其他网关#将被隐藏。否则,输入的网关将被隐藏。## - 'country_code_match_type'决定是否查找购物车# country是否匹配输入的选择器。可以是:# -“:include”在列表中查找国家# - ':exclude'确保该国家不在列表中# - 'country_codes'是一个2个字符的缩写列表#适用国家# - 'gateway_match_type'决定以下字符串是否匹配#应该是完全匹配或部分匹配。可以是:# - ':exact'表示精确匹配# - ':partial'表示部分匹配'gateway_names'是一个字符串列表,用于标识网关# ================================================================SHOW_GATEWAYS_FOR_COUNTRY({country_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##如果收货地址国家匹配任何输入的# countries,将显示输入的网关,以及所有其他网关#将被隐藏。否则,输入的网关将被隐藏。# ================================================================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'决定是否查找购物车# country是否匹配输入的选择器。可以是:# -“:include”在列表中查找国家# - ':exclude'确保该国家不在列表中# - 'country_codes'是一个2个字符的缩写列表#适用国家# - 'gateway_match_type'决定以下字符串是否匹配#应该是完全匹配或部分匹配。可以是:# - ':exact'表示精确匹配# - ':partial'表示部分匹配'gateway_names'是一个字符串列表,用于标识网关# ================================================================HIDE_GATEWAYS_FOR_COUNTRY({country_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”是客户必须消费的金额# order查看输入的网关# - '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

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

免费试用