InPost Pay - PrestaShop (Widget 2.0) [ENG]
Introduction
This instruction presents the process of installing and configuring a plugin that enables the implementation of InPost Pay in a PrestaShop store with Widget 2.0 support.
Plugin:
Version 3.1.0 (20.02.2026) - compatible with PrestaShop version 9.x, 8.x, and version 1.7.6 onwards
Version 2.5.0 (20.02.2026) - compatible with PrestaShop version from 1.7.1 to 8.x
Changelog
On this page:
- 1 Introduction
- 2 Plugin:
- 2.1 Changelog
- 3 Requirements
- 4 Installation
- 5 Module configuration
- 5.1 Basic settings
- 5.1.1 Environment settings and API keys
- 5.1.1.1 Environment
- 5.1.1.2 Client ID
- 5.1.1.3 Client secret
- 5.1.1.4 POS ID
- 5.1.1.5 Merchant Client ID
- 5.1.2 Payment Methods Configuration
- 5.1.3 Order status configuration
- 5.1.4 Display a widget on the order confirmation page
- 5.1.5 Displaying the widget on the product card
- 5.1.6 Displaying the widget in checkout
- 5.1.7 Analytics data transfer
- 5.1.8 Order statuses
- 5.1.9 Order comments
- 5.1.10 Product Images Configuration
- 5.1.10.1 Product list image type
- 5.1.10.2 Product detail image type
- 5.1.10.3 Large image type
- 5.1.10.4 Default gallery type
- 5.1.11 Suggested products
- 5.1.12 Default promotion details page
- 5.1.1 Environment settings and API keys
- 5.2 Consents
- 5.2.1 Description displayed in the app
- 5.2.2 Consent requirement
- 5.2.3 Identifier
- 5.2.4 Consent address
- 5.2.5 Button text
- 5.3 Transport price
- 5.3.1 Courier
- 5.3.1.1 Delivery method mapping - Courier
- 5.3.1.2 Courier - cash on delivery
- 5.3.2 APM
- 5.3.1 Courier
- 5.4 GUI Settings
- 5.4.1 Basket page
- 5.4.2 Product page
- 5.4.3 Login page
- 5.4.4 Registration page
- 5.4.5 Order page
- 5.4.6 Basket view
- 5.4.7 Widget configuration
- 5.4.7.1 Widget display
- 5.4.7.2 Widget alignment
- 5.4.7.3 Widget background
- 5.4.7.4 Widget variant
- 5.4.7.5 Widget frame style
- 5.4.7.6 Size
- 5.4.7.7 Widget width
- 5.4.7.8 Widget margins
- 5.4.8 Product restrictions
- 5.4.8.1 Restricted action
- 5.4.8.2 Product type
- 5.4.8.3 Product brand
- 5.4.8.4 Attribute group
- 5.4.8.5 Characteristic
- 5.4.8.6 Category
- 5.5 Promoted products
- 5.6 Support tab
- 5.6.1 Plugin status
- 5.6.2 Retrieving plugin data and logs
- 5.6.3 Debugging mode
- 5.6.4 Extensions
- 5.6.4.1 Extension categories
- 5.7 Gift wrapping support
- 5.8 Discount coupons
- 5.1 Basic settings
Requirements
To ensure proper operation, it is necessary to install PrestaShop version not older than 1.7.1 and PHP version not older than 7.1.
Installation
Follow the steps below to install the plugin:
Download the zipped PrestaShop plugin from the InPost website and do not unzip it
Log in to the administration section of your store
From the menu on the left, select "Modules" and then "Module Manager".
At the top of the page, click "Upload a module".
Drag the previously downloaded module into the window that opens.
Module configuration
For initial configuration, go to the list of modules and click "Configure" next to the InPost Pay module. Once clicked, a form that allows you to configure the plugin will be displayed.
Basic settings
[!] No support for Widget 1.0 [!] - As of this version, support for Widget 1.0 has been terminated.
The "Settings" tab in the module configuration contains the basic module configuration settings.
Environment settings and API keys
The environment configuration contains the required fields that need to be filled out first when configuring the plugin.
Environment
The environment configuration contains three types of environment:
UAT - a test environment intended for developers
Sandbox - a test environment intended for merchants to test the plugin before production launch
Production - a production environment, to be used only if you have already tested the plugin on the sandbox environment
Widget display
You can set widget visibility in the module configuration.
There are two available options:
·everyone - the widget is visible to everyone who makes a purchase in the store, run only if the plugin has already been production-configured and tested
testers - the widget is visible only when the
showIzi=trueparameter is added to the page url. Example:https://mystore.pl?showIzi=true
Client ID
Required configuration field.
Client ID varies depending on the selected environment. To get a sandbox Client ID, please contact us using the contact form. To get a production Client ID, log in to the InPost merchant panel and complete the store details
Client secret
Client Secret varies depending on the selected environment. To get sandbox Client Secret, please contact us using the contact form. To get production Client Secret, log in to the InPost merchant panel and complete the store details.
POS ID
Required configuration field.
For sandbox environment, you will receive this value along with Client ID and Client Secret after filling out the form. For production environment, log in to the InPost merchant panel and retrieve the POS ID.
Merchant Client ID
Merchant Client ID is a value assigned by InPost. For sandbox environment, you will receive this value along with Client ID and Client Secret after filling out the form. For production environment, log in to the InPost merchant panel and retrieve the Merchant Client ID.
For the production environment, the Client ID, Client Secret, POS ID and Merchant Client ID access credentials are available in the InPost merchant panel and can be generated according to the instructions available in the article Merchant account configuration - production environment.
For the sandbox environment, you will receive the Client ID, Client Secret, POS ID and Merchant Client ID access credentials after filling out the form according to the instructions available in the article Merchant account configuration - sandbox environment.
Payment Methods Configuration
Settings related to the payment methods available for completing a purchase via the InPost application.
Enable all available payment methods
A toggle that enables all available payment methods without the need to select them manually from the list.
When set to "Yes", the InPost Pay application will display all methods available in the configuration of the InPost Merchant account (according to the agreement).
Configuration of payment methods
A dropdown list that allows manual selection of specific payment methods to be displayed in the InPost Pay application.
This list is active only when the toggle "Enable all available payment methods" is set to "No".
The methods selected here will be made available to the end user in the mobile app during order finalization.
Order status configuration
Once an order is created using InPostPay, you can assign the appropriate order statuses for them in your PrestaShop store.
Initial status for an order created through InPost Pay
The initial status for an order created through the InPost app. You can freely change the status by creating your order status in your PrestaShop panel.
Status for an order created through InPost Pay (cash on delivery)
The initial status for an order created through the InPost app for cash on delivery payment. You can freely change the status by creating your order status in your PrestaShop panel.
Status for an order paid through InPost Pay
Status for an order that was paid correctly by the customer in the InPost app. You can freely change the status by creating your order status in your PrestaShop panel.
Display a widget on the order confirmation page
You can display the widget on the order confirmation page through configurations in three hooks. Choose the one that best suits your store template. The widget must be visible at the top of the page immediately upon redirection to the order confirmation page.
Three hooks are available:
displayPaymentReturn - default hook in PrestaShop visible on the order confirmation page.
displayOrderConfirmation - default hook in PrestaShop visible on the order confirmation page
displayIziThankYou - hook of the InPostPay module that allows you to use the widget anywhere on the thank you page, if the default hooks do not do their job properly. It is required to manually implement such a hook in the
templates/checkout/order-confirmation.tplfile by adding{hook h="displayIziThankYou" order=$order}.
Displaying the widget on the product card
You can display the widget on the product card through configurations in two hooks. Choose the one that best suits your store template.
Two hooks are available:
displayProductActions - default hook in PrestaShop visible on the product page
displayProductAdditionaInfo - default hook in PrestaShop visible on the product page
displayIziProductButton – custom hook on the product page. To use this hook, it must be added in the frontend template, for example in:
themes/theme_name/templates/catalog/product.tplby adding{hook h=”displayIziProductButton” product=$product}.
Displaying the widget in checkout
You can display the widget in checkout through configurations in two hooks.
Two hooks are available:
displayCheckoutSummaryTop
displayIziCheckoutButton - manual implementation in the template file is required:
{hook h="displayIziCheckoutButton"}.
Analytics data transfer
The switch allows you to enable the function of analytics data collection and its transfer to InPost Pay. When activated, the module saves the values of the gclid, fbclid parameters and the user ID from the _ga cookie in cookies. This data is automatically assigned to the shopping basket and sent in the OrderDetails structure when the order is placed. This allows integration with Google Ads, Facebook Ads and Google Analytics campaigns (InPost Pay - Analytics - PrestaShop).
Order statuses
You can change the names of order statuses for orders placed through the InPost app.
If you do not change any order status then it will display the name depending on the relevant status configuration in PrestaShop.
Order comments
The module allows you to optionally put additional information in the order comments in case the customer chooses delivery to the APM:
The following parameters are available for use in the message template:
payment_type - code of the payment method selected by the customer
delivery_point - the number of the selected APM
delivery_codes - list of codes of additional services selected by the customer
is_pww - whether the customer selected the Weekend Delivery service (true/false)
is_cod - whether the customer selected the cash on delivery service (true/false)
The fragments corresponding to the parameter name placed in curly brackets ("{ }") are replaced by the parameter value - e.g. if the customer selected delivery to APM "ABC123", template:
Selected APM: {delivery_point}. will result in a message reading:
Selected APM: ABC123. Logical values are printed as "true" or "false", lists - delimited by square brackets ("[ ]").
Double curly brackets ("{{ }}") allow to print the calculated value of an expression - e.g. a template:
Weekend Delivery: {{ is_pww ? "yes" : "no" }}. will result in a message reading:
Weekend Delivery: yes. or
Weekend Delivery: no. depending on whether the customer has selected the corresponding optional service.
For detailed information on expression syntax, please refer to the documentation of the Expression Language component in the version appropriate for the PrestaShop version you are using (2.x for PS 1.7.0 - 1.7.3, 3.x for other versions of 1.7, 4.x for PS 8.x). The constant function is not available.
Product Images Configuration
This section allows you to define the size and scope of product images that will be sent to the InPost Pay application.
Product list image type
Specifies the image size used in list views — for example, in the cart, order summary, or recommendation sections.
A smaller size is recommended to ensure faster widget loading.
Product detail image type
Defines the image size used in the detailed product view within the InPost Pay application.
Helps maintain visual consistency with the product presentation in the store.
Large image type
Indicates the image size used for zoomed or enlarged product views (e.g., after clicking on the image in the app).
Useful for products that have high-resolution photos.
Default gallery type
Determines whether the InPost Pay application should receive only the main (cover) image or the entire product gallery.
Available options:
Cover image only – only the main product image is sent to the application.
Full gallery – all product images are sent to the application.
This is a global setting applied to all products, unless it is overridden for a specific product in its edit form (Options → InPost Pay Options tab).
Suggested products
In the module configuration, you can set the maximum number of suggested products to be displayed in the app in the shopping basket view.
When the value is empty, the number of products will be displayed without limit. Suggested products are retrieved from related products that are currently added to the shopping basket. We can find related products on the configuration page of a particular product in the "Basic settings" tab. Related products are the default feature of PrestaShop.
Default promotion details page
The page whose address will be used if no other address has been indicated in the discount configuration. If both the default page and the page assigned to the discount are absent, the promotion information will not be transferred to the mobile application.
Note: If you configure a group of stores with basket and order sharing enabled (so-called multistore with sharing), it is recommended that the discount codes be available in all stores belonging to the group. Restricting a discount code to only one store in such a configuration may result in its automatic removal from the shopping basket – for example, when updating the contents of the basket or after the customer visits another store in the same group where the code is not available. This can lead to the customer unexpectedly losing the discount just before finalizing the order.
Consents
In the "Consents" tab, we can add consents that will be displayed in the InPost app at the order placement stage. When adding a consent, there is an option to specify additional links to be displayed next to it in the mobile app. New consents can be added by selecting the "Add another consent" button.
Description displayed in the app
In the "Description displayed in the app" field – we enter the contents of the relevant consent to be displayed in the InPost app. This field is multilingual.
Consent requirement
Consent may be mandatorily required in order to place an order or it may be optional.
The field accepts the following values:
· Optional - consent is not required at the order placement stage
· Always required - consent is required every time at the order placement stage
· Required once - consent is required only once at the order placement stage.
Identifier
Unique link ID. In the consent description, the fragments created by adding the prefix "#" to the ID will be replaced by corresponding links.
Consent address
In the "Consent address" field, select the CMS page the link to which is to be included in the relevant consent in order to read information about the relevant consent.
Button text
The text that will be displayed on the consent link button. If the field is left blank, the text "link" will be displayed.
Transport price
The "Transport Price" tab contains configuration fields for mapping delivery methods, costs and delivery availability. Configurations are to be set separately for the "Courier" and "APM" services.
In order to ensure transparency and consistency of the customer experience, delivery costs must be identical in the online store interface and in the app. It is necessary to configure both systems to present users with the same delivery fee values for the respective methods.
Courier
Courier service configuration.
Delivery method mapping - Courier
The Carrier Mapping field is responsible for mapping the delivery method from PrestaShop for the Courier service. In case there is a separate delivery method for the Courier service and cash on delivery option, we perform the mapping of this service in the Carrier Mapping (Cash on Delivery) field.
Courier - cash on delivery
The Cash on Delivery (Additional cost) field contains the net value of the amount to be added if the service is selected.
APM
APM service configuration.
Delivery method mapping - APM
The Carrier Mapping field is responsible for mapping the delivery method from PrestaShop for the APM service. In a situation where there are separate delivery methods in PrestaShop for the additional options for delivery to APM: Cash on Delivery and Weekend Delivery, we perform the mapping in the corresponding fields Carrier Mapping (Cash on Delivery), Carrier Mapping (Weekend Delivery), Carrier Mapping (Cash on Delivery + Weekend Delivery).
APM - Cash on Delivery
The Cash on Delivery (Additional cost) field contains the net value of the amount to be added if the service is selected.
Cost for the APM - Weekend Delivery service
The Weekend Delivery (Additional Cost) field is responsible for the net cost of the APM - Weekend Delivery service. The VAT rate is taken from the configuration of the carrier mapped in the "APM" field.
Availability of the APM - Weekend Delivery service
The availability fields are responsible for the availability of the "APM - Weekend Delivery" service. "Available from" - "Available to" specifies the time period from which the weekend delivery service is to be available in the InPost app.
GUI Settings
The "GUI Settings" tab is responsible for configuring the display of the button widget on the product page and the in shopping basket. The view buttons are refreshed dynamically to present the current appearance of the button with the relevant settings. Remember to click on the "Save" button to save the current changes made in the configuration
Remember!
Display settings and button layout must be configured in accordance with the InPost Pay Implementation Standards.
Basket page
The button widget is displayed on the basket page and allows you to connect your basket to the InPost app and redeem it from within the app.
Product page
The button widget is displayed on the product page and allows you to connect your basket with the InPost application. Selecting the button simultaneously adds the product to the basket. It also allows you to limit the display of the basket pairing widget on product pages based on type, default category, manufacturer or attributes of the product.
Login page
The button widget is displayed on the login page under the login form.
Registration page
The widget is displayed on the registration page above the registration form.
Order page
The button widget is displayed on the order completion page above the order summary.
Basket view
The button widget is displayed on the basket view. It requires the use of a non-standard hook – it is necessary to implement {hook h="displayIziCartPreviewButton"} in the template.
Widget configuration
The fields for widget configuration on the basket and product pages are the same. However, the appearance of each button may differ and the module gives you the option to configure these fields separately for each placement.
Widget display
The module allows you to disable the display of that button on the product page and the basket page. In order to increase conversions, it is recommended to make the widget visible on the basket page as well as on the product card.
Widget alignment
Determines the orientation of the widget in the space available to it. If the template allocates a narrow space for the widget, this setting will not affect its appearance.
Available alignment options:
To the left - causes the widget to be shifted to the left side
Centered - causes the widget to be centered
To the right - causes the widget to be shifted to the right side
Widget background
Determines whether the widget is on a light or dark background in your store. The setting affects the font color, make sure it is visible.
The widget background includes two options:
Light - choose this option if the button is displayed on a light background
Dark - choose this option if the button is displayed on a dark background
Widget variant
The widget is available in 2 color variants. Choose the one that better matches the color scheme of your store.
The widget variant includes two options to choose from:
Yellow - choose this option if you want the button to be yellow in color
Black - choose this option if you want the button to have black color
Widget frame style
This configuration field specifies in what style the button should be displayed on the store page.
The frame style configuration includes three options:
Square - select this option if you want the button to have no rounded corners
Rounded - select this option if you want the corners to be slightly rounded
Round - select this option if you want the corners to be heavily rounded.
Size
The "Size" field is only available for Widget version 2.0. In Widget version 1.0 there was no option to set a predefined size. Instead, there were fields for setting a minimum value for the width and height of the widget (see Widget width).
This setting allows you to adjust the size of the widget to best fit the layout of the page and provide a comfortable user experience.
Available options:
Very small - compact format, ideal for limited spaces.
Small- a subtle size that works well in minimalist layouts.
Medium - a versatile size, providing good visibility and intuitive use.
Large - a more prominent widget, better visible on the page.
Extra large - maximum size, providing the highest readability and user experience.
Widget width
The fields for setting the minimum width and height are only available in Widget 1.0. In newer versions from Widget 2.0 onward, there is no way to customize them, instead predefined sizes (see Size) are available.
The module makes it possible to set the following for the widget:
maximum width value - a value between 220 and 1200.
In the field we enter only numeric values without the "px" suffix.
Widget margins
If the button is misaligned or "touches" other UI elements on the store page, you have the option to specify the margins for the widget.
All margin fields take a numeric value without the "px" suffix.
Product restrictions
Allows to configure the conditions when the widget will not be displayed on product pages.
Restricted action
Defines how the module should respond to products subject to restriction rules (e.g., based on category, brand, feature, or product type).Allows blocking the ability to place an order in the mobile application if the cart contains a product that meets any of the following conditions.
Available options:
Do not display the widget
The widget does not appear on the product page or in the cart for products that meet the defined restrictions.
The user cannot interact with the module for this product.Do not allow ordering
A restricted product cannot be added to the cart or purchased.
A message informing about the unavailability of the product for purchase may appear on the product page.Do not allow courier delivery
The product can be ordered, but the courier delivery method will be disabled or hidden during checkout.
In the mobile application and on the cart page, the product will be marked as unavailable for courier delivery.Do not allow delivery to a parcel locker
The product can be added to the cart, but InPost parcel locker delivery will be disabled.
In the InPost Pay application, the customer will not see this delivery option for the restricted product.
Product type
The configuration field specifies the types of products for which the widget will not be displayed.
The product type configuration has six options:
Check all fields - selects all the following fields.
Standard products - a basic product type that has no options or variants to choose from
Products with combinations - products that have different variants, such as sizes, colors, or other characteristics that affect price and availability
Customizable products - products that may be customized by the customer, e.g. by adding custom engravings or prints
Product bundles - a group of products sold together as a bundle, often with a lower price than buying individual products separately
Virtual products - products that do not physically exist, such as downloads, subscriptions or online services.
Product brand
This configuration field specifies the brand of products for which the widget will not be displayed.
The number of displayed variants depends on the individual number of brands in the store.