Customer service and order packaging on your phone 📦
The module connects your store to the InPost Von Halsky sales platform. It checks which products meet the platform’s requirements, lists them as offers, automatically syncs price and inventory changes, and imports paid orders into the PrestaShop dashboard—with the correct carrier and status.
You’ll know what’s blocking a listing before you publish it
The readiness check scans the entire catalog and groups issues: missing EAN, description too short, no photo, unmapped category. One click narrows the list down to a single issue.
Prices and inventory levels sync with the store
Changes in the PrestaShop catalog are detected and sent to the platform at set intervals—separately for prices and separately for stock levels.
Orders are sent to PrestaShop
Orders from the platform are imported as standard PrestaShop orders, and deliveries to package lockers and via courier are assigned to your carriers.
Availability verification
- Rules enforced by the platform include: EAN (8, 12, 13, or 14 digits with a valid check digit), SKU (product code), name, at least one publicly available photo, VAT rate, unit, shipping days, a description with at least 100 characters of plain text, a price greater than zero after markup, a mapped category with required attributes, and an existing InPost product card for the given EAN. The GPSR manufacturer’s phone number, if provided, must be in international format.
- Filters. Colored labels, such as “No EAN” with a product count, indicate how many products have a given issue; clicking the label filters the list.
- On-the-spot corrections. Expand “What to add” next to the product, enter the missing value, and save. The correction applies only to the listing and does not change the catalog.
- Warnings, not blocks. Zero stock, missing weight or dimensions, and a missing EAN for a product with a brand and manufacturer number are displayed as warnings.
Listing Templates
- Title template using variables: product name, reference, EAN, manufacturer, default category, and variant values (e.g., “Red, XL”).
- Description source: full description, short description, or fixed text.
- Price: a markup or discount (either percentage-based or fixed-amount), or the price displayed in the store to a selected customer group (set in PrestaShop’s special prices).
- Shipping time and the option to synchronize prices and product stock levels from a specific template.
- Override settings for a product. The name, description, and shipping days can be set for an individual product—the override always takes precedence over the template.
- A template can be assigned to a mapped category; other products use the default template.
- Offer field mapping. For each field, you select a primary value source and a fallback source when the primary is empty—including for GPSR data (manufacturer and responsible person information, safety instructions, CE marking, batch number) as well as return and complaint policies.
- Category mapping with a recursive option for subcategories and mapping of additional attributes required by certain Von Halsky categories. The tree uses colors to indicate mapped, unmapped, and inherited categories.
- InPost product card preview. For each product, you can see what the platform’s catalog contains for its EAN: brand, category, unit, dimensions, and attributes—with a note if the card’s category differs from your mapping.
- Offer for each variant. Each product combination is a separate offer with its own price and inventory status.
- Single or batch listing. “List” sends a single product immediately and displays the response on the screen. “List Selected” adds the package to the task queue, and you can view its progress on the queue screen.
- Confirmed values only. The “Price Sent” and “Quantity Sent” columns update only after confirmation by the platform, so they show what InPost actually has on hand.
- Minimum stock level. When stock falls below the threshold, the listing is closed to prevent listing a quantity that may not be available.
- Closing, reopening, and unpinning each listing from the list of listings.
- No listing remains active indefinitely. A listing that is still awaiting platform verification after one minute is retrieved directly from the platform, so a silent rejection is visible in the dashboard.
- Automatic import according to a schedule and an “Import Now” button. An order is created in PrestaShop after the order is accepted on the platform, and each order from the platform corresponds exactly to one order in the store.
- Separatecarrier mapping for parcel lockers (APM) and couriers (COURIER). An order with a shipping method but no assigned carrier is not imported with a “matched” carrier—it displays a clear error message and a banner in the order list.
- Two-way status mapping. Platform statuses are mapped to order statuses in the store, and acceptance or rejection is sent back to the platform when the order reaches the selected status. Optionally, new orders can be accepted automatically.
- Manual product matching when an order line item cannot be automatically assigned.
- An email is sent to the store for every new order from the platform. Order notifications to the buyer are disabled by default because the buyer’s address in these orders is an InPost intermediary address.
- Platform panel on the order page in the admin panel: order number on the platform, status, and delivery method.
1
Connect
Enter the organization_id, client_id, and client_secret from the InPost merchant panel and log in via InPost. The module displays the required credentials and the redirect URL to be entered on the InPost side.
2
Set up cron
The ready command is in the “Task Queue” tab. The queue screen shows whether the cron job is running.
3
Map
Categories, offer templates, order statuses, and shipping methods.
4
Check and Post
Run a readiness check, fill in any gaps, and issue the order. From this point on, prices, inventory levels, and orders are handled by the queue.
| Without the module | With the module | |
| You’ll know which products the platform will reject before you list them | ❌ | ✅ |
| Bulk listing via a task queue | One by one | ✅ |
| Updating prices and inventory levels | Manually, if at all | ✅ According to a schedule |
| Closing the offer when stock is low | ❌ | ✅ |
| Orders from the platform as PrestaShop orders, with your carriers | Manually transferred | ✅ |
| Order acceptance and rejection sent to the platform | In a separate dashboard | ✅ |
| Log of every API call with CSV export | ❌ | ✅ |
- The “Logs and Diagnostics” screen features connection and queue status tiles, a log of API calls and errors, and CSV export for support tickets.
- Clear API error messages. When the platform rejects a field, the dashboard shows which one and why.
- Warnings until status or carrier mappings are complete—before the first order fails to import.
- OAuth2 Authorization Code with PKCE —the flow that InPost requires for merchant integrations.
- Encrypted client_secret and access tokens in the database.
- The cron token is passed in the request header by default, so it does not appear in URLs or server logs (for hosting control panels that only accept the URL, there is an option to include the token in the URL).
- GDPR tools. The module’s data is included in the export and deletion of customer data in PrestaShop, and retention periods limit the storage time for order data and logs.
- PrestaShop 8 (tested on 8.0.3), PHP 7.4 with the cURL extension.
- An InPost Von Halsky merchant account with API access credentials.
- A cron job that triggers the module every minute—it handles order creation, synchronization, and import.
- Module dashboard in Polish.
- Multistore: configuration, listings, and orders are managed separately for each store.
Can I list a product that isn’t yet in the InPost catalog?
No. The platform does not accept new product listings via the API, so the product’s EAN must already exist in the InPost catalog. The module checks this during the readiness verification and marks such products as not ready, so you won’t find out about it only after your listing is rejected.
Which category will my listing be assigned to?
If an InPost product card exists for the EAN, the platform assigns the offer to the card’s category. The module displays the card’s category next to the product and highlights it if it differs from your mapping.
Does the module work without a cron job?
Listing a single product and “Import Now” work on demand. Bulk listing, price and inventory synchronization, and periodic order import require a cron job. The queue screen shows whether the cron job is running and alerts you if it stops.
Can I sell product bundles?
No. Bundles (packages) are always skipped because the platform does not support them.
Will buyers receive order emails from PrestaShop?
Not by default. The buyer’s email address in orders from the platform is an InPost relay address, so the module blocks these messages until you enable them. The store receives its own notification for every new order from the platform.
Can I test the integration before going live?
Yes. In the configuration, you can select the InPost environment: staging or production.
### Added
* function 1
* function 2
Technical requirements
Technical Requirements
- PHP 7.1 - 8.x
- Server extension ionCube Loader
- PrestaShop Importer only: PHP libxml version > 2.9.3
- PrestaShop Facebook Integrator only: PHP 7.2 or higher
- PrestaShop VAT Validator only: PHP SOAP
Support = Updates + HelpDesk
You get 90 days (3 months) access to the complete PrestaShow support package.
Module updates
Modules will inform you about available updates. Read the changelog and perform a 1-click module update directly from your store.
HelpDesk panel
This is the panel where we will provide you with help. On HelpDesk you can report problems, order free module installation and updates, and order modifications and custom programming work.
Extend support
After support expires, you can use the module without any restrictions. You can extend your support access at any time you need it.
Knowledge Base & FAQ
Free forever
The knowledge base is available to everyone. You will find module documentation as well as instructions, videos and answers to frequently asked questions.
Lifetime license for the module
- You can use the module without limitation in 1 store = 1 domain.
- You can use an additional domain, e.g. for developer copy.
- For a small fee you can change the domain for the module yourself.
Additional domains for Multistore
- All our modules support PrestaShop Multistore.
- Supporting unlimited domains for PrestaShop Multistore requires purchasing multistore support for the module.
Modifying the code
- The module code related to the integration with the store and the design (.tpl, .css, .js) has open source code and you can modify it freely.
- The module's source code (.php) is encrypted with ionCube, and modifying it will void the warranty.
Demo
Demo - test the module
- This module does not have a demo store
No entries yet.











No customer reviews for the moment.