> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sezzle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WooCommerce

<Note>
  Sezzle [Express Checkout](#express-checkout) now available on `Sezzle Woocommerce Payments` plugin version 6.1.x or later.
</Note>

This guide explains how to add Sezzle as a payment option on your WooCommerce website, enabling customers to use Sezzle at checkout.

<iframe width="560" height="315" className="rounded-xl" src="https://www.youtube.com/embed/12PBN0ZlXSg?si=jiTzoJiCgx1K5ouL" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />

### Install the Sezzle WooCommerce Extension

1. Log in to your website's Wordpress admin
   * Ex: `your-website.com/wp-admin`

     <Frame>
       <img src="https://mintcdn.com/sezzle/GHl_qCHt6kQvq9Ws/images/docs/plugins/woocommerce/1-login.png?fit=max&auto=format&n=GHl_qCHt6kQvq9Ws&q=85&s=eb6df7a0cb4506f165451b2943c8ed0a" alt="1 Login Pn" width="2880" height="1498" data-path="images/docs/plugins/woocommerce/1-login.png" />
     </Frame>
2. In the left sidebar, click `Plugins` > `Add New`
3. Search for `Sezzle`
4. Click `Install Now`

   <Frame>
     <img src="https://mintcdn.com/sezzle/GHl_qCHt6kQvq9Ws/images/docs/plugins/woocommerce/2-install-sezzle.png?fit=max&auto=format&n=GHl_qCHt6kQvq9Ws&q=85&s=4b6536f9470996bfdd7f79af05e0cb32" alt="2 Install Sezzle Pn" width="1868" height="646" data-path="images/docs/plugins/woocommerce/2-install-sezzle.png" />
   </Frame>
5. Click `Activate`

   <Frame>
     <img src="https://mintcdn.com/sezzle/GHl_qCHt6kQvq9Ws/images/docs/plugins/woocommerce/3-activate-sezzle.png?fit=max&auto=format&n=GHl_qCHt6kQvq9Ws&q=85&s=ae449572c0e997a8e775e56d6fdf799a" alt="3 Activate Sezzle Pn" width="1866" height="647" data-path="images/docs/plugins/woocommerce/3-activate-sezzle.png" />
   </Frame>

### Admin Configuration

1. In the left sidebar, click `WooCommerce` > `Settings`
2. Select the `Payments` tab

   <Frame>
     <img
       src="https://mintcdn.com/sezzle/GHl_qCHt6kQvq9Ws/images/docs/plugins/woocommerce/4-woo-payments-sezzle.png?fit=max&auto=format&n=GHl_qCHt6kQvq9Ws&q=85&s=4b8f69911f5fc3d1fda117bf6b41c496"
       alt="4 Woo Payments Sezzle
   Pn"
       width="3414"
       height="1672"
       data-path="images/docs/plugins/woocommerce/4-woo-payments-sezzle.png"
     />
   </Frame>
3. Click the `Manage` button for Sezzle

   <Frame>
     <img
       src="https://mintcdn.com/sezzle/fjA0OJWQHmMitPfc/images/docs/plugins/woocommerce/5-sezzle-settings.png?fit=max&auto=format&n=fjA0OJWQHmMitPfc&q=85&s=3cb33ea4b64243ab1ca395e27b9d38eb"
       alt="5 Sezzle Settings
   Pn"
       width="1194"
       height="1560"
       data-path="images/docs/plugins/woocommerce/5-sezzle-settings.png"
     />
   </Frame>
4. Check the `Enable/Disable` checkbox for enabling Sezzle
5. Please ensure only US and Canada are selected as Sezzle operates only in `US` and `Canada`

   <Note>
     * Sezzle operates only in `US` and `Canada`
     * Be sure to check this option
   </Note>
6. Set Merchant ID as received from the Business section of [Sezzle Merchant Dashboard](https://dashboard.sezzle.com/merchant)
7. Copy your Private Key and Public Key from your [Sezzle Merchant Dashboard](https://dashboard.sezzle.com/merchant/settings/apikeys), and paste them into the corresponding fields
8. Optional: Check the `Create order post checkout completion` checkbox for enabling WooCommerce order creation only after Sezzle checkout is successfully completed
   <Note>
     This will only work with standard classic checkout, not with checkout blocks
   </Note>
   <Warning>
     Enabling this feature may result in higher uncaptured orders, especially if your store offers add-ons such as shipping insurance. Please refer to the [Order Fulfillment](#important-note-on-order-fulfillment) section for more information.
   </Warning>
9. Set `Minimum Checkout Amount` if you want to restrict Sezzle based on a minimum order total
10. Set the `Transaction Mode` as `Live` for production and `Sandbox` for sandbox testing mode
11. Check the `Show Sezzle widget in product pages` checkbox for adding widget script in the Product Display Page, which allows enabling Sezzle Widget Modal in PDP
    * After saving if you don't see the widget in PDP, contact [merchantsupport@sezzle.com](mailto:merchantsupport@sezzle.com). If you are using Elementor, you may need to [install the script manually](#manual-widget-installation)
12. Configure the installment plan widget under Installment Plan Widget Configuration settings
13. Check the `Enable Installment Widget Plan in Checkout page` checkbox for enabling installment widget plan
14. Set the `Order Total Container Class Name`
    * Default is `woocommerce-Price-amount`
15. Set the `Order Total Container Parent Class Name`
    * Default is `order-total`
16. Check the `Enable Logging` checkbox for logging Sezzle checkout related data
    * This is helpful for debugging issues, if encountered. See (logs)\[#logs] for more details.
17. Click `Save Changes`

### Express Checkout

<Note>
  Currently, the Express Checkout feature is only available for select merchant IDs. Please contact Sezzle Merchant Support if you wish to participate in the beta testing.

  Merchant ID and API keys must be entered and saved before this feature will become visible in your Sezzle settings.
</Note>

<Warning>
  Express checkout is currently only compatible with standard/classic checkout, and requires your store to have a minimum of 1 shipping option configured for all US and Canada zones.

  It is not currently compatible with:

  * checkout blocks
  * stores who are any combination of the following:
    * digital products only
    * in-person products only
    * buy-online-pick-up-in-store (BOPIS) only
    * Shipping protection or other selection that would alter order total during checkout
    * Upsell app that would alter order total post-checkout

  Note: coupon codes can still be used with Express Checkout, but must be applied on the merchant's site before the shopper proceeds to Sezzle.
</Warning>

1. Check the `Enable Express Checkout in Cart Page` checkbox to enable Sezzle express checkout on your cart page and mini-cart.
2. Optional: Select the desired `Express Checkout Mode`: `Pop Up` or `IFrame`
   <Note>
     **popup** mode will work out-of-the-box. No additional configuration is required to use **popup**. Sezzle currently recommends **popup** mode.
     **iframe** mode will not work properly without first contacting Sezzle. For security reasons, Sezzle must enable **iframe** for your domain(s). To have it enabled, please submit a request with your Sezzle Merchant UUID and a list of domains to be allowed per environment (production and sandbox). For example, [*please enable uat1.mysite.com, uat2.mysite.com in sandbox and www.mysite.com, mysite.com in production*](http://www.mysite.com).
     The integration for **popup** and **iframe** are identical, aside from the mode. Using **popup** mode will expedite your development. Upon completing the integration, if **iframe** is a requirement, then contact Sezzle to enable your domain(s) and switch the mode to **iframe**.
   </Note>

### Validate

Step through a [test checkout](/docs/api/test-cards#checkout-testing) to validate the integration is properly installed.

### Important Note on Order Fulfillment

After the shopper completes checkout, orders will be validated to ensure the Sezzle authorized total matches the order total in Woocommerce prior to payment capture. Uncaptured orders should remain in the `Pending Payment` stage in WooCommerce. However before shipping the order, ensure that the Order in the WooCommerce interface show the order status is `Processing` and reflects the Note `Payment approved by Sezzle`. When these notes exist, Sezzle successfully captured the payment and you will be paid for the order.

Do not fulfill orders where the Sezzle payment was not captured. Please provide the (logs)\[#logs] to Sezzle Merchant Support for further investigation.

### Logs

1. From your WP admin, go to WooCommerce > Status
2. Click the Logs tab
3. In the `All Sources` dropdown, select `sezzlepay` then click `Filter`
4. Select the files for all dates for the investigation
5. In the `Bulk Actions` dropdown, select `Download` then click `Apply`

### A Guide to Order Reference IDs

| Setting                                                            | Format                           | Description                            |
| ------------------------------------------------------------------ | -------------------------------- | -------------------------------------- |
| Standard checkout with`Create Order Post Checkout Completion`: ON  | 6903bd4e9a370                    | unique ID; order ID # not yet assigned |
| Standard checkout with`Create Order Post Checkout Completion`: OFF | 6903bd072eef3-103                | unique ID + order ID #                 |
| Express checkout with`Create Order Post Checkout Completion`: ON   | 7373a6360061102dcc43e03fc473da28 | Cart Hash; Order Key not yet assigned  |
| Express checkout with`Create Order Post Checkout Completion`: OFF  | wc\_order\_rq9mAmVMhMfdh         | Order Key                              |

### Manual Widget Installation

<Note>
  #### Using Elementor?

  Within the Elementor Page Builder, drag and drop the Custom HTML block type into the site footer, adding the widget script snippet into the code box, then save and publish changes.
</Note>

1. In your WooCommerce account, go to `Appearance`, and then `Theme Editor`
2. Click `Theme Footer` to the right of the page
3. In the Content text area, insert the script on the last line of the code, and click `Update File`

   * The script below is what you will need to insert:

   ```
   <script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid={sezzle_merchant_uuid}"></script>
   ```

   <Note>
     * You will need to update the  in the above script to reflect your store’s UUID.
     * You can find your UUID in your Sezzle dashboard, under `Settings`, and then `Business`.
     * When you enter your UUID, please make sure that you remove the  surrounding it.
   </Note>

### Troubleshooting

If testing was unsuccessful, review the following:

1. Sezzle WooCommerce extension is the most updated version
   1. Go to `Plugins` > `Installed Plugins`
   2. Click `View Details` next to the `Sezzle WooCommerce Payment`
   3. If there is an option to upgrade, do so now
2. Sezzle extension is activated
   1. Go to `WooCommerce` > `Settings`
   2. Ensure the switch is turned `On`
3. Merchant ID was entered correctly
4. API Keys were entered correctly

   <Tip>
     It is recommended to use the Copy icon in the [Sezzle Merchant Dashboard](https://dashboard.sezzle.com/merchant/settings/apikeys) to avoid typos or extra spaces
   </Tip>
5. If you have multiple accounts with Sezzle, the merchant ID and API Keys are tied to only one URL
6. Show Sezzle widget in product pages box is checked
7. Widget script is present on your website and reflects the Merchant ID from your [Sezzle Merchant Dashboard](https://dashboard.sezzle.com/merchant/settings/business)
   1. Go to a product page on your website
   2. Right-click then select `Inspect`
   3. In the `Elements` tab, search for `widget.sezzle`

### Uninstall Steps

1. Go to `Plugins` > `Installed Plugins`
2. Under `Sezzle WooCommerce Payment`, click `Deactivate` then click `Delete`
