Order Tracker
Back
Order Tracker
function formatDate(date) { var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
var date = new Date();
var day = date.getDate(); var monthIndex = date.getMonth(); var year = date.getFullYear();
return monthNames[monthIndex] + ' ' + day + ', ' + year; }
var active = false;
function callXHR(url, type, params, callback) { var http = new XMLHttpRequest(); var paramsArr= new Array(); // console.log(params); for(var paramKey in params) { paramsArr.push(paramKey+'='+params[paramKey]); } if(type.toLowerCase() === 'get') { url += '?'+paramsArr.join('&'); } http.open(type, url, true);
//Send the proper header information along with the request http.setRequestHeader('Content-type', 'application/json'); http.setRequestHeader('Accept', 'application/json');
if(active) { http.abort(); callStatus = 'false'; } else { callStatus = 'true'; } active=true;
http.onreadystatechange = function() {//Call a function when the state changes. if(http.readyState === 4 && http.status === 200) { var data = JSON.parse(http.responseText); active=false; callback(data); } else if(http.readyState === 4) { var data = JSON.parse(http.responseText); active=false; callback(data, true); } }; if(callStatus == 'true') { if(type.toLowerCase() == 'post') { http.send(JSON.stringify(params)); } else { http.send(params); } } // http.send(params); }
var settingsParam = { // domain: window.location.hostname domain: document.getElementsByName('domain')[0].value }; callXHR('https://orderlookup.hulkapps.com/shop/settings', 'GET', settingsParam, function(response, is_error) { if(!is_error) {
var required_filed = document.getElementById('required_filed'); var display_layout = document.getElementById('display_layout'); var formTitle = document.getElementById('serachFormTitle'); var gridOrderTitle = document.getElementById('gridOrderTitle'); var listOrderTitle = document.getElementById('listOrderTitle'); var orderForm = document.getElementById('orderInnerSec'); var domain = document.getElementsByName('domain')[0].value; var formInnerSection = ''; var buttonText = ''; var buttonColor = ''; var buttonBgColor = ''; var buttonBorderRadius = ''; var emailLabel = ''; var orderNumberLabel = ''; var emailPlaceholder = ''; var orderNumberPlaceholder = '';
if(response.back_link_text) { document.getElementById('back_link_text').innerText = response.back_link_text; } else { document.getElementById("back_link_text").value = 'Back'; } if(response.name_label) { document.getElementById("store_name").value = response.name_label; } else { document.getElementById("store_name").value = 'Name'; } if(response.order_date_label) { document.getElementById("order_date").value = response.order_date_label; } else { document.getElementById("order_date").value = 'Order Date'; } if(response.shipping_adress_label) { document.getElementById("order_shipping_arress").value = response.shipping_adress_label; } else { document.getElementById("order_shipping_arress").value = 'Shipping Address'; } if(response.order_status_label) { document.getElementById("order_status").value = response.order_status_label; } else { document.getElementById("order_status").value = 'Order Status'; } if(response.tracking_url_label) { document.getElementById("order_tracking_url").value = response.tracking_url_label; } else { document.getElementById("order_tracking_url").value = 'Order Tracking URL'; } if(response.no_order_text) { document.getElementById("no_any_order").value = response.no_order_text; } else { document.getElementById("no_any_order").value = 'No any order found.'; } if(response.show_tracking_url) { document.getElementById("show_tracking_url").value = 'yes'; } else { document.getElementById("show_tracking_url").value = 'no'; } if(response.button_text) { var buttonText = response.button_text; } if(response.text_color) { buttonColor = response.text_color; } if(response.serach_form_title) { formTitle.innerHTML = response.serach_form_title; } if(response.order_list_title) { gridOrderTitle.innerHTML = response.order_list_title; listOrderTitle.innerHTML = response.order_list_title; } if(response.background_color) { buttonBgColor = response.background_color; } if(response.border_radius) { buttonBorderRadius = response.border_radius+'px'; } if(response.required_field) { required_filed.value = response.required_field; } if(response.display_layout) { display_layout.value = response.display_layout; } if(response.show_input_label) { if(response.email_address_label) { var emailLabel = response.email_address_label; } else { var emailLabel = 'Email Address'; } if(response.order_number_label) { var orderNumberLabel = response.order_number_label; } else { var orderNumberLabel = 'Order Number'; } }
if(response.email_address_placeholder) { var emailPlaceholder = response.email_address_placeholder; } else { var emailPlaceholder = 'Enter Email Address'; } if(response.order_number_placeholder) { var orderNumberPlaceholder = response.order_number_placeholder; } else { var orderNumberPlaceholder = 'Enter Order Number'; }
if(required_filed.value == 'email_and_orderid') { formInnerSection = '
'; } if(required_filed.value == 'email') { formInnerSection = '
'; } if(required_filed.value == 'orderid') { formInnerSection = '
'; }
if(response.showpage == false) { document.getElementById('order_form').innerHTML = '
Oops! Page not found. The page is disabled from the app.
'; }
orderForm.innerHTML = '
';
} });
function backBtn() {
document.getElementById('order_form').style.display = 'block'; document.getElementById('grid_view').style.display = 'none'; document.getElementById('list_view').style.display = 'none'; document.getElementById('order_table').innerHTML = ''; document.getElementById('no_order').innerHTML = ''; document.getElementById('listview_no_order').innerHTML = ''; document.getElementById('order_result').innerHTML = ''; document.getElementsByClassName("order_form")[0].reset(); document.getElementById('disabled_sec').style.display = 'none'; document.getElementById('submit').style.display = 'block';
}
function submitForm(event) {
event.preventDefault(); var email = ''; var orderId = ''; var domain = document.getElementsByName('domain')[0].value; var required_filed = document.getElementsByName('required_filed')[0].value; var display_layout = document.getElementsByName('display_layout')[0].value; var numbers = /^[0-9]+$/;
if(required_filed == 'email_and_orderid') { email = document.getElementById('hulkemail').value; orderId = document.getElementById('hulkorder_id').value;
if(email == '') { document.getElementById('emailError').innerHTML = 'Please enter your registered email address'; document.getElementById('orderidError').innerHTML = ''; return false; } else if(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email) == false) { document.getElementById('emailError').innerHTML = 'Please enter a valid email address'; document.getElementById('orderidError').innerHTML = ''; return false; } else if(orderId == '') { document.getElementById('orderidError').innerHTML = 'Please enter your order number'; document.getElementById('emailError').innerHTML = ''; return false; } else { document.getElementById('emailError').innerHTML = ''; document.getElementById('orderidError').innerHTML = ''; document.getElementById('disabled_sec').style.display = 'block'; document.getElementById('submit').style.display = 'none'; } } else if(required_filed == 'email') { email = document.getElementById('hulkemail').value;
if(email == '') { document.getElementById('emailError').innerHTML = 'Please enter your registered email address'; return false; } else if(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email) == false) { document.getElementById('emailError').innerHTML = 'Please enter a valid email address'; return false; } else { document.getElementById('emailError').innerHTML = ''; document.getElementById('disabled_sec').style.display = 'block'; document.getElementById('submit').style.display = 'none'; } } else { orderId = document.getElementById('hulkorder_id').value;
if(email != '' && /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email) == false) { document.getElementById('emailError').innerHTML = 'Please enter a valid email address'; return false; } else if(orderId == '') { document.getElementById('orderidError').innerHTML = 'Please enter your order number'; return false; } else { document.getElementById('orderidError').innerHTML = ''; document.getElementById('disabled_sec').style.display = 'block'; document.getElementById('submit').style.display = 'none'; } }
var url = "https://orderlookup.hulkapps.com/orderSearch"; var params = { 'email': email, 'order_id': orderId, 'domain': domain, '_token': "5UNxOhXl2nGMViMMZM0cd3oZWv2i4840gMLpe7o1", }; callXHR(url, 'POST', params, function(response, is_error){ var storeNameLabel = document.getElementById('store_name').value; var orderDateLabel = document.getElementById('order_date').value; var orderShippingAddressLabel = document.getElementById('order_shipping_arress').value; var orderStatusLabel = document.getElementById('order_status').value; var orderTrackingUrlLabel = document.getElementById('order_tracking_url').value; var showOrderTrackingUrl = document.getElementById('show_tracking_url').value;
document.getElementById('order_form').style.display = 'none'; if(display_layout == 1) { document.getElementById('grid_view').style.display = 'block'; document.getElementById('list_view').style.display = 'none'; } else if(display_layout == 0){
document.getElementById('list_view').style.display = 'block'; document.getElementById('grid_view').style.display = 'none'; } if(!is_error) { if(response.orders == 'Error') {
var heading = document.createElement("h4");
var span1 = heading.appendChild(document.createElement("span")).innerHTML = 'Oops! Something went wrong. Please try again.'; if(display_layout == 1) { document.getElementById('no_order').appendChild(heading); } else { document.getElementById('listview_no_order').appendChild(heading); } } else if(response.orders != '') { var orders = response.orders;
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
for(key in orders) {
orderid = orders[key].order_number;
var date = new Date(orders[key].created_at); var day = date.getDate(); var monthIndex = date.getMonth(); var year = date.getFullYear();
var orderDate = monthNames[monthIndex] + ' ' + day + ', ' + year;
if(orders[0].customer != null) { firstName = orders[0].customer.first_name; lastName = orders[0].customer.last_name;
} else { firstName = ''; lastName = ''; }
var shippingaddress = orders[key].shipping_address; if(shippingaddress != null) { address1 = shippingaddress.address1; address2 = ' '+ shippingaddress.address2 + ','; city = ' '+ shippingaddress.city; provincecode = ' '+ shippingaddress.province_code; zip = ' '+ shippingaddress.zip + ','; country = ' '+ shippingaddress.country; } else { address1 = ''; address2 = ''; city = ''; provincecode = ''; zip = ''; country = ''; } if(orders[key].cancelled_at != null){ var orderStatus = 'Cancelled'; } else if(orders[key].fulfillment_status == null){ var orderStatus = 'Being Processed'; }else { var orderStatus = 'Shipped'; }
if(orders[key].fulfillments != '' && orders[key].fulfillments[0].tracking_url != undefined) { var trakingUrl = orders[key].fulfillments[0].tracking_url; } else { var trakingUrl = orders[key].order_status_url; }
if(display_layout == 1) {
var trackOrder = trakingUrl + " Track my order";
var heading = document.createElement("h3"); heading.classList.add("order_id"); var span1 = heading.appendChild(document.createElement("span")).innerHTML = "Order "; var span2 = heading.appendChild(document.createElement("span")).innerHTML = "#"+ orderid;
var table = document.createElement("table"); table.classList.add("table"); var tbody = document.createElement("tbody"); table.appendChild(tbody);
var tr = new Array(); var th = new Array(); var td = new Array();
if(showOrderTrackingUrl == 'yes') { var tableCount = 4; } else { var tableCount = 3; }
for(i=0; i<=tableCount; i++) { tr[i] = document.createElement("tr"); tbody.appendChild(tr[i]); th[i] = tr[i].appendChild(document.createElement("th")); th[i].setAttribute("scope", "row"); td[i] = tr[i].appendChild(document.createElement("td")); } th[0].innerHTML = storeNameLabel; th[1].innerHTML = orderDateLabel; th[2].innerHTML = orderShippingAddressLabel; th[3].innerHTML = orderStatusLabel; td[0].innerHTML = firstName +' '+ lastName; td[1].innerHTML = orderDate; td[2].innerHTML = address1+''+address2+''+city+''+provincecode+''+zip+''+country; td[3].innerHTML = orderStatus; td[3].style.textTransform = "capitalize"; if(showOrderTrackingUrl == 'yes') { th[4].innerHTML = orderTrackingUrlLabel; td[4].innerHTML = trackOrder; } document.getElementById('order_table').appendChild(heading); document.getElementById('order_table').appendChild(table); } else { var trackOrder = ''; if(showOrderTrackingUrl == 'yes') { var trackOrderUrl = "" + trakingUrl + "Track my order"; trackOrder = '
'+trackOrderUrl+'
'; //var trackOrder = "" + trakingUrl + "Track my order"; }
var division = document.createElement("div"); division.classList.add("detail_table"); division.classList.add("bg-light"); division.classList.add("p-4"); division.classList.add("rounded"); division.classList.add("border");
division.innerHTML = '
#'+orderid+'
'+firstName +' '+ lastName+'
'+address1+''+address2+''+city+''+provincecode+''+zip+''+country+'
'+orderDate+'
'+orderStatus+'
'+trackOrder;
document.getElementById('order_result').appendChild(division); }
}
} else { var heading = document.createElement("h4"); var mimg = document.createElement("img"); mimg.classList.add("no_order_img"); mimg.src = "https://orderlookup.hulkapps.com/shopping-purse-icon.svg";
var noOrderText = document.getElementById('no_any_order').value; var span1 = heading.appendChild(document.createElement("span")).innerHTML = noOrderText;
if(display_layout == 1) { document.getElementById('no_order').appendChild(mimg); document.getElementById('no_order').appendChild(heading); } else { document.getElementById('listview_no_order').appendChild(mimg); document.getElementById('listview_no_order').appendChild(heading); } } }
}); }