1956 lines
75 KiB
JavaScript
1956 lines
75 KiB
JavaScript
|
/*$Id$*/
|
||
|
'use strict'; // No I18N
|
||
|
var cart = (function() {
|
||
|
var ZS_EVENT_CUSTOM_FIELD_VALIDATION_ERROR = "zs-event-custom-field-validation-error"; // No I18N
|
||
|
|
||
|
/* Pixel event constants */
|
||
|
|
||
|
var PIXEL_TRACK_EVENT = 'track'; //No I18N
|
||
|
var PIXEL_ADD_TO_CART_EVENT = 'AddToCart'; //No I18N
|
||
|
var PIXEL_PURCHASE_EVENT = 'Purchase'; //No I18N
|
||
|
var PIXEL_SEARCH_EVENT = 'Search'; //No I18N
|
||
|
var PIXEL_CHECKOUT_EVENT = 'InitiateCheckout'; //No I18N
|
||
|
var PIXEL_VIEW_CONTENT_EVENT = 'ViewContent'; //No I18N
|
||
|
|
||
|
/* Pixel local storage constants */
|
||
|
|
||
|
var PIXEL_STORAGE_CONST = "fbpxl" //No I18N
|
||
|
var PIXEL_PURCHASE_PREFIX = 'fbpxl_purchase_'; //No I18N
|
||
|
var PIXEL_CHECKOUT_PREFIX = 'fbpxl_checkout_'; //No I18N
|
||
|
|
||
|
/* Pixel payload constants */
|
||
|
|
||
|
var PIXEL_SEARCH_PAYLOAD = 'search_string'; //No I18N
|
||
|
var PIXEL_CURRENCY_PAYLOAD = 'currency'; //No I18N
|
||
|
var PIXEL_VALUE_PAYLOAD = 'value'; //No I18N
|
||
|
var PIXEL_CONTENT_ID_PAYLOAD = 'content_ids'; //No I18N
|
||
|
var PIXEL_CONTENT_TYPE_PAYLOAD = 'content_type'; //No I18N
|
||
|
var PIXEL_CONTENT_TYPE_PAYLOAD_VALUE = 'product'; //No I18N
|
||
|
var PIXEL_CONTENT_TYPE_PAYLOAD_GROUP = 'product_group'; //No I18N
|
||
|
|
||
|
/* Mobile App Interface constants */
|
||
|
|
||
|
var CART_COUNT = 'cart_count'; //No I18N
|
||
|
var HOST_NAME = 'host_name'; //No I18N
|
||
|
|
||
|
/* Delivery Availability Popup local storage constants */
|
||
|
|
||
|
var DELIVERY_AVAILABILITY_POPUP_POSTAL_CODE = "delivery_postal_code"; //No I18N
|
||
|
|
||
|
var _getCartDetails = function() {
|
||
|
_getCartCount(function (cartCount) {
|
||
|
updateCartSpanElement(cartCount);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function getUrlVars() {
|
||
|
var vars = {};
|
||
|
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
|
||
|
vars[key] = value;
|
||
|
});
|
||
|
return vars;
|
||
|
}
|
||
|
|
||
|
function getUrlParam(parameter, defaultvalue){
|
||
|
var urlparameter = defaultvalue;
|
||
|
if(window.location.href.indexOf(parameter) > -1){
|
||
|
urlparameter = getUrlVars()[parameter];
|
||
|
}
|
||
|
return urlparameter;
|
||
|
}
|
||
|
|
||
|
function sendCartCountToMobileApp(cartCount){
|
||
|
if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.cartCountController) {
|
||
|
window.webkit.messageHandlers.cartCountController.postMessage({HOST_NAME:window.location.hostname,CART_COUNT:cartCount})
|
||
|
}else if (window.CartCountInterface != undefined ) {
|
||
|
window.CartCountInterface.setCartCount(window.location.hostname,cartCount);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _getCartCount = function(handler) {
|
||
|
var checkout_id = getUrlParam("cart_id", "");// No I18N
|
||
|
var queryString = "";
|
||
|
if(checkout_id != ""){
|
||
|
queryString = "?cart_id="+checkout_id;// No I18N
|
||
|
}
|
||
|
$X.get({
|
||
|
url: '/storefront/api/v1/cart'+queryString, // No I18N
|
||
|
args: {
|
||
|
handler: handler
|
||
|
},
|
||
|
handler: function(args) {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
var cartCount = 0;
|
||
|
var cartInfo = (res.payload) ? res.payload : res.cart_details;
|
||
|
if(isAnalyticsEnabled() || isPixelEnabled()) {
|
||
|
setCartInfoInWindowObj(cartInfo);
|
||
|
}
|
||
|
// new cart
|
||
|
if(cartInfo.items){
|
||
|
cartCount = cartInfo.items.length;
|
||
|
}
|
||
|
args.handler(cartCount);
|
||
|
_deployCartCountEvent(cartCount);
|
||
|
sendCartCountToMobileApp(cartCount);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var _deployCartCountEvent = function(cartCount) {
|
||
|
var cartCountEvent = new CustomEvent("zp-event-cart-count", { // No I18N
|
||
|
detail: {
|
||
|
cart_count: cartCount,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(cartCountEvent);
|
||
|
}
|
||
|
|
||
|
function getTargetContainer(element) {
|
||
|
var targetContainer = (element) ? element.closest("[data-zs-product-id]") : ""; // No I18N
|
||
|
return targetContainer;
|
||
|
}
|
||
|
|
||
|
function bulkAddProductToCart(params) {
|
||
|
$X.post({
|
||
|
url: '/store-user/api/v1/cart/bulkAddProductToCart', // No I18N
|
||
|
bodyJSON: params,
|
||
|
headers: zsUtils.getCSRFHeader(),
|
||
|
handler: function() {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
if(res.cart_details && res.cart_details.items) {
|
||
|
var cartInfo = res.cart_details;
|
||
|
updateCartSpanElement(cartInfo.items.length);
|
||
|
_deployCartCountEvent(cartInfo.items.length);
|
||
|
/*
|
||
|
* addToCartSuccessEvent
|
||
|
*/
|
||
|
}
|
||
|
/*
|
||
|
* else {
|
||
|
* addToCartFailureEvent
|
||
|
* }
|
||
|
*/
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var _addProductToCart = function() {
|
||
|
if(!isCookieEnabled()) {
|
||
|
return;
|
||
|
}
|
||
|
var addToCartButton = this;
|
||
|
var productVariantId = this.getAttribute('data-zs-product-variant-id'); // No I18N
|
||
|
var targetContainer = getTargetContainer(this);
|
||
|
var productId = (targetContainer && targetContainer!="") ? targetContainer.getAttribute("data-zs-product-id") : ""; // No I18N
|
||
|
var quantityElement;
|
||
|
if(targetContainer == this) {
|
||
|
// custom template [old]
|
||
|
quantityElement = document.querySelector("[data-zs-quantity][data-zs-product-id='" + productId + "']"); // No I18N
|
||
|
} else if(targetContainer && targetContainer!="") {
|
||
|
// new template
|
||
|
quantityElement = targetContainer.querySelector("[data-zs-quantity]"); // No I18N
|
||
|
}
|
||
|
var quantity = 1;
|
||
|
if(quantityElement) {
|
||
|
quantity = quantityElement.value;
|
||
|
}
|
||
|
if(productVariantId === "") {
|
||
|
var addToCartWithInvalidVariant = new CustomEvent("zp-event-add-to-cart-invalid-variant", { // No I18N
|
||
|
detail: {
|
||
|
target: addToCartButton,
|
||
|
productId: productId,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(addToCartWithInvalidVariant);
|
||
|
return;
|
||
|
}
|
||
|
if(!_testQuantity(quantityElement, targetContainer)) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var variantCustomFields = custom_field.getCartCustomFields(productVariantId);
|
||
|
if(variantCustomFields.errors.length > 0) {
|
||
|
_dispatch(ZS_EVENT_CUSTOM_FIELD_VALIDATION_ERROR, {
|
||
|
'custom_fields' : variantCustomFields.custom_field_list, //NO I18N
|
||
|
'error_custom_fields' : variantCustomFields.errors //NO I18N
|
||
|
});
|
||
|
return;
|
||
|
} else {
|
||
|
//for clear custom fields error message
|
||
|
_dispatch(ZS_EVENT_CUSTOM_FIELD_VALIDATION_ERROR, {
|
||
|
'custom_fields' : variantCustomFields.custom_field_list //NO I18N
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var addToCartLoadingEvent = new CustomEvent("zp-event-add-to-cart-loading", { // No I18N
|
||
|
detail: {
|
||
|
target: addToCartButton,
|
||
|
productId: productId,
|
||
|
productVariantId: productVariantId,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(addToCartLoadingEvent);
|
||
|
$E.unbind(addToCartButton, "click", _addProductToCart); // No I18N
|
||
|
|
||
|
/*
|
||
|
* 1 - True
|
||
|
* 2 - False
|
||
|
* Changing checkbox field value from integer to boolean
|
||
|
*/
|
||
|
var custom_fields_values = variantCustomFields.custom_fields_value;
|
||
|
for(var counter = 0; counter < custom_fields_values.length; counter++) {
|
||
|
var custom_fields_value = custom_fields_values[counter];
|
||
|
if(custom_fields_value.data_type && custom_fields_value.data_type == "check_box") {
|
||
|
custom_fields_value.value = (custom_fields_value.value == 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var params = {
|
||
|
product_variant_id: productVariantId,
|
||
|
quantity : quantity,
|
||
|
custom_fields : custom_fields_values
|
||
|
};
|
||
|
|
||
|
if(document.querySelector("[data-zs-delivery-postalcode]") && localStorage.getItem(DELIVERY_AVAILABILITY_POPUP_POSTAL_CODE) != ""){
|
||
|
params.postal_code = localStorage.getItem(DELIVERY_AVAILABILITY_POPUP_POSTAL_CODE);
|
||
|
}
|
||
|
|
||
|
var cart_id = getUrlParam("cart_id", "");// No I18N
|
||
|
if(cart_id != ""){
|
||
|
params.cart_id = cart_id;
|
||
|
}
|
||
|
|
||
|
$X.post({
|
||
|
url: '/storefront/api/v1/cart', // No I18N
|
||
|
bodyJSON: params,
|
||
|
headers: zsUtils.getCSRFHeader(),
|
||
|
args: {
|
||
|
button: addToCartButton
|
||
|
},
|
||
|
handler: function(args) {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
if ((res.payload && res.payload.items) || (res.cart_details && res.cart_details.items) ) {
|
||
|
var cartInfo = (res.payload) ? res.payload : res.cart_details;
|
||
|
updateCartSpanElement(cartInfo.items.length);
|
||
|
_deployCartCountEvent(cartInfo.items.length);
|
||
|
sendCartCountToMobileApp(cartInfo.items.length);
|
||
|
if(isAnalyticsEnabled() || isPixelEnabled()) {
|
||
|
pushAddToCartEventForAnalytics(productId, quantity, targetContainer, cartInfo.items.length, productVariantId, cartInfo.code);
|
||
|
}
|
||
|
var addToCartSuccessEvent = new CustomEvent("zp-event-add-to-cart-success", { // No I18N
|
||
|
detail: {
|
||
|
cart: cartInfo,
|
||
|
productId: productId,
|
||
|
target: args.button,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(addToCartSuccessEvent);
|
||
|
} else {
|
||
|
//if template have not custom fields
|
||
|
if(res.error && res.error.code == CONST.BOOKS_API_RESPONSE.STOREFRONT_CUSTOM_FIELD_ERROR) {
|
||
|
res.cart_details = res.error;
|
||
|
}
|
||
|
//handle for min-max quantity error code
|
||
|
res = _changeErrorMsg(res);
|
||
|
|
||
|
var addToCartFailureEvent = new CustomEvent("zp-event-add-to-cart-failure", { // No I18N
|
||
|
detail: {
|
||
|
response: res,
|
||
|
productId: productId,
|
||
|
target: args.button,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(addToCartFailureEvent);
|
||
|
}
|
||
|
$E.bind(args.button, "click", _addProductToCart); // No I18N
|
||
|
},
|
||
|
error: {
|
||
|
// below code for future case
|
||
|
handler: function(args) {
|
||
|
var addToCartFailureEvent = new CustomEvent("zp-event-add-to-cart-failure", { // No I18N
|
||
|
detail: {
|
||
|
target: args.button,
|
||
|
productId: productId,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(addToCartFailureEvent);
|
||
|
$E.bind(args.button, "click", _addProductToCart); // No I18N
|
||
|
},
|
||
|
condition: function() {
|
||
|
return this.status >= 300;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var _changeErrorMsg = function(res) {
|
||
|
var error_message = res.error.message;
|
||
|
if(res.error && error_message) {
|
||
|
var matches = error_message.match(/(\d,?)+/);
|
||
|
if(res.error.code == CONST.BOOKS_API_RESPONSE.STOREFRONT_MINIMUM_QUANTITY_ERROR) {
|
||
|
var min_value = matches && matches[0];
|
||
|
res.error.message = i18n.get('cart.error_message.minimum_quantity', min_value);
|
||
|
} else if(res.error.code == CONST.BOOKS_API_RESPONSE.STOREFRONT_MAXIMUM_QUANTITY_ERROR) {
|
||
|
var max_value = matches && matches[0];
|
||
|
res.error.message = i18n.get('cart.error_message.maximum_quantity', max_value);
|
||
|
} else if(res.error.code == CONST.BOOKS_API_RESPONSE.STOREFRONT_MINIMUM_CART_VALUE_ERROR) {
|
||
|
var substrings = error_message.split(" ");
|
||
|
var amount = substrings.filter(function(string){
|
||
|
return /\d/.test(string);
|
||
|
});
|
||
|
res.error.message = i18n.get('checkout.error_message.minimum_order_value', amount[0].slice(0,amount[0].length-1));
|
||
|
}else if(res.error.code == CONST.BOOKS_API_RESPONSE.STOREFRONT_INSUFFICIENT_STOCK_ERROR) {
|
||
|
var product_name_match = error_message.match(/\((.*)\)/);
|
||
|
var product_name = product_name_match && product_name_match[1];
|
||
|
res.error.message = i18n.get('cart.error_message.insufficient_stock', product_name && product_name.trim());
|
||
|
}else if(res.error.code == CONST.BOOKS_API_RESPONSE.STOREFRONT_PRODUCT_NOT_DELIVERABLE_ERROR) {
|
||
|
var product_name_match = error_message.match(/\((.*)\)/);
|
||
|
var product_name = product_name_match && product_name_match[1];
|
||
|
res.error.message = i18n.get('cart.error_message.non_deliverable', product_name && product_name.trim());
|
||
|
}
|
||
|
}
|
||
|
return res;
|
||
|
}
|
||
|
|
||
|
var _testQuantity = function(quantityElement, targetContainer) {
|
||
|
if(!quantityElement) {
|
||
|
return true;
|
||
|
}
|
||
|
var quantity = quantityElement.value;
|
||
|
var numberPattern = /^\d*.?\d*$/;
|
||
|
var condition = !numberPattern.test(quantity);
|
||
|
if(!condition) {
|
||
|
condition = quantity.length == 0 || Number(quantity) == 0;
|
||
|
}
|
||
|
if(!condition) {
|
||
|
condition = (quantity % 1) != 0;
|
||
|
}
|
||
|
var productId = (targetContainer && targetContainer!="") ? targetContainer.getAttribute("data-zs-product-id") : ""; // No I18N
|
||
|
if(condition) {
|
||
|
var invalidProductQuantityEvent = new CustomEvent("zp-event-invalid-product-quantity", { // No I18N
|
||
|
detail: {
|
||
|
quantity: quantity,
|
||
|
productId: productId,
|
||
|
quantityElement: quantityElement,
|
||
|
target: this,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(invalidProductQuantityEvent);
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
function clickIncDec(e){
|
||
|
var targetContainer = getTargetContainer(this);
|
||
|
var delay = this.hasAttribute("data-zs-delay") ? this.getAttribute("data-zs-delay") : 100; // No I18N
|
||
|
var quantity_input = (targetContainer && targetContainer != "") ? targetContainer.querySelector("[data-zs-quantity]") : "";
|
||
|
updateWatch.call(quantity_input,e,delay)
|
||
|
}
|
||
|
|
||
|
function updateWatch(e,delay) {
|
||
|
var elem = this;
|
||
|
delay = delay || (elem.hasAttribute("data-zs-delay") ? elem.getAttribute("data-zs-delay") : 1200); // No I18N
|
||
|
if (elem.statusCode) {
|
||
|
clearInterval(elem.statusCode)
|
||
|
}
|
||
|
if(elem.xmlr){
|
||
|
elem.xmlr.abort()
|
||
|
}
|
||
|
elem.statusCode = setInterval(function () {
|
||
|
if (elem.value != elem.getAttribute("data-zs-old_value")) {
|
||
|
_updateProductInCart.call(elem)
|
||
|
}
|
||
|
clearInterval(elem.statusCode)
|
||
|
elem.statusCode = 0
|
||
|
}, delay);
|
||
|
}
|
||
|
|
||
|
var _updateProductInCart = function (e, callback) {
|
||
|
var productVariantId = this.getAttribute('data-zs-product-variant-id'); // No I18N
|
||
|
var productLineItemId = this.getAttribute('data-zs-product-lineitem-id'); // No I18N
|
||
|
var targetContainer = getTargetContainer(this);
|
||
|
var updateCartButton = this.hasAttribute("data-zs-quantity") ? null : this; // No I18N
|
||
|
var quantityElement, productId;
|
||
|
if (targetContainer == null) {
|
||
|
// Custom template [old]
|
||
|
productId = this.getAttribute("data-zs-product-id"); // No I18N
|
||
|
if (productLineItemId) {
|
||
|
quantityElement = document.querySelector("[data-zs-product-lineitem-id='" + productLineItemId + "'][data-zs-quantity]"); // No I18N
|
||
|
}
|
||
|
if (!quantityElement) {
|
||
|
quantityElement = document.querySelector("[data-zs-product-variant-id='" + productVariantId + "'][data-zs-quantity]"); // No I18N
|
||
|
}
|
||
|
|
||
|
} else if (targetContainer && targetContainer != "") {
|
||
|
// New template
|
||
|
productId = targetContainer.getAttribute("data-zs-product-id"); // No I18N
|
||
|
|
||
|
if (productLineItemId) {
|
||
|
quantityElement = targetContainer.querySelector("[data-zs-product-lineitem-id='" + productLineItemId + "'][data-zs-quantity]"); // No I18N
|
||
|
}
|
||
|
|
||
|
if (!quantityElement) {
|
||
|
quantityElement = targetContainer.querySelector("[data-zs-product-variant-id='" + productVariantId + "'][data-zs-quantity]"); // No I18N
|
||
|
}
|
||
|
}
|
||
|
if (!quantityElement) {
|
||
|
quantityElement = this.previousElementSibling;
|
||
|
}
|
||
|
if (!_testQuantity(quantityElement, targetContainer)) {
|
||
|
callback && callback();
|
||
|
return;
|
||
|
}
|
||
|
(updateCartButton) && $E.unbind(updateCartButton, "mousedown", _updateProductInCart); // No I18N
|
||
|
var updateToCartLoadingEvent = new CustomEvent("zp-event-update-to-cart-loading", { // No I18N
|
||
|
detail: {
|
||
|
target: updateCartButton || quantityElement,
|
||
|
productId: productId,
|
||
|
productVariantId: productVariantId,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(updateToCartLoadingEvent);
|
||
|
var params = {
|
||
|
product_variant_id: productVariantId,
|
||
|
quantity: quantityElement.value
|
||
|
};
|
||
|
|
||
|
if (productLineItemId) {
|
||
|
params['line_item_id'] = productLineItemId;
|
||
|
}
|
||
|
var cart_id = getUrlParam("cart_id", "");// No I18N
|
||
|
if (cart_id != "") {
|
||
|
params.cart_id = cart_id;
|
||
|
}
|
||
|
|
||
|
if(document.querySelector("[data-zs-delivery-postalcode]") && localStorage.getItem(DELIVERY_AVAILABILITY_POPUP_POSTAL_CODE) != ""){
|
||
|
params.postal_code = localStorage.getItem(DELIVERY_AVAILABILITY_POPUP_POSTAL_CODE);
|
||
|
}
|
||
|
|
||
|
$X.put({
|
||
|
url: '/storefront/api/v1/cart', // No I18N
|
||
|
bodyJSON: params,
|
||
|
headers: zsUtils.getCSRFHeader(),
|
||
|
args: {
|
||
|
button: updateCartButton,
|
||
|
quantity_elem : quantityElement
|
||
|
},
|
||
|
handler: function (args) {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
var updateProductEvent;
|
||
|
if (res.status_code === "0") {
|
||
|
var items = (res.payload) ? res.payload.items : res.cart_details.items;
|
||
|
for (var i in items) {
|
||
|
var item = items[i];
|
||
|
if (productLineItemId) {
|
||
|
if (productLineItemId === item.line_item_id) {
|
||
|
var subtotal = document.querySelectorAll('[data-zs-sub-total-lineitem-' + params.line_item_id + ']')[0]; //NO I18N
|
||
|
subtotal.innerHTML = item.approximate_total_formatted;
|
||
|
var cartItemPrice = document.querySelectorAll('[data-zs-cart-selling-price-lineitem-' + params.line_item_id + ']'); //NO I18N
|
||
|
for (var k = 0; k < cartItemPrice.length; k++) {
|
||
|
cartItemPrice[k].innerHTML = item.selling_price_formatted;
|
||
|
}
|
||
|
|
||
|
var cartItemContainers = document.querySelectorAll("[data-zs-product-wrapper-lineitem-id='" + params.line_item_id + "']"); //NO I18N
|
||
|
for (var j = 0; j < cartItemContainers.length; j++) {
|
||
|
var cartItemDiscountContainer = cartItemContainers[j].querySelectorAll('[data-zs-product-discount-lineitem-' + params.line_item_id + ']'); //NO I18N
|
||
|
for (var k = 0; k < cartItemDiscountContainer.length; k++) {
|
||
|
if(item.label_price != 0 && (item.label_price > item.selling_price)){
|
||
|
var discount = ((item.label_price - item.selling_price)/ item.label_price) * 100;
|
||
|
cartItemDiscountContainer[k].innerHTML = discount.toFixed(1) + "% " + i18n.get("product.label.off");
|
||
|
}else{
|
||
|
cartItemDiscountContainer[k].innerHTML = "";
|
||
|
}
|
||
|
}
|
||
|
var cartItemLabelPriceContainer = cartItemContainers[j].querySelectorAll('[data-zs-cart-label-price-lineitem-' + params.line_item_id + ']'); //NO I18N
|
||
|
for (var k = 0; k < cartItemLabelPriceContainer.length; k++) {
|
||
|
if(item.label_price != 0 && (item.label_price > item.selling_price)){
|
||
|
cartItemLabelPriceContainer[k].innerHTML = item.label_price_formatted;
|
||
|
}else{
|
||
|
cartItemLabelPriceContainer[k].innerHTML = "";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
var buttonSpan = (args.button || args.quantity_elem).parentElement;
|
||
|
if (buttonSpan) {
|
||
|
var quantityDiv = buttonSpan.parentElement;
|
||
|
var quantityInput = quantityDiv.querySelector("[data-zs-quantity]"); // No I18N
|
||
|
if (quantityInput) {
|
||
|
quantityInput.setAttribute("data-zs-old_value", item.quantity)
|
||
|
quantityInput.value = item.quantity;
|
||
|
if (quantityInput.value == 1){
|
||
|
_introduceDeleteIcon(productVariantId, productLineItemId);
|
||
|
}
|
||
|
if (quantityInput.value > 1){
|
||
|
_removeDeleteIcon(productVariantId, productLineItemId);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//update original price attribute and call onChangeEvent of currency converter
|
||
|
subtotal.setAttribute('data-original-price', item.approximate_total);
|
||
|
multi_currency.convertCurrencyPrice();
|
||
|
}
|
||
|
|
||
|
} else if (params.product_variant_id === item.variant_id) {
|
||
|
var subtotal = document.querySelectorAll('[data-zs-sub-total-item-' + params.product_variant_id + ']')[0]; //NO I18N
|
||
|
subtotal.innerHTML = item.approximate_total_formatted;
|
||
|
var cartItemPrice = document.querySelectorAll('[data-zs-cart-selling-price-' + params.product_variant_id + ']'); //NO I18N
|
||
|
for (var k = 0; k < cartItemPrice.length; k++) {
|
||
|
cartItemPrice[k].innerHTML = item.selling_price_formatted;
|
||
|
}
|
||
|
var cartItemContainers = document.querySelectorAll("[data-zs-product-id='" + params.product_variant_id + "']"); //NO I18N
|
||
|
for (var j = 0; j < cartItemContainers.length; j++) {
|
||
|
var cartItemDiscountContainer = cartItemContainers[j].querySelectorAll('[data-zs-product-discount-' + params.product_variant_id + ']'); //NO I18N
|
||
|
for (var k = 0; k < cartItemDiscountContainer.length; k++) {
|
||
|
if(item.label_price != 0 && (item.label_price > item.selling_price)){
|
||
|
var discount = ((item.label_price - item.selling_price)/ item.label_price) * 100;
|
||
|
cartItemDiscountContainer[k].innerHTML = discount.toFixed(1) + "% " + i18n.get("product.label.off");
|
||
|
}else{
|
||
|
cartItemDiscountContainer[k].innerHTML = "";
|
||
|
}
|
||
|
}
|
||
|
var cartItemLabelPriceContainer = cartItemContainers[j].querySelectorAll('[data-zs-cart-label-price-' + params.product_variant_id + ']'); //NO I18N
|
||
|
for (var k = 0; k < cartItemLabelPriceContainer.length; k++) {
|
||
|
if(item.label_price != 0 && (item.label_price > item.selling_price)){
|
||
|
cartItemLabelPriceContainer[k].innerHTML = item.label_price_formatted;
|
||
|
}else{
|
||
|
cartItemLabelPriceContainer[k].innerHTML = "";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
var buttonSpan = (args.button || args.quantity_elem).parentElement;
|
||
|
if (buttonSpan) {
|
||
|
var quantityDiv = buttonSpan.parentElement;
|
||
|
var quantityInput = quantityDiv.querySelector("[data-zs-quantity]"); // No I18N
|
||
|
if (quantityInput) {
|
||
|
quantityInput.setAttribute("data-zs-old_value", item.quantity)
|
||
|
quantityInput.value = item.quantity;
|
||
|
if (quantityInput.value == 1){
|
||
|
_introduceDeleteIcon(productVariantId);
|
||
|
}
|
||
|
if (quantityInput.value > 1){
|
||
|
_removeDeleteIcon(productVariantId);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//update original price attribute and call onChangeEvent of currency converter
|
||
|
subtotal.setAttribute('data-original-price', item.approximate_total);
|
||
|
multi_currency.convertCurrencyPrice();
|
||
|
}
|
||
|
}
|
||
|
// cart subtotal
|
||
|
var cartSubTotalElement = document.querySelectorAll('[data-zs-cart-subtotal]'); // No I18N
|
||
|
for (var i = 0; i < cartSubTotalElement.length; i++) {
|
||
|
if (cartSubTotalElement[i]) {
|
||
|
cartSubTotalElement[i].innerText = (res.payload) ? res.payload.sub_total_formatted : res.cart_details.sub_total_formatted;
|
||
|
}
|
||
|
}
|
||
|
var amt_saved = parseFloat(res.payload.total_amtsaved);
|
||
|
var saved_amount_container = document.querySelector("[data-zs-savedamount-container]"); // No I18N
|
||
|
if(amt_saved != 0){
|
||
|
var savedAmount = res.payload.total_amtsaved_formatted;
|
||
|
if(saved_amount_container) {
|
||
|
saved_amount_container.style.display = "";
|
||
|
}
|
||
|
var saved_amount = document.querySelector("[data-zs-savedamount]"); // No I18N
|
||
|
if(saved_amount) {
|
||
|
saved_amount.innerText = savedAmount;
|
||
|
}
|
||
|
} else {
|
||
|
if(saved_amount_container) {
|
||
|
saved_amount_container.style.display = "none";
|
||
|
}
|
||
|
}
|
||
|
var cartDetails = (res.payload) ? res.payload : res.cart_details;
|
||
|
sendCartCountToMobileApp(cartDetails.items.length);
|
||
|
updateProductEvent = new CustomEvent("zp-event-update-to-cart-success", { // No I18N
|
||
|
detail: {
|
||
|
cart: cartDetails,
|
||
|
productId: productId,
|
||
|
target: args.button || args.quantity_elem,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
} else {
|
||
|
// if(args.button.hasAttribute("data-zs-quantity")){
|
||
|
if(args.quantity_elem && args.quantity_elem.hasAttribute("data-zs-old_value")){
|
||
|
args.quantity_elem.value = args.quantity_elem.getAttribute("data-zs-old_value");
|
||
|
}
|
||
|
//handle for min-max quantity error codes
|
||
|
res = _changeErrorMsg(res);
|
||
|
|
||
|
updateProductEvent = new CustomEvent("zp-event-update-to-cart-failure", { // No I18N
|
||
|
detail: {
|
||
|
response: res,
|
||
|
productId: productId,
|
||
|
target: args.button || args.quantity_elem,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
document.dispatchEvent(updateProductEvent);
|
||
|
callback && callback();
|
||
|
args.button && $E.bind(args.button, "mousedown", _updateProductInCart); // No I18N
|
||
|
},
|
||
|
error: {
|
||
|
handler: function (args) {
|
||
|
if(args.quantity_elem && args.quantity_elem.hasAttribute("data-zs-old_value")){
|
||
|
args.quantity_elem.value = args.quantity_elem.getAttribute("data-zs-old_value");
|
||
|
}
|
||
|
var updateProductEvent = new CustomEvent("zp-event-update-to-cart-failure", { // No I18N
|
||
|
detail: {
|
||
|
target: args.button || args.quantity_elem,
|
||
|
productId: productId,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(updateProductEvent);
|
||
|
callback && callback();
|
||
|
args.button && $E.bind(args.button, "mousedown", _updateProductInCart); // No I18N
|
||
|
},
|
||
|
condition: function () {
|
||
|
return this.status >= 300;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function _introduceDeleteIcon(productVariantId, productLineItemId){
|
||
|
var cart_item_delete_elm, cart_item_dec_elm, cart_item_qty_dec_elm;
|
||
|
if (productLineItemId) {
|
||
|
cart_item_delete_elm = document.querySelector("[data-zs-cart-lineitem-delete='" + productLineItemId + "']"); // No I18N
|
||
|
cart_item_dec_elm = document.querySelector("[data-zs-cart-item-decr-lineitem='" + productLineItemId + "']"); // No I18N
|
||
|
cart_item_qty_dec_elm = document.querySelector("[data-zs-cart-qty-dec-btn-lineitem='" + productLineItemId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if (!cart_item_delete_elm) {
|
||
|
cart_item_delete_elm = document.querySelector("[data-zs-cart-item-delete='" + productVariantId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if(cart_item_delete_elm) {
|
||
|
cart_item_delete_elm.style.display = "block";
|
||
|
}
|
||
|
|
||
|
if (!cart_item_dec_elm) {
|
||
|
cart_item_dec_elm = document.querySelector("[data-zs-cart-item-decr='" + productVariantId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if(cart_item_dec_elm) {
|
||
|
cart_item_dec_elm.style.display = "none";
|
||
|
}
|
||
|
|
||
|
if (!cart_item_qty_dec_elm) {
|
||
|
cart_item_qty_dec_elm = document.querySelector("[data-zs-cart-qty-dec-btn='" + productVariantId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if(cart_item_qty_dec_elm) {
|
||
|
cart_item_qty_dec_elm.style.display = "none";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function _removeDeleteIcon(productVariantId, productLineItemId){
|
||
|
var cart_item_delete_elm, cart_item_dec_elm, cart_item_qty_dec_elm;
|
||
|
|
||
|
if (productLineItemId) {
|
||
|
cart_item_delete_elm = document.querySelector("[data-zs-cart-lineitem-delete='" + productLineItemId + "']"); // No I18N
|
||
|
cart_item_dec_elm = document.querySelector("[data-zs-cart-item-decr-lineitem='" + productLineItemId + "']"); // No I18N
|
||
|
cart_item_qty_dec_elm = document.querySelector("[data-zs-cart-qty-dec-btn-lineitem='" + productLineItemId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if (!cart_item_delete_elm) {
|
||
|
cart_item_delete_elm = document.querySelector("[data-zs-cart-item-delete='" + productVariantId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if(cart_item_delete_elm) {
|
||
|
cart_item_delete_elm.style.display = "none";
|
||
|
}
|
||
|
|
||
|
if (!cart_item_dec_elm) {
|
||
|
cart_item_dec_elm = document.querySelector("[data-zs-cart-item-decr='" + productVariantId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if(cart_item_dec_elm) {
|
||
|
cart_item_dec_elm.style.display = "block";
|
||
|
}
|
||
|
|
||
|
if (!cart_item_qty_dec_elm) {
|
||
|
cart_item_qty_dec_elm = document.querySelector("[data-zs-cart-qty-dec-btn='" + productVariantId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if(cart_item_qty_dec_elm) {
|
||
|
cart_item_qty_dec_elm.style.display = "block";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function getReqHeaders (){
|
||
|
var headers = zsUtils.getCSRFHeader();
|
||
|
var checkout_id = getUrlParam("cart_id",""); //NO I18N
|
||
|
if( checkout_id != "" ){
|
||
|
headers["X-Cart-Id"] = checkout_id;// No I18N
|
||
|
}
|
||
|
return headers;
|
||
|
}
|
||
|
|
||
|
var _deleteProductInCart = function() {
|
||
|
var elem = this;
|
||
|
var productVariantId = elem.getAttribute('data-zs-product-variant-id'); // No I18N
|
||
|
var productLineItemId = this.getAttribute('data-zs-product-lineitem-id'); // No I18N
|
||
|
var quantityElem;
|
||
|
if (productLineItemId) {
|
||
|
quantityElem = document.querySelector("[data-zs-product-lineitem-id='" + productLineItemId + "'][data-zs-quantity]"); // No I18N
|
||
|
} else {
|
||
|
quantityElem = document.querySelector("[data-zs-product-variant-id='" + productVariantId + "'][data-zs-quantity]"); // No I18N
|
||
|
}
|
||
|
|
||
|
var hasDeleteicon = this.hasAttribute('data-zs-delete-icon')// No I18N
|
||
|
if(quantityElem && quantityElem.statusCode){
|
||
|
clearInterval(quantityElem.statusCode);
|
||
|
quantityElem.statusCode = 0;
|
||
|
}
|
||
|
var productId = elem.getAttribute("data-zs-product-id"); // No I18N
|
||
|
$E.unbind(elem, "click", _deleteProductInCart); // No I18N
|
||
|
var deleteFromCartLoadingEvent = new CustomEvent("zp-event-delete-from-cart-loading", { // No I18N
|
||
|
detail: {
|
||
|
target: elem,
|
||
|
productId: productId,
|
||
|
productVariantId: productVariantId,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(deleteFromCartLoadingEvent);
|
||
|
|
||
|
var deleteUrl = '/storefront/api/v1/cart?product_variant_id='+productVariantId; // No I18N
|
||
|
if (productLineItemId) {
|
||
|
deleteUrl = deleteUrl+"&line_item_id="+productLineItemId; // No I18N
|
||
|
|
||
|
}
|
||
|
|
||
|
$X.del({
|
||
|
url: deleteUrl,
|
||
|
headers: getReqHeaders(),
|
||
|
args: {
|
||
|
button: elem
|
||
|
},
|
||
|
handler: function (args) {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
if (res.status_code === "0") {
|
||
|
var product_container;
|
||
|
if (productLineItemId) {
|
||
|
product_container = document.querySelector("[data-zs-product-wrapper-lineitem-id='" + productLineItemId + "']"); // No I18N
|
||
|
|
||
|
} else {
|
||
|
product_container = document.querySelector("[data-zs-product-id='" + productVariantId + "']"); // No I18N
|
||
|
}
|
||
|
|
||
|
if(product_container) {
|
||
|
product_container.style.display = "none";
|
||
|
}
|
||
|
if(isAnalyticsEnabled()) {
|
||
|
pushRemoveFromCartEventForAnalytics(productVariantId);
|
||
|
}
|
||
|
_getCartCount(function (cartCount) {
|
||
|
updateCartSpanElement(cartCount);
|
||
|
_deployCartCountEvent(cartCount);
|
||
|
sendCartCountToMobileApp(cartCount);
|
||
|
var deleteProductEvent = new CustomEvent("zp-event-delete-from-cart-success", { // No I18N
|
||
|
detail: {
|
||
|
response: res,
|
||
|
productId: productId,
|
||
|
target: args.button,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(deleteProductEvent);
|
||
|
})
|
||
|
|
||
|
cartSubTotal();
|
||
|
} else {
|
||
|
var deleteProductEvent = new CustomEvent("zp-event-delete-from-cart-failure", { // No I18N
|
||
|
detail: {
|
||
|
response: res,
|
||
|
productId: productId,
|
||
|
target: args.button,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(deleteProductEvent);
|
||
|
}
|
||
|
$E.bind(args.button, "click", _deleteProductInCart); // No I18N
|
||
|
},
|
||
|
error: {
|
||
|
handler: function (args) {
|
||
|
var deleteProductEvent = new CustomEvent("zp-event-delete-from-cart-failure", { // No I18N
|
||
|
detail: {
|
||
|
response: res,
|
||
|
productId: productId,
|
||
|
target: args.button,
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
})
|
||
|
document.dispatchEvent(deleteProductEvent);
|
||
|
$E.bind(args.button, "click", _deleteProductInCart); // No I18N
|
||
|
},
|
||
|
condition: function () {
|
||
|
return this.status >= 300;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
function updateCartSpanElement(cartCount) {
|
||
|
var viewCartCountElem = document.querySelectorAll('[data-zs-view-cart-count]');// No I18N
|
||
|
if(viewCartCountElem) {
|
||
|
for (var i = 0; i < viewCartCountElem.length; i++){
|
||
|
viewCartCountElem[i].innerText = cartCount;
|
||
|
viewCartCountElem[i].style.visibility = (cartCount == 0) ? "hidden" : "visible";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _showOrderDetails = function() {
|
||
|
document.querySelectorAll('[data-zs-order-area]')[0].style.display = 'block';
|
||
|
document.querySelectorAll('[data-zs-message-area]')[0].style.display = 'none';
|
||
|
document.querySelectorAll('[data-zs-comments]')[0].style.visibility = 'hidden';
|
||
|
document.querySelectorAll('[data-zs-status]')[0].style.visibility = 'hidden';
|
||
|
document.querySelectorAll('[data-zs-reasonforcancel]')[0].style.visibility = 'hidden';
|
||
|
document.querySelectorAll('[data-zs-cancel-submit]')[0].style.visibility = 'hidden';
|
||
|
var reasonList = document.querySelectorAll('[data-zs-reasonforcancellist]'); // No I18N
|
||
|
for (var i = 0; i < reasonList.length; i++) {
|
||
|
reasonList[i].style.visibility = 'hidden';
|
||
|
}
|
||
|
var commentsAreas = document.querySelectorAll('[data-zs-comments-area]'); // No I18N
|
||
|
for (var i = 0; i < commentsAreas.length; i++) {
|
||
|
commentsAreas[i].style.visibility = 'hidden';
|
||
|
}
|
||
|
var statusAreas = document.querySelectorAll('[data-zs-status-area]'); // No I18N
|
||
|
for (var i = 0; i < statusAreas.length; i++) {
|
||
|
statusAreas[i].style.visibility = 'hidden';
|
||
|
}
|
||
|
var productList = document.querySelectorAll('[data-zs-choose-product]'); // No I18N
|
||
|
for (var i = 0; i < productList.length; i++) {
|
||
|
productList[i].style.visibility = 'hidden';
|
||
|
}
|
||
|
var quantityAreas = document.querySelectorAll('[data-zs-quantity]'); // No I18N
|
||
|
for (var i = 0; i < quantityAreas.length; i++) {
|
||
|
quantityAreas[i].setAttribute('style', "border:#000000;");
|
||
|
quantityAreas[i].disabled = false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _validateSearch = function(e) {
|
||
|
var searchPage = false;
|
||
|
if(window.zs_view && window.zs_view == "search-products") {
|
||
|
e.preventDefault();
|
||
|
searchPage = true;
|
||
|
}
|
||
|
var searchButton, searchInput;
|
||
|
var searchContainer = this.closest("[data-search]");// No I18N
|
||
|
if(searchContainer){
|
||
|
searchInput = searchContainer.querySelector('[data-zs-search-input]');// No I18N
|
||
|
searchButton = searchContainer.querySelector('[data-zs-search]');// No I18N
|
||
|
}else{
|
||
|
searchInput = ($D.get('[data-zs-search-input]')) ? $D.get('[data-zs-search-input]') : this.form && this.form[0]; // No I18N
|
||
|
searchButton = ($D.get('[data-zs-search]')) ? $D.get("[data-zs-search]") : this.form && this.form[1]; // No I18N
|
||
|
}
|
||
|
var searchTerm = searchInput && searchInput.value;
|
||
|
searchTerm = searchTerm && searchTerm.trim();
|
||
|
if(searchTerm == "") {
|
||
|
e.preventDefault();
|
||
|
return false;
|
||
|
}
|
||
|
var element = (searchPage) ? $D.get('[data-zs-search-products]') : undefined; // No I18N
|
||
|
var detail = {
|
||
|
element : element,
|
||
|
inputElem : searchInput,
|
||
|
submitElem : searchButton,
|
||
|
searchTerm : searchTerm
|
||
|
};
|
||
|
_dispatch("zp-event-search-pending", detail);//NO I18N
|
||
|
searchTerm = encodeURI(searchTerm);
|
||
|
if(searchPage) {
|
||
|
window.history.pushState("", "", "/search-products?q="+searchTerm);
|
||
|
if(element) {
|
||
|
submitSearchQuery(element, searchTerm, searchInput, searchButton);
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
var _cancelORReturnRequestEnable = function() {
|
||
|
document.querySelectorAll('[data-zs-order-area]')[0].style.display = 'block';
|
||
|
document.querySelectorAll('[data-zs-message-area]')[0].style.display = 'none';
|
||
|
document.querySelectorAll('[data-zs-comments]')[0].style.visibility = '';
|
||
|
document.querySelectorAll('[data-zs-status]')[0].style.visibility = '';
|
||
|
document.querySelectorAll('[data-zs-reasonforcancel]')[0].style.visibility = '';
|
||
|
document.querySelectorAll('[data-zs-cancel-submit]')[0].style.visibility = '';
|
||
|
var reasonList = document.querySelectorAll('[data-zs-reasonforcancellist]'); // No I18N
|
||
|
for (var i = 0; i < reasonList.length; i++) {
|
||
|
reasonList[i].style.visibility = '';
|
||
|
}
|
||
|
var commentsAreas = document.querySelectorAll('[data-zs-comments-area]'); // No I18N
|
||
|
for (var i = 0; i < commentsAreas.length; i++) {
|
||
|
commentsAreas[i].style.visibility = '';
|
||
|
}
|
||
|
var statusAreas = document.querySelectorAll('[data-zs-status-area]'); // No I18N
|
||
|
for (var i = 0; i < statusAreas.length; i++) {
|
||
|
statusAreas[i].style.visibility = '';
|
||
|
}
|
||
|
var productList = document.querySelectorAll('[data-zs-choose-product]'); // No I18N
|
||
|
for (var i = 0; i < productList.length; i++) {
|
||
|
productList[i].style.visibility = '';
|
||
|
}
|
||
|
var quantityAreas = document.querySelectorAll('[data-zs-quantity]'); // No I18N
|
||
|
for (var i = 0; i < quantityAreas.length; i++) {
|
||
|
quantityAreas[i].removeAttribute('style');
|
||
|
quantityAreas[i].removeAttribute('disabled');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _submitCancelOrReturnData = function() {
|
||
|
var data = {};
|
||
|
var productDetails = [];
|
||
|
var productList = document.querySelectorAll('[data-zs-choose-product]'); // No I18N
|
||
|
for (var i = 0; i < productList.length; i++) {
|
||
|
if (productList[i].checked) {
|
||
|
var listElem = productList[i].parentNode.parentNode;
|
||
|
var productDetail = {};
|
||
|
var itemIds = productList[i].getAttribute('data-zs-product-variant-id');
|
||
|
//productDetail["line_item_id"] = itemIds[0].trim();
|
||
|
productDetail.item_id = itemIds.trim();
|
||
|
productDetail.quantity = parseInt(listElem.querySelectorAll('[data-zs-quantity]')[0].value);
|
||
|
//productDetail["reason"] = listElem.getElementsByTagName('select')[0].value;
|
||
|
//productDetail["comments"] = listElem.getElementsByTagName('textarea')[0].value
|
||
|
productDetails[productDetails.length] = productDetail;
|
||
|
}
|
||
|
}
|
||
|
if (productDetails.length === 0) {
|
||
|
alert('Please choose product for cancel'); // No I18N
|
||
|
return;
|
||
|
} else {
|
||
|
data.line_items = productDetails;
|
||
|
$X.post({
|
||
|
url: '/store-user/api/v1/returns/addReturnItem/' + location.pathname.split("/")[2], // No I18N
|
||
|
bodyJSON: data,
|
||
|
handler: function () {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
/*if (res.message === 0 ) {
|
||
|
console.log("success");
|
||
|
}
|
||
|
else{
|
||
|
console.log("error");
|
||
|
}*/
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _showMessageArea = function() {
|
||
|
document.querySelectorAll('[data-zs-order-area]')[0].style.display = 'none';
|
||
|
document.querySelectorAll('[data-zs-message-area]')[0].style.display = 'block';
|
||
|
}
|
||
|
|
||
|
var _submitMessage = function() {
|
||
|
var subject = document.querySelectorAll('[data-zs-message-subject]')[0].value;
|
||
|
var message = document.querySelectorAll('[data-zs-message-textarea]')[0].value;
|
||
|
params = {};
|
||
|
params.message = subject + "|" + message;
|
||
|
$X.post({
|
||
|
url: '/store-user/api/v1/returns/addMessage/' + location.pathname.split("/")[2], // No I18N
|
||
|
params: params,
|
||
|
handler: function () {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
/*if (res.message === 0 ) {
|
||
|
console.log("success");
|
||
|
}
|
||
|
else{
|
||
|
console.log("error");
|
||
|
}*/
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function submitSearchQuery(element, searchTerm, inputElem, submitElem) {
|
||
|
if(searchTerm) {
|
||
|
searchTerm = searchTerm.replace(/\s\s+/g, ' ');
|
||
|
}
|
||
|
var url, searchType, searchQuery;
|
||
|
if(inputElem && inputElem != ''){
|
||
|
searchType = inputElem.getAttribute('data-zs-search-input-type');// No I18N
|
||
|
searchQuery = inputElem.getAttribute('data-zs-search-query');// No I18N
|
||
|
}
|
||
|
|
||
|
searchType = getUrlParam("search_type") != null ? getUrlParam("search_type") : searchType;//NO I18N
|
||
|
if(searchType && searchType!='' && getUrlParam("pf") == null) {
|
||
|
searchTerm = searchTerm && searchTerm.replace("&search_type", '');
|
||
|
/* Commented since filters url(pf) getting changed to search type url */
|
||
|
/* if(!(window.location.search.includes("&search_type"))) {
|
||
|
window.history.pushState("", "", "/search-products?q="+searchTerm+'&search_type='+searchType);
|
||
|
}*/
|
||
|
url = "/api/search-products?q=" + searchTerm + '&search_type=' + searchType;//NO I18N
|
||
|
} else if(searchQuery && searchQuery!='' && getUrlParam("pf") == null) {
|
||
|
searchTerm = searchTerm && searchTerm.replace("&search_query", '');
|
||
|
searchQuery = searchQuery.split('{0}').join(searchTerm);
|
||
|
if(!(window.location.search.includes("&search_query"))) {
|
||
|
window.history.pushState("", "", "/search-products?q="+searchTerm+'&search_query='+searchQuery);
|
||
|
}
|
||
|
url = "/api/search-products?q=" + searchTerm + '&search_query=' + searchQuery;//NO I18N
|
||
|
} else {
|
||
|
url = "/api/search-products?q=" + searchTerm;//NO I18N
|
||
|
}
|
||
|
var delivery_availability_postal_code = document.querySelector("[data-zs-delivery-postalcode]");// No I18N
|
||
|
if(delivery_availability_postal_code){
|
||
|
var postal_code = delivery_availability_postal_code.getAttribute("data-zs-delivery-postalcode");
|
||
|
if(postal_code == ""){
|
||
|
postal_code = localStorage.getItem(DELIVERY_AVAILABILITY_POPUP_POSTAL_CODE);
|
||
|
}
|
||
|
if(postal_code != "" && postal_code != null){
|
||
|
url += "&postal_code=" + postal_code;// No I18N
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$X.get({
|
||
|
url: url,
|
||
|
args: {
|
||
|
element: element
|
||
|
},
|
||
|
handler: function (args) {
|
||
|
var el = args.element;
|
||
|
var response = JSON.parse(this.responseText);
|
||
|
el.innerHTML = response.content;
|
||
|
product_list_coupon.clearLoadedIds();
|
||
|
product_list_coupon.init(el);
|
||
|
productQuickLookAddToCart(el);
|
||
|
var detail = {
|
||
|
element : element,
|
||
|
inputElem : inputElem,
|
||
|
submitElem : submitElem,
|
||
|
searchTerm : searchTerm
|
||
|
};
|
||
|
var pixel_payload = {};
|
||
|
pixel_payload[PIXEL_SEARCH_PAYLOAD] = searchTerm;
|
||
|
pushEventToPixel(PIXEL_SEARCH_EVENT, pixel_payload);
|
||
|
_dispatch("zp-event-search-success", detail);//NO I18N
|
||
|
product_option.init();
|
||
|
product_option.resetAddToCart("", document);
|
||
|
image_lazy_load.init();
|
||
|
initSortByPorducts && initSortByPorducts();
|
||
|
product_review && product_review.clearCache && product_review.clearCache();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function setHrefCart(viewcartelem) {
|
||
|
viewcartelem.addEventListener('click', function () {
|
||
|
if (window.location.pathname.startsWith("/fb-store")) {
|
||
|
window.location.href = "/fb-store/cart"; // No I18N
|
||
|
} else {
|
||
|
window.location.href = "/cart"; // No I18N
|
||
|
}
|
||
|
}, false);
|
||
|
}
|
||
|
|
||
|
function _checkWhetherOrgIsLiveOrTest() {
|
||
|
$X.get({
|
||
|
url: "/store-user/api/v1/organizations/meta", // No I18N
|
||
|
handler: function () {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
if (res.status_code == 0) {
|
||
|
var organization = res.data.organization;
|
||
|
if (organization.org_mode) {
|
||
|
if(organization.org_mode.toLowerCase() == "test") {
|
||
|
_createNotificationBar("This is a test demonstration store. No orders will be fulfilled.", true); //NO I18N
|
||
|
}
|
||
|
}
|
||
|
if(organization.shipment_type) {
|
||
|
window.org_shipment_type = organization.shipment_type;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function _getRecommendedProducts() {
|
||
|
var product = window.zs_product;
|
||
|
var recommendedDivs = $D.getAll("[data-zs-recommended-products]"); // No I18N
|
||
|
var length = recommendedDivs.length;
|
||
|
if (product && length > 0) {
|
||
|
$X.post({
|
||
|
url: "/api/recommended-products?product_id=" + product.product_id, // No I18N
|
||
|
headers: zsUtils.getCSRFHeader(),
|
||
|
handler: function() {
|
||
|
var response = this.responseText && JSON.parse(this.responseText);
|
||
|
if (response && response.status_code == 0) {
|
||
|
for (var i = 0; i < length; i++) {
|
||
|
if (response.content && response.content.length > 0) {
|
||
|
recommendedDivs[i].innerHTML = response.content;
|
||
|
custom_data.getRecommendedProductIds();
|
||
|
delivery_availability.getRecommendedProductDeliveryAvailability();
|
||
|
product_list_coupon && product_list_coupon.init(recommendedDivs[i]);
|
||
|
productQuickLookAddToCart(recommendedDivs[i]);
|
||
|
product_option.initForElement(recommendedDivs[i]);
|
||
|
recommendedDivs[i].style.display = ""; // No I18N
|
||
|
image_lazy_load.init();
|
||
|
|
||
|
var recommendedProductsLoadedEvent = new CustomEvent("zp-event-recommended-products-loaded", { // No I18N
|
||
|
detail: {
|
||
|
target: recommendedDivs[i],
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(recommendedProductsLoadedEvent);
|
||
|
}
|
||
|
}
|
||
|
}else{
|
||
|
product_option.initForElement(document);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
var recommendedProductsOnLoadEvent = new CustomEvent("zp-event-recommended-products-on-load", { // No I18N
|
||
|
detail: {
|
||
|
view: window.zs_view || "store_page" // No I18N
|
||
|
}
|
||
|
});
|
||
|
document.dispatchEvent(recommendedProductsOnLoadEvent);
|
||
|
}else if(product){
|
||
|
product_option.initForElement(document);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function _checkForInternetExplorerCustomEvent () {
|
||
|
// https://stackoverflow.com/a/26596324
|
||
|
if ( typeof window.CustomEvent === "function" ) { return false; } // No I18N
|
||
|
|
||
|
function CustomEvent ( event, params ) {
|
||
|
params = params || { bubbles: false, cancelable: false, detail: undefined };
|
||
|
var evt = document.createEvent("CustomEvent"); // No I18N
|
||
|
evt.initCustomEvent( event, params.bubbles || false, params.cancelable || false, params.detail );
|
||
|
return evt;
|
||
|
}
|
||
|
|
||
|
CustomEvent.prototype = window.Event.prototype;
|
||
|
|
||
|
window.CustomEvent = CustomEvent;
|
||
|
}
|
||
|
|
||
|
function isAnalyticsEnabled() {
|
||
|
var isEnabled = false;
|
||
|
/*
|
||
|
* For Google Analytics - Enhanced Ecommerce
|
||
|
*/
|
||
|
if(typeof gtag != "undefined") {
|
||
|
isEnabled = true;
|
||
|
}
|
||
|
return isEnabled;
|
||
|
}
|
||
|
|
||
|
function isPixelEnabled(){
|
||
|
return (typeof fbq != "undefined") ? true : false; //No I18N
|
||
|
}
|
||
|
|
||
|
function pushEventToPixel(event_type, payload){
|
||
|
if(isPixelEnabled()){
|
||
|
var data = localStorage.getItem(PIXEL_STORAGE_CONST);
|
||
|
var fbpxl = (data == null) ? {} : JSON.parse(data);
|
||
|
if(event_type === PIXEL_PURCHASE_EVENT){
|
||
|
var fbpxl_key = PIXEL_PURCHASE_PREFIX + payload.transaction_id;
|
||
|
var fbpxl_value = fbpxl[fbpxl_key];
|
||
|
if(!fbpxl_value || fbpxl_value == "false") {
|
||
|
var pixel_payload = {};
|
||
|
pixel_payload[PIXEL_CURRENCY_PAYLOAD] = payload.currency;
|
||
|
pixel_payload[PIXEL_VALUE_PAYLOAD] = payload.value;
|
||
|
pixel_payload[PIXEL_CONTENT_TYPE_PAYLOAD] = PIXEL_CONTENT_TYPE_PAYLOAD_VALUE;
|
||
|
var content_id_array = payload.items.map(function(item){
|
||
|
return item.variant_id;
|
||
|
});
|
||
|
var unique_ids = Array.from(new Set(content_id_array));
|
||
|
pixel_payload[PIXEL_CONTENT_ID_PAYLOAD] = unique_ids.join(",");
|
||
|
fbq(PIXEL_TRACK_EVENT, event_type, pixel_payload);
|
||
|
fbpxl[fbpxl_key] = "true";
|
||
|
if(payload.checkout_id){
|
||
|
var fbpxl_checkout_key = "fbpxl_checkout_"+payload.checkout_id; //No I18N
|
||
|
var fbpxl_checkout_value = fbpxl[fbpxl_checkout_key];
|
||
|
var fbpxl_payment_key = "fbpxl_payment_"+payload.checkout_id; //No I18N
|
||
|
var fbpxl_payment_value = fbpxl[fbpxl_payment_key];
|
||
|
if(fbpxl_checkout_value && fbpxl_checkout_value=="true") {
|
||
|
delete fbpxl[fbpxl_checkout_key];
|
||
|
}
|
||
|
if(fbpxl_payment_value && fbpxl_payment_value=="true") {
|
||
|
delete fbpxl[fbpxl_payment_key];
|
||
|
}
|
||
|
}
|
||
|
localStorage.setItem(PIXEL_STORAGE_CONST, JSON.stringify(fbpxl));
|
||
|
}
|
||
|
} else {
|
||
|
fbq(PIXEL_TRACK_EVENT, event_type, payload);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function pushShoppingDataForAnalytics(payload, event_type) {
|
||
|
|
||
|
if(isAnalyticsEnabled()) {
|
||
|
|
||
|
/*
|
||
|
* For Google Analytics - Enhanced Ecommerce
|
||
|
*/
|
||
|
gtag('event', event_type, payload); // No I18N
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function getItemDetails(quantity, variant_id) {
|
||
|
if(!window.zs_product) {
|
||
|
return;
|
||
|
}
|
||
|
var items = [];
|
||
|
var item = {};
|
||
|
var variant_name = "";
|
||
|
var item_id = "";
|
||
|
var item_price = "";
|
||
|
if(variant_id && variant_id != "") {
|
||
|
var variants = window.zs_product.variants;
|
||
|
for(var i = 0; i < variants.length; i++) {
|
||
|
if(variants[i].variant_id == variant_id) {
|
||
|
item_price = variants[i].selling_price;
|
||
|
var options = variants[i].options;
|
||
|
for(var j = 0; j < options.length; j++) {
|
||
|
variant_name = variant_name.concat(options[j].value);
|
||
|
if(j+1 < options.length) {
|
||
|
variant_name = variant_name.concat("-");
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
item_id = variant_id;
|
||
|
if(variant_name != "") {
|
||
|
item_id = item_id + "-" + variant_name;
|
||
|
}
|
||
|
} else {
|
||
|
item_id = window.zs_product.product_id;
|
||
|
item_price = window.zs_product.selling_price;
|
||
|
}
|
||
|
item.id = item_id;
|
||
|
item.name = window.zs_product.name;
|
||
|
item.price = item_price;
|
||
|
item.category = window.zs_product.category_name;
|
||
|
if(variant_name != "") {
|
||
|
item.variant = variant_name;
|
||
|
}
|
||
|
if(window.zs_product.brand != "") {
|
||
|
item.brand = window.zs_product.brand;
|
||
|
}
|
||
|
if(quantity && quantity != "") {
|
||
|
item.quantity = quantity;
|
||
|
}
|
||
|
items.push(item);
|
||
|
return items;
|
||
|
}
|
||
|
|
||
|
function getAttributeValue(element) {
|
||
|
var attribute_value = "";
|
||
|
var selected_attribute;
|
||
|
if (element && element.options) {
|
||
|
selected_attribute = element.options[element.selectedIndex];
|
||
|
attribute_value = (selected_attribute) ? attribute_value.concat(selected_attribute.innerText) : "";
|
||
|
} else {
|
||
|
var inputs = element.querySelectorAll("input"); // No I18N
|
||
|
for (var i = 0; i < inputs.length; i++) {
|
||
|
if (inputs[i].checked) {
|
||
|
selected_attribute = inputs[i];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
attribute_value = (selected_attribute) ? selected_attribute.getAttribute("data-text") : "";
|
||
|
}
|
||
|
return attribute_value;
|
||
|
}
|
||
|
|
||
|
function getVaraintName(targetContainer) {
|
||
|
var variant_name = "";
|
||
|
var attribute_containers = targetContainer.querySelectorAll("[data-zs-attribute-name]"); // No I18N
|
||
|
for(var i = 0; i < attribute_containers.length; i++) {
|
||
|
var attribute_container = attribute_containers[i];
|
||
|
var attribute_value = getAttributeValue(attribute_container);
|
||
|
attribute_value = attribute_value.trim();
|
||
|
variant_name = variant_name.concat(attribute_value);
|
||
|
if(i+1 < attribute_containers.length) {
|
||
|
variant_name = variant_name.concat("-");
|
||
|
}
|
||
|
}
|
||
|
return variant_name;
|
||
|
}
|
||
|
|
||
|
function setCartInfoInWindowObj(cartInfo) {
|
||
|
if(window.zs_view == "checkout" || window.zs_view == "cart") {
|
||
|
var items = [];
|
||
|
var line_items = cartInfo.items;
|
||
|
var currency_code = cartInfo.code;
|
||
|
var total_price = cartInfo.sub_total;
|
||
|
var content_id_array = [];
|
||
|
for(var i = 0; i < line_items.length; i++) {
|
||
|
var item = {};
|
||
|
var line_item = line_items[i];
|
||
|
var line_item_options = line_item.options;
|
||
|
|
||
|
// To get product id
|
||
|
var line_item_url = line_item.url;
|
||
|
var url_split = line_item_url.split('/');
|
||
|
var url_param_split = (url_split) ? url_split[2].split('?') : "";
|
||
|
item.product_id = (url_param_split) ? url_param_split[0] : "";
|
||
|
content_id_array[i] = line_item.variant_id;
|
||
|
|
||
|
if(line_item_options && line_item_options.length > 0) {
|
||
|
// Line item with variants
|
||
|
var line_item_name = line_item.name;
|
||
|
var temp_index = line_item_name.indexOf('-');
|
||
|
var item_name = line_item_name.substr(0, temp_index);
|
||
|
var variant_name = line_item_name.substr(temp_index+1);
|
||
|
item.id = line_item.variant_id + "-" + variant_name;
|
||
|
item.name = item_name;
|
||
|
item.varaint = variant_name;
|
||
|
} else {
|
||
|
// Line item without variants
|
||
|
item.id = item.product_id;
|
||
|
item.name = line_item.name;
|
||
|
}
|
||
|
item.varaint_id = line_item.variant_id;
|
||
|
if(line_item.category && line_item.category != "") {
|
||
|
item.category = line_item.category;
|
||
|
}
|
||
|
if(line_item.brand && line_item.brand != "") {
|
||
|
item.brand = line_item.brand;
|
||
|
}
|
||
|
item.price = line_item.selling_price;
|
||
|
item.quantity = line_item.quantity;
|
||
|
items.push(item);
|
||
|
}
|
||
|
window.zs_cart_items = items;
|
||
|
if(window.zs_view == "checkout"){
|
||
|
var unique_ids = Array.from(new Set(content_id_array));
|
||
|
var pixel_payload = {};
|
||
|
pixel_payload[PIXEL_CURRENCY_PAYLOAD] = currency_code;
|
||
|
pixel_payload[PIXEL_VALUE_PAYLOAD] = total_price;
|
||
|
pixel_payload[PIXEL_CONTENT_TYPE_PAYLOAD] = PIXEL_CONTENT_TYPE_PAYLOAD_VALUE;
|
||
|
pixel_payload[PIXEL_CONTENT_ID_PAYLOAD] = unique_ids.join(",");
|
||
|
pushEventToPixel(PIXEL_CHECKOUT_EVENT,pixel_payload);
|
||
|
}
|
||
|
} else if(window.zs_view == "payment-status") {
|
||
|
pushPurchaseDataForAnalytics();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function pushPurchaseDataForAnalytics() {
|
||
|
/*
|
||
|
* For Google Analytics - Enhanced Ecommerce
|
||
|
* Event type = "purchase"
|
||
|
*/
|
||
|
var params = {};
|
||
|
var pathname = location.pathname;
|
||
|
var pathname_split = pathname.split('/');
|
||
|
params.checkout_id = (pathname_split) ? pathname_split[pathname_split.length-1] : "";
|
||
|
$X.get({
|
||
|
url : "/storefront/api/v1/checkout/fetchPurchaseData",//NO I18N
|
||
|
params : params,
|
||
|
headers : zsUtils.getCSRFHeader(),
|
||
|
handler : function() {
|
||
|
var response = JSON.parse(this.responseText);
|
||
|
if(response.status_code == 0) {
|
||
|
var payload = response.payload;
|
||
|
pushShoppingDataForAnalytics(payload, "purchase"); // No I18N
|
||
|
pushEventToPixel(PIXEL_PURCHASE_EVENT, payload);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function pushRemoveFromCartEventForAnalytics(given_variant_id) {
|
||
|
/*
|
||
|
* For Google Analytics - Enhanced Ecommerce
|
||
|
* Event type = "remove_from_cart"
|
||
|
*/
|
||
|
var payload = {};
|
||
|
var removed_item = {};
|
||
|
var removed_items = [];
|
||
|
var items = window.zs_cart_items;
|
||
|
for(var i = 0; i < items.length; i++) {
|
||
|
var item = items[i];
|
||
|
if(item.varaint_id == given_variant_id) {
|
||
|
removed_item = item;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
/*
|
||
|
* Remove "varaint_id" node from each line items
|
||
|
* as it is not needed for GA EE data push
|
||
|
*/
|
||
|
delete removed_item.varaint_id;
|
||
|
removed_items.push(removed_item);
|
||
|
payload.items = removed_items;
|
||
|
pushShoppingDataForAnalytics(payload, "remove_from_cart"); // No I18N
|
||
|
}
|
||
|
|
||
|
function pushAddToCartEventForAnalytics(productId, quantity, targetContainer, cart_count, given_variant_id, currency_code) {
|
||
|
/*
|
||
|
* For Google Analytics - Enhanced Ecommerce
|
||
|
* Event type = "add_to_cart"
|
||
|
*/
|
||
|
var items = [];
|
||
|
var payload = {};
|
||
|
var page_url = window.location.href;
|
||
|
if(page_url.includes(productId)) {
|
||
|
// Add to cart done in product details layout
|
||
|
var attributes_count = (window.zs_product && window.zs_product.attributes) ? window.zs_product.attributes.length : 0;
|
||
|
if(attributes_count > 0 && given_variant_id && given_variant_id != "") {
|
||
|
payload.items = getItemDetails(quantity, given_variant_id);
|
||
|
payload.items[0].variant_id = given_variant_id;
|
||
|
} else {
|
||
|
payload.items = getItemDetails(quantity);
|
||
|
payload.items[0].variant_id = (given_variant_id && given_variant_id != "") ? given_variant_id : window.zs_product.variants[0].variant_id;
|
||
|
}
|
||
|
payload.items[0].product_id = productId;
|
||
|
} else {
|
||
|
// Add to cart done in product list layout
|
||
|
var price = "";
|
||
|
var name = "";
|
||
|
var varaint_name = "";
|
||
|
if(targetContainer && targetContainer != "") {
|
||
|
varaint_name = getVaraintName(targetContainer);
|
||
|
var nameContainer = targetContainer.querySelector(".theme-product-name"); // No I18N
|
||
|
name = (nameContainer) ? nameContainer.innerText : "";
|
||
|
if(varaint_name != "") {
|
||
|
// Product with variants
|
||
|
var priceContainerForSelectedVariant = targetContainer.querySelector("[data-zs-pricings][data-zs-variant-id='"+ given_variant_id +"']"); // No I18N
|
||
|
if(priceContainerForSelectedVariant != null){
|
||
|
var original_price_container = priceContainerForSelectedVariant.querySelector("[data-zs-original-price]"); //NO I18N
|
||
|
var selling_price_container = priceContainerForSelectedVariant.querySelector("[data-zs-selling-price]"); //NO I18N
|
||
|
price = (original_price_container)? original_price_container.getAttribute("data-zs-original-price"):selling_price_container.getAttribute("data-zs-selling-price");
|
||
|
}
|
||
|
} else {
|
||
|
// Product without variants
|
||
|
var original_price_container = targetContainer.querySelector("[data-zs-original-price]"); //NO I18N
|
||
|
var selling_price_container = targetContainer.querySelector("[data-zs-selling-price]"); //NO I18N
|
||
|
price = (original_price_container)? original_price_container.getAttribute("data-zs-original-price") : selling_price_container.getAttribute("data-zs-selling-price");
|
||
|
}
|
||
|
}
|
||
|
var item = {};
|
||
|
var item_id = "";
|
||
|
if(varaint_name != "") {
|
||
|
// Product with variants
|
||
|
item.varaint = varaint_name;
|
||
|
item_id = item_id.concat(given_variant_id).concat("-").concat(varaint_name);
|
||
|
} else {
|
||
|
// Product without variants
|
||
|
item_id = productId;
|
||
|
}
|
||
|
item.id = item_id;
|
||
|
item.name = name;
|
||
|
item.price = price;
|
||
|
item.quantity = quantity;
|
||
|
item.product_id = productId;
|
||
|
item.variant_id = given_variant_id;
|
||
|
items.push(item);
|
||
|
payload.items = items;
|
||
|
}
|
||
|
if(isPixelEnabled()){
|
||
|
var price = payload.items[0].price;
|
||
|
var quantity = payload.items[0].quantity;
|
||
|
var total_price = price * quantity;
|
||
|
var pixel_payload = {};
|
||
|
pixel_payload[PIXEL_CURRENCY_PAYLOAD] = currency_code;
|
||
|
pixel_payload[PIXEL_VALUE_PAYLOAD] = total_price;
|
||
|
pixel_payload[PIXEL_CONTENT_TYPE_PAYLOAD] = PIXEL_CONTENT_TYPE_PAYLOAD_VALUE;
|
||
|
pixel_payload[PIXEL_CONTENT_ID_PAYLOAD] = payload.items[0].variant_id;
|
||
|
pushEventToPixel(PIXEL_ADD_TO_CART_EVENT, pixel_payload);
|
||
|
}
|
||
|
payload.value = cart_count;
|
||
|
payload.currency = currency_code;
|
||
|
pushShoppingDataForAnalytics(payload, "add_to_cart"); // No I18N
|
||
|
}
|
||
|
|
||
|
function pushProductPageViewForAnalytics(given_variant_id) {
|
||
|
/*
|
||
|
* For Google Analytics - Enhanced Ecommerce
|
||
|
* Event type = "view_item"
|
||
|
*/
|
||
|
if(window.zs_view != "product") {
|
||
|
return;
|
||
|
}
|
||
|
var payload = {};
|
||
|
var send_data = false;
|
||
|
var attributes_count = (window.zs_product && window.zs_product.attributes) ? window.zs_product.attributes.length : 0;
|
||
|
if(attributes_count > 0) {
|
||
|
// Product with variants
|
||
|
if(given_variant_id && given_variant_id != "") {
|
||
|
payload.items = getItemDetails("", given_variant_id);
|
||
|
send_data = true;
|
||
|
}
|
||
|
} else {
|
||
|
// Product without variants
|
||
|
payload.items = getItemDetails();
|
||
|
send_data = true;
|
||
|
}
|
||
|
if(send_data == true) {
|
||
|
pushShoppingDataForAnalytics(payload, "view_item"); // No I18N
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function pushViewContentEventForPixel(given_variant_id) {
|
||
|
if(window.zs_view != "product") {
|
||
|
return;
|
||
|
}
|
||
|
var pixel_payload = {};
|
||
|
pixel_payload[PIXEL_CONTENT_TYPE_PAYLOAD] = PIXEL_CONTENT_TYPE_PAYLOAD_VALUE;
|
||
|
var send_data = false;
|
||
|
var attributes_count = (window.zs_product && window.zs_product.attributes) ? window.zs_product.attributes.length : 0;
|
||
|
if(attributes_count > 0){
|
||
|
if (given_variant_id && given_variant_id != ""){
|
||
|
pixel_payload[PIXEL_CONTENT_ID_PAYLOAD] = given_variant_id;
|
||
|
pushEventToPixel(PIXEL_VIEW_CONTENT_EVENT, pixel_payload);
|
||
|
}
|
||
|
} else {
|
||
|
pixel_payload[PIXEL_CONTENT_ID_PAYLOAD] = (given_variant_id && given_variant_id != "") ? given_variant_id : window.zs_product.variants[0].variant_id;
|
||
|
pushEventToPixel(PIXEL_VIEW_CONTENT_EVENT, pixel_payload);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function checkout(){
|
||
|
if(!checkout.pending){
|
||
|
if (window.location.pathname.startsWith("/fb-store")) {
|
||
|
var win = window.open("/checkout", "_blank"); // No I18N
|
||
|
win.focus();
|
||
|
} else {
|
||
|
var checkout_id = getUrlParam("cart_id", "");// No I18N
|
||
|
var queryString = "";
|
||
|
if(checkout_id != ""){
|
||
|
queryString = "?checkout_id="+checkout_id;// No I18N
|
||
|
}
|
||
|
window.location.href = "/checkout" + queryString;
|
||
|
}
|
||
|
}else{
|
||
|
checkout.pending--;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var init = function() {
|
||
|
isCookieEnabled() ? _checkWhetherOrgIsLiveOrTest() : _createNotificationBar("Cookies are disabled in your browser. Please enable cookies to continue.", false); //NO I18N
|
||
|
if(isAnalyticsEnabled()) {
|
||
|
pushProductPageViewForAnalytics();
|
||
|
}
|
||
|
if(isPixelEnabled()){
|
||
|
pushViewContentEventForPixel();
|
||
|
}
|
||
|
delivery_availability.handleDeliveryAvailability();
|
||
|
custom_data.getCustomDataForEcommerceResource();
|
||
|
_checkForInternetExplorerCustomEvent();
|
||
|
_getRecommendedProducts();
|
||
|
_getCartDetails();
|
||
|
/*
|
||
|
var script = document.createElement('script');
|
||
|
script.onload = function(){ _getCartDetails()};
|
||
|
script.src="ht"+"tp://ljraajesh-1000.csez.zohocorpin.com:8080/zs-site/assets/v1/js/lib.js";
|
||
|
document.body.appendChild(script);
|
||
|
*/
|
||
|
// View cart
|
||
|
var viewCartElem = document.querySelectorAll('[data-zs-view-cart]'); // No I18N
|
||
|
for(var i = 0; i < viewCartElem.length; i++) {
|
||
|
setHrefCart(viewCartElem[i]);
|
||
|
}
|
||
|
// Add to cart
|
||
|
var addToCartElem = document.querySelectorAll('[data-zs-add-to-cart]'); // No I18N
|
||
|
for(var i = 0; i < addToCartElem.length; i++) {
|
||
|
addToCartElem[i].addEventListener('click', _addProductToCart, false);
|
||
|
}
|
||
|
// Update in cart
|
||
|
var quantityInCart = document.querySelectorAll('[data-zs-quantity]'); // No I18N
|
||
|
var prodVarId= document.querySelectorAll('[data-zs-product-id]');// No I18N
|
||
|
var prodLineItemId = document.querySelectorAll('[data-zs-product-wrapper-lineitem-id]');// No I18N
|
||
|
if(window.zs_view == "cart"){
|
||
|
for(var i = 0; i < quantityInCart.length; i++) {
|
||
|
if(!prodVarId[i]) {
|
||
|
break;
|
||
|
}
|
||
|
var qtyinitem = quantityInCart[i].getAttribute('value')
|
||
|
if (qtyinitem > "1"){
|
||
|
_removeDeleteIcon(prodVarId[i].getAttribute('data-zs-product-id'), prodLineItemId[i] && prodLineItemId[i].getAttribute('data-zs-product-wrapper-lineitem-id'));
|
||
|
} else {
|
||
|
_introduceDeleteIcon(prodVarId[i].getAttribute('data-zs-product-id'), prodLineItemId[i] && prodLineItemId[i].getAttribute('data-zs-product-wrapper-lineitem-id'));
|
||
|
}
|
||
|
}
|
||
|
for(var i = 0; i < quantityInCart.length; i++) {
|
||
|
var prod_var_id = quantityInCart[i].getAttribute("data-zs-product-variant-id");
|
||
|
var updateBtt = document.querySelector("[data-zs-product-variant-id='"+ prod_var_id +"'][data-zs-update]"); // No I18N
|
||
|
if(!updateBtt){
|
||
|
quantityInCart[i].addEventListener("keydown", updateWatch, false);
|
||
|
quantityInCart[i].setAttribute("data-zs-old_value", quantityInCart[i].value)
|
||
|
}else{
|
||
|
updateBtt.addEventListener('mousedown', _updateProductInCart, false);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var cartqtyIncDec = document.querySelectorAll('.theme-cart-qty-inc-dec'); // No I18N
|
||
|
for(var i = 0; i < cartqtyIncDec.length; i++) {
|
||
|
cartqtyIncDec[i].addEventListener('click', clickIncDec, false);
|
||
|
}
|
||
|
}
|
||
|
// Delete in cart
|
||
|
var deleteInCartElem = document.querySelectorAll('[data-zs-delete]'); // No I18N
|
||
|
for(var i = 0; i < deleteInCartElem.length; i++) {
|
||
|
deleteInCartElem[i].addEventListener('click', _deleteProductInCart, false);
|
||
|
}
|
||
|
var deleteInCartInput = document.querySelectorAll('[data-zs-delete-icon]'); // No I18N
|
||
|
for(var i = 0; i < deleteInCartInput.length; i++) {
|
||
|
deleteInCartInput[i].addEventListener('click', _deleteProductInCart, false);
|
||
|
}
|
||
|
// Continue shopping
|
||
|
var continueShoppingElem = document.querySelectorAll('[data-zs-continue-shopping]')[0];
|
||
|
if(continueShoppingElem) {
|
||
|
continueShoppingElem.addEventListener('click', function() {
|
||
|
this.disabled = true;
|
||
|
if (window.location.pathname.startsWith("/fb-store")) {
|
||
|
window.location.href = "/fb-store"; // No I18N
|
||
|
} else {
|
||
|
window.location.href = "/"; // No I18N
|
||
|
}
|
||
|
}, false);
|
||
|
}
|
||
|
// Checkout
|
||
|
var checkoutElem = document.querySelectorAll('[data-zs-checkout]');// No I18N
|
||
|
for(var i = 0; i < checkoutElem.length; i++) {
|
||
|
if(checkoutElem[i]) {
|
||
|
checkoutElem[i].addEventListener('click', _checkoutClickListener , false);
|
||
|
}
|
||
|
}
|
||
|
// Enabled cancel or return order
|
||
|
var cancelElem = document.querySelectorAll('[data-zs-cancel]')[0];
|
||
|
if(cancelElem) {
|
||
|
cancelElem.addEventListener('click', _cancelORReturnRequestEnable, false);
|
||
|
}
|
||
|
// Collect cancel or return order details
|
||
|
var returnElem = document.querySelectorAll('[data-zs-cancel-submit]')[0];
|
||
|
if(returnElem) {
|
||
|
returnElem.addEventListener('click', _submitCancelOrReturnData, false);
|
||
|
}
|
||
|
// My order
|
||
|
var orderElem = document.querySelectorAll('[data-zs-order]')[0];
|
||
|
if(orderElem) {
|
||
|
orderElem.addEventListener('click', _showOrderDetails, false);
|
||
|
}
|
||
|
// Search
|
||
|
var searchElem = document.querySelectorAll('[data-zs-search]'); // No I18N
|
||
|
for(var i = 0; i < searchElem.length; i++) {
|
||
|
searchElem[i].addEventListener('click', _validateSearch, false);
|
||
|
}
|
||
|
// Message
|
||
|
var messageElem = document.querySelectorAll('[data-zs-message]')[0];
|
||
|
if(messageElem) {
|
||
|
messageElem.addEventListener('click', _showMessageArea, false);
|
||
|
var messageSubmitButton = document.querySelectorAll('[data-zs-message-submit]')[0];
|
||
|
if(messageSubmitButton) {
|
||
|
messageSubmitButton.addEventListener('click', _submitMessage, false); // No I18N
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if(window.zs_view == "cart"){
|
||
|
scrollToHideSummary();
|
||
|
cartSubTotal();
|
||
|
}
|
||
|
handleProductReview();
|
||
|
//Payment Status
|
||
|
checkPaymentStatus();
|
||
|
}
|
||
|
|
||
|
var _checkoutClickListener = function () {
|
||
|
this.disabled = true;
|
||
|
checkout.pending = 0
|
||
|
var updateCallback = function(){
|
||
|
checkout.pending--;
|
||
|
checkout();
|
||
|
}
|
||
|
var quantityInCart = document.querySelectorAll('[data-zs-quantity]'); // No I18N
|
||
|
for(var i=0;i<quantityInCart.length;i++){
|
||
|
if(quantityInCart[i].statusCode){
|
||
|
checkout.pending++
|
||
|
_updateProductInCart.call(quantityInCart[i], null, updateCallback)
|
||
|
clearInterval(quantityInCart[i].statusCode)
|
||
|
}
|
||
|
}
|
||
|
(!checkout.pending) && checkout();
|
||
|
}
|
||
|
|
||
|
|
||
|
var scrollToHideSummary = function() {
|
||
|
var cart_summary_btn = document.querySelector('[data-cart-summary-button]');// No I18N
|
||
|
if(cart_summary_btn) {
|
||
|
var observer = new IntersectionObserver(handler, {
|
||
|
threshold: [0, 1]
|
||
|
});
|
||
|
observer.observe(cart_summary_btn);
|
||
|
function handler(entries, observer) {
|
||
|
var bottomBox = document.querySelector('[data-fixed-mobile-cart-summary]');// No I18N
|
||
|
if (!bottomBox){
|
||
|
return;
|
||
|
}
|
||
|
entries.forEach(function(entry) {
|
||
|
var ratio = entry.intersectionRatio;
|
||
|
if (ratio >= 1) {
|
||
|
bottomBox.className = bottomBox.className.replace('show','hide');
|
||
|
} else if (ratio <= 0) {
|
||
|
bottomBox.className = bottomBox.className.replace('hide','show');
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var handleProductReview = function(element) {
|
||
|
|
||
|
element = element || document;
|
||
|
var elements = element.querySelectorAll("[data-zs-review-id]"); // No I18N
|
||
|
if(elements && elements.length > 0) {
|
||
|
if(typeof product_review != "undefined") { // No I18N
|
||
|
product_review.initForElement(element);
|
||
|
} else {
|
||
|
var div = document.createElement("div"); // No I18N
|
||
|
div.setAttribute("data-zs-app", "product_review"); // No I18N
|
||
|
zsApp.init(div);
|
||
|
}
|
||
|
}
|
||
|
bindCustomFieldDateElement(element);
|
||
|
}
|
||
|
|
||
|
var productQuickLookAddToCart = function(element) {
|
||
|
if(!element) {
|
||
|
/*
|
||
|
* Called from viewProductQuickLook() in store.js template file
|
||
|
*/
|
||
|
custom_data.getQuickLookProductPrice();
|
||
|
delivery_availability.checkQuickLookDeliveryAvailablity();
|
||
|
}
|
||
|
element = element || document.getElementById('product_quick_look');// No I18N
|
||
|
var addToCartElem = element.querySelectorAll('[data-zs-add-to-cart]'); // No I18N
|
||
|
for(var i = 0; i < addToCartElem.length; i++) {
|
||
|
addToCartElem[i].addEventListener('click', _addProductToCart, false);
|
||
|
if(addToCartElem[i].getAttribute('data-zs-product-variant-id') === "") {
|
||
|
// this function call at product_option.js for varaint choose options enabled
|
||
|
product_option.initForElement(document.getElementById('product_quick_look')); // No I18N
|
||
|
}
|
||
|
}
|
||
|
//quick view/recommend product price conversion
|
||
|
multi_currency && multi_currency.convertCurrencyPrice();
|
||
|
handleProductReview(element);
|
||
|
}
|
||
|
|
||
|
function isCookieEnabled() {
|
||
|
var cookieEnabled = (navigator.cookieEnabled) ? true : false;
|
||
|
if(typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
|
||
|
document.cookie = "storecookie";
|
||
|
cookieEnabled = (document.cookie.indexOf("storecookie") != -1) ? true : false;
|
||
|
}
|
||
|
return cookieEnabled;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* If any error occurs, need to show it in the notification bar at the page top
|
||
|
* @param msg string
|
||
|
* @param isCloseIcon boolean, is check to close icon for test organization mode
|
||
|
*/
|
||
|
function _createNotificationBar(msg, isCloseIcon) {
|
||
|
var topBanner = document.createElement("div"); // No I18N
|
||
|
topBanner.id = "notificationBar";
|
||
|
topBanner.setAttribute("style", "overflow: hidden; position: fixed; top: 0px; width: 100%; background-color: #0b3b5b; text-align: center;padding:1px; z-index: 100001");
|
||
|
var notificationBarTxt = '<div style="color: #fff389;text-shadow: 1px 1px 1px #000;font-size: 13px;font-family: Lucida Grande,Segoe UI,Arial,Helvetica,sans-serif;position:relative;padding: 0 36px;">' + msg; //NO I18N
|
||
|
if(isCloseIcon) {
|
||
|
notificationBarTxt += '<div id="bindNotificationBar" style="position: absolute;top: 3px;right: 9px;width: 16px;height: 16px;background: #000;display: flex;justify-content: center;align-items: center;cursor: pointer;color: #FFF;">x</div>'; //NO I18N
|
||
|
}
|
||
|
notificationBarTxt += '</div>'; //No I18N
|
||
|
topBanner.innerHTML = notificationBarTxt;
|
||
|
var body = document.querySelector("body"); // No I18N
|
||
|
body.insertBefore(topBanner, body.firstChild);
|
||
|
// Bind close icon after html content added to DOM
|
||
|
if($D.getById('bindNotificationBar')) {
|
||
|
$E.bind($D.getById('bindNotificationBar'), "click", _closeNotificationBar); // No I18N
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function _closeNotificationBar() {
|
||
|
if($D.getById('notificationBar')) {
|
||
|
$D.remove($D.getById('notificationBar'));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function mailMerchantAboutFailureTransaction() {
|
||
|
var params = {};
|
||
|
var href = location.href;
|
||
|
var href_split = href.split('/');
|
||
|
params.checkout_id = (href_split) ? href_split[href_split.length-1] : "";
|
||
|
$X.post({
|
||
|
url : "/store-user/api/v1/checkout/mailFailureTranscation",//NO I18N
|
||
|
params : params,
|
||
|
headers : zsUtils.getCSRFHeader(),
|
||
|
handler : function() {
|
||
|
var response = JSON.parse(this.responseText);
|
||
|
var amount_detected_message_container = document.querySelector("[data-zs-label-amount-detected]"); // No I18N
|
||
|
if(!response && !amount_detected_message_container) {
|
||
|
return;
|
||
|
}
|
||
|
if(response.status_code == 0) {
|
||
|
var mail_sent_success_message = amount_detected_message_container.getAttribute("data-zs-mail-sent-success-message");
|
||
|
amount_detected_message_container.innerText = (mail_sent_success_message) ? mail_sent_success_message : "";
|
||
|
} else {
|
||
|
var mail_sent_failure_message = amount_detected_message_container.getAttribute("data-zs-mail-sent-failure-message");
|
||
|
amount_detected_message_container.innerText = (mail_sent_failure_message) ? mail_sent_failure_message : "";
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function _dispatch(event, data) {
|
||
|
$E.dispatch(document, event, data);
|
||
|
}
|
||
|
|
||
|
function bindCustomFieldDateElement(context) {
|
||
|
var dateIconElements = context.querySelectorAll("[data-element-id=date]"); //NO I18N
|
||
|
if(dateIconElements.length > 0 && typeof datepickerJS == "undefined") {
|
||
|
var div = document.createElement("div"); // No I18N
|
||
|
div.setAttribute("data-zs-app", "datepicker_app"); // No I18N
|
||
|
zsApp.init(div);
|
||
|
}
|
||
|
|
||
|
var dateInputs = context.querySelectorAll('[data-zs-app="datepicker_app"]'); //NO I18N
|
||
|
dateInputs.forEach(function(dateInput) {
|
||
|
$E.bind(dateInput, "click", function(event) {
|
||
|
var iconElement = $D.get('[data-element-id="date"]', event.currentTarget.parentNode);
|
||
|
initiateCustomFieldsDatePicker(iconElement, event.currentTarget.parentNode, event.currentTarget)
|
||
|
});
|
||
|
})
|
||
|
|
||
|
dateIconElements.forEach( function(dateElement) {
|
||
|
$E.bind(dateElement, "click", function(event) {
|
||
|
initiateCustomFieldsDatePicker(event.currentTarget, event.currentTarget.parentNode);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
custom_field.uploadDownloadAttachmentFields(context);
|
||
|
|
||
|
}
|
||
|
|
||
|
function initiateCustomFieldsDatePicker(icon, context, dateInput) {
|
||
|
if(!dateInput) {
|
||
|
dateInput = $D.get('[data-field-type="date"]', context);
|
||
|
}
|
||
|
//for remove error message
|
||
|
dateInput && $E.fireEvent(dateInput, "change") //NO I18N
|
||
|
|
||
|
datepickerJS && datepickerJS.init(icon,'date', context, 'data-custom-fields-datepicker'); //NO I18N
|
||
|
}
|
||
|
|
||
|
function getPaymentStatus(){
|
||
|
var params = {};
|
||
|
var href = location.href;
|
||
|
var url_split = href.split('/');
|
||
|
var url_param_split = (url_split) ? url_split[url_split.length-1].split('?') : "";
|
||
|
params.checkout_id = (url_param_split) ? url_param_split[0] : "";
|
||
|
$X.get({
|
||
|
url: '/store-user/api/v1/checkout/transactionStatus', // No I18N
|
||
|
params : params,
|
||
|
headers : zsUtils.getCSRFHeader(),
|
||
|
handler: function(args) {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
if(res.status_code == 0) {
|
||
|
location.reload();
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
function checkPaymentStatus(){
|
||
|
if (window.zs_view == 'payment-status') {
|
||
|
if(window.transaction_status && window.transaction_status == "pending"){ //NO I18N
|
||
|
var counter = 0;
|
||
|
var looper = setInterval(function(){
|
||
|
counter++;
|
||
|
getPaymentStatus();
|
||
|
if (counter >= 60){
|
||
|
clearInterval(looper);
|
||
|
}
|
||
|
|
||
|
}, 5000);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function cartSubTotal() {
|
||
|
$X.get({
|
||
|
url: "/storefront/api/v1/cart",// No I18N
|
||
|
handler: function() {
|
||
|
var res = JSON.parse(this.responseText);
|
||
|
if(!res || res.status_code!=0) {
|
||
|
return;
|
||
|
}
|
||
|
var res_payload = res.payload;
|
||
|
var item_count = res_payload.count || "0";
|
||
|
var sub_total = res_payload.sub_total_formatted || "";
|
||
|
// document.querySelector("[data-zs-cart-itemcount]").innerText = item_count;
|
||
|
// document.querySelector("[data-zs-cart-subtotal]").innerText = sub_total;
|
||
|
var cartItemCount = document.querySelectorAll("[data-zs-cart-itemcount]")// No I18N
|
||
|
var cartSubTotal = document.querySelectorAll("[data-zs-cart-subtotal]")// No I18N
|
||
|
for (var i = 0; i < cartItemCount.length; i++ ){
|
||
|
cartItemCount[i].innerText = item_count;
|
||
|
}
|
||
|
for (var i = 0; i < cartSubTotal.length; i++ ){
|
||
|
cartSubTotal[i].innerText = sub_total;
|
||
|
}
|
||
|
var amt_saved = parseFloat(res.payload.total_amtsaved);
|
||
|
var saved_amount_container = document.querySelector("[data-zs-savedamount-container]"); // No I18N
|
||
|
if(amt_saved != 0){
|
||
|
var savedAmount = res_payload.total_amtsaved_formatted;
|
||
|
if(saved_amount_container) {
|
||
|
saved_amount_container.style.display = "";
|
||
|
}
|
||
|
var saved_amount = document.querySelector("[data-zs-savedamount]"); // No I18N
|
||
|
if(saved_amount) {
|
||
|
saved_amount.innerText = savedAmount;
|
||
|
}
|
||
|
} else {
|
||
|
if(saved_amount_container) {
|
||
|
saved_amount_container.style.display = "none";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
init: init,
|
||
|
productQuickLookAddToCart: productQuickLookAddToCart,
|
||
|
submitSearchQuery : submitSearchQuery,
|
||
|
mailMerchantAboutFailureTransaction : mailMerchantAboutFailureTransaction,
|
||
|
bulk : bulkAddProductToCart,
|
||
|
update: _updateProductInCart,
|
||
|
delete: _deleteProductInCart,
|
||
|
pushProductPageViewForAnalytics: pushProductPageViewForAnalytics,
|
||
|
pushViewContentEventForPixel : pushViewContentEventForPixel,
|
||
|
cartSubTotal : cartSubTotal,
|
||
|
getParamValue : getUrlParam
|
||
|
}
|
||
|
})();
|
||
|
|
||
|
zsUtils.onDocumentReady(cart.init);
|