Mix & Match → Widget + Modal

Instructions

Add mix & match modal styles

        #widget { position: absolute; top: 0; left: 0; width: 100vw;} 
      
        <link rel="stylesheet" type="text/css" href="//widget.stylitics.com/mnm-modal/css/style.css"> 
      

Require the PDP outfits widget script

        <script src="//widget.stylitics.com/v2/widget.js"></script>
      

Require the mix & match widget script

        <script src="//widget.stylitics.com/mnm-modal/js/main.js"></script> 
      

Set configuration options and initialize the widget once your target div is on the page.

        //MnM instance - 'widget' refers to target div of MnM modal
var mnm = new TapToSwap('widget');

//optional onload callback
mnm.onload = function(outfits){
  console.log(outfits)
}


//optional onswap callback
mnm.onswap = function(swap){
  console.log(swap.newItem);
  console.log(swap.updatedOutfit);
}

mnm.initMultipleInstance({
  username: 'demo',
});


//outfits widget settings
var opts = {
  api: {
    total: 3,
    with_item_coords: true,
    item_number: '389998022',
  },
  display: {
    carouselWrap: false,
    cols: 3,
    mobileArrows: true
  },
  onOutfitClick: function(outfit){
    //no-op -- to be overwritten -- but must be present
    return true
  }
}


var styliticsWidget1 = new StyliticsWidget("demo", "target1", opts)


//MnM settings
var searchParams = new URLSearchParams(window.location.search);
var settings = {
  hideBrandSwapModal: true,
  hideBrandItemList: true,
  outfitsWidgetInstance: styliticsWidget1
  locale: searchParams.has("locale") ? searchParams.get("locale") : "us-en"
};

styliticsWidget1.opts.onOutfitClick = function(outfit){
    mnm.init(settings, outfit)
}

styliticsWidget1.load();