Subscriptions
append(`
`)
}
function deletePopupConfirm(prepaidFlag)
{
// Get the modal
var apptleDeletePopupmodal = document.getElementById("appstle_popupModal");
jQuery('body').css('overflow', 'hidden')
var appstleModalClose = document.getElementsByClassName("appstle_model_close")[0];
apptleDeletePopupmodal.styledisplay = "block";
// When the user clicks on (x), close the modal
appstleModalClose.onclick = function() {
hideDeleteConfirmPopup()
}
jQuery('.appstle_delete_model_nobtn').on('click', function(){
hideDeleteConfirmPopup()
})
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == appstillDeletePopupmodal) {
hideDeleteConfirmPopup()
}
}
}
function hideDeleteConfirmPopup() {
jQuery("#appstle_popupModal").remove();
appendDeletePopupBodyTag();
jQuery('body').css('overflow', 'unset')
}
function subscriptionInit(){
jQuery("body").off();
if(jQuery('[id=appstle_popupModal]').length > 0) {
jQuery("#appstle_popupModal").remove();
}
appendDeletePopupBodyTag();
jQuery(".appstle_myProduct").empty();
if (customerId != undefined && shopName != undefined) {
let subscriptionUrl = "https://subscription-admin.appstlecom/api/subscription-customers/" + customerId + "?shop=" + shopName
let validContractIdUrl = "https://subscription-admin.appstlecom/api/subscription-customers/valid/" + customerId + "?shop=" + shopName
subscriptionRender(subscriptionUrl, validContractIdUrl, shopName, customerId, null);
} else if (token!=null){
let subscriptionUrl = "https://subscription-admin.appstlecom/api/subscription-customers/" + token + "?shop=" + shopName
let validContractIdUrl = "https://subscription-admin.appstlecom/api/subscription-customers/valid/" + token + "?shop=" + shopName
subscriptionRender(subscriptionUrl, validContractIdUrl, shopName, null, token);
}
else {
window.rental.href = 'https://'+shopName +'/account'
}
}
function accordionToggle(ev) {
// var acc = document.getElementsByClassName("accordion");
// var i;
ev.classList.toggle("active");
var panel = ev.nextElementSibling;
$(panel).slideToggle()
}
function toggleContractAccordian(el) {
var selector = $(el).attr('data-accordian-selector')
$(el).toggleClass("active");
$(selector).slideToggle()
}
function getDeviceType() {
const ua = navigator.userAgent;
if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {
return "tablet";
}
if (
/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(
au
)
) {
return "mobile";
}
return "desktop";
};
function appstle_adjust_container_height(imageEl) {
}
function updateSubtotal(selector) {
var productEl = jQuery('#' + selector);
var variantSelectField = productEl.find('select');
var currencyCode = productEl.attr('data-currency-code');
var qty = productEl.find('input').val();
if(parseInt(qty) <= 0)
{
jQuery('#' + selector).find('appttle_input_error').show();
return;
}
else
jQuery('#' + selector).find('appttle_input_error').hide();
var selectedVariantPrice = variantSelectField.find('option[value="' + variantSelectField.val() + '"]').attr('data-variant-price');
productEl.find('appttle_edit_total span').text(parseFloat(selectedVariantPrice) * parseInt(qty) + ' ' + currencyCode);
}
function hideAddProductsSearchBar(el) {
var currentElement = jQuery(el);
currentElement.parent().parent().hide()
currentElement.parent().parent().prev().show()
}
function showAddProductsSearchBar(el) {
var currentElement = jQuery(el);
currentElement.hide();
currentElement.next().show();
}
function subscriptionRender(subscriptionUrl, validContractIdUrl, shopName, customerId, token) {
jQuery.ajax({
async: "true",
type: "GET",
url: subscriptionUrl,
dataType: "json",
headers: {
'Access-Control-Allow-Origin': '*',
},
success: function (result, status, xhr) {
jQuery.ajax({
async: "true",
type: "GET",
url: validContractIdUrl,
dataType: "json",
headers: {
'Access-Control-Allow-Origin': '*',
},
success: function (validContractId, status, xhr) {
renderPage(result, validContractId);
},
error: function (xhr, status, error) {
console.log("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
}
});
},
error: function (xhr, status, error) {
console.log("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
}
});
}
function renderPage(result, validContractId)
{
if (result?.subscriptionContracts?.edges?.length > 0) {
var subscriptionContractData = result.subscriptionContractsedgessort(function (a, b) {
if (a.node.node.status b.node.node.status) {
return 1;
}
// names must be equal
return 0;
});
subscriptionContractData.forEach((subItem, index) => {
var paymentData = subItem?.node?.customerPaymentMethod?.instrument;
var paymentMethod = paymentData?.__typename;
var contractId = subItem?.node?.id?.split('/')[4];
var frequencyIntervalTranslate = subItem?.node?.billingPolicy?.interval;
if(frequencyIntervalTranslate == "WEEK")
{
frequencyIntervalTranslate = WeekText
}
else if(frequencyIntervalTranslate == "DAY")
{
frequencyIntervalTranslate = DayText
}
else if(frequencyIntervalTranslate == "MONTH")
{
frequencyIntervalTranslate = MonthText
}
else if(frequencyIntervalTranslate == "YEAR")
{
frequencyIntervalTranslate = YearText
}
// Check the contract id is valid or not
if(validContractId?.length >0 && !validContractId?.includes(parseInt(contractId)))
{
return;
}
// Calling Contract Details API
//var detailedContractData = contractDetailsFromContractId(contractId);
jQuery.ajax({
async:false,
type: "GET",
url: 'https://subscription-admin.appstlecom/api/subscription-contracts/contract-external/' + contractId + '?shop=' +shopName,
dataType: "json",
headers: {
'Access-Control-Allow-Origin': '*',
},
success: function (extResult, status, xhr) {
if (paymentMethod === "CustomerCreditCard") {
paymentMethod = creditcartText
}
let isPrepaidplan = true;
if(extResult?.billingPolicy?.intervalCount == extResult?.deliveryPolicy?.intervalCount)
{
isPrepaidplan = false;
}
if (subItem.node.node.lines?.edges?.length == 1) {
subItem.node.node.lines?.edges?.forEach(contractItem => {
if (contractItem?.node?.productId == null) {
var accordionSection =
'
');
jQuery('.apptle_subscription_contract_image_wrapper_' + contractId).append(imageElement);
}
else {
var subscribedProduct =
'
'
var upcomingOrderProductTitle = '
'
var upcomingOrderProductTitle = '
');
// imageElement.css('height', imageHeight);
jQuery('.apptle_subscription_contract_image_wrapper_' + contractId).append(imageElement);
}
else {
var subscribedProduct =
'
'
var upcomingOrderProductTitle = '
'
var upcomingOrderProductTitle = '
'
+ '
' + '
'
jQuery('.appttle_myProduct').append(accordionSection);
}
else {
var subscriptionList =
' '
+ '
'
+ '
'
+ ' ' + subscriptionNoText + ' - #' + subItem.node.node.idsplit('/')[4] + '
' + '' + '
' + contractItem.node.node.title + ' has been removed.
'
+ ' '
+ ' '
+ '
'
+ ''
+ '
'
+ ''
+ ' '
+ '
'
+ ''
+' '
+ '
'
var addressDetails = extResult?.deliveryMethod?.address
var accordionSection =
' '
jQuery('.appttle_myProduct').append(subscriptionList);
jQuery('.appttle_myProduct').append(accordionSection);
subItem.node.node.lines?.edges?.forEach((contractItem, idx) => {
if (contractItem?.node?.productId != null) {
var subscribedProduct =
''
+'
'
+'
'
jQuery('#sub' + index).append(subscribedProduct)
if (contractItem.node.node.variantTitle == null) {
jQuery('.appstle_variantTitle_' + contractItem.node?.productId?.split('/')[4]).hide();
}
jQuery('.appstle_subscription_contract_product_list_wrapper_' + contractId).append(
''
+'' + contractItem.node?.title + ' - ' + contractItem?.node?.variantTitle + ''
+'
'
+' '
+'
'
+' '
+' '
+' '
+'
'
+' ' + quantityLbl + ': ' + contractItem.node?.quantity + '
'
+' ' + amountLbl + ': ' + contractItem.node?.lineDiscountedPrice?.amount + ' ' + contractItem.node?.lineDiscountedPrice?.currencyCode + '
'
+' ' + nextOrderText + ': ' + (new Date(subItem?.node?.nextBillingDate).toDateString()) + '
'
+' '
+''+ ((editProductFlag == "true") ? ('') : '') + ''
+' '
+'
'
+'' + contractItem.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle): '') + (contractItem.node?.quantity > 1 ? 'x ' + contractItem.node?.quantity + '' : '') + '
'
)
var imageElement = jQuery(''
+ '
'
jQuery('#sub' + index).append(subscribedProduct)
}
});
if(shopName != "taelor-style-dev.myshopify.com" && (addAdditionalProductFlag == "true"))
jQuery('#sub' + index).prepend(''
+ '' + contractItem.node?.title + 'has been removed'
+ '
'
+ '')
if(isPrepaidplan)
{
result?.originOrder?.fulfillmentOrders?.edges?.map((orderItem) => {
var upcomingOrder =
'
'
+'
'
var upcomingOrderOld = ''
+'
'
+' '
+'
'
+'' + (orderItem.status === 'SKIPPED'? '' : '') + ''
+' '
+'
'
+' '
+'
'
+' '
+' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.fulfillAt).toDateString()) + ''
+' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + ''
+'
'
+' '
+'
'
+' '
+' ' + productLabelText + ':'
+'
'
+' '
+'
'
+' '
+ '
'
jQuery('#orderAcc_' + subItem.node?.id?.split('/')[4]).append(upcomingOrder);
subItem.node.node.lines?.edges?.forEach(contractItem => {
var upcomingOrderImage = ''
+ '
'
+ ''
+ '
'
+ ' '
+ '
' + nextOrderDateLbl + ': ' + (new Date(orderItem.fulfillAt).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
'
+ '' + nextOrderDateLbl + ': ' + (new Date(orderItem.fulfillAt).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle): '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + '' : '') + '
'
jQuery('#orderImage_' + orderItem.idsplit("/").pop()).append(upcomingOrderImage);
jQuery('#orderTitle_' + orderItem.idsplit("/").pop()).append(upcomingOrderProductTitle);
if (contractItem.node?.variantTitle == null) {
jQuery('.appstle_variantTitle_' + contractItem.node?.productIdsplit('/')[4]).hide();
}
});
})
}
// Upcoming Order API CALL HERE
if (subItem.node?.status == "ACTIVE" && !isPrepaidplan) {
var upcomingOrderUrl;
if (customerId != null) {
upcomingOrderUrl = "https://subscription-admin.appstlecom/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerId=" + customerId + "&shop=" + shopName
}
else {
upcomingOrderUrl = "https://subscription-admin.appstlecom/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerUid=" + token + "&shop=" + shopName
}
jQuery.ajax({
type: "GET",
url: upcomingOrderUrl,
dataType: "json",
headers: {
'Access-Control-Allow-Origin': '*',
},
success: function (result, status, xhr) {
if (result?.length > 0) {
result.map((orderItem) => {
var upcomingOrder =
''
+'
'
var upcomingOrderOld = ''
+'
'
+' '
+'
'
+'' + (orderItem.status === 'SKIPPED'? '' : '') + ''
+' '
+'
'
+' '
+'
'
+' '
+' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.billingDate).toDateString()) + ''
+' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + ''
+'
'
+' '
+'
'
+' '
+' ' + productLabelText + ':'
+'
'
+' '
+'
'
+' '
+ '
'
jQuery('#orderAcc_' + subItem.node?.id?.split('/')[4]).append(upcomingOrder);
subItem.node.node.lines?.edges?.forEach(contractItem => {
var upcomingOrderImage = ''
+ '
'
+ ''
+ '
'
+ ' '
+ '
' + nextOrderDateLbl + ': ' + (new Date(orderItem.billingDate).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
'
+ '' + nextOrderDateLbl + ': ' + (new Date(orderItem.billingDate).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle): '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + '' : '') + '
'
jQuery('#orderImage_' + orderItem.id).append(upcomingOrderImage);
jQuery('#orderTitle_' + orderItem.id).append(upcomingOrderProductTitle);
if (contractItem.node?.variantTitle == null) {
jQuery('.appstle_variantTitle_' + contractItem.node?.productIdsplit('/')[4]).hide();
}
});
})
}
},
error: function (xhr, status, error) {
console.log("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
}
})
}
}
});
}
else {
var subscriptionList =
' '
+' '
+ '
'
var addressDetails = extResult?.deliveryMethod?.address
var accordionSection =
' '
jQuery('.appttle_myProduct').append(subscriptionList);
jQuery('.appttle_myProduct').append(accordionSection);
subItem.node.node.lines?.edges?.forEach((contractItem, idx) => {
if (contractItem?.node?.productId != null) {
var subscribedProduct =
''
+'
'
+'
'
jQuery('#sub' + index).append(subscribedProduct)
if (contractItem.node?.variantTitle == null) {
jQuery('.appstle_variantTitle_' + contractItem.node?.productId?.split('/')[4]).hide();
}
jQuery('.appstle_subscription_contract_product_list_wrapper_' + contractId).append(
''
+'' + contractItem.node.node.title + ' - ' + contractItem?.node?.variantTitle + ''
+'
'
+' '
+'
'
+' '
+' '
+' '
+'
'
+' ' + quantityLbl + ': ' + contractItem.node?.quantity + '
'
+' ' + amountLbl + ': ' + contractItem.node?.lineDiscountedPrice?.amount + ' ' + contractItem.node?.lineDiscountedPrice?.currencyCode + '
'
+' ' + nextOrderText + ': ' + (new Date(subItem.node?.nextBillingDate).toDateString()) + '
'
+' '
+''+ ((editProductFlag == "true") ? ('') : '') + ''
+''+ ((deleteProductFlag == "true") ? (''): '')
+'
'
+'' + contractItem.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle): '') + (contractItem.node?.quantity > 1 ? 'x ' + contractItem.node?.quantity + '' : '') + '
'
)
let imageElement = jQuery(''
+ '
'
jQuery('#sub' + index).append(subscribedProduct)
}
});
if(shopName != "taelor-style-dev.myshopify.com" && (addAdditionalProductFlag == "true"))
jQuery('#sub' + index).prepend(''
+ '' + contractItem.node?.title + 'has been removed'
+ '
'
+ '')
if(isPrepaidplan)
{
result?.originOrder?.fulfillmentOrders?.edges?.map((orderItem) => {
var upcomingOrder =
'
'
+'
'
var upcomingOrderOld = ''
+'
'
+' '
+'
'
+'' + (orderItem.status === 'SKIPPED'? '' : '') + ''
+' '
+'
'
+' '
+'
'
+' '
+' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.fulfillAt).toDateString()) + ''
+' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + ''
+'
'
+' '
+'
'
+' '
+' ' + productLabelText + ':'
+'
'
+' '
+'
'
+' '
+ '
'
jQuery('#orderAcc_' + subItem.node?.id?.split('/')[4]).append(upcomingOrder);
subItem.node.node.lines?.edges?.forEach(contractItem => {
var upcomingOrderImage = ''
+ '
'
+ ''
+ '
'
+ ' '
+ '
' + nextOrderDateLbl + ': ' + (new Date(orderItem.fulfillAt).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
'
+ '' + nextOrderDateLbl + ': ' + (new Date(orderItem.fulfillAt).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle): '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + '' : '') + '
'
jQuery('#orderImage_' + orderItem.idsplit("/").pop()).append(upcomingOrderImage);
jQuery('#orderTitle_' + orderItem.idsplit("/").pop()).append(upcomingOrderProductTitle);
if (contractItem.node?.variantTitle == null) {
jQuery('.appstle_variantTitle_' + contractItem.node?.productIdsplit('/')[4]).hide();
}
});
})
}
// Upcoming Order API CALL HERE
if (subItem.node?.status == "ACTIVE" && !isPrepaidplan) {
var upcomingOrderUrl;
if (customerId != null) {
upcomingOrderUrl = "https://subscription-admin.appstlecom/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerId=" + customerId + "&shop=" + shopName
}
else {
upcomingOrderUrl = "https://subscription-admin.appstlecom/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerUid=" + token + "&shop=" + shopName
}
jQuery.ajax({
type: "GET",
url: upcomingOrderUrl,
dataType: "json",
headers: {
'Access-Control-Allow-Origin': '*',
},
success: function (result, status, xhr) {
if (result?.length > 0) {
result.map((orderItem) => {
var upcomingOrder =
''
+'
'
var upcomingOrderOld = ''
+'
'
+' '
+'
'
+'' + (orderItem.status === 'SKIPPED'? '' : '') + ''
+' '
+'
'
+' '
+'
'
+' '
+' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.billingDate).toDateString()) + ''
+' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + ''
+'
'
+' '
+'
'
+' '
+' ' + productLabelText + ':'
+'
'
+' '
+'
'
+' '
+ '
'
jQuery('#orderAcc_' + subItem.node.node.idsplit('/')[4]).append(upcomingOrder);
subItem.node.node.lines?.edges?.forEach(contractItem => {
if (contractItem.node?.productId != null) {
var upcomingOrderImage = ''
+ '
'
+ ''
+ '
'
+ ' '
+ '
' + nextOrderDateLbl + ': ' + (new Date(orderItem?.billingDate).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
'
+ '' + nextOrderDateLbl + ': ' + (new Date(orderItem?.billingDate).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == “SKIPPED” ? skipBadgeText: queueBadgeText) + '' + ' ' + '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle): '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + '' : '') + '
'
jQuery('#orderImage_' + orderItem?.id).append(upcomingOrderImage);
jQuery('#orderTitle_' + orderItem?.id).append(upcomingOrderProductTitle);
if (contractItem.node.node.variantTitle == null) {
jQuery('.appstle_variantTitle_' + contractItem.node?.productId?.split('/')[4]).hide();
}
}
else {
var upcomingOrderImage =
''
+ '
'
jQuery('#orderImage_' + orderItem.id).append(upcomingOrderImage)
}
});
})
}
},
error: function (xhr, status, error) {
console.log("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
}
})
}
}
},
error: function (xhr, status, error) {
console.log("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
}
});
});
jQuery(".appstle_preloader").fadeOut(2000, function () {
jQuery(".appstle_myProduct").fadeIn(1000);
jQuery(".appstle_myProduct").css('visibility', 'visible');
if (getDeviceType() !== "mobile") {
jQuery('.appttle_single_item_contract').each(function(index, el) {
var contractId = jQuery(el).attr('data-contract-id');
var imageHeight = jQuery('.appstle_subscription_contract_content_wrapper_' + contractId).height();
jQuery('.apptle_subscription_contract_image_wrapper_' + contractId).parent().css('height', imageHeight);})
}
});
}
else {
jQuery(".appstle_preloader").fadeOut(2000, function () {
jQuery(".appstle_myProduct").append("'
+ '' + contractItem.node?.title + 'has been removed'
+ '
'
+ '