JD Web & Ship
A smart dropshipping platform built to simplify e-commerce shipping.
JD Web & Ship is a powerful dropshipping solution built for WooCommerce merchants. It streamlines ecommerce shipping by connecting multiple courier partners instantly, comparing real-time rates, and automating order fulfillment with tracking.
Key Benefits:
- Multi-courier integration for flexibility
- Real-time shipping rates comparison
- Automated order syncing & fulfillment
- End-to-end shipment tracking
- COD support & reconciliation reports
Key Features
- Automatic Order Sync – Processing orders are automatically sent to JD Web & Ship
- Manual Order Management – Send individual or bulk orders manually
- Automatic Order Completion – WooCommerce order is marked as “Completed” when all JD orders are delivered
- Real-time Tracking – Display shipment status and tracking information on order pages
- Customer Tracking – Customers can view shipping status in their My Account area
- India-Focused – Specifically designed for Indian addresses and postal codes
- Order Filtering – Automatically filters and processes only Indian orders
- Webhook Support – Receive real-time status updates from JD Web & Ship
- Detailed Logging – Track all sync activities and API responses
- Retry Failed Orders – Easy retry mechanism for failed shipments
- Prepaid/COD Support – Handles both payment methods
- Improved Localization – Refined text labels and status messages for better clarity
Workflow
- Customer places an order on your WooCommerce store
- Order status changes to “Processing”
- Plugin automatically sends order details to JD Web & Ship
- JD Web & Ship creates shipment and assigns courier
- Tracking information is updated in WooCommerce
- Customer receives tracking details in their account
- Real-time status updates via webhook
- If all JD shipments are delivered, the WooCommerce order is automatically marked as “Completed”
Automatic Order Completion
- WooCommerce order is automatically marked as Completed when:
- All JD sub-orders reach “Delivered” status
- Order completion is triggered via JD Web & Ship webhook updates
- Partial delivery does NOT complete the order
- Ensures accurate fulfillment tracking
Requirements
- WooCommerce 5.0 or higher
- Active JD Web & Ship account with API credentials
- Valid email and phone number for all orders
- Orders must have Indian shipping addresses
Supported Order Statuses
- Processing orders are automatically synced
- Failed orders can be retried manually
- Cancelled orders trigger cancellation at JD Web & Ship
External Services
This plugin connects to JD Web & Ship API for order fulfillment and shipment tracking.
Service Details: * Service Provider: JD Web & Ship (https://jdwebnship.com/) * API Endpoint: https://api.jdwebnship.com/api/ * Purpose: Automated order processing, shipment creation, and tracking updates
Data Transmitted: When an order is placed on your WooCommerce store, the following data is sent to JD Web & Ship API: * Customer name, email, and phone number * Shipping and billing addresses (India only) * Order items, quantities, SKUs * Order totals and payment method (COD/Prepaid) * Store domain and webhook URL for status updates
When Data is Sent: * Automatically when order status changes to “Processing” * Manually via admin “Send to JD” button * When order is cancelled (cancellation request)
Legal Information: * Terms of Service: https://jdwebnship.com/terms * Privacy Policy: https://jdwebnship.com/privacy
By using this plugin, you consent to transmitting customer order data to JD Web & Ship for shipping processing. Please ensure your store’s Privacy Policy discloses this data sharing with customers.
Additional Information
Support
For support, please contact: * Email: support@jdwebnship.com * Website: https://jdwebnship.com/contact
Privacy Policy
This plugin sends order data (customer name, address, phone, email, order items) to JD Web & Ship API for shipment processing. Please ensure your privacy policy reflects this data sharing.
Data transmitted includes: * Customer contact information * Shipping and billing addresses * Order items and quantities * Order totals and payment method
Developer Information
Action Hooks:
* woocommerce_order_status_processing – Triggers automatic sync
* woocommerce_order_status_cancelled – Triggers order cancellation
Filter Hooks:
* woocommerce_checkout_fields – Makes email/phone required
Database Tables:
* {prefix}_jdws_sync_logs – Stores sync activity logs
Options:
* jdws_options – Plugin settings
* jdws_webhook_token – Webhook security token
Credits
Developed by CoderKube Technologies Team
Technical Details
Minimum Requirements
- WordPress 5.8 or higher
- WooCommerce 5.0 or higher
- PHP 7.4 or higher
- MySQL 5.6 or higher
- HTTPS enabled (recommended)
API Endpoints Used
- Login/Authentication
- Order Placement
- Order Cancellation
- Webhook Registration
Compatibility
- WooCommerce Classic Checkout
- WooCommerce Block Checkout
- HPOS compatibility
Performance
- Lightweight and optimized
- Asynchronous processing
- Efficient database queries
- Minimal server load
Advanced Logic
- Prevents duplicate or invalid order sync requests
- Item-level filtering to avoid duplicate shipments
- Auto-completion logic based on webhook delivery confirmation
- Loop protection during admin-triggered sync
Order Edit & Item Sync Behavior (New)
This version introduces advanced handling for WooCommerce orders that are modified after being synced with JD Web & Ship.
Multi-Item Orders (Multiple Products)
When an order contains multiple items and the admin updates the order:
- If the admin:
- Changes order status (e.g., Processing to On Hold)
- Removes one or more existing items
- Adds new items
Then:
-
Removed items are delinked from JD Web & Ship:
- No cancellation request is sent to JD for removed items
- They are no longer tracked in active WooCommerce shipment display
- Future webhook updates from JD for those items are completely ignored and will not update WooCommerce data
-
Newly added items:
- A new JD shipping order is created
- Only new items are sent to JD
-
Existing active items:
- Continue as-is (no duplicate shipment created)
Important Behavior
-
Delinked items:
- Will NOT receive further status updates from JD
- Will NOT affect WooCommerce order completion logic
- Are kept only for history/reference
-
This ensures:
- No duplicate shipments
- No accidental cancellations
- Clean separation between old and new items
Single-Item Orders
When an order has only one item:
- If the admin:
- Removes the item
- Adds a new item
- Updates the order
Then:
- The system reuses the existing JD order
- No new JD shipment is created
- The existing JD order reference is reused for the updated item
Delinked Item Behavior
-
Delinked items are NOT displayed in:
- Admin Order Page
- Customer My Account -> Orders
Delinked items are internally marked and strictly excluded from:
- Shipment tracking display (admin and customer)
- Webhook status updates (incoming JD updates are ignored)
-
Any further synchronization or processing
- Even if JD sends status updates for these items, they will not affect WooCommerce in any way.
Why This Matters
This feature prevents:
- Duplicate shipping orders
- Incorrect cancellations
- Conflicts between WooCommerce edits and JD fulfillment
- Webhook updates affecting outdated items
It ensures accurate syncing even when orders are modified after initial processing.
Troubleshooting
Orders not syncing automatically
- Check if “Enable JD Shipping” is turned on
- Verify your API credentials are correct
- Ensure orders have Indian shipping addresses
- Check that email and phone are filled
“Failed to authenticate” error
- Verify your JD Web & Ship email and password
- Check internet connectivity
- Contact JD Web & Ship https://jdwebnship.com/ support to verify account status
Tracking information not showing
- Ensure webhook is registered (automatic on first save)
- Check that JD Web & Ship can reach your website
- Verify webhook URL is accessible (not behind firewall)
Phone/Email validation error
- For block checkout, manually enable required fields
- For classic checkout, the plugin handles this automatically
License
This plugin is licensed under GPLv2 or later.
