InPost integration (Paczkomaty)
The InPost integration covers shipment tracking. You store the ShipX API token, type the tracking number on the order, and the order screen shows the live status and event history pulled from InPost. Label creation is planned but is not part of the plugin today, so nothing here generates a shipment in ShipX.
Enabling the module
Section titled “Enabling the module”Go to Polski > Modules and turn on Fulfillment. The module is off by default, and while it is off the tracking fields, the tracking column and the customer facing tracking blocks are not registered at all.
ShipX credentials
Section titled “ShipX credentials”The InPost credentials live in the polski_pro_shipping option:
| Key | Description |
|---|---|
inpost_enabled |
Must be true, otherwise the live lookup is skipped |
inpost_api_token |
Authorization token from the InPost Manager panel (manager.paczkomaty.pl) |
inpost_organization_id |
Stored, but not used by the tracking lookup |
inpost_environment |
Stored, but not used. Lookups always go to the production ShipX host |
There is no rendered settings screen for these fields yet. Save them through the PRO settings REST route:
PUT /wp-json/polski-pro/v1/settingsContent-Type: application/jsonX-WP-Nonce: {wp_rest nonce}
{ "shipping": { "inpost_enabled": true, "inpost_api_token": "eyJhbGciOi..." }}The route requires the manage_woocommerce capability. The saved payload replaces the whole polski_pro_shipping option, so send the keys of your other carriers in the same request if they are already configured.
WP-CLI works too:
wp option patch update polski_pro_shipping inpost_api_token "eyJhbGciOi..."wp option patch update polski_pro_shipping inpost_enabled 1The token is passed in the Authorization: Bearer {token} header with every ShipX request. Read access to tracking is enough, no shipment creation permissions are needed.
Tracking number on the order
Section titled “Tracking number on the order”On the order edit page, under the shipping address, the Shipment Tracking block provides three fields:
| Field | Description |
|---|---|
| Carrier | InPost, DPD, DHL, Poczta Polska or Other |
| Tracking number | Entered by hand, for example 6230000123456789 |
| Tracking URL | Leave empty and it is built from the carrier and the number |
For InPost the generated link is:
https://inpost.pl/sledzenie-przesylek?number={tracking_number}The fields are saved with the order. Nothing fills them in automatically, the number comes from wherever you created the shipment (InPost Manager, a courier app, a packing slip).
Refresh live tracking
Section titled “Refresh live tracking”Once a tracking number or URL is saved, a Refresh live tracking button appears in the same block, above the live preview. It clears the cached response and reloads the order screen, which triggers a fresh call to:
GET https://api-shipx-pl.easypack24.net/v1/tracking/{tracking_number}The response is cached for 10 minutes in a WordPress transient, so repeated views of the order do not hit the API again. The preview shows the carrier status, the carrier name, the tracking number, a Track shipment link and up to eight of the most recent shipment events with date and location.
There is no scheduled status poll and no automatic order status change. Live data is fetched when an order screen renders with an expired cache, or when you press the button.
Where tracking is shown
Section titled “Where tracking is shown”- Orders list - a “Tracking” column with the carrier, the number, the live status and a track link
- Order edit page - the fields plus the live preview described above
- My Account > Orders - a “Track shipment” row action, and a “Shipment Tracking” section under the order details
- Customer emails - the same tracking block after the order table, in customer emails only, not in the admin copies
Fulfillment statuses
Section titled “Fulfillment statuses”The module registers three WooCommerce order statuses after “Processing”: packed, shipped and delivered. On the orders list they are available as bulk actions:
| Bulk action | Result |
|---|---|
| Change status to Packed | Order marked as packed, “Your order has been packed” email |
| Change status to Shipped | Order marked as shipped, “Your order has been shipped” email |
| Change status to Delivered | Order marked as delivered, “Your order has been delivered” email |
Each email repeats the carrier, the tracking number and the tracking link when they are filled in. These statuses are set by you, they are not driven by the InPost status.
Not available yet
Section titled “Not available yet”Label generation is planned but not shipped. The plugin contains no code that creates a shipment in ShipX, so there is no Generate, Download or Print label button, no bulk label action, no ZIP download and no parcel size setting. The Paczkomat picker map at checkout and a dedicated InPost shipping method are also not implemented, and no polski_pro/inpost/* filters or actions exist. Select the Paczkomat with a separate plugin or a checkout field if you need one today.
Troubleshooting
Section titled “Troubleshooting”The Shipment Tracking block does not appear The Fulfillment module is off, or the order has neither a tracking number nor a tracking URL saved. The live preview and the refresh button only render once one of them is present.
The number and the link show, but there is no live status
inpost_enabled is false or inpost_api_token is empty, so the provider is treated as unavailable and the lookup is skipped. For carriers other than InPost, DPD, DHL and Poczta Polska only the link is built, there is no live lookup at all.
“Refresh live tracking” changes nothing
The token has expired or is invalid, and the failed response leaves the status empty. Test it outside WordPress: curl -H "Authorization: Bearer {token}" https://api-shipx-pl.easypack24.net/v1/tracking/{number}. Also check that the number itself is a ShipX tracking number.
Next steps
Section titled “Next steps”- Report issues: GitHub Issues
- ShipX API documentation: https://docs.inpost24.com/