diff --git a/CHANGELOG.md b/CHANGELOG.md index d1d684f3..12b38d8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ bumped for multiple releases during one month. ### [Unreleased] ##### Fixed - Order Confirmation event will now correctly fire for orders with coupons. +- Order Confirmation will now correctly fire if product has no primary category. ##### Updated - Rename sendEmail function to trackEvent - Fix grammar/typos in comments and docstrings diff --git a/cartridges/int_klaviyo_core/cartridge/scripts/utils/klaviyo/emailUtils.js b/cartridges/int_klaviyo_core/cartridge/scripts/utils/klaviyo/emailUtils.js index 932df353..7cf9a7b1 100644 --- a/cartridges/int_klaviyo_core/cartridge/scripts/utils/klaviyo/emailUtils.js +++ b/cartridges/int_klaviyo_core/cartridge/scripts/utils/klaviyo/emailUtils.js @@ -105,14 +105,17 @@ function prepareOrderPayload(order, isFutureOrder, mailType) { } items.push(productLineItem.productID); - itemCount += productLineItem.quantity.value; var allCategories; if (productDetail.variant) { - itemPrimaryCategories.push(productDetail.masterProduct.getPrimaryCategory().displayName); + if (productDetail.masterProduct.getPrimaryCategory()) { + itemPrimaryCategories.push(productDetail.masterProduct.getPrimaryCategory().displayName); + } allCategories = productDetail.masterProduct.getAllCategories(); } else { - itemPrimaryCategories.push(productDetail.getPrimaryCategory().displayName); + if (productDetail.getPrimaryCategory()) { + itemPrimaryCategories.push(productDetail.getPrimaryCategory().displayName); + } allCategories = productDetail.getAllCategories(); } diff --git a/cartridges/int_klaviyo_sfra/cartridge/scripts/utils/klaviyo/klaviyoDataLayer.js b/cartridges/int_klaviyo_sfra/cartridge/scripts/utils/klaviyo/klaviyoDataLayer.js index 25c721b5..94fa4285 100644 --- a/cartridges/int_klaviyo_sfra/cartridge/scripts/utils/klaviyo/klaviyoDataLayer.js +++ b/cartridges/int_klaviyo_sfra/cartridge/scripts/utils/klaviyo/klaviyoDataLayer.js @@ -6,6 +6,7 @@ var Logger = require('dw/system/Logger'); var productMgr = require('dw/catalog/ProductMgr'); var orderMgr = require('dw/order/OrderMgr'); var basketMgr = require('dw/order/BasketMgr'); +var Logger = require('dw/system/Logger'); var buildDataLayer = function () { var logger = Logger.getLogger('Klaviyo', 'SFRA klaviyoDataLayer - buildDataLayer()'); @@ -49,18 +50,16 @@ var buildDataLayer = function () { } // Order Confirmation Event - if (pageContext == 'orderconfirmation' && orderID) { + if (orderID && !empty(orderID.rawValue)) { logger.info('Building dataLayer for "Order Confirmation" event.'); KlaviyoUtils = require('*/cartridge/scripts/utils/klaviyo/klaviyoUtils'); - - if (!dw.system.Site.getCurrent().getCustomPreferenceValue('klaviyo_order_transactional_enabled')) { - return; - } currentOrder = orderMgr.getOrder(orderID); - KlaviyoUtils.prepareOrderConfirmationEventForKlaviyo(currentOrder); + // check to see if the status is new or created + if (currentOrder.status == 3 || currentOrder.status == 4) { + KlaviyoUtils.prepareOrderConfirmationEventForKlaviyo(currentOrder); + } } - // Viewed Product event if (!empty(pageProductID.rawValue)) { logger.info('Building dataLayer for "Viewed Product" event.');