Hide Affirm for certain SKUs (Shopify Plus only)

❗️

Retirement of checkout.liquid

As of August 2024, Shopify retires the checkout.liquid file for customizing payment methods. 
Instead, you can use the Affirm pay-over-time messaging Shopify app to control the appearance of the Affirm payment option at checkout for your Shopify store. For details, see Manage Affirm payment customizations for Shopify stores.

Overview

Merchants using Shopify Plus can hide Affirm as a payment option when the customer's cart contains items with certain SKUs.

Configuration

1. Go to the Shopify script editor.
2. Click Create Script.
3. Choose Payment Gateway for the script type.
4. Choose Blank Template.
5. Click Create Script.
6. In the Title box, enter Affirm Hide Based on SKU as the script name.
7. Click Code to open the Ruby source code console.
8. Paste the following code into the console. Replace SKU-1234 with your SKUs and add as many as you need (this is a comma separated list).

available_gateways = Input.payment_gateways
cart = Input.cart
 
SKUS_TO_HIDE = ["SKU-1234", "..."]
 
cart.line_items.each do |item|
  item.variant.skus.each do |sku|
    if SKUS_TO_HIDE.include? sku
      available_gateways = available_gateways.delete_if do |payment_gateway|
        payment_gateway.name == "Affirm - Pay Over Time"
      end
    end
  end
end
Output.payment_gateways = available_gateways

9. Click Run Script.
10.. Click Save and Publish.

Tags

Add a tag to all the products that you want to hide Affirm as a payment method, Ex: hide-affirm. To hide Affirm as a payment option when the customer's cart contains items with certain product tags:

1. Go to the Shopify script editor.
2. Click Create Script.
3. Choose Payment Gateway for the script type.
4. Choose Blank Template.
5. Click Create Script.
6. In the Title box, enter Affirm Hide Based on SKU as the script name.
7. Click Code to open the Ruby source code console.
8. Paste the following code into the console and replace hide-affirm with the tag you created for the products you want to hide Affirm. You can add as many as you need (this is a comma-separated list).

available_gateways = Input.payment_gateways
cart = Input.cart
  
SKUS_TO_HIDE = ["hide-affirm", "..."]
  
cart.line_items.each do |item|
  item.variant.product.tags.each do |tag|
    if SKUS_TO_HIDE.include? tag
      available_gateways = available_gateways.delete_if do |payment_gateway|
        payment_gateway.name == "Affirm - Pay Over Time"
     end
    end
  end
end
Output.payment_gateways = available_gateways

9. Click Run Script.
10. Click Save and Publish.