Many customers get confused when they buy from a local online store like you and see their orders being shipped from China.

Customers usually assume that you might be located in their own country if you speak their language.

The original tracking details shows that the product is being shipped from China but with the new tracking page, we made some changes by hiding China and Shenzhen location so your customers will never know that you are a dropshipping business.

You can create your tracking page within a few minutes instead of using our tracking http://track.webuyz.com.

Here's an example:

Before:

https://track.webuyz.com/?no=MN508021583GB

 ( This tracking page is just for you) http://track.webuyz.com

After: 

This tracking page is for your customers. 

The tracking page is for your customers, we made some adjustment to hide that the product is coming from China since we are using fast shipping along with your customers local post labels.

Example: https://adnannidal.myshopify.com/pages/track?no=MN508021583GB

To create a tracking page in your Shopify store follow these steps:

  • Go to your Shopify admin store
  • Navigate to online store
  • Click on pages
  • Click on Add page to create a new page
  • Insert the page name. For example, Track and click on Show HTML button
  • Insert this code inside the page content.
 <!-- html-css -->
    <style type="text/css">

        .mainDiv {
            margin-top: 75px;
            margin-bottom: 75px;
            margin-left: auto;
            margin-right: auto;
            max-width: 750px;
            font-family: Roboto,Helvetica Neue,sans-serif;
        }

        .buttoons {
            text-align: left;
        }

        .mainDiv table {
            margin-left: auto;
            margin-right: auto;
            border-collapse: collapse;
            width: 97%;
            min-width: 700px;
        }

            .mainDiv table td, .mainDiv table th {
                margin: 10px;
                text-align: left;
            }

            .mainDiv table tr {
                box-shadow: 0 0 0 0.2px rgba(63,63,68,.11), 0 6px 11px 0 rgba(63,63,68,.15);
                display: grid;
                margin-top: 18px;
            }

            .mainDiv table strong {
                padding-left: 5px;
            }


        label-div {
            min-width: 200px;
        }

        .inputs {
            text-align: center;
        }

        .tracking-number-input {
            background-color: rgba(188,188,188,0.23);
            border-radius: 25px;
            padding: 0.75rem 6.75rem 0.75rem 1.5rem;
            font-weight: 300;
            font-size: 0.75rem;
            line-height: 1.6;
            letter-spacing: 0.033em;
            border: 0.0625rem solid transparent;
            transition: border 0.2s ease-in-out;
        }

        .track-btn {
            cursor: pointer;
            color: #fff;
            background-color: #979797;
            padding: 5px;
            padding-right: 12px;
            padding-left: 12px;
            border: none;
            border-radius: 17px;
            height: 35px;
            width: 70px;
            margin-left: 24px;
        }

        .tracking-number-container, .track-btn-container {
            display: inline-block;
        }
        .please-wait-container{
                position: absolute;
                width: 100%;
                height: 100%;
                display: flex;
                align-items: center;
                padding-left: 150px;
        }
    </style>
    <div class="mainDiv" ng-cloak>
        <div class="please-wait-container" >Please Wait...</div>
        <div class="buttons">

            <div>
                <div class="inputs">
                    <div class="tracking-number-container">


                        <input class="tracking-number-input" placeholder="Tracking Number">

                    </div>

                    <div class="track-btn-container">
                        <input type="button" class="md-raised track-btn" value="Track">

                    </div>
                </div>
            </div>


            <table class="table1" id="table1">
                <tbody></tbody>
            </table>

        </div>
    </div>
    <!-- /html-css -->

    <script>
 
        var PageInteractor = PageInteractor || {};
        var environment = environment || {};

        PageInteractor.getQueryValueByName = (queryName) => {
            if (typeof window.location.search === "undefined") {
                return null;
            }
            if (typeof queryName === "undefined" || queryName === null) {
                console.log('queryName does not provided...');
                return null;
            }
            var queryPart = window.location.search.replace('?', '');
            var queryArray = queryPart.split('&');
            var queryObjectArray = [];
            try {
                queryArray.forEach(function (item, index) {
                    var nameVal = item.split('=');
                    queryObjectArray.push({ 'qName': nameVal[0], 'qValue': nameVal[1] });
                });
            }
            catch (e) {
                console.log(e.stack);
                return null;
            }
            var queryValue;
            try {
                queryObjectArray.forEach(function (item) {
                    if (item.qName === queryName) {
                        queryValue = item.qValue;
                        return false;
                    }
                });
                return queryValue;
            }
            catch (e) {
                console.log(e.stack);
                return null;
            }
        };
        PageInteractor.replaceNewQueryString = (urlString, queryString) => {
            let url = new URL(urlString);
            if (queryString.substring(0, 1) == '&')
                queryString = queryString.substring(1);
            let splitted = queryString.split('=');
            url.searchParams.set(splitted[0], splitted[1]);
            return url.href;
        };
        environment.mainApiUrl = 'https://us-central1-webuyz1.cloudfunctions.net/mainFunction';
        let $scope = {};
        $scope.init = () => {
            $scope.trackingNumber = PageInteractor.getQueryValueByName('no');
            if ($scope.trackingNumber)
                $scope.track();
            else $('.please-wait-container').hide();
            $('.track-btn').click(() => {
                $scope.trackingNumber = $('.tracking-number-input').val();
                $scope.newTrackLink();
            });
        };
        $scope.track = () => {
            if (!$scope.trackingNumber) {
                $scope.showAlert('', 'Not a valid tracking number');
                $('.please-wait-container').hide();
                return;
            }
            $('.tracking-number-input').val($scope.trackingNumber);
            $.ajax({
                method: 'GET',
                url: environment.mainApiUrl + '/api/GetTrackingNumberDetail?trackingNumber=' + $scope.trackingNumber,
            }).done((d) => {
                try {
                    console.log(d);
                    if (typeof d === 'string') {
                        d = JSON.parse(d);
                    }
                    if (typeof d === 'string') {
                        d = JSON.parse(d);
                    }
                    if (d.Item && d.Item.OrderTrackingDetails) {
                        setTimeout(async () => {
                            let length1 = d.Item.OrderTrackingDetails.length;
                            let toRemoveMatches = ['hongkong', 'hong kong', 'china', 'shenzhen', 'shen zhen'];
                            let country = await $scope.getCountryByCode(d.Item.CountryCode);
                            for (var i = length1 - 1; i > -1; i--) {
                                let item = d.Item.OrderTrackingDetails[i];
                                if (i == 0) {
                                    item.ProcessContent = "We are preparing your order.<div class='second-line'>Please allow up to 3-5 business days from the date of your order for processing</div>";
                                    item.ProcessLocation = country;
                                }
                                else if (i == 1) {
                                    item.ProcessContent = "Good news, your order has been dispatched.<div class='second-line'>Please note that even though the orders are dispatched, your local postal service sometimes take a few days to accurately reflect your order status</div>";
                                    item.ProcessLocation = country;
                                }
                                if (item.ProcessContent.match(/Departed Facility in SHENZHEN/i)) {
                                    console.log(item);
                                }
                                toRemoveMatches.some((it) => {
                                    if (item.ProcessContent.toLowerCase().match(it) || item.ProcessLocation.toLowerCase().match(it)) { //ProcessLocation
                                        d.Item.OrderTrackingDetails.splice(i, 1);
                                        return true;
                                    }
                                });
                            }
                            $scope.orderTrackingDetails = d.Item.OrderTrackingDetails;
                            $scope.ngUpdate();
                        }, 0);
                    }
                    else {
                        $('.please-wait-container').hide();
                    }
                }
                catch (e) {
                    console.log(e.stack);
                }
            }).fail((er) => {
                console.log(er);
            });
        };
        $scope.ngUpdate = () => {
            console.log($scope.orderTrackingDetails);
            $scope.orderTrackingDetails.forEach((track) => {
                $('#table1').append(`
             <tr >
                            <td><label class="label-div">Date:</label> <strong>` + $scope.getLocalDateTimeString(track.ProcessDate) + `</strong></td>

                            <td><label class="label-div">Status:</label><strong >` + track.ProcessContent + `</strong></td>

                            <td><label class="label-div">Location:</label>   <strong>` + track.ProcessLocation + `</strong></td>
                        </tr>
                `);
            });
            $('.please-wait-container').hide();
        };
        $scope.getLocalDateTimeString = (dateTime) => {
            return new Date(dateTime).toLocaleString();
        };
        $scope.getCountryByCode = async (code) => {
            let country = '';
            let countries;
            await $.get(environment.mainApiUrl + '/api/countries').done((r) => {
                countries = r.countries;
            });
            countries.some((cty) => {
                if (code.trim() == cty.countryCode.trim()) {
                    country = cty.countryName;
                    return true;
                }
            });
            return country;
        };
        $scope.newTrackLink = () => {
            if (!$scope.trackingNumber) {
                alert('Not a valid tracking number');
                return;
            }
            location.href = PageInteractor.replaceNewQueryString(location.href, 'no=' + $scope.trackingNumber);
        };
        document.addEventListener('DOMContentLoaded', () => {
            console.log('3 doc ready typeof $: ' + typeof $);
            $scope.init();
        });


</script>
  • Click save.
Did this answer your question?