Configuring Affirm

Learn how to configure and add Affirm as a payment option on Shopify.

🚧

Affirm promotional messaging

Make sure you've set up Affirm promotional messaging before moving forward.

Install Affirm

1. Sign in to your Shopify account and go to Settings > Payments.

2422

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

776

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

2038

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.

1256
  1. 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.