Search

Filter
159 Products
Sort by
Recommend
Recommend
Newest in
Price High to Low
Price Low to High
Sales High to Low
Most Add to Cart
Most Views
Sales Low to High
Product Names from A to Z
Product Names from Z-A

Men's Perfume Chanel EDT

from $136.00

Blush Joues Contraste Chanel

from $64.00

Lipstick Rouge Allure Chanel

from $48.00

Eyeliner Stylo Ombre et Contour Chanel

from $50.00

Facial Serum Le lift Chanel

from $249.00

Lip-gloss Rouge Coco Chanel

from $46.00

Mascara Le Volume Wp Chanel

from $48.00

Mascara Inimitable Intense Chanel

from $53.00

Women's Perfume Chance Chanel EDT

from $116.00

Women's Perfume Nº 5 Chanel EDP

from $202.00

Lip balm Chanel Rouge Coco 3 g

from $56.00

Women's Perfume Nº 19 Chanel EDP

from $154.00

Eyeshadow Prèmiere Laque Chanel (6 ml)

from $55.00

Women's Perfume Coco Mademoiselle Chanel

from $115.00

Women's Perfume Allure Chanel EDP EDP

from $194.00

Eye Shadow Palette Les 4 Ombres Chanel

from $62.00 $64.00

Eyebrow Pencil Stylo Sourcils Waterproof Chanel

from $51.00

Women's Perfume Chance Eau Vive Chanel EDT

from $102.00

Men's Perfume Allure Homme Sport Chanel EDC

from $129.00

Women's Perfume Coco Chanel EDT Coconut 50 ml

from $174.00

Liquid Make Up Base Les Beiges Chanel (30 ml) (30 ml)

from $71.00
const searchContainer = document.getElementById('search-container'); let updatingSearchTerms = false; let currentAnchorActiveValue = ''; function updateSearchTerms() { updatingSearchTerms = true; return Promise.resolve({}); } function updateEmptyStatus(data) { if (!searchContainer || !updatingSearchTerms) { return; } const requestData = data.requestData.data?.filters || [] const hasPrice = requestData.some(item=> item.param_name == "filter.v.price") const showFilter = requestData.some(item=> item.param_name != "filter.v.price" && item.values?.length > 0 ) if ((hasPrice && data.total > 0) || (requestData.length > 0 && showFilter)) { searchContainer.removeAttribute('empty'); } else { searchContainer.setAttribute('empty', ''); } updatingSearchTerms = false; return Promise.resolve({}); } function setAnchorActiveValue(activeValue) { currentAnchorActiveValue = activeValue; return Promise.resolve({}); } function resetAnchor() { return Promise.resolve({activeValue: currentAnchorActiveValue}); } exportFunction('updateEmptyStatus', updateEmptyStatus); exportFunction('updateSearchTerms', updateSearchTerms); exportFunction('setAnchorActiveValue', setAnchorActiveValue); exportFunction('resetAnchor', resetAnchor); const TAG = 'spz-custom-search-one-click'; const ONE_CLICK_NAME = 'data-one-click-name'; class SpzCustomSearchOneClick extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); this.clickedUniqueNames_ = []; this.container_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { const scopeId = this.element.getAttribute('container'); this.container_ = SPZCore.Dom.scopedQuerySelector(document.body, `#${scopeId}`) || document.body; this.initActions_(); } initActions_() { SPZUtils.Event.listen(this.container_, 'click', (e) => { const target = SPZCore.Dom.closestAncestorElementBySelector( e.target, `[${ONE_CLICK_NAME}]` ); if (!target) { return; } const name = target.getAttribute(ONE_CLICK_NAME); if (!this.clickedUniqueNames_.includes(name)) { this.clickedUniqueNames_.push(name); } target.setAttribute('hidden', ''); }); this.registerAction('resetStatus', () => { this.resetStatus_(); }); } resetStatus_() { const elements = SPZCore.Types.toArray( SPZCore.Dom.scopedQuerySelectorAll(this.container_, `[${ONE_CLICK_NAME}]`) ); elements.forEach((el) => { const name = el.getAttribute(ONE_CLICK_NAME); if (this.clickedUniqueNames_.includes(name)) { el.setAttribute('hidden', ''); } }); } } SPZ.defineElement(TAG, SpzCustomSearchOneClick); const TAG = 'spz-custom-search-input-refresh-list'; const FILTER_PREFIX = 'filter.'; const SORT_BY = 'sort_by'; class SpzCustomSearchInputRefreshList extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); this.target_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { const listId = this.element.getAttribute('list-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(listId), () => { this.initialize_(); } ); } initialize_() { const listId = this.element.getAttribute('list-id'); this.target_ = SPZCore.Dom.scopedQuerySelector(document.body, `#${listId}`); this.registerAction('refresh', (invocation) => { const {keyword = ''} = invocation?.args || {}; const qs = (location.search || '') .split(/[\?&]/g) .filter((item) => item); const emptyFilterItems = qs.map((item) => item.split(/=/)[0]) .filter((item) => item.startsWith(FILTER_PREFIX)) .reduce((memo, key) => { memo[key] = []; return memo; }, {}) || {}; const sortBy = qs.filter((item) => item.split(/=/)[0] === SORT_BY) .reduce((memo, pair) => { const kv = pair.split(/=/); memo[kv[0]] = kv[1]; return memo; }, {}) || {}; SPZ.whenApiDefined(this.target_).then((apis) => { apis.refresh?.({...emptyFilterItems, ...sortBy, keyword}, true); }); }); } } SPZ.defineElement(TAG, SpzCustomSearchInputRefreshList);