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.
Updated 4 months ago