Overview
This guide walks you through configuring Affirm at checkout in Shopify.
Affirm promotional messaging
Make sure you've set up Affirm promotional messaging before moving forward.
1. Install Affirm in Shopify
1. Sign in to your Shopify account and go to Settings > Payments.


2. In the Alternative Payments section, click the Choose alternative payment button.


3. On the Alternative payment providers page, select Affirm.


4. Check the Use test mode checkbox for testing in our sandbox.
5. Enter the public_api_key
and private_api_key
you retrieved from your Affirm merchant dashboard
6. Click Activate. Affirm is now a payment option in Shopify.


2. Review your order management functions
Processing orders (authorize, void, refund, and partial refund) in Shopify updates the order status in the Affirm dashboard. While you can process orders in the dashboard, we strongly recommend using Shopify to keep order status synced with Affirm. For more information on processing orders in Shopify, refer to their documentation.
3. Add the Confirmation Page function
When a customer completes their purchase, you can send their order and product information to Affirm for A/B testing, which will help you optimize your site. Send this information by adding the Confirmation Page function to your payment confirmation page. We only require orderId, total, productId, and quantity for A/B testing.
Click here for all the Confirmation Page function parameters.
To add the confirmation page function, go to Settings > Checkout > Order Processing > Additional scripts and add the code below. Replace public_api_key
with your public API key found in the merchant dashboard.
<script>
_affirm_config = {
public_api_key: "YOUR_PUBLIC_KEY",
script: "https://cdn1.affirm.com/js/v2/affirm.js"
};
(function(l,g,m,e,a,f,b){var d,c=l[m]||{},h=document.createElement(f),n=document.getElementsByTagName(f)[0],k=function(a,b,c){return function(){a[b]._.push([c,arguments])}};c[e]=k(c,e,"set");d=c[e];c[a]={};c[a]._=[];d._=[];c[a][b]=k(c,a,b);a=0;for(b="set add save post open empty reset on off trigger ready setProduct".split(" ");a<b.length;a++)d[b[a]]=k(c,e,b[a]);a=0;for(b=["get","token","url","items"];a<b.length;a++)d[b[a]]=function(){};h.async=!0;h.src=g[f];n.parentNode.insertBefore(h,n);delete g[f];d(g);l[m]=c})(window,_affirm_config,"affirm","checkout","ui","script","ready");
affirm.ui.ready(function(){
affirm.analytics.trackOrderConfirmed({
"orderId": "{{ order.id }}",
"total": "{{ order.total_price }}"
}, [{
{% for item in order.line_items %}
"productId": "{{ item.sku }}",
"quantity": "{{ item.quantity }}",
{% endfor %}
}]);
});
</script>
Required function parameters
Order object
Attributes |
---|
paymentMethod string The payment method chosen by the customer (e.g., Visa). Maximum 150 characters. |
orderId string Your internal unique identifier representing the order. Maximum 500 characters. |
total string The total amount of the transaction, including tax and shipping, stated in USD cents (e.g., $100 = 10000). |
Product object
Attributes |
---|
productId string Your internal unique identifier representing the product, such as the SKU or an internal database identifier. Maximum 500 characters. |
quantity string The quantity of the purchased product. |
Updated 5 months ago
Related topics
Nice work! Now you can start testing your integration with your Technical Account Manager. You may also want to learn more about processing transactions in Shopify, and some additional features for Shopify Plus users.
Testing & deploying in Shopify |
Processing transactions in Shopify |
Hide Affirm for certain SKUs (Shopify Plus only) |
Set a price floor for checkout (Shopify Plus only) |