Affirm
- Overview
- Installation & Setup
- Promotional Messaging
- Template Changes
- Product Restrictions
- Payment Method Rules
- Affirm Checkout Requirements
- Order Management
- Enhanced Analytics
- Migration Guide
Overview
Affirm is a Buy Now Pay Later platform offering customer financing for online purchases. This new integration brings Affirm's smart pay-over-time technology to Miva, giving you more tools for increasing online sales and reaching new customers.
This integration delivers enhanced analytics, promotional messaging support, and provides in-admin support for Void/Capture/Refund transactions.
When a customer pays with Affirm, they complete the loan application, get approved in real-time and can complete checkout in Miva. Merchants are paid in full up front for the item by Affirm and Customers pay for the item over installments (sometimes monthly, sometimes more frequent) which include interest payments. Affirm handles all the collection of payments from the customer and any collecting for any defaults on the loan, if applicable.
Installation and Setup
Affirm can be found under Payment Modules. Click Settings -> Modules -> then filter by Payment. Click Install for Affirm to install it to your store.
Once installed you'll be taken to the admin setting screen where you can add your API key and configure the Affirm Settings:
Admin Settings Overview
Enable/Disable – This is a toggle that allows someone to easily turn on or turn off the module. This toggle should control the payment method showing up during checkout on OSEL as well as the output of the "As Low As" JS throughout the site.
Mode (Drop Down) – There are two options in this drop down: Sandbox & Production. Changing this will change the API endpoint URLs
Checkout Type (Drop Down) : There are two options in this list:
- Modal – This allows Affirm to Open in a Modal windows in the Miva checkout.
- Redirect – This will make it so the user is take off-site to Affirms website to complete the checkout.
Public Key (text input) – This is the Public API key which the merchant will get from their Affirm account.
Private Key (text input) – This is the private API key which the Merchant will get from their Affirm account. This value should be stored encrypted in Miva and not reflected back in the admin.
Payment Mode (Drop Down) – Two options, Auth Only or Auth+Capture.
- Auth Only – This will perform an authorize only when the order is placed. Merchants will need to perform the capture when the item ships via the Miva admin. The capture action is tied to the loan start date. This method should be used if items have a delayed ship time.
- Auth+Catpure – Both the authorization & capture are done at the time of purchase. This makes the loan start date be that of the order date.
Enhanced Analytics – This is a checkbox to enable or disable Affirms Enhanced Analytics feature. This is default to checked. With this checked, additional JavaScript is output on the order invoice to send all order details to Affirm.
Important: Under Domain Settings in Miva, ensure you have "Link to All Pages using HTTPS" checked. This is default for all new stores but if this is unchecked, the call back Affirm makes to create the order will fail.
Promotional Messaging
Affirm leverages promotional messaging banners across the site to let the customer know Affirm is accepted as a payment method and give them a preview of the monthly payments.
When clicked additional details are brought up in a modal. This is all purely informational. You cannot purchase with Affirm on the product or basket pages.
Variant Price Change Behavior
If the price of a product is changed due to attributes or Inventory Variants, the price passed to Affirm's JavaScript is automatically updated to this new price.
Default Messaging Placements
It's recommended to show the Promotional Messaging always directly below the product price and as many places as possible.
Below are the recommended placements of the promotional messaging for best conversion rates.
Storefront / Ready Theme Product Lists
Category Page
Product Page
Basket Page
Promotional Messaging Controls
Anytime you use the promotional messaging on a page, there are admin UI controls to allow you to control the look and feel of the promotional messaging.
Note: These controls are specific to each page so the display of the messaging can be customized depending on which page it appears on.
Settings Configuration Options
Page Type (drop down) - Values: homepage, landing, search, category, product, cart, payment, banner
Logo Type (drop down)- Values: default, text, symbol
Color (Drop Down) – Values: default, black, white
Show "Learn More" link (Checkbox) – If Check "Learn More" Text is output after price messaging.
Template Changes
For new stores created on 10.03.00 or later, there are no template changes required. Shadows has all the default code to show the Affirm Promotional Messaging on Storefront, Category, Product, Search, Product List and Basket pages.
For stores upgrading to 10.03.00, you will need to manually make the template changes.
Step 1 – Create the Affirm ReadyTheme Content Section. Under User Interface -> Theme Components -> Content Sections. The purpose of this content section is to centralize the promotional messaging logic into a single location.
Code: mvaffirm_configuration
Name: Affirm Configuration
Template Code
IMPORTANT: If you are on Miva version 10.10.00 or later, you will need to add the following code instead of the code above:
If your store upgrades to Miva version 10.10.00, and has the Affirm module installed with the Affirm Configuration content section, it will NOT be updated when the store upgrades. To update the content section, navigate to User Interface>Theme Components>Content Sections and select Affirm Configuration and then repalce the old code with the new code shown immediately above this paragraph.
Step 2 – Add the content section to each pageEach page you wish the promotional message to show will need to get the content section added to it as well as the mvaffirm_aslowas item assigned.
The ReadyTheme item tag should be placed right below the price fields on storefront, category, search, product list and product pages. On Basket its recommended is be placed near the checkout button
Note: If you wish to see the default placements in Shadows its recommended you create a template branch and apply the latest version of Shadows to that branch. This will allow you to see the default placement for any of the pages.
Affirm Component Module
The component feature of the Affirm module is what controls the output of the As Low As Promotional Messaging. There are two values for the param field you can pass into it:
Product Restrictions
Sometimes its required to prevent Affirm's "As Low As" messaging to show for a product because it's a product type Affirm does not allow. If you sell products that you need to prevent someone to use Affirm as a payment method, you can use Miva's product level shipping method rules to prevent Affirm from being used as a payment method if this product is in the cart.
Under the product details page in the Miva admin there is a Tab Group for Payment Rules
Here you can select "Limit Payment Methods" and check all the payment methods you wish to allow for this product. In this case, Affirm should be unchecked to prevent it from showing up as a payment method for this product.
In this case, the Affirm Promotional Messaging will automatically be disabled for this product and if this item is in the basket, Affirm will not be presented as a payment method.
These product level setting can also be imported & exported under Data Management
Payment Method Rules
When the affirm module is installed a new Payment Method of Affirm is created under Setting -> Payment Rules.
This allows you to do things such as set a minimum basket subtotal to use Affirm, change the order in which is shows during checkout or change the display name the customer sees during checkout.
Minimum Basket Subtotal
It's common for each merchant to have a minimum basket subtotal required for customers to use Affirm. If you have a minimum basket sub-total it can be set under Shipping Method Rules
Modify Payment Method Display Name
The default method name a customer will see for Affirm during checkout is "Affirm"
You can use Shipping Method Rules to update this to whatever text you wish to use:
Affirm Checkout Requirements
Affim has some requirements to use it as a payment method.
US Only – Today Affirm is limited to customers with a US Shipping or Billing Address. If a customer has a non-US bill to or Ship to, Affirm will not show up as an available payment method.
Note: Affirm is working on supporting Canada in a future release.
No Gift Cards – You cannot use Affirm to purchase gift cards. If your site sells gift cards you need to restrict these products from being purchased with Affirm.
Currencies Supported – Currently only USD is supported but CAD is planned for a future release of Affirm.
Order Management
Affirm acts like a regular credit card payment method in admin and you can perform operations on Affirm orders including:
No Partial Capture Support
Affirm does not yet support partial captures. If you attempt to do a partial capture in Miva you will get the following error:
Auto Capture on Shipped
If desired, you can use Miva Order Workflows Payment Actions to auto capture Affirm orders when they get marked as shipped.
Enhanced Analytics
Enhanced analytics is a setting that is on by default but can be disabled in the module's settings. If enabled, the following data is sent to Affirm for every order:
Currency
OrderID
PaymentMethod
Total
Affirm Migration Guide
This Affirm integration will cause the old Affirm integration/module to be depreciated. If you are currently using the existing Affirm module it is recommended, you update to this built in version as soon as possible.
Here are the steps to migrate:
- Confirm you're using the old/depreciated Affirm integration. Navigate to Domain Settings -> Modules and search for Affirm. It will have a module code of "affirm"
Old Module
- Create a new template branch for "Affirm Migration"
- Install the new Affirm module and add your API keys.
- In the Affirm branch, remove the template code for the old affirm module. Use the template Search and Replace module to find:
<mvt:item name="affirm" param="showmonthly" >
and remove it from the page templates.
- In the Affirm Branch search for
<mvt:item name="affirm" param="confirm" />
(should be on INVC page) and remove it.
- In the Affirm branch, make the required template changes to show the Promotional Messaging on the pages you wish to show it. This includes setting the page level settings for how each "As Low As" message displays
- Setup any Product Restrictions required for Gift cards or restricted products.
- Setup any Minimum Basket Restrictions
- Assign the mvaffirm_analytics item to the INVC page if you wish to use Enhanced Analytics
- Test Affirm integration on the Template Branch to verify the promotional messaging is showing is all locations and you're able to load affirm as a payment method during checkout
- Once complete, Merge the "Affirm Migration" branch into production to push live.
- Once live setup a shipping method rule to prevent the old affirm payment method from displaying. This can be done by checking the box to "Exclude This Method Unless Permitted by Products" and don't assign any products.
- You want to leave the old Affirm module active for 30 days to allow you to capture/void/refund any recent loans for it. After 30 days, you can go into Domain Settings -> Modules and de-activate the old affirm module. You won't be able to fully uninstall the old affirm module as it will be linked to existing orders and Miva will prevent it from being uninstalled.