sezzle / sezzlepay
Sezzle extension for Magento 2
Installs: 62 992
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 7
Forks: 5
Open Issues: 4
Type:magento2-module
pkg:composer/sezzle/sezzlepay
- dev-production
- 7.0.25
- 7.0.24.x-dev
- 7.0.24
- 7.0.23
- 7.0.22
- 7.0.20
- 7.0.19
- 7.0.18
- 7.0.17
- 7.0.16
- 7.0.15
- 7.0.14
- 7.0.13
- 7.0.12
- 7.0.11
- 7.0.10
- 7.0.9
- 7.0.8
- 7.0.7
- 7.0.6
- 7.0.5
- 7.0.4
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 6.0.6
- 6.0.5
- 6.0.4
- 6.0.3
- 6.0.2
- 6.0.1
- 6.0.0
- 5.5.10
- 5.5.9
- 5.5.8
- 5.5.7
- 5.5.6
- 5.5.5
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.0
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.1
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.1.1
- 4.1.0
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.7.1
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.0
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.2.0
- 2.0.0
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.0
- dev-renovate/mysql-9.x
- dev-renovate/mysql-5.x
- dev-MERCHANT-1963-reports
- dev-remove-log-cron
- dev-7.0.24-tech-review
- dev-MERCHANT-1873
- dev-MERCHANT-1860-expired-auths
- dev-7023-resubmit
- dev-claude-suggestions
- dev-add-docker-setup
- dev-7.0.23-lint
- dev-MERCHANT-1111
- dev-MERCHANT-1548-ff
- dev-MERCHANT-1334
- dev-express-checkout-feature
- dev-MERCHANT-1335-on-click-initialize-express-checkout-flow-magento
- dev-MERCHANT-1334-magento-render-express-checkout-button-on-cart-page
- dev-express-config-option
- dev-remove-no-interest
- dev-whitelist-iframe
- dev-MERCHANT-1186
- dev-MERCHANT-1124
- dev-release
- dev-readme
- dev-developerMD
- dev-MERCHANT-750-void-cancel
- dev-pipeline
- dev-MINT-802
- dev-staging
- dev-renovate/mysql-8.x
- dev-sitikantha.mallik-config-changes
- dev-PLAT-752
- dev-PLAT-620
- dev-PLAT-155
- dev-hotfix-3.1.7.1
- dev-33-plat-392-change-the-dollar-to-cents-conversion-process
- dev-13-cron-job-for-capturing-non-captured-orders
- dev-11-add-sezzle-column-in-order-grid-magento
- dev-8-shipment-track
- dev-5-add-merchant-signup-link-in-configuration
This package is auto-updated.
Last update: 2025-12-16 21:02:42 UTC
README
The following documentation is written for Sezzle internal developers only. Merchant developers should refer to README.md for instructions.
Prerequisites
Docker
All Sezzle developers should already have completed Docker setup for Sezzle-Compose (although Sezzle-Compose will not be used for Magento setup).
MAMP
- Download MAMP
- Unzip the downloaded file, then drag & drop to the
Applicationsfolder
PHP
open ~/.zshrc- Add the following, and save:
export PATH=/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php8.3.14/bin:$PATH- Note: php version should correspond to the one selected in MAMP in the later step
source ~/.zshrc
Enable mod_rewrite for Apache
This section will resolve the issue where stylesheets aren't loading for test environment
cd /Applications/MAMP/conf/apacheopen .- Secondary-click on
httpd.confand selectOpen With>TextEdit.app - Search the document for
#LoadModule rewrite_module modules/mod_rewrite.soand remove the#at the beginning of the line
Composer
brew install composer
OpenSearch
In Terminal, run the following:
docker run -d --name opensearch \
-p 9201:9200 -p 9601:9600 \
-e "discovery.type=single-node" \
-e "DISABLE_SECURITY_PLUGIN=true" \
opensearchproject/opensearch:2.7.0
Initial setup
Install Magento to MAMP
In Terminal, run the following:
cd /Applications/MAMP/htdocs
mkdir magento && cd magento && mkdir 248 && cd 248
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.8 .
Configure MAMP
- Open MAMP app
- Select
Web server:ApacheandPHP version:8.4.1 - Click Preferences
- In the
Portstab, setApache PortandNginx Portto8888andMySQL Portto8889 - In the
Servertab, selectUse MySQL server:8.0.40 - For
Document Root, clickChooseand navigate toApplications › MAMP › htdocs › magento › 248 > pub. ClickChooseto save. - Click
OK - Click
Start
Create Database
Ensure other MySQL instances are not running.
- Open DBeaver or equivalent
- Click
New Database connection - Select
MySQL, then clickNext Portshould be8889UsernameandPasswordshould each beroot- Click
Finish - Secondary-click on the newly created connection and select
Rename - Enter
mampthen clickOK - Click the connection to expand, then Secondary-click on
Databasesand selectCreate New Database - Enter
Database name:magentothen clickOK
Configure Magento
In Terminal, run the following:
php -d memory_limit=-1 bin/magento setup:install \
--base-url=http://127.0.0.1:8888 \
--db-host=127.0.0.1:8889 \
--db-name=magento \
--db-user=root \
--db-password=root \
--admin-firstname=admin \
--admin-lastname=admin \
--admin-email=admin@admin.com \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--search-engine=opensearch \
--opensearch-host=localhost \
--opensearch-port=9201 \
--opensearch-index-prefix=magento2 \
--opensearch-timeout=15 \
--backend-frontname=admin
- Should result in
[SUCCESS]: Magento installation complete.
At this point, you should be able to open 127.0.0.1:8888 and 127.0.0.1:8888/admin but not log in
In Terminal, run the following:
php -d memory_limit=-1 bin/magento module:disable Magento_TwoFactorAuth Magento_AdminAdobeImsTwoFactorAuth
At this point, you should be able to open 127.0.0.1:8888/admin and log in, but Sezzle will not be available in Payment Methods
Sample Data
In Terminal, run the following: php -d memory_limit=-1 bin/magento sampledata:deploy
- When prompted for credentials, use
Magento 2 Keysin 1Password (Platform Integrations Team vault) - Alternatively, generate new keys. (credentials are
Magento Partner Accountin 1Password Dev vault - 2FA sent to magento@sezzle.com, submit an ITSD request to obtain access) When prompted to store credentials, sayY - Should result in
Sample data modules have been added via composer.
Install Sezzle Extension
In Terminal, run the following:
cd app && mkdir code && cd code && mkdir sezzle && cd sezzle && git clone ssh://git@gitlab.sezzle.com:10022/Frontend/magento2AppFrontends.git sezzlepay
cd ../../..
Note: Getting Unknown module(s) error during module:enable? Try this instead:
For older Magento versions:
cd vendor && mkdir sezzle && cd sezzle && git clone ssh://git@gitlab.sezzle.com:10022/Frontend/magento2AppFrontends.git sezzlepay
cd ../..
At this point, if you run the Compile command cluster below, you should be able to see Sezzle as an option on 127.0.0.1:8888/admin, but you will not be able to add API keys
Compile
In Terminal (from magento/248), run the following:
php -d memory_limit=-1 bin/magento module:enable Sezzle_Sezzlepay
php -d memory_limit=-1 bin/magento setup:upgrade
php -d memory_limit=-1 bin/magento setup:di:compile
php -d memory_limit=-1 bin/magento setup:static-content:deploy -f
php -d memory_limit=-1 bin/magento indexer:reindex
php -d memory_limit=-1 bin/magento cache:clean
At this point, you should be able to see sample products on the storefront
Sezzle Configuration
- Navigate to
127.0.0.1:8888/admin - Log in with Username
adminand Passwordadmin123 - Go to
Stores>Configuration>Sales>Payment Methods>Additional Payment Solutions - Next to
Sezzle, clickConfigure - Click
I've already setup Sezzle, I want to edit my settings - Change
EnabledtoYes - Enter
Public KeyandPrivate Key- Can use any valid sandbox Sezzle API key pair for testing (recommended: Sezzle Shopify Test Store)
- The API keys validation only confirms that a merchant was found with the provided public and private keys. It does not validate the shop url is correct, hence how merchants re-use API keys across multiple stores.
- This creates a nightmare for accounting, because the orders are recorded under the one account without distinction of site origin.
- It also affects widgets, since the API Keys are used to generate the UUID in the widget snippet. Not only do we not know that widgets are installed on the other stores, but config management also gets messy.
- Click
Save config
Populating the store
This section is in case of error generated Sample Data
Creating a product
- Go to
Catalog>Products - Click
Add Product - Required Fields:
Enable Product:YesProduct Name: (any)Price: (any)Quantity: (any)Category:Default CategoryVisibility:Catalog, Search
- Click
Save
Adding Products to Home Page Template
- Go to
Content>Pages - On the line for
Home Page, clickSelect>Edit - Expand
Contentthen clickEdit with Page Builder(a red line will appear where it will be inserted) - Under
Layout, dragRowto the working area (under the existing snippet) - Under
Add Content, dragProductsto inside theRow - Hover over
Products, then clickSettings(gear icon) - Select
CategoryasDefault Category, then clickSave - Click
Save as Template, name the template, then clickSave - Click
Apply template, then on the template you just saved, clickApply - Click
OK - Click the
Minimize Windowicon (diagonal arrows, pointing inward) - Click
Save
Local Testing
- Open Docker Desktop and start
opensearchcontainer - Open MAMP, update
Document root, then clickStart- Click
Preferences. - In the
Servertab underDocument Root, clickChooseand navigate toApplications › MAMP › htdocs › magento › 248 > pub. ClickChooseto save, then clickOK
- Click
- Open DBeaver and ensure
mamp localhost:8889database is connected - Navigate to
127.0.0.1:8888/admin - All development work will be completed inside
/Applications/MAMP/htdocs/magento/248/vendor/sezzle/sezzlepayas you would normally in~/go/src/sezzle/magento2AppFrontends- Gitlab project magento2AppFrontends will mirror push to Github magento2 project for merchant use.
- Use
php -d memory_limit=-1 bin/magento setup:upgradeif any changes to Database - Use
php -d memory_limit=-1 bin/magento setup:di:compileif making changes to dependencies - Use
php -d memory_limit=-1 bin/magento setup:static-content:deploy -fif making changes to html, css, or js files
Releasing Updates to Merchants
Code Changes
- Update CHANGELOG.md
- Update
versionnumber incomposer.json - Delete previous version zip file
open ..- Select all contents of magento2AppFrontends and compress, renaming the zip file
sezzle_sezzlepay-{version}.zip - Merge to production
Magento Submission
- Log in to https://commercedeveloper.adobe.com/ using
Magento Partner Accountentry in 1Password - Click
Extensions - Click
Extension Name:Sezzlewhere Platform isM2 - Click
Submit a New Version - Enter
Adobe Commerce Version Numberper the same version reflected incomposer.json - Unless a feature must be released at a specific date, select
Requested Launch Date:On Approval - Click
Continue - Click
Attach Package. Navigate to and select the zipped project folder, then clickOpen - Select
Adobe Commerce Version Compatibility: (all) - Copy entry from
CHANGELOG.mdto theRelease Notesfield - Click
Submit
Github Release Tag
Gitlab magento2AppFrontends project will automatically mirror to Github sezzle-magento2 project. Once that has occurred, the following steps must be completed manually. If this step is not completed, merchants will not be able to install the latest version via Composer
- Go to https://github.com/sezzle/sezzle-magento2/releases
- Click
Draft a new release - Click
Choose a tag, then enter the new version, following the existing format, then clickCreat a new tag... on publish - Enter
Release Title:Version {version} - In
Decribe this release, copy + paste the CHANGELOG.md entry- No need to add attachments, the zip file will be added automatically.
- Ensure
Set as the latest releaseis checked, then clickPublish release
External Resources
https://experienceleague.adobe.com/en/docs/commerce-operations/installation-guide/composer
https://isuruuy.medium.com/configuring-magento2-using-mamp-server-7fbedc35297d
https://www.mageplaza.com/devdocs/how-install-magento-2-mac-osx.html
Allowlisting Merchants
Under In-Context Settings, merchants will see instructions to Make sure you are approved by Sezzle for the InContext Checkout Solution to work. If they wish to select Checkout Mode: iframe, they should contact us to perform the following:
In sezzle-checkout/deploy/values, update CONTENT_SECURITY_POLICY under both default and card for each applicable environment by appending the merchant's URL(s) to the value within the frame-ancestors section of the string.
Merchant team has been added to CODEOWNERS for this type of change. If checkout team review is needed, post the MR in the #code-review-checkout Slack channel for approval.
If they select Checkout Mode: popup, this is not necessary.