Magento 2
This guide describes how to integrate Sezzle into your Magento 2 website so that you can provide Sezzle as a payment option for your customers.
Sezzle's Magento 2 extension is certified in the marketplace and can also be downloaded from github.
After integrating Sezzle, your site will:
- offer Sezzle as a payment option on the checkout page.
- refund Sezzle payments from your Magento 2 order management system.
- display Sezzle promotional messaging.
- authorize and capture payments.
- offer instant and delayed capture.
Integration Steps Overview
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don't have an account.
- Make sure you have the following Sezzle details handy.
- Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Magento 2 Extension
In the following section, [magento]
refers to your Magento 2 root directory.
Using the Composer
Go to the Magento 2 installation directory, then run the below commands:
composer require sezzle/sezzlepay
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:clean
Manual Method
- Download the .zip file from Sezzle's github repository.
- Unzip the file
- Navigate to
Magento
[Magento]/app/code/
usingSFTP
orSSH
. - Copy
Sezzle
directory from unzipped folder to[Magento]/app/code/
. - Open a terminal window and run the following command to enable
Sezzle
:php bin/magento module:enable Sezzle_Sezzlepay
- Run the
Magento
setup upgrade:php bin/magento setup:upgrade
- Run the
Magento
Dependencies Injection Compile:php bin/`magento` setup:di:compile
- Run the
Magento
Static Content deployment:php bin/magento setup:static-content:deploy
- Log in to
Magento
Admin and navigate toSystem > Cache Management
. - Flush the cache storage by selecting
Flush Cache Storage
.
You can now directly navigate from the Configuration Page to get signed up for Sezzle
. To do so, you need to click on Signup for Sezzle
which will redirect you to the Sezzle Merchant Signup
Page. If you have the details already, you can simply click on I've already set up Sezzle, I want to edit my settings
to move ahead.
- In your Magento 2
[Magento]/app/code/
directory, create a directory namedSezzle
. - Inside the new
Sezzle
directory, create a directory namedSezzlepay
. - Inside the new
Sezzlepay
directory, extract the files from this repository. - Open the command line and run these commands:
php bin/magento module:enable Sezzle_Sezzlepay
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
- Log in to your Magento 2 admin and go to
System/Cache Management
. - Flush the cache storage by selecting
Flush Cache Storage
.
Upgrade the Magento 2 Extension
Using the Composer
- Open terminal and navigate to
Magento
root path. - Execute the following commands in the terminal:
composer update sezzle/sezzlepay
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:clean
Configure Sezzle
Payment Configuration
- In the
Magento
admin site, navigate toStores > Configuration > Sales > Payment Methods > Sezzle > Payment Settings
- Select the Payment Mode:
Live
, orSandbox
for testing. - Enter your
Merchant UUID
,Public Key
andPrivate Key
. These can be found at the Sezzle Merchant Dashboard. - Select the
Payment Action
.Authorize only
will only authorize payment and requires that the payment be captured later.Authorize and Capture
will perform both in a single step. Important: See Authorize Only vs Authorize and Capture for details about the difference between the two choices. - Set the
Merchant Country
as per the origin. - Set
Min Checkout Amount
to restrict Sezzle payment method below that amount. - Set
Payment from Applicable Countries
toSpecific Countries
. - Set
Payment from Specific Countries
toUnited States
orCanada
as Sezzle is currently available for US and Canada only. - Select
Enable Customer Tokenization
.Yes
prompts the customer to allow their account to be tokenized. See Customer tokenization - Set
Sort Order
to manage the position of Sezzle in the checkout payment options list. - Save the configuration and clear the cache.
In-Context Configuration
If you want to host Sezzle checkout in a modal iframe or pop-up window, you have to enable in-context checkout. To do this:
- Set
Enable In-Context Solution
toYes
to enable In-Context Checkout. - Set
In-Context Checkout Mode
toIFrame
orPopUp
Settlement Report Configuration
- Set
Enable Settlement Reports
toYes
to enable the Settlement Reports Dashboard. - Set
Range
to a value based on which you want to fetch the Settlement Reports. - Set
Enable Automatic Syncing
to fetch the Settlement Reports asynchronously. (Note that this requirescron
to be enabled.) - Set Schedule and Time of Day for the automatic sync to run.
Widget Configuration
-
Set
Enable Widget in PDP
toYes
when adding the widget script to the Product Display Page, helping to enable the Sezzle payment widget modal in the PDP. -
Set
Enable Widget in Cart Page
toYes
when adding the widget script to the Cart Page, helping to enable Sezzle payment widget modal in the Cart Page. -
Set
Enable Installment Widget in Checkout Page
toYes
if you want to show the Sezzle installment plan widget under the Sezzle payment option on the Checkout Page. -
Set
Path to Price Element
to define where in the Checkout Page the order total text value will be detected.
Developer Configuration
- Enable the log tracker to trace the Sezzle checkout process.
- Set
Send Logs to Sezzle
toYes
to send the logs to Sezzle on a periodic basis. (Note that this requires cron to be enabled.) - You may download the latest logs by clicking on
Sezzle Log
. - Save the configuration and clear the cache.
Your store is now ready to accept payments through Sezzle.
Validate
Step through a test checkout to validate the integration is properly installed.
Capture Payment
- If
Payment Action
is set toAuthorize and Capture
, the capture will be performed instantly from the extension after the order is created and validated inMagento
. - If
Payment Action
is set toAuthorize
, you will need to capture the payment manually from theMagento
admin using the following steps: - Go to the order and click on
Invoice
. - Verify your input in the
Create Invoice
page and click onSave
to create the invoice. - This will automatically capture the payment in Sezzle.
Refund Payment
- Go to
Sales > Orders
in theMagento
admin. - Select the order for which you want to refund the payment.
- Click on
Credit Memo
and verify your input on theCreate Credit Memo
page. - Save it to initiate the refund in Sezzle.
- Check the
Order Status
in theSezzle Merchant Dashboard
.Refunded
indicates that payment has been fully refunded whilePartially Refunded
indicates that the payment has been partially refunded.
Release Payment
- Go to
Sales > Orders
in theMagento
admin. - Select the order for which you want to release the payment.
- Click on
Void
and confirm your action. - Check the
Order Status
inSezzle Merchant Dashboard
.Deleted due to checkout not being captured before expiration
indicates that the payment has been fully released. Magento does not support partial releases.
Order Verification in Magento Admin
- Log in to
Magento
admin, navigate toSales > Orders
, and select the order to verify. - If Order Status is
Processing
andTotal Paid
equalsGrand Total
, then the payment was successfully captured by Sezzle. - If Order Status is
Pending
andTotal Paid
does not equalGrand Total
, then payment is authorized but yet not captured. - If the Order Status is
Closed
, then payment has been refunded. - If the Order Status is
Canceled
, then payment has been released.
Order Verification in Sezzle Merchant Dashboard
- Log in to
Sezzle Merchant Dashboard
, navigate toOrders
, and select the order to verify. Approved
status indicates that payment was successfully captured by Sezzle.Authorized, uncaptured
indicates that payment was authorized but yet not captured.Refunded
status indicates that the payment was refunded.Deleted due to checkout not being captured before expiration
status indicates that either the payment was not captured before the authorization expired, or the payment has been released.
Customer Tokenization Details
- Log in to
Magento
admin, navigate toCustomers > All Customers
, and select the customer to view tokenization details. - If the customer is tokenized, the
Sezzle
tab will appear. - The
Status
,Token
, andToken Expiration
will appear on the tab.
Settlement Reports
- Log in to
Magento
admin and navigate toReports > Sales > Sezzle Settlement
. A list of recent Settlement Reports will be shown. - To make a quick sync, enter the
From
andTo
Date and click onSync
. - Click on
Download
from theAction
column to download a Settlement Report. - To view details of a particular Settlement Report, click on
View
from theAction
column. You may also download the Settlement Report details from the Settlement Report view. - You can download the Settlement Report in
CSV
orExcel
format.
Troubleshooting
If testing was unsuccessful, review the following:
- Sezzle-Magento2 extension is the latest version.
- Sezzle extension is enabled.
- Go to
System
>Configuration
>Sales
>Payment Methods
>Sezzle
and ensureEnabled
dropdown is set toYes
.
- Go to
Merchant UUID
was entered correctly.- API Keys were entered correctly.
- It is recommended to use the Copy icon in the Sezzle Merchant Dashboard to avoid typos or extra spaces.
- Cache Storage was flushed.
- Widget script is present on your website and reflects the
Merchant UUID
from your Sezzle Merchant Dashboard.- Go to a product page on your website.
- Right-click then select
Inspect
. - In the
Elements
tab, search forwidget.sezzle
.
- If all the above checks failed, the merchant can forward the
<magento root>/var/log/sezzlepay.log
to the Sezzle team atmerchantsupport@sezzle.com
. It is always recommended to send thesystem.log
andexception.log
for better tracing of issues.