Scot Ranney • December 21, 2023
Easy and clean using custom basket fields. Create a widget with 2 pseudo functions- PROD and GLOBAL FOOTER
PROD Section
This part runs at the bottom of the product PROD page.
<mvt:comment> # # RECENTLY VIEWED PRODUCTS: no duplicates, shifts array for each new one. # # Set l.number_of_products to however many you want to show. # </mvt:comment> <mvt:assign name="l.number_of_products" value="4" /> <mvt:item name="customfields" param="Read_Basket( 'last_viewed', l.settings:last_viewed_products )" /> <mvt:assign name="l.settings:last_viewed_products" value="miva_array_deserialize(l.settings:last_viewed_products)" /> <mvt:assign name="l.found" value="miva_array_find( g.product_code, l.settings:last_viewed_products, 0)" /> <mvt:if expr="NOT l.found"> <mvt:if expr="miva_array_elements(l.settings:last_viewed_products) EQ 4"> <mvt:assign name="l.ok" value="miva_array_shift( l.settings:last_viewed_products )" /> </mvt:if> <mvt:assign name="l.ok" value="miva_array_insert(l.settings:last_viewed_products,g.product_code,-1)" /> <mvt:assign name="l.settings:last_viewed_products" value="miva_array_serialize(l.settings:last_viewed_products)" /> <mvt:item name="customfields" param="Write_Basket( 'last_viewed', l.settings:last_viewed_products )" /> </mvt:if>
Global Footer - recent product display with images
This part runs in the global footer. Use l.settings:page:code conditions to set which pages it is on or not on.
<mvt:comment> # # RECENTLY VIEWED PRODUCTS 2023 SCOT using custom basket fields # # u-grids-4 below sets it to auto show 4 before a new line of 4. # </mvt:comment> <mvt:if expr="NOT l.settings:in_checkout"> <mvt:item name="customfields" param="Read_Basket( 'last_viewed', l.settings:last_viewed_products )" /> <mvt:assign name="l.settings:last_viewed_products" value="miva_array_deserialize(l.settings:last_viewed_products)" /> <mvt:if expr="miva_array_elements(l.settings:last_viewed_products) GT 0"> <section> <h4>Recently Viewed Products</h4> <div class="o-layout u-grids-4"> <mvt:foreach iterator="last_viewed" array="last_viewed_products"> <mvt:item name="scotstools" param="product_load_code(l.settings:last_viewed)" /> <div class="o-layout__item"> <a href="&mvt:scotstools_product:url;"> <mvt:if expr="NOT ISNULL l.settings:scotstools_product:thumbnail"> <img src="&mvt:scotstools_product:thumbnail;"> <mvt:else> <img src="../2011_SSL/graphics/en-US/admin/blank.gif"> </mvt:if> <h4 class="product-name">&mvt:scotstools_product:name;</h4> <h6 class="product-price">&mvt:scotstools_product:formatted_price;</h6> </a> </div> </mvt:foreach> </div> </section> </mvt:if> </mvt:if>
mvkb_widget mvkb_products