diff --git a/blocks/targeted-block/graphql.js b/blocks/targeted-block/graphql.js index 81a0c2ef4..8b036542e 100644 --- a/blocks/targeted-block/graphql.js +++ b/blocks/targeted-block/graphql.js @@ -49,7 +49,10 @@ const getCartRules = async (cartId) => { try { // setFetchGraphQlHeaders(await getHeaders('cart')); const response = await fetchGraphQl( - `query CART_RULES($cartId: String!){ + `query CUSTOMER_SEGMENTS($cartId: String!){ + customerSegments(cartId: $cartId) { + name + } cart(cart_id: $cartId) { rules { name @@ -62,7 +65,7 @@ const getCartRules = async (cartId) => { variables: { cartId }, }, ); - return response.data?.cart?.rules || []; + return response.data || []; } catch (error) { console.error('Could not retrieve customer cart rules', error); } diff --git a/blocks/targeted-block/targeted-block.js b/blocks/targeted-block/targeted-block.js index 6c05144cd..2af6471fd 100644 --- a/blocks/targeted-block/targeted-block.js +++ b/blocks/targeted-block/targeted-block.js @@ -9,20 +9,30 @@ import { import conditionsMatched from './condition-matcher.js'; import { readBlockConfig } from '../../scripts/aem.js'; import { loadFragment } from '../fragment/fragment.js'; +import { getUserTokenCookie } from '../../scripts/initializers/index.js'; const blocks = []; const displayedBlockTypes = []; const updateTargetedBlocksVisibility = async () => { const activeRules = { - customerSegments: await getCustomerSegments(), + customerSegments: [], customerGroup: await getCustomerGroups(), cart: [], catalogPriceRules: [], }; - if (Cart.getCartDataFromCache() !== null) { - activeRules.cart = await getCartRules(Cart.getCartDataFromCache().id); + if (getUserTokenCookie()) { + if (Cart.getCartDataFromCache() === null) { + activeRules.customerSegments = await getCustomerSegments(); + } else { + const cartId = Cart.getCartDataFromCache().id; + if (cartId) { + const response = await getCartRules(cartId); + activeRules.cart = response.cart?.rules || []; + activeRules.customerSegments = response.customerSegments || []; + } + } } // eslint-disable-next-line no-underscore-dangle