Deferred Delivery for Paazl Checkout Widget: How It Works
Deferred Delivery for the Paazl Checkout Widget lets you delay sending orders to Paazl until a set number of days before the scheduled carrier pickup date. This helps merchants process orders at the right moment, supports more efficient shipment consolidation, and can contribute to more sustainable shipping operations.
What is Deferred Delivery?
Deferred Delivery allows merchants to delay sending orders to Paazl until a configured number of days before the scheduled carrier pickup date. Instead of sending orders to Paazl immediately after checkout, orders with a deferred pickup date are held in a special "Deferred Delivery" status and automatically processed at the right time.
This promotes more sustainable shipping by allowing carriers to consolidate shipments and reducing unnecessary early pickups.
How It Works
Customer Experience
- The customer adds items to their cart and proceeds to checkout.
- At the shipping step, the Paazl widget displays available shipping options.
- Some shipping options include a scheduled carrier pickup date (this depends on the carrier and Paazl configuration).
- The customer selects a shipping option with a deferred pickup date and completes the order.
- From the customer's perspective, the order is placed as normal.
What Happens Behind the Scenes
Once the order is placed, the following automated process takes over:
Order Placed
|
v
Order gets "Deferred Delivery" status (instead of going straight to Processing)
|
v
Order appears in the Deferred Queue in the admin panel
|
v
[Time passes until the scheduled pickup date approaches]
|
v
Automatic hourly check detects that the pickup date is approaching
|
v
Order transitions to "Processing" status automatically
|
v
Order is sent to Paazl (within 5 minutes of transitioning)
|
v
Carrier receives the order and prepares for pickup
Order Status Flow
| Stage | Order Status | Order State | Sent to Paazl? |
|---|---|---|---|
| Order placed (deferred) | Deferred Delivery | New | No |
| Waiting for pickup date | Deferred Delivery | New | No |
| Pickup date approaching | Processing | Processing | Yes (automatic) |
Admin Configuration
Enabling Deferred Delivery
Navigate to: Stores > Configuration > Sales > Shipping Methods > Paazl Checkout Widget
Under the Deferred Delivery section, you will find two settings:
| Setting | Description | Default |
|---|---|---|
| Enable Deferred Delivery | Turns the feature on or off. When disabled, all orders are processed immediately as usual. | No |
| Days Before Scheduled Pickup | How many days before the carrier pickup date should the order be automatically transitioned to Processing and sent to Paazl. | 1 |
Note: These settings apply globally (system-wide), not per store view or website.
Example Configuration
If you set "Days Before Scheduled Pickup" to 1 and a customer places an order with a carrier pickup date of April 20:
- The order stays in "Deferred Delivery" status from the moment it is placed.
- On April 19, the hourly cron job detects the order is within 1 day of the pickup date.
- The order automatically transitions to "Processing" and is sent to Paazl.
- The carrier receives the shipment details in time to prepare for the April 20 pickup.
If you set it to 2, the order would transition on April 18 instead.
Deferred Queue (Admin Panel)
Accessing the Queue
Navigate to: Paazl > Deferred Queue in the admin menu.
This page shows all orders that have been flagged for deferred delivery.
Queue Columns
| Column | Description |
|---|---|
| ID | Internal queue entry ID |
| Order # | The Magento order increment ID |
| Customer Name | Name of the customer who placed the order |
| Scheduled Processing Date | The carrier pickup date extracted from the shipping selection |
| Deferred Status | pending = waiting to be processed; processed = already transitioned to Processing |
| Created At | When the queue entry was created |
| Updated At | When the queue entry was last updated |
Available Actions
- Search: Use the search bar to find specific orders.
- Filter: Filter by any column (date ranges, status, etc.).
- Delete: Remove individual queue entries.
- Mass Delete: Select and delete multiple entries at once.
- Inline Edit: Update the status field directly in the grid.
Automatic Processing (Cron Jobs)
Two cron jobs work together to handle deferred delivery:
1. Process Deferred Delivery (Hourly)
- Runs every hour at the top of the hour.
- Checks all pending deferred queue entries.
- If the scheduled pickup date is within the configured "Days Before" window, transitions the order from "Deferred Delivery" to "Processing" status.
- Adds a comment to the order: "Order automatically transitioned from Deferred Delivery to Processing status."
2. Send Orders to Paazl (Every 5 Minutes)
- This is the existing order sending cron that runs every 5 minutes.
- Once an order is in "Processing" status, it becomes eligible to be sent to Paazl.
- The order is sent to the Paazl API on the next run.
Important: No manual action is needed. The transition from Deferred Delivery to Processing to Sent happens fully automatically.
When Does an Order Become Deferred?
An order is placed into the Deferred Delivery flow only when all of the following conditions are met:
- Deferred Delivery is enabled in the configuration.
- The order uses the Paazl shipping method.
- The order is in the New state (freshly placed).
- The customer's selected shipping option includes a carrier pickup date (this is determined by the Paazl widget and the available carrier options).
If any of these conditions is not met, the order follows the normal (immediate) processing flow.
Frequently Asked Questions
What happens if I disable Deferred Delivery while orders are still pending?
Orders already in the "Deferred Delivery" status will remain in that status. The hourly cron job checks if the feature is enabled before processing, so pending deferred orders will not be automatically transitioned while the feature is disabled. You would need to manually change these orders to "Processing" status, or re-enable the feature.
Can I manually process a deferred order early?
Yes. You can change the order status from "Deferred Delivery" to "Processing" manually in the Magento admin. Once in Processing status, the order will be picked up by the regular Send Orders cron and sent to Paazl within 5 minutes.
Does Deferred Delivery affect all shipping options?
No. Only shipping options that include a carrier pickup date from the Paazl widget trigger the deferred delivery flow. Standard shipping options without a pickup date are processed immediately as usual.
How do I know which orders are deferred?
Two ways:
- Check the order status in the Orders grid - deferred orders show "Deferred Delivery" status.
- Check the Paazl > Deferred Queue page for a dedicated overview with scheduled dates and processing status.
What if the cron jobs are not running?
If the Magento cron is not running, deferred orders will not be automatically transitioned. Make sure your Magento cron is properly configured and running. You can verify cron execution in System > Cron Schedule or by checking the cron_schedule database table.
Troubleshooting
| Issue | Possible Cause | Solution |
|---|---|---|
| Orders not entering Deferred Delivery status | Feature is disabled | Enable in Stores > Configuration > Sales > Shipping Methods > Paazl |
| Orders not entering Deferred Delivery status | Selected shipping option has no carrier pickup date | This is expected; only options with pickup dates trigger deferred delivery |
| Deferred orders not transitioning to Processing | Magento cron is not running | Verify cron is running: php bin/magento cron:run |
| Deferred orders not transitioning to Processing | Feature was disabled after orders were placed | Re-enable the feature or manually change order status |
| Orders not being sent to Paazl after transitioning | Send Orders cron not running | Check cron schedule; the job runs every 5 minutes |
| "Days Before" setting doesn't seem to work | Value may need adjustment | Remember: setting of 1 means 1 day before pickup, not 1 day after order placement |