Direkt zum Inhalt
Shopify: Zahlungsmethoden neu ordnen

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 :

  1. Gehen Sie in Ihrer Shopify-Admin-Oberfläche zu Apps > Skript-Editor. Applications > Script editor.
  2. Klicken Sie auf Skript erstellen.
  3. Klicken Sie auf Zahlungsgateways.
  4. Wählen Sie „Leere Vorlage” und klicken Sie dann auf „Skript erstellen”.
  5. Löschen Sie im Abschnitt „Ruby-Quellcode” die Standardcodezeile: Output.cart = Input.cart
  6. Kopieren Sie ein Skript von dieser Seite und fügen Sie es in den Abschnitt „Ruby-Quellcode” ein.
  7. Passen Sie den Abschnitt „Anpassbare Einstellungen” des Skripts so an, dass es in Ihrem Shop funktioniert.
  8. Testen Sie Ihr Skript. Weitere Informationen finden Sie unter Testen und Debuggen von Shopify-Skripten.
  9. 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:

Profile picture for user admin Stephane K

Écrit le

Il y'a 1 Jahr
Modifié
Il y'a 2 Wochen
Lädt...
WhatsApp
Support Habeuk : +237 694 900 622
WhatsApp Send