How to Build an Order Tracking System for Your Customers
Last Updated May 22nd, 2021 · Custom Software
Most businesses need some form of order tracking system. Customers expect to be able to track their orders in near real time immediately after purchase. This has become standard practice for almost every major online retailer. But the idea of offering order tracking is starting to hit every business. Companies that create any kind of physical good can see benefits from an order tracking system.
Link Software specializes in custom software that helps businesses expand their production system. We have built several custom order tracking systems for our clients over the years. In this article, we are going to detail how we build order tracking systems using tracking numbers from popular freight and shipping companies.
Integrating Existing Tracking Data into Your Current System
Best Options for E-Commerce Sellers
Keeping customers informed of the delivery status of their orders is a common component of most major e-commerce platforms. You see this in action when you order something from Amazon and get an email with links to track your shipment. For many small online businesses, using a platform like WooCommerce or Shopify, tracking numbers are attached to orders automatically. This process is typically part of the software package or done with additional plugins.
As we mentioned, the common platforms like WooCommerce and Shopify have plugins or apps you can use to offer customers order tracking details. They all vary in quality, and cost, so it’s hard to recommend just one for a particular platform. It can be quite difficult to find the perfect solution to match your current online selling software package.
We typically recommend any e-commerce seller who comes to us with questions about order tracking to check out AfterShip. Their software integrates with plenty of platforms (Shopify, WooCommerce, Magento, BigCommerce, Squarespace, etc.). Many of the order tracking systems we build are for companies who aren’t using these platforms but if you are on one of them AfterShip is a good option to look into first.
Best Options for Manufacturing Facilities
Unfortunately, most large manufacturing plants use custom order management applications or off-the-shelf software that doesn’t include shipping company integrations. There are plenty of manufacturing businesses out there that are still keeping records in spreadsheets and on paper as well. This might describe how your business is tracking orders today.
In cases like that, there is no easy way to keep your customers in the loop. The solutions typically require a lot of manual data entry or hand-holding with phone calls and emails. Tasks like that are obvious drains on employee time and resources.
Instead of making staff look up information for your customers, you should aim to provide that data to them automatically. Thankfully writing a small application to handle all of this work for you is a pretty simple task.
I’m going to lay out the steps I take for including order tracking information with my own client’s order management projects. My clients use any of these three freight compaines so I have solutions for each one in this post:
There is a first step before we get to the process of drawing tracking status from the freight companies. We need to figure out how to associate customer orders with their corresponding tracking numbers.
Connecting Orders with Tracking Numbers
For our clients, who aren’t using a common e-commerce platform, I typically create additional modules in their order management applications. These modules let them associate tracking numbers they receive from their freight companies with order data. We normally use individual order numbers or entire packing slips their system has generated.
For example, one of the companies I work with uses a fully custom Intranet application to manage their orders. At the end of the day, the workers in the shipping department go to a special form I created. The form is preloaded with all of the orders they shipped that day and sorted by packing slip. They choose the freight company that was responsible for the orders and enter the tracking number they were issued.
It looks something like this:
Once they save that form the orders on the chosen packing slips are tied to the tracking numbers they entered. Now because this client ships palettes full of orders every day we went with this packing slip approach. This concept can be applied to individual orders as well. The method would be the same. This whole process only takes a few minutes each day. The amount of time it saves, in the long run, is exponentially greater.
Running a Side Application to Your Main Ordering System
If you find yourself stuck with a third-party vendor’s program that you can’t modify there are still options. It wouldn’t take much to create a brand new application, that runs independently, to handle basic data entry. That new application could then maintain the next steps in the process as well. You might not get integration as tightly woven together as you want with this approach. Of course, you would still be creating a way to better serve your customer’s order tracking needs than doing nothing.
Monitoring Tracking Numbers on Your Own
Once we have the orders tied to individual tracking numbers we have all sorts of options. We can simply email customers with their order numbers and corresponding tracking numbers and be done with it. Or, if we want to go a little further, we can start monitoring those tracking numbers ourselves. This gives you the chance to give near real-time delivery updates to your customers.
This takes a little bit of extra work. Let’s go over how to monitor the status of tracking numbers for three common freight carriers.
UPS Tracking Numbers
The first step in looking up UPS tracking numbers is to create a UPS.com profile. You can learn more about the steps involved in doing this at the UPS Developer Kit page on their site. You will need to create a profile and request an access key to start getting data out of their system.
Once you finally have everything set up properly from the administration side getting tracking number statuses is pretty simple. You make a basic XML request, like the one below, and send it to the UPS tracking URL. The tracking URL should be provided to you in the API documentation.
<AccessRequest xml:lang='en-US'> <AccessLicenseNumber>YOUR_ACCESS_KEY</AccessLicenseNumber> <UserId>YOUR_USER_ID</UserId> <Password>YOUR_PASSWORD</Password> </AccessRequest> <TrackRequest> <Request> <TransactionReference> <XpciVersion>1.0</XpciVersion> </TransactionReference> <RequestAction>Track</RequestAction> </Request> <TrackingNumber>YOUR_TRACKING_NUMBER</TrackingNumber> </TrackRequest>
If you did everything correctly and your tracking number is valid you’ll get an XML response back that will look something like this:
<TrackResponse> <Shipment> <Service> <Code>003</Code> <Description>UPS GROUND</Description> </Service> <PickupDate>20180207</PickupDate> <Package> <TrackingNumber>1Z1111111111111111</TrackingNumber> <DeliveryIndicator>N</DeliveryIndicator> <Activity> <ActivityLocation> <Address> <City>LOS ANGELES</City> <StateProvinceCode>CA</StateProvinceCode> <PostalCode>90023</PostalCode> <CountryCode>US</CountryCode> </Address> <Code>AI</Code> <Description>DOCK</Description> <SignedForByName>MARK PRICE</SignedForByName> </ActivityLocation> <Status> <StatusType> <Code>D</Code> <Description>DELIVERED</Description> </StatusType> <StatusCode> <Code>9E</Code> </StatusCode> </Status> <Date>20180213</Date> <Time>141100</Time> </Activity> </Package> </Shipment> </TrackResponse>
I’ve trimmed some parts out of that XML example above to get to the good stuff so what you get back might be slightly different. You’ll also see different responses based on the delivery status as well. This example is for a package that has reached it’s final destination and it tells us the delivery address, who signed for the package and what date and time the delivery happened.
XPO Logistics Tracking Numbers
XPO Logistics has a similar XML-based API as UPS. You’ll need to create an account with them and then send your username, password and a simple XML request like the following to get back details on a given tracking number:
<ShipmentStatusRequest testmode="N"> <CustRefNbr>111-111111</CustRefNbr> <ShipmentStatusRequest>
A typical XPO response for a submitted tracking number will look like this:
<PRONmbr>111111111</PRONmbr> <Status> <StatusCode>23</StatusCode> <StatusMessage>Delivered<StatusMessage> </Status> <PickupDate>2/9/2018</PickupDate> <PickupAfterHours>N</PickupAfterHours> <DeliveredDate>2/12/2018</DeliveredDate> <DeliverySignature>J Gronas</DeliverySignature> <DeliverySignatureDate>2018-2-12T12:23</DeliverySignatureDate>
I’ve cleaned up a lot from this example response as well to get to the meat of what you really need. XPO tells you delivery times and details on the person who received the package just like UPS.
Holland Freight Tracking Numbers
Holland offers the most straight forward web services of the three freight companies I’m reviewing in this post. To get back tracking number data from Holland you submit a very simple HTTP request like so:
The typical XML response you’ll get back from Holland will be similar to this:
<TrackDetailResponse> <TrackDetail> <PRONUMBER>11111111111</PRONUMBER> <PONUMBER>111111</PONUMBER> <CURRENTSTATUS>Delivered Clear 12/11/17 at 11:29</CURRENTSTATUS> <PICKUPDATE>12/08/2017</PICKUPDATE> <STANDARDDELIVERYDATE>12/11/2017</STANDARDDELIVERYDATE> <SERVICE_TYPE>REGIONAL_DELIVERY</SERVICE_TYPE> <SIGNATURE>FIDEL</SIGNATURE> </TrackDetail> </TrackDetailResponse>
Holland’s API returns the same data we need as the rest but is just so much easier to use than the others. There is no account necessary or documentation to work your way through. If you use Holland as your main shipping company you can get customer order tracking up and running in very little time.
Miscellaneous Carrier Tracking Numbers
In addition to the big three above, there are plenty of other carriers and freight services that offer tracking numbers. According to some estimates, the number of carriers worldwide is over 700. It can get awfully expensive building monitoring code for that many carriers. The price of that much custom software can get expensive as well. Luckily, there are a handful of services that will handle the heavy lifting for you. These services support hundreds and hundreds of freight carriers and provide tracking information in a universal format.
Trackingmore is one of the most popular of these services. They offer shipping and delivery data for tracking numbers from 753 carriers worldwide. They offer their own custom API that will give you the latest details on any tracking number you provide it. In terms of cost, they offer a simple free plan to start. As your needs grow, and you have to track more and more numbers, they offer paid plans that increase in cost as your number of tracked shipments gets bigger.
Providing Order Production Data without Shipping Details
Not everyone wants to offer their customers exact shipping information for their orders. For many businesses, the goal is to keep their customers informed during the production process instead. The majority of requests we see here for customer order tracking systems fit this bill.
In this case, we can build a custom system that lets you manage your orders, products, and individual stages of production as your complete orders. Then, a simple lookup can be built for your customers to see in nearly real-time how close their order is to being completed. You can even add in features like email alerts, dynamic estimated shipping date calculations, and much more.
Pulling It All Together
Once you have all of this tracking data stored in a database the next step is deciding how to use it in the most effective way possible.
My typical approach is to integrate it throughout the order management system in reports, order lookups and anywhere the current whereabouts of an order would be useful to staff. Again, this is only possible when I’m the one directly responsible for the order management system in question so with third-party software you’ll have to get more creative with systems and software running adjacent to your main package.
For one of my clients, I went a step further and built a customer portal completely from scratch. This lets the client’s customers log in to a basic web application and monitor order statuses on their own through a search interface. The aim is to cut down on the number of phone calls and emails from customers asking where their orders are in the production and shipping process.
You can do the same thing for your customers as well. The heavy lifting to get to that point is the order and tracking number integration. You can monitor the delivery statuses on a regular basis, until orders are finally delivered, fairly easily.
Build Your Own Order Tracking System for Your Manufacturing Business
Do you need help building your own order tracking system for your manufacturing or production business? Link Software has a lot of experience building these kinds of applications from scratch. We can create a custom client portal, an order tracking system, or even a fully-fledged ERP system for your company. Contact us today to learn more about what we can do for you.