nowpost / module-click-collect
NowPost Click & Collect shipping method for Magento 2 — PUDO pickup point selection at checkout
Package info
github.com/NowPost-NG/nowpost-plugin-magento-2
Type:magento2-module
pkg:composer/nowpost/module-click-collect
Requires
- php: >=8.1
- giggsey/libphonenumber-for-php: ^9.0
- magento/framework: *
This package is not auto-updated.
Last update: 2026-05-14 12:02:50 UTC
README
A Magento 2 shipping method module that integrates NowPost's PUDO (Pick-Up/Drop-Off) network into your store's checkout. Customers select a convenient pickup point on an interactive map instead of providing a delivery address — reducing failed deliveries and improving customer satisfaction.
Features
- Pickup Point Selection: Customers choose a NowPost pickup point directly in the checkout shipping step
- Interactive Map Widget: Powered by NowPost Maps — shows nearby pickup points with live availability
- Dynamic Shipping Fee: Fee is automatically calculated and applied based on the selected pickup point
- Order Synchronization: Orders are automatically sent to the NowPost API on completion
- Admin Visibility: Pickup point details and sync status displayed in the order admin view
- Email Integration: Pickup location included in order confirmation emails
- Validation: Enforces pickup point selection before payment (configurable)
Requirements
- Magento: 2.4.6 or higher
- PHP: 8.1 or higher
- NowPost Account: API token required (obtain from the NowPost partner portal)
Installation
⚠️ IMPORTANT: The two installation methods below are MUTUALLY EXCLUSIVE. Use one method only. Installing via both Composer AND manual copy will cause class conflicts and crash your Magento store.
See INSTALL.md for full installation instructions.
Quick start (Composer):
composer require nowpost/module-click-collect
bin/magento setup:upgrade && bin/magento cache:flush
Manual Installation:
For stores without Composer, use the build script to create a distributable package:
cd apps/magento-plugin
./build-plugin.sh
This generates a .tar.gz archive in the dist/ directory. Extract it into your Magento app/code/ directory and run the setup commands above.
Configuration
- Go to Stores > Configuration > Sales > Shipping Methods > NowPost Click & Collect
- Configure the following settings:
| Setting | Description | Default |
|---|---|---|
| Enabled | Enable/disable the shipping method | No |
| Widget Token | Your NowPost API token (required) | — |
| Title | Display name shown to customers at checkout | Pickup via NowPost |
| Production Mode | Toggle between staging and production API | No (staging) |
| Require Selection | Force customers to select a pickup point before payment | Yes |
| Accent Color | Brand color for the widget UI (hex, e.g. #8b5cf6) |
— |
| Logo URL | URL to your logo for the widget header | — |
| Map Marker URL | URL to a custom map marker icon | — |
| Initial Zoom | Default map zoom level (1–20) | 11 |
Shipping Zones
The NowPost shipping method must be added to your Magento shipping zones:
- Go to Stores > Configuration > Sales > Shipping Methods
- Enable NowPost Click & Collect and configure your token
- The method will appear at checkout for applicable zones
Local E2E Debug Scripts
Use these local helpers to place a test order and inspect sync state quickly.
Place a NowPost checkout order (Playwright):
cd apps/magento-plugin
node scripts/place-nowpost-order.playwright.mjs --headless=false --baseUrl=http://localhost:8080
This prints a single machine-parseable line:
NOWPOST_E2E_RESULT:{"success":true,"increment":"000000004","orderSuccessUrl":"http://localhost:8080/checkout/onepage/success/","error":null}
Check order sync details by increment:
cd apps/magento-plugin
./scripts/check-nowpost-sync.sh 000000004
This queries the sales_order NowPost fields from Docker container nowpost-magento and prints recent NowPost lines from Magento system.log and debug.log.
Support
For issues with the NowPost API or widget, contact support@nowpost.com.
For module issues, refer to the INSTALL.md troubleshooting section.
Part of the NowPost platform. Proprietary license.