CodeCanyon WooCommerce Orders Tracking - WordPress Plugin
The plugin enables order tracking for WooCommerce, enhancing the user experience by providing real-time insights into order status. By integrating seamlessly with WooCommerce, it streamlines the tracking process, allowing users to monitor their orders efficiently. This functionality reduces customer inquiries by empowering them to track their orders independently, leading to enhanced customer satisfaction and operational efficiency.
Plugin Features
Offering a comprehensive tracking interface, CodeCanyon WooCommerce Orders Tracking allows users to monitor their orders from placement to delivery, ensuring transparency and reliability. With detailed tracking information, customers gain visibility into their shipment status, estimated delivery dates, and order fulfillment progress. This feature not only improves customer experience but also instills confidence in the purchase process, driving repeat business and fostering brand loyalty.
The plugins customization options enable businesses to tailor the tracking experience to align with their brand identity and communication style. From personalized order status messages to branded tracking pages, businesses can create a cohesive and engaging post-purchase experience for their customers. This customization capability enhances brand perception and strengthens customer relationships, distinguishing businesses in a competitive eCommerce landscape.
By providing email notifications at key order status milestones, the plugin keeps customers informed and engaged throughout the order fulfillment journey. These automated notifications serve as touchpoints that reassure customers, mitigate uncertainties, and build trust in the brand. Such proactive communication not only reduces customer inquiries but also increases engagement and satisfaction, contributing to a positive post-purchase experience.
The plugins analytics and reporting tools offer valuable insights into order trends, delivery performance, and customer behavior. By leveraging data-driven analytics, businesses can optimize their order fulfillment processes, identify areas for improvement, and make strategic decisions to enhance operational efficiency. These actionable insights empower businesses to deliver better service, improve order management, and drive overall growth in their eCommerce operations.
Specifications:
| Release date: | 12-07-2019 | |
| Last updated: | 16-10-2026 | |
| Type: | Paid | |
| License: | GPL | |
| Subject: | e-Commerce for WooCommerce | |
| Compatibility: | W5.x W6.x | |
| Includes: | Plugin | |
| Language packs: |
|
|
| Developer: | CodeCanyon | |
| Rating: | ||
Share with your friends!
Setup Guide for CodeCanyon WooCommerce Orders Tracking for Orders, Shipment Tracking, and Notifications
CodeCanyon WooCommerce Orders Tracking is not just for dropping a tracking number into a WooCommerce order. In a solid real-world workflow, it connects the order, the carrier, the tracking link, the customer email, SMS, the tracking page, PayPal, and, if needed, an external shipping service. That is why the guide below is structured as a practical implementation map: what to check before installation, which settings to enable first, how to handle manual and bulk uploads of tracking numbers, where to verify the result, and how to find the cause of an error.
This guide is written for store owners, WooCommerce administrators, and technical staff responsible for post-purchase communication. It does not repeat the usual product listing copy. Instead, it focuses on working solutions: how to choose between order-level and item-level tracking, when to connect a third-party tracking service, how to avoid sending unnecessary notifications, how to test PayPal, where logs are useful, and when it is better to leave part of the functionality disabled until you place a test order.
If your store is already taking orders and shipping packages regularly, roll out the plugin on a staging copy first or on a small batch of orders. The plugin has many useful connections, but that is exactly why it needs careful configuration: one mistake in the carrier, status, API key, or email template can quickly turn into a chain of incorrect customer messages.
What Problem the Plugin Solves in a WooCommerce Store
The real value of the plugin shows up after payment and order fulfillment. The customer has already made the purchase, but while the package is in transit, the questions start coming: has the order shipped, which carrier is handling it, where is the link, why has the status not changed, did the update arrive by email. If the store answers those questions manually, support spends time on repetitive requests, and the customer sees scattered messages instead of one consistent process.
CodeCanyon WooCommerce Orders Tracking moves that part of the workflow into WooCommerce. The administrator can add tracking to the whole order, to individual order items, or even to item quantities when a single line item ships in multiple packages. Once saved, the number is linked to a carrier, a tracking link is generated, and the selected channels can take over: email, a block inside WooCommerce emails, SMS, PayPal, the tracking page, or updates through a third-party service.
The plugin is especially useful when tracking is part of the service experience, not just a formal link. That includes stores with international shipping, dropshipping, multiple warehouses, manual fulfillment, frequent CSV imports, multiple carriers, and customers who regularly ask about delivery status. In that kind of setup, it is not enough to save the number. You also need to show it in the right place, in the right language, and at the right time.
What Changes for the Administrator
The administrator gets a dedicated workspace for post-purchase logistics. Instead of relying on an order note or a manual link, you can work with structured fields: tracking number, carrier, shipping method, order status change, email sending, SMS sending, adding tracking to PayPal, and, if enabled, syncing with a third-party service. That reduces the risk of forgetting one of the steps, but it also requires discipline: each channel should be enabled only after testing.
For a small store with only a few orders per week, manual tracking entry and a basic email are usually enough. For a store shipping dozens of orders a day, CSV import, export filters, saved field sets, item-level workflows, and logs become much more important. For dropshipping, ALD and Dianxiaomi integrations can be helpful, but only if those tools are actually part of your workflow.
What Changes for the Customer
The customer gets tracking where they expect to see it: in email, in their account, on the tracking page, and sometimes in SMS and PayPal. If the tracking page is enabled, the customer can check the status on the store website instead of leaving for the carrier site. That does not guarantee a perfect delivery experience, but it does make communication more transparent.
Practical rule of thumb: first make sure manual tracking entry and the email message work reliably. Only after that should you add SMS, PayPal, automatic updates, webhooks, and timeline translation.
Who This Tracking Setup Fits, and When Another Approach Is Better
This plugin fits stores where a real logistics process starts after payment: fulfillment, shipping, multiple carriers, waiting for updates, and the need to show the customer the current package status. For digital goods, bookings without shipping, local services, and products delivered immediately after payment, this kind of system is usually overkill. In those cases, order statuses, WooCommerce emails, and a clear delivery explanation are often enough.
A good use case for CodeCanyon WooCommerce Orders Tracking is a store that already understands its own workflow. For example, orders usually go out through one shipping provider, but a local carrier is sometimes needed; some orders come from international suppliers; managers periodically receive CSV files from the warehouse; customers ask for a tracking link; and support is tired of answering the same questions. In that situation, the plugin becomes the central point for tracking.
When the Plugin Is a Strong Fit
- The store ships physical products and regularly receives tracking numbers from a warehouse, carrier, or supplier.
- You need to show tracking in WooCommerce emails and in the customer account, not just in a manual order note.
- Some orders are split into multiple shipments, so one number for the entire order is not enough.
- You need to bulk import tracking numbers through CSV while preserving the order structure.
- You need to send data to PayPal or receive updates through services like TrackingMore, EasyPost, AfterShip, Tracktry, 17Track, or Cainiao.
- The store uses WPML or Polylang and wants to send emails or SMS in the customer's language, if that logic is already set up in the project.
When to Be More Careful
If the store does not have a reliable source of tracking numbers, the plugin will not solve that problem by itself. It helps manage tracking, but it does not replace warehouse discipline, accurate carrier data, or access to external APIs. If a carrier is not supported directly, you can add your own option, but for automatic statuses through third-party services, the carrier name and link format need to match that service's supported list.
SMS should also be enabled carefully. Messages cost money through the provider, may require regional compliance checks, and can quickly annoy customers if they are sent for every minor update. For most stores, email plus a tracking page is enough to start with. SMS makes sense for urgent statuses, high-value orders, local delivery, or audiences that do not respond well to email.
| Store situation | Sufficient setup level | What to enable later |
|---|---|---|
| A few shipments per week | Manual tracking entry, customer email, selected carriers. | A tracking page and a simple email template. |
| High order volume and warehouse CSV files | Order export, CSV completion, tracking import, log review. | Scheduled updates and webhooks, if automatic statuses are needed. |
| Dropshipping or multiple suppliers | Item-level tracking, custom carriers, carefully written emails. | ALD, Dianxiaomi, PayPal, and SMS after the connections are tested. |
What to Check Before Installation and First Activation
Before installation, it is not enough to check WordPress, PHP, and WooCommerce requirements. You also need to understand how the store currently gets shipment numbers. The plugin supports several operating modes, and choosing the wrong one at the start leads to unnecessary settings migration later. For example, if orders are often split across multiple packages, the "Order only" mode may be too limited. On the other hand, if every order always gets a single tracking number, detailed item-level handling will only make the admin experience more complicated.
Start with a short inventory. Write down who adds tracking numbers, where the numbers come from, which carriers are used, whether the customer should be notified by email, whether PayPal is needed, whether an external tracking service is involved, and who is allowed to change settings. It may look like a boring prep step, but it saves more time than trying to click through everything after installation.
Minimum Technical Check
- Confirm that WooCommerce is installed, enabled, and creating orders normally.
- Compare the current system requirements with the official VillaTheme page and documentation, because compatibility changes along with WordPress and WooCommerce.
- Make sure WooCommerce emails are being sent through a properly configured mail transport and are not disappearing because of hosting.
- Verify that you have access to a test order where tracking can be added and removed safely.
- If you plan to use a third-party tracking service, prepare the account and API key in advance and review the service's pricing limits.
- If PayPal is required, prepare sandbox mode and separate keys for connection testing.
Data to Collect Before Configuration
For most stores, three lists are enough. The first is the carriers you actually use. The second is the order statuses where the customer should see tracking or receive an email. The third is the admin roles responsible for the workflow: who adds numbers, who changes settings, and who reviews logs. If those lists are not ready, configuration turns into guesswork.
Do not enable every carrier and every notification channel at once. The more choices a manager sees inside an order, the higher the chance they will pick the wrong carrier slug or send an unnecessary email. The best starting configuration is a limited list of active carriers, one tested email template, and a clear workflow for adding a number.
Checking Conflicts with Your Current Shipping Workflow
If the store already uses another tracking plugin, a shipping-service import, an ERP, a warehouse system, or custom order fields, do not enable CodeCanyon WooCommerce Orders Tracking on top of the existing setup without testing. Two systems may write to different meta fields, send different emails, or change the order status at different times. In cases like that, first decide which system is your source of truth: the warehouse, WooCommerce, the ERP, a dropshipping plugin, or a third-party tracking service.
If the tracking number originates outside WooCommerce, it is safer to start with manual CSV import and verify how the data appears inside the order. Add automatic updates and webhooks only after the manual chain is fully understood.
Installation and Initial Validation Without Risking Real Orders
Installation works like a standard WordPress plugin setup: upload the ZIP through Plugins, choose the file, install, and activate it. The VillaTheme documentation shows the ZIP upload flow and activation through the plugins menu. If you are using the free WordPress.org version, that can be installed from the repository, but it is a separate product variant with differences from the commercial version. This guide focuses on the commercial CodeCanyon version, so features like advanced services, SMS, roles, and integrations should be checked against your license and your current file package.
After activation, do not jump straight into bulk import. First open the plugin settings and make sure you can see tabs related to general settings, carriers, email, WooCommerce email, SMS, PayPal, Tracking Service, Advanced Settings, import, logs, and any other features included in your version. Then create or select a test order and walk through a short path: choose a carrier, add a number, save it, and review the email or order display.
First Steps After Activation
- Open the plugin settings and confirm that WooCommerce shows the new order tracking section.
- Go to the carriers tab and leave enabled only the shipping services the store actually uses.
- Select a default carrier if most orders ship through one method.
- Set up the basic tracking email, but do not enable bulk sending before testing.
- Open a test order in
WooCommerce-Ordersand add one tracking number. - Verify that the tracking number appears in the order and that the link leads to the expected result.
What Counts as a Successful Initial Check
A successful check means more than just no errors in the admin panel. You need to confirm that the customer can actually see the tracking information. Use a test email address, the customer account area, and the tracking page if it is enabled. If the number is supposed to be sent to PayPal, use sandbox mode only and do not mix it with live keys.
Right after installation, it is useful to place one order with a simple product and one order with two line items. The first shows how full-order tracking works. The second shows whether you need item-level tracking or whether one number is enough. At that stage, it becomes much clearer which mode to choose in Manage tracking by.
Tracking Model: Entire Order, Individual Item, or Multiple Packages
One of the most important decisions in CodeCanyon WooCommerce Orders Tracking is the general tracking management model. The documentation describes several options: one tracking number for the order, tracking by order items, or a mixed mode. You can also account for item quantities when one line item ships in multiple packages. This is not a cosmetic setting. It determines how the manager enters numbers, how the customer sees shipments, and how convenient CSV import will be.
If the store always ships the entire order in a single package, order-level mode is simpler. It shortens the interface, reduces the risk of mistakes, and works well for standard retail. If an order can ship in parts, item-level mode reflects reality more honestly. The customer can see that one product is already on the way while another is still waiting to ship. For dropshipping and multi-supplier setups, that is often critical.
When to Choose Order-Level Tracking
Order-level tracking makes sense when an order almost always has one tracking number. It fits stores with a single warehouse, a limited catalog, local delivery, or a simple process: pick the order, ship it, get the number, and add it in WooCommerce. In that mode, staff training is easier, manual verification is simpler, and there is less risk of showing the customer unnecessary extra rows.
The downside is obvious: if one order gets split into two packages, you have to improvise. You can add a note in the email or switch to another mode, but it is better not to build a permanent workflow around exceptions. If split shipments happen regularly, choose the more detailed model from the start.
When Item-Level Tracking Is Necessary
Item-level tracking is necessary when order items can have different tracking numbers. For example, part of the order ships from the store warehouse and part from a supplier; products are stocked in different countries; or the order includes two units of the same product that ship separately. In that case, the customer should see not just a number, but the relationship between that number and the specific order line.
The documentation specifically warns that for AliExpress dropshipping, you should not rely only on order-level mode, because each line item may have its own tracking number. That is a good example of why the setting should follow logistics reality, not the desire to keep the interface simpler.
How to Validate the Chosen Model
Create a test order with two products. Add one number to the whole order, then add another number to an individual line item. Check how this looks in the order, the email, the customer account, and the tracking page. If the manager cannot tell where to enter the number, the setup is too complex for daily use. If the customer cannot tell which product belongs to which shipment, the setup is too simple for your logistics.
Quick takeaway: choose the tracking model based on real fulfillment, not on the number of features. If a product physically ships in its own package, the tracking setup should have a place for that separate package.
Carriers, Custom Shipping Services, and Automatic Links
In this plugin, the carrier is more than a label. It affects link generation, customer display, and sometimes mapping to an external service. Official sources mention a large built-in carrier database and the ability to create custom carrier entries. That is convenient, but it also requires care: the wrong slug, an incorrect URL, or too many active shipping services can create confusion when adding a tracking number.
Start with the carriers tab. Leave enabled only the services your store uses regularly. If you offer local delivery, an in-house courier, or a regional carrier, add a custom carrier only after checking the link structure. Ideally, the tracking URL should accept the number as a variable and take the customer directly to the carrier result page or tracking form.
Configuring Built-In Carriers
The built-in list makes it easy to filter carriers and countries. That is especially useful for stores with international shipping: managers should not have to hunt through dozens of options every time they need one service. Set a default carrier if one option is used more often than the others. Leave the rest available only when needed.
If you mask the carrier name shown to the customer, do not change the technical base without understanding the consequences. The documentation mentions a display name that lets you show the customer a different label. That is useful for dropshipping, but for automated services, the technical name still needs to match the supported list of the tracking provider you selected.
Custom Carrier
A custom carrier is useful when the service is not in the list or when the store uses its own delivery process. When adding one, pay close attention to the name, display name, country, slug, and tracking URL. If that custom carrier also needs to work through TrackingMore, EasyPost, AfterShip, 17Track, or Tracktry, make sure the name matches the supported list for that service. Otherwise, the link may work while the automatic status does not.
Validation after adding a custom carrier: add a test number to an order, open the link from the email or customer account, and verify that the number lands in the right place. Then try importing a CSV row with that carrier slug. If manual entry works but import does not, the issue is usually the field name, the slug, or the column mapping.
slug, the shipment number, the link, and what the customer will see.Emails, SMS, and WooCommerce Messages Without Extra Noise
Notifications are the most visible part of the plugin from the customer's point of view. CodeCanyon WooCommerce Orders Tracking includes a dedicated tracking email, the ability to insert a tracking block into WooCommerce emails, SMS through supported providers, and multilingual workflows with WPML or Polylang. All of that is useful, but only when the frequency and message content are well controlled.
Start with email. The tracking email should answer three questions: which order, which carrier, and where the link or number is. Do not overload the email with a long explanation of the shipping process. The customer opens it to take action. If you use WooCommerce Email Template Customizer, you can build a branded template, but first confirm that the standard version contains all required variables and does not break on a test order.
Dedicated Tracking Email
The email settings let you control the subject, heading, content, tracking table, and additional recipients. One especially helpful setting is the option to send information for the entire order instead of only the changed line item. That helps when an order ships in parts: the customer sees the full context rather than just one new number with no connection to the rest of the products.
For bulk imports, pay attention to the settings that limit how many emails are sent at once and the delay between sends. This is not cosmetic. It affects deliverability: a sudden burst of nearly identical emails can trigger mail server limits. During early testing, it is better to send messages only to internal addresses and check how they look across different email clients.
Tracking Block Inside WooCommerce Emails
A block inside standard WooCommerce emails is convenient if you do not want a separate message for every change. The important part here is choosing the right order statuses and the block position. The documentation notes that the position is tied to a WooCommerce hook in the email template. If the template does not include the needed hook, the block may not appear where expected. That is why every position change should be followed by a test email.
If the store uses a custom email editor, check compatibility with it first. VillaTheme lists WooCommerce Email Template Customizer and other supported solutions. Even so, every custom email should be tested separately: the template may hide the block, alter the table, or remove the location where the plugin tries to insert tracking information.
SMS Only for Important Events
SMS should be enabled only after email is working reliably. The plugin supports Twilio, Nexmo, and Plivo, and it includes a test message for connection checks. The message itself should be short: order, status, link or number. Do not use SMS as a duplicate of every email notification. For most stores, it is enough to send SMS when the first tracking number is added or when an important status changes.
If the store serves an international audience, check the provider's regional rules, phone number format, and customer consent requirements in advance. Problems here are not always visible in WooCommerce: the plugin may send the request, but the provider can reject the message because of the number, balance, region, or message template.
Tracking Page, Shortcodes, and the On-Site Result
The tracking page makes the plugin useful not just for the administrator but also for the customer. Instead of leaving for the carrier site, the customer can open a page on your store, enter the data, and see the delivery timeline. The documentation notes that the page can be created on activation and can also be assigned manually. The shortcode [vi_wot_form_track_order] is available for displaying the form. There is also a shortcode [vi_wot_tracking_more_form] for the TrackingMore form.
This part is especially important for stores with repeat purchases. The customer stays on the site, sees the store brand, and can navigate to other sections. But the tracking page requires more setup than a simple carrier link. You need to choose the fields, design, event order, time translation, and form protection against spam.
How to Configure the Page Without Overcomplicating It
Start with a minimal form: order number or email, tracking number, and a clear button. Then test the result with a sample order. Only after that should you change colors, icons, event order, and the timeline template. The design settings include general parameters, a form tab, a template, and custom CSS. Do not start with CSS until you have confirmed that the data is actually being pulled in.
For most stores, a good starting point is event sorting from newest to oldest, a short heading, a high-contrast button, and a clear message when no data is available yet. If the customer does not have a number yet, or the external service has not returned statuses yet, an empty page looks like an error. That is where the default tracking info feature is useful: it shows a prepared state for new orders before real carrier data appears.
Default Tracking Info as a Way to Reduce Anxiety
The default tracking info feature is not meant to fake real tracking. It is there to set honest expectations. For example, the order already exists, but the carrier has not scanned the package yet. The customer opens the page and, instead of seeing a blank result, sees a clear stage such as: the order is being prepared, waiting to be handed over to the carrier, or currently being packed. The documentation notes that rows with empty descriptions are not shown, and that times can be defined relative to the order creation time.
Do not overuse this feature. If you show overly optimistic stages, customers will quickly realize they are not actual statuses. It is better to use the default info as a temporary cue until the first real event arrives from the tracking service.
Short Placement Example
If the automatically created page does not fit your design, create a separate WordPress page and insert the form manually:
[vi_wot_form_track_order]
After publishing, test the page both as a guest and under a customer account. If the form does not return the expected result, check whether the page is assigned in Tracking Service settings, whether the required service is enabled, whether the test order actually has a tracking number, and whether cache or spam protection is blocking the form.
Tracking Service, API, Webhooks, and Status Updates
Tracking Service is the automation layer. It matters when the store wants to receive up-to-date delivery events through a third-party service and display them on the tracking page. The official documentation mentions Cainiao, TrackingMore, EasyPost, AfterShip, Tracktry, 17Track, and ViTracking beta in different sections. Most services require an API key; Cainiao is listed as an option without an API requirement. One important point: the external service may have its own pricing and limitations, and those are not included in the plugin itself.
If all you want is a link to the carrier site, Tracking Service is not always necessary. It becomes useful when you need an event timeline, automatic updates, webhooks, order status changes based on a "Delivered" event, or a unified tracking page on the store site. At that point, you are no longer doing a basic setup. You are running a separate implementation project.
How to Connect an External Service
- Choose one service and make sure it supports your carriers.
- Create an API key in the service account and paste it into the matching plugin tab.
- Enable Tracking Service and assign the tracking page.
- Add a test tracking number that the service can actually recognize.
- Check whether the timeline appears on the page and in the logs.
- Enable scheduled updates or webhooks only after the test succeeds.
Update Schedule
The update schedule helps the plugin request fresh data for existing tracking numbers at regular intervals. The documentation lists settings such as enabling cron, the update interval, start time, and limits based on tracking age. Do not set an overly frequent schedule unless you have a real reason. External services may have rate limits, and your site will take on unnecessary load. For most stores, consistency and predictability matter more than updates every few minutes.
Start by limiting updates to recent orders. Older delivered orders rarely need constant polling. If the "Delivered" status is used to automatically change the WooCommerce order status, check very carefully which statuses are excluded and what happens with partially shipped orders.
Webhooks
Webhooks are useful when the external service pushes status changes to the site on its own. The documentation describes dedicated settings for 17Track, TrackingMore, EasyPost, and AfterShip: enabling the webhook, debug mode, email behavior for statuses, a secret for some services, and the URL that must be copied into the service account. This is a powerful setup, but it is more complex than a simple schedule.
Before enabling it for live orders, run a webhook test, then open Orders Tracking - Logs and review both normal webhooks and webhook debug. If the service reports a successful test but nothing changes in WooCommerce, the cause is often the URL, the secret key, the selected statuses, or the fact that the service is sending an event for a tracking number that does not exist in your orders.
PayPal and Other Integrations: When They Actually Matter
The PayPal integration in CodeCanyon WooCommerce Orders Tracking is useful when the store wants to automatically add the carrier, tracking number, and shipment status to the customer's transaction data. The documentation says PayPal requires a Client ID and Client Secret, supports sandbox mode, and includes connection testing and a debug log. This is not a setting for your first hour with the plugin. It should only be enabled after tracking inside WooCommerce is already stable.
The reason is simple: PayPal adds another external layer. If the tracking number is stored incorrectly in the order, it will also be sent incorrectly. If the store uses multiple PayPal plugins, the documentation recommends taking different payment methods and shared Live/Sandbox APIs into account. That is why testing should be done separately, not as part of a real order.
Safe PayPal Testing Sequence
- Set your live keys aside and use sandbox for the first test.
- Enter the Client ID and Client Secret only for the test connection.
- Run the connection check and confirm that you get a success message.
- Create a test order through PayPal sandbox and add a tracking number.
- Check whether the tracking appears in the PayPal transaction data.
- If debug is enabled, review the log after testing and disable debug on the live site if it is no longer needed.
ALD and Dianxiaomi Integrations
The ALD integration is useful for AliExpress dropshipping: after data is updated in ALD, the plugin can send email, SMS, and push tracking to PayPal if the corresponding settings are enabled. The Dianxiaomi integration works only when the required plugins are installed and active; the documentation describes enablement, email behavior, status changes, disabling order note emails, debug mode, and carrier mapping.
The most common logic mistake in integrations is duplicate notifications. For example, the ERP adds an order note, WooCommerce sends an email for that note, and the plugin sends a separate tracking email. That is why Dianxiaomi includes a setting to disable order note emails if the tracking email already covers that scenario. Test these combinations on a single order, not during a bulk sync.
Bulk Import and Manual Entry of Tracking Numbers
Manual entry works well for a smaller order flow. Bulk import matters when the warehouse, supplier, or carrier delivers a spreadsheet with shipment numbers. The plugin includes order export, filters, field selection, preview, saved filters, and import of the updated CSV back into the system. This is one of the most practical features for a store, but it requires accuracy in the columns.
A good process looks like this: you export only the needed orders, add numbers to the corresponding rows, do not change service identifiers, specify the carrier slug, and import the file back. A bad process looks like this: the manager builds a spreadsheet from scratch, makes a mistake in the product ID or the carrier slug, imports it, and then has to figure out why the tracking was attached to the wrong place.
Order Export
In the export section, you can choose the file name, order filters, and fields. Filters help you avoid exporting everything blindly. In most cases, it makes sense to select orders by status, payment date, shipping method, or payment method. If you leave fields too broad, the export may become unnecessarily large. For the first validation run, it is better to use a minimal set: order ID, order item ID, SKU, product name, quantity, tracking ID, carrier slug, and carrier name.
The preview is useful as protection against a bad export. If the table already shows the wrong orders in preview, do not export the file "just in case." Go back to the filters and save the working set so the manager does not have to rebuild it manually next time.
Importing Tracking Numbers
After filling out the CSV, go to import, map the fields, and run the upload. If email sending on import is enabled, check the settings for email batch size and delay. For the first bulk validation, use 2 to 3 orders, not the entire day's list. That gives you room to see how the email looks, how the status changes, and whether any numbers landed on the wrong line items.
Manual Entry from the Order List
The documentation highlights the ability to add and edit tracking directly from the orders page, including a popup and quick navigation between orders. That is convenient for a manager handling shipments throughout the day. During manual entry, pay close attention to the checkboxes: send email, send SMS, add to PayPal, change status. Not every action is needed every time.
How to verify the result after import: open one order as an administrator, then open the same order in the test customer's account. If the data appears only in the admin area, check the display settings for emails, the tracking page, and the customer account.
Practical Example: A Store Ships One Order in Two Packages
Imagine a store that sells accessory bundles. The customer buys a backpack and a separate strap. The backpack ships from the store warehouse, and the strap ships from a supplier. Both products belong to the same order, but they have different carriers and different tracking numbers. The goal is to show the customer two tracking rows, send a clear email, and avoid marking the entire order as completed before both packages are ready.
Goal
You need to configure item-level tracking, add two numbers, and verify the email and the tracking page. You also need to make sure the manager does not send SMS for every intermediate change if SMS is not fully dialed in yet.
Preparation
- The store has a test order with two products.
- The carrier list has the two required shipping services enabled.
- The general settings are set to item-level tracking or mixed mode.
- The email template has already been tested on one simple order.
- Tracking Service can remain disabled for now if you only need to test carrier links.
Steps
- Open the test order in
WooCommerce-Orders. - Click the tracking edit action for the first item and add the backpack number, carrier, and link if it is not generated automatically.
- Enable email sending if you want to test the message, but leave SMS disabled.
- Add the second number for the strap on the other order item.
- Save the changes and open the email received by the test customer.
- Go to the customer account area and confirm that both tracking rows are visible.
- Open the tracking page, if it is enabled, and verify that the form returns the expected result.
Validation
The correct result is that the customer sees two separate shipments, and each row is tied to a clear carrier and its own number. The email should not look like a dump of technical fields. If the order has not been fully delivered yet, the order status should not automatically switch to a final state just because the first number was added.
Nuance
If automatic status changes are enabled for the "Delivered" event, confirm that they trigger only under the right conditions. For partially shipped orders, an early status change can confuse both the customer and support. If there is any doubt, leave the status change empty at first and use manual control.
How to Validate the Result After Setup
Validation should cover the full chain, not just one screen. Start in the admin area: the number is saved, the carrier is selected, and the link opens. Then check the email: the subject is clear, the table is intact, the link is clickable, and extra recipients are not visible to the customer. After that, open the customer account area and the tracking page. If PayPal, SMS, Tracking Service, or webhooks are enabled, add a separate test for each channel.
Ideally, create a short internal checklist for managers. It should answer questions like: which order status is being processed, which carrier was chosen, should an email be sent, is SMS needed, should tracking be added to PayPal, and where should the log be checked. That kind of checklist matters more than any complex automation, because most tracking errors start with a wrong manual action.
Final Validation Checklist
- The tracking number is visible in the order and remains there after the page is reloaded.
- The link points to the correct carrier or to the store tracking page.
- The customer can see the tracking in the email or account area, if that output is enabled.
- If Tracking Service is active, the timeline shows real or default events without empty rows.
- If reCAPTCHA is enabled, the tracking form still works for a normal user.
- If PayPal is enabled, the test transaction receives tracking in sandbox before live mode is turned on.
- If CSV import is used, one test file completes without field-mapping errors.
- The logs do not show repeating API errors, webhook debug issues, or PayPal debug errors.
How to Roll Back Questionable Settings
It is better to disable a questionable setting surgically. If SMS does not work, turn off SMS, but do not remove tracking from orders. If a webhook does not work, disable the webhook and keep the schedule or manual updates. If the problem is a custom carrier, replace it with a built-in one or temporarily use a direct link. This approach preserves the working parts of the system and does not force the store back into manual messaging.
Safe Improvements Without Editing Core or Plugin Files
For this product, the safest improvements usually come through settings, email templates, the tracking page, custom CSS in the provided tab, and tested shortcodes. There is no need to edit plugin files or WooCommerce core. The documentation shows a Custom CSS tab for the tracking page, but it does not guarantee stable CSS classes across all themes. That is why a universal CSS snippet built on invented selectors would be unreliable.
A practical way to improve the appearance is to first open the tracking page in the browser, inspect the real classes used by your theme, and only then add small CSS adjustments in the built-in field. Focus on concrete changes: form width, button color, spacing, hint visibility. If theme updates later change the selectors, the tweak can be removed easily from Custom CSS without restoring files.
What You Can Improve with Built-In Tools
- Reduce the email text to one clear instruction and a tracking link.
- Leave only active carriers in the manager interface to reduce selection mistakes.
- Configure default tracking info for the first hours after order creation if real statuses appear with a delay.
- Restrict Shop manager permissions to only the sections needed for daily work.
- Add reCAPTCHA to the tracking form if the page receives suspicious requests.
- Use logs as part of the operating procedure: when an error appears, check logs first instead of changing several settings at once.
Why You Should Not Add Random PHP Code
The documentation includes a developer section covering the REST API, meta fields for the "Order only" mode, and compatibility functions. That is useful for integration with other systems, but it is not a reason to paste random PHP into functions.php. If you need data exchange with an ERP or an external service, it is better to use documented endpoints or functions with developer involvement. In a typical store, CSV, webhooks, and built-in settings are the safer route.
If you do use the REST API, create a separate test scenario: create a test order, send tracking_data, review the result, then check permissions and the log. Do not pass secrets through public order notes, and do not store API keys in places accessible to staff who should not see them.
Common WooCommerce Orders Tracking Problems and Diagnostics
Tracking issues rarely look like one major failure. More often, the user sees a symptom in one place: the email never arrives, the link does not open, the tracking page is empty, PayPal never receives the number, or the CSV import works only partially. The best way to troubleshoot is to follow the chain: data in the order, channel settings, external service, logs.
The tracking number is saved, but the customer cannot see it
Symptom: the number exists in the admin area, but the email or customer account is blank. Possible causes include disabled output in WooCommerce emails, the wrong email status being selected, the block being inserted into a position that does not exist in the custom template, or the tracking being added at item level while the template only shows full-order data.
Check the WooCommerce Email settings, the selected statuses, and the block position. If an email editor is in use, send a test email with the base template. If the base template works, the problem is in the custom email. There is no need to roll back the whole setup: it is usually enough to restore the block position or add the required hook to the email editor template if it supports that.
The tracking page shows an empty result
Symptom: the form opens, but after entering data there is no timeline. Possible causes: Tracking Service is disabled, the page is not assigned, the tracking number has not yet been added to the external service, the API key is wrong, the service does not support that carrier, request cache is showing an old result, or reCAPTCHA is preventing form submission.
First check whether the order actually contains a tracking number. Then open the Tracking Service settings and make sure a service is selected, the API key is saved, the page is assigned, and cache request is not hiding a fresh check. If default tracking info is used, confirm that the row contains a description and matches the order status. If the issue appears only with one carrier, check the carrier name and the external service's supported carrier list.
The CSV import completed, but the numbers landed in the wrong place
Symptom: after import, some orders received the wrong numbers, or the numbers did not appear on specific line items. This is usually caused by modified identifiers, incorrect field mapping, a bad carrier slug, or a mismatch between the plugin's tracking mode and the CSV structure.
Start the fix with a small file containing 1 or 2 orders. Export the orders again from the plugin, do not create the CSV from scratch, fill in only the tracking ID, carrier slug, and required fields, then import it again. If the order contains multiple line items, do not remove the order item ID. If a mistake was made on live orders, do not run a second bulk import on top of the first one without checking: open one order and manually confirm which fields were written.
PayPal does not receive tracking
Symptom: the tracking exists in WooCommerce, but it never appears in the PayPal transaction. Check the payment method, sandbox/live mode, Client ID, Client Secret, shared API setup for multiple PayPal plugins, and the debug log. If the order was paid through a different method, the PayPal integration should not trigger. If multiple PayPal plugins are in use, make sure the selected method matches the actual order payment method.
If the connection test fails, fix the keys first. If the connection succeeds but the data is not sent after the tracking number is saved, check the checkbox for adding tracking to PayPal during order editing and review PayPal debug for errors. Do not enable live mode until sandbox produces the expected result.
SMS is not sent or is sent too often
Symptom: the customer does not receive SMS, or receives more messages than necessary. Check the selected provider, credentials, regional permissions, account balance, phone format, and test SMS result. Then review which actions trigger sending: adding tracking, changing tracking, ALD sync, or import.
If SMS is being sent too often, temporarily disable the send-on-import option and keep SMS only for manual addition of the first number. If SMS is not sent at all, do not immediately start changing both the message text and the provider. First get a successful test SMS, then validate with one order.
The webhook works in the service, but it does not update the order
Symptom: the external service reports a successful test, but WooCommerce does not change the data. Check the Webhook URL, selected statuses, webhook secret, debug mode, and whether the tracking number exists in the order at all. For TrackingMore, also confirm that the statuses selected in the plugin match the statuses configured in the service.
Fix it from simple to complex: copy the URL again, enable debug, send the test, open the logs, and check the log date and type. If the log is empty, the request never reaches the site. If the log exists but the order does not change, the issue is in tracking-number matching, status mapping, or the rule that changes the order.
Limitations and Decisions You Should Understand in Advance
The plugin covers many tasks, but it does not automate all logistics on its own. It does not guarantee that an external service will always return a status, that the carrier will always recognize the number correctly, that SMS will be delivered in every country, or that PayPal will accept the data with every possible payment-plugin combination. Those are normal boundaries for a tool that connects WooCommerce to multiple outside systems.
The most important limitation is third-party services. TrackingMore, EasyPost, AfterShip, Tracktry, 17Track, and similar solutions each have their own rules, pricing, API limits, and supported carrier lists. If your store builds its entire tracking workflow around one of them, you need to review not just CodeCanyon WooCommerce Orders Tracking settings, but also the documentation for the external service you chose.
Performance and Cache
The tracking page and AJAX requests can interact with caching. Tracking Service settings include cache request, which stores search results for a certain time. That is useful when customers repeatedly check the same number, but it can interfere with testing. If you are checking fresh events, temporarily reduce the cache time or use a new test number.
Do not aggressively cache the tracking page as a static page if the form needs to return a personalized result. If the site uses a separate cache plugin or server-level cache, add the tracking page to exclusions only if you see a real conflict. There is no universal rule that works for every site.
Tracking Form Security
The tracking form can expose order-related information, so it should not be too broad. Use fields that actually help verify the customer: email, order ID, tracking number, depending on your chosen setup. If the page receives suspicious requests, enable Google reCAPTCHA through the built-in tab. At the same time, confirm that a normal customer can still use the form without errors.
Multilingual Workflows
WPML and Polylang are listed as compatible solutions for email, SMS, and tracking messages. That does not mean every translated string will automatically sound polished. Review every language version of the email, button, default info, and timeline. If you use Google Cloud Translation API for the timeline, remember that machine translation of delivery statuses still needs review: a short phrase can sound awkward or ambiguous.
Product-Specific Videos
The official VillaTheme documentation includes a video on installing and setting up WooCommerce Orders Tracking. It is useful as a visual aid for the intent cluster "how to install and start using WooCommerce Orders Tracking": the user can see the overall installation path, the settings entry point, and the first actions before adding tracking.
Use the video as a supplement, not as a substitute for testing in your own store. The interface, tab set, and available features may differ from your version, so after watching it, still walk through a test order, the email, the tracking page, and the logs yourself.
Questions That Often Come Up Before Implementation
Can the plugin be used without an external tracking service?
Yes, if all you need is to save the number, carrier, and link, then show them to the customer in email, the account area, or on the tracking page. An external service is needed for a richer timeline, automatic updates, and webhooks. Start without it if the process is not stable yet.
Which mode should I choose: order-level or item-level?
If each order gets one number, choose order-level mode. If items ship in separate packages, choose item-level tracking or mixed mode. For dropshipping and orders fulfilled by different suppliers, item-level mode is usually the safer choice.
Why does the tracking page not show events right after the number is added?
Because a tracking number and real delivery events are not the same thing. Events appear when the external tracking service receives data from the carrier or when default tracking info is configured. Also check whether the tracking page is assigned, whether the service is enabled, whether the API key is set, and whether request cache is getting in the way.
Should SMS be enabled right after installation?
Usually no. First validate email and the tracking page. Add SMS only after sending a test message, checking the provider, confirming phone number formatting, and defining the scenarios where a message is actually needed. Otherwise, you may end up with extra cost and unnecessary notifications.
Can tracking numbers be imported in bulk?
Yes, the plugin supports order export to CSV and import of tracking information back into the system. The important part is not changing service fields, mapping columns correctly, and testing with a small file before a bulk upload. For multi-item orders, order item ID and carrier slug are especially important.
What should I do if PayPal does not accept the tracking data?
Check sandbox/live mode, Client ID, Client Secret, the payment method, the checkbox for adding tracking to PayPal, and the debug log. If the store uses multiple PayPal plugins, make sure the setting applies to the actual payment method used for the order.
Is reCAPTCHA needed on the tracking page?
If the page is public and receives suspicious requests, reCAPTCHA is useful. But after enabling it, test the form as a regular customer. Overly aggressive protection can block real customers, especially on mobile devices or in regions with unstable network conditions.
How is the commercial version different from the free WordPress.org version?
The free version covers basic tracking, while the commercial version adds the advanced scenarios described in the sources as premium or pro: deeper management modes, SMS, additional tracking services, roles, webhooks, schedules, PayPal, and compatibility features. Before configuration, verify the exact feature set against your version and the official sources.
When CodeCanyon WooCommerce Orders Tracking Is the Right Choice
This plugin is worth using if the store wants to make tracking part of a normal post-purchase workflow: add numbers, connect them to carriers, send a clear email, show a tracking page, and, if needed, connect SMS, PayPal, API, webhooks, and bulk CSV processing. It is especially strong when a single "tracking number" field is no longer enough.
Before rolling it out, validate the simplest scenario first: one order, one carrier, one email, and one result on the site. Then move on to item-level tracking, CSV, Tracking Service, and integrations. That sequence reduces the risk of powerful functionality turning into a source of unnecessary notifications and incorrect statuses.
If this guide matches your actual workflow, you can get the WordPress version and start with a test setup on a single order. If the store only needs the simplest possible tracking link in an email or, on the other end, a full external shipping platform with analytics, compare the alternatives above and choose the tool that fits your real logistics rather than the longest feature list.


