Store recently viewed products in local storage
Use of setLocalStorage action to store all the recent 10 products in localStorage
// ====== Block A: Save current PDP product to Vajro localStorage ======
const RV_KEY = "recentlyViewedProducts";
/** Get stored array (parsed) */
async function rvGetList() {
const raw = await VajroSDK.actions.getLocalStorage(RV_KEY);
try { return raw ? JSON.parse(raw) : []; } catch { return []; }
}
/** Save array */
async function rvSetList(arr) {
await VajroSDK.actions.setLocalStorage(RV_KEY, JSON.stringify(arr));
}
/** Add current PDP product to top (de-dupe, cap 10) */
async function rvSaveCurrentProduct() {
const product = VajroSDK?.variables?.product;
if (!product?.id) return;
let list = await rvGetList();
list = list.filter(p => String(p.id) !== String(product.id));
list.unshift(product);
if (list.length > 10) list = list.slice(0, 10);
await rvSetList(list);
console.log("✅ RecentlyViewed updated:", list.map(p => p.id));
}
/** Init */
function initPdpSaver() {
rvSaveCurrentProduct().catch(err => console.error("Saver error:", err));
}
// Run when block loads
document.addEventListener("DOMContentLoaded", initPdpSaver);Updated 3 months ago