Product Filter & Search by Boost Commerce
1. Go to the page having the HTML for product card, example: `bc-sf-filter-html.liquid` and in that page. Add the following class to `grid__item`
<span data-product-json="[[itemJson]]" class="wishlisthero-custom-boostcommerce-product"></span>
2. Add the following functon in the `Assets/bc-sf-filter.js` file
// Build Wishlist Hero Button function buildWishlistHeroButton(data) { try { //console.log(prodJsonString) let product = data; var image = product.images && product.images.length > 0 ? product.images[0].src : ""; var name = product.title; var url = "https://" + window.Shopify.shop + product.url; var price = product.price / 100; var selected_var_id = product.variants[0].id; var selected_var = product.variants[0]; product.variants.forEach(function (possible_var) { //for (var index, in product.variants) { if (possible_var.id == selected_var_id) { selected_var = possible_var; if (selected_var.featured_image && selected_var.featured_image.src) { image = selected_var.featured_image.src; } if (selected_var.url) { url = selected_var.url; } if (selected_var.name) { name = selected_var.name; } price = selected_var.price / 100; } }); let wishlistButton = document.createElement("div"); wishlistButton.classList.add("wishlist-hero-bc-button"); wishlistButton.classList.add("wishlisthero-bc-inline"); // wishlistButton.setAttribute( // "data-wlh-variants", // JSON.stringify(product.variants) // ); // wishlistButton.classList.add("wishlist-hero-custom-button"); wishlistButton.setAttribute("data-wlh-id", product.id); wishlistButton.setAttribute("data-wlh-link", url); wishlistButton.setAttribute("data-wlh-variantId", selected_var.id); wishlistButton.setAttribute("data-wlh-price", price); wishlistButton.setAttribute("data-wlh-name", name); wishlistButton.setAttribute("data-wlh-image", image); wishlistButton.setAttribute("data-wlh-mode", "icon_only"); //console.log(wishlistButton); return wishlistButton.outerHTML; } catch (ex) { console.log(ex); } }
3. in the same file above, replace the use of `buildWishlist()` with `buildWishlistHero()`
4. Now in `wishlisthero-styles.liquid` add the following at the end
<!-- Wishlist Hero BoostCommerce listener --> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22https%3A%2F%2Fcdn.jsdelivr.net%2Fnpm%2Farrive%402.4.1%2Fsrc%2Farrive.min.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" /> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A.wishlisthero-bc-inline%20%7B%0Aposition%3A%20inherit%3B%0Afloat%3A%20right%3B%0Atext-align%3A%20right%3B%0Amargin-top%3A%20-40%25%3B%0Amargin-right%3A%205px%3B%0Aborder-radius%3A%20100%25%3B%0A%7D%0A.wishlisthero-bc-inline%3Ahover%20%7B%0Abackground-color%3A%20rgba(0%2C%200%2C%200%2C%200.05)%3B%0A%7D%0A.wishlisthero-bc-inline%20button%20%7B%0Afont-size%3A%2027px%20!important%3B%0Awidth%3A%2040px%20!important%3B%0Apadding%3A%200%20!important%3B%0Apadding-top%3A%200.125em%20!important%3B%0A%7D%0A%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<style>" title="<style>" /> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%2F%2Fif(document.querySelector(%22%23bc-sf-filter-wrapper%22))%7B%0A%2F%2Fconsole.log(%22BoosCommerce%20search%20detected%20...%22)%3B%0Adocument.arrive(%22.wishlist-hero-bc-button%22%2C%20function%20(wishlistButton)%20%7B%0Avar%20ev%20%3D%20new%20CustomEvent(%22wishlist-hero-add-to-custom-element%22%2C%20%7B%0Adetail%3A%20wishlistButton%2C%0A%7D)%3B%0Adocument.dispatchEvent(ev)%3B%0A%7D)%3B%0Awindow.setTimeout(function%20()%20%7B%0A%2F%2F%20console.log(%22Delayed...%22)%3B%0Adocument%0A.querySelectorAll(%22.wishlist-hero-bc-button%22)%0A.forEach(function%20(wishlistButton)%20%7B%0Avar%20ev%20%3D%20new%20CustomEvent(%22wishlist-hero-add-to-custom-element%22%2C%20%7B%0Adetail%3A%20wishlistButton%2C%0A%7D)%3B%0Adocument.dispatchEvent(ev)%3B%0A%7D)%3B%0A%7D%2C%203000)%3B%0A%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" /> <!-- End Wishlist Hero BoostCommerce listener -->