There is bug in Shopify script editor for Payments script.
I wanted to change name of payment gateway. My script is working correctly for 1st payment gateway name, BUT.. I want to change name of 3rd gateway. It is not working.
Below is actual order of payment gateway :
POLi Internet Banking
Zip - Buy now, pay later
Merchant Warrior Card Payments
Below is the code of script. It does not gives expected outside. (It do not change name of payment gateway - Merchant Warrior Card Payments )
I have printed names using “puts” & change name code line is executing, still it does not works.
But.. when I tried “POLi Internet Banking” & it successfully changed its name. As it is FIRST payment gateway.
CHANGE_GATEWAYS_NAME = [
{
gateway_match_type: :exact,
gateway_names: ["Merchant Warrior Card Payments"],
newname: "Secure Card Payments"
},
]
# ================================ Script Code (do not edit) ================================
# ================================================================
# GatewayNameSelector
#
# Finds whether the supplied gateway name matches any of the
# entered names.
# ================================================================
class GatewayNameSelector
def initialize(match_type, gateway_names)
@comparator = match_type == :exact ? '==' : 'include?'
_names = gateway_names.map { |name| name.downcase.strip }
end
def match?(payment_gateway)
_names.any? { |name| payment_gateway.name.downcase.strip.send(@comparator, name) }
end
end
# ================================================================
# ChangeNameGatewaysCampaign
# ================================================================
class ChangeNameGatewaysCampaign
def initialize(campaigns)
@campaigns = campaigns
end
def run(cart, payment_gateways)
@campaigns.each do |campaign|
gateway_name_selector = GatewayNameSelector.new(
campaign[:gateway_match_type],
campaign[:gateway_names],
)
payment_gateways.each do |payment_gateway|
if gateway_name_selector.match?(payment_gateway)
payment_gateway.change_name(campaign[:newname])
end
end
end
end
end
CAMPAIGNS = [
ChangeNameGatewaysCampaign.new(CHANGE_GATEWAYS_NAME),
]
CAMPAIGNS.each do |campaign|
campaign.run(Input.cart, Input.payment_gateways)
end
Output.payment_gateways = Input.payment_gateways
Can anyone please help ? Shopify support specialist, please.
