Shopify Plus bietet eine relativ einfache Möglichkeit, den gesamten Checkout-Prozess anzupassen.
In einem kurzen Tutorial zeigen wir Ihnen, wie Sie die Zahlungsmethoden je nach Land neu anordnen können.
Shopify erleichtert diese Aufgabe, indem es uns einige Code-Beispiele in Ruby zur Verfügung stellt. In Anlehnung daran lautet der endgültige Code wie folgt:
# ================================ Customizable Settings ================================
# ================================================================
# Reorder Gateways
#
# The order in which you would like your gateways to display
# ================================================================
DESIRED_GATEWAY_ORDER_CB = [
"Carte de crédit","PayPal","KBC/CBC","Belfius","Bancontact","PayPal Express Checkout"
]
DESIRED_GATEWAY_ORDER_NOT_CB = [
"PayPal","Carte de crédit","Bancontact","KBC/CBC", "Belfius","PayPal Express Checkout"
]
COUNTRY_SORT = {
country_code_match_type: :include,
country_codes: ["FR"],
}
# ================================ Script Code (do not edit) ================================
# ================================================================
# CountrySelector
#
# Finds whether the supplied country code matches the entered
# string.
# ================================================================
class CountrySelector
def initialize(match_type, countries)
@match_type = match_type
@countries = countries.map { |country| country.upcase.strip }
end
def match?(country_code)
(@match_type == :include) == @countries.include?(country_code.upcase.strip)
end
end
# ================================ Script Code (do not edit) ================================
# ================================================================
# ReorderGatewaysCampaign
#
# Reorders gateways into the entered order
# ================================================================
class ReorderGatewaysCampaign
def initialize(desired_order_cb, desired_order_not_cb, country_sort)
@desired_order_cb = desired_order_cb.map { |item| item.downcase.strip }
@desired_order_not_cb = desired_order_not_cb.map { |item| item.downcase.strip }
@country_sort = country_sort
end
def run(cart, payment_gateways)
address = cart.shipping_address
return if address.nil?
#
country_selector = CountrySelector.new(
@country_sort[:country_code_match_type],
@country_sort[:country_codes],
)
if country_selector.match?(address.country_code)
payment_gateways.sort_by! { |payment_gateway| @desired_order_cb.index(payment_gateway.name.downcase.strip) || Float::INFINITY }
else
payment_gateways.sort_by! { |payment_gateway| @desired_order_not_cb.index(payment_gateway.name.downcase.strip) || Float::INFINITY }
end
end
end
# ================================ Script Code (do not edit) ================================
# ================================================================
#
# check country.
# ================================================================
CAMPAIGNS = [
ReorderGatewaysCampaign.new(DESIRED_GATEWAY_ORDER_CB, DESIRED_GATEWAY_ORDER_NOT_CB, COUNTRY_SORT),
]
CAMPAIGNS.each do |campaign|
campaign.run(Input.cart, Input.payment_gateways)
end
Output.payment_gateways = Input.payment_gateways
################################################
##### Hiding payment method by country #####
PAYMENT_METHOD = 'Bancontact'
ELIGIBLE_COUNTRY_CODES = ['BE']
if Input.cart.shipping_address and ELIGIBLE_COUNTRY_CODES.include?(Input.cart.shipping_address.country_code)
Output.payment_gateways = Input.payment_gateways
else
Output.payment_gateways = Input.payment_gateways.delete_if do |payment_gateway|
payment_gateway.name == PAYMENT_METHOD
end
end
PAYMENT_METHOD = 'KBC/CBC'
ELIGIBLE_COUNTRY_CODES = ['BE']
if Input.cart.shipping_address and ELIGIBLE_COUNTRY_CODES.include?(Input.cart.shipping_address.country_code)
Output.payment_gateways = Input.payment_gateways
else
Output.payment_gateways = Input.payment_gateways.delete_if do |payment_gateway|
payment_gateway.name == PAYMENT_METHOD
end
end
PAYMENT_METHOD = 'Belfius'
ELIGIBLE_COUNTRY_CODES = ['BE']
if Input.cart.shipping_address and ELIGIBLE_COUNTRY_CODES.include?(Input.cart.shipping_address.country_code)
Output.payment_gateways = Input.payment_gateways
else
Output.payment_gateways = Input.payment_gateways.delete_if do |payment_gateway|
payment_gateway.name == PAYMENT_METHOD
end
end
################################################
Sie müssen "DESIRED_GATEWAY_ORDER_CB", "DESIRED_GATEWAY_ORDER_NOT_CB"und "COUNTRY_SORT" entsprechend Ihren Anforderungen anpassen.
Dieser Code muss im Script editor hinzugefügt werden :
- Gehen Sie in Ihrer Shopify-Admin-Oberfläche zu Apps > Skript-Editor. Applications > Script editor.
- Klicken Sie auf Skript erstellen.
- Klicken Sie auf Zahlungsgateways.
- Wählen Sie „Leere Vorlage” und klicken Sie dann auf „Skript erstellen”.
- Löschen Sie im Abschnitt „Ruby-Quellcode” die Standardcodezeile: Output.cart = Input.cart
- Kopieren Sie ein Skript von dieser Seite und fügen Sie es in den Abschnitt „Ruby-Quellcode” ein.
- Passen Sie den Abschnitt „Anpassbare Einstellungen” des Skripts so an, dass es in Ihrem Shop funktioniert.
- Testen Sie Ihr Skript. Weitere Informationen finden Sie unter Testen und Debuggen von Shopify-Skripten.
- Nach dem Testen:
- Klicken Sie auf Entwurf speichern, um einen unveröffentlichten Entwurf des Skripts zu speichern, oder
- klicken Sie auf Speichern und veröffentlichen, um das Skript zu erstellen und zu veröffentlichen.
Wir empfehlen Ihnen dringend, Ihren Code zu testen, bevor Sie ihn in Produktion geben: