Using CSV Export how to download items form the PLP page.

In this Methode we can get all the items in the PLP page in the format of CSV which all items are exported

 _.extend(FacetsBrowseView.prototype, {
            template: jj_facets_facet_browse_tpl,
        });
        function recursiveFetch(facetModel, url) {
          var nextLink;
          var items = [];
          var promise = jQuery.Deferred();
          var options = {};
  
          if (url) {
            delete facetModel.options.data;
            facetModel.url = url;
          } else {
            options = _.extend(options, { limit: 100, offset: 0 });
            facetModel.options.data = _.extend(facetModel.options.data, options);
          }
  
          facetModel.fetch(options).done(function (response) {
            if (response && response.items) {
              items = _.union(items, response.items);
            }
            if (response.links) {
              nextLink = _.findWhere(response.links, { rel: 'next' });
              if (nextLink && nextLink.href) {
                recursiveFetch(facetModel, nextLink.href).done(function doneFacetModel(responseItems) {
                  items = _.union(items, responseItems);
                  promise.resolve(items);
                });
              } else {
                promise.resolve(items);
              }
            }
          });
  
          return promise;
        }
  
        function downloadFn(model) {
          var promise = jQuery.Deferred();
          var preCSV = [];
          var maxImageCols = -1;
          var facetConfig = _.extend({}, Configuration.get('searchApiMasterOptions.Facets', {}));
          var facetModel = new FacetModel({ searchApiMasterOptions: _.extend(facetConfig, { fieldset: "details" }) });
          facetModel.options = model.options;
          model.get('category') && facetModel.set('category', model.get('category'));
  
          recursiveFetch(facetModel).done(function (items) {
            facetModel.set('items', items);
                var item = {
                  'Internal ID': currentItem.get('internalid'),
                  UPC: currentItem.get('upccode'),
                  SKU: currentItem.get('itemid'),
                  'Product Name': currentItem.get('_name'),
                  'Product URL': window.location.origin + currentItem.get('_url'),
                  Status: currentItem.get('isinstock') ? 'InStock' : 'OutOfStock',
                  Price: currentItem.get('_price_formatted'),
                  MSRP: currentItem.get('pricelevel12_formatted') || ' ',
                  'Quantity Available': currentItem.get('quantityavailable'),
                  ImageUrl1: currentItem.get('_thumbnail').url.indexOf('no_image_available.jpeg') > -1 ? '' : currentItem.get('_thumbnail').url
                };
  
                try {
                  var count = 1;
                  _.each(_.pluck(currentItem.get('_images'), 'url'), function (current) {
                    count++;
                    item['ImageUrl' + count] = current.indexOf('no_image_available.jpeg') > -1 ? '' : current;
                  });
                  maxImageCols = count > maxImageCols ? count : maxImageCols;
                } catch (e) {
                  console.log("Error on generating CSV", e);
                }
  
                preCSV.push(item);
              });
            // });
  
            for (var k = 0; k < preCSV.length; k++) {
              for (var j = 1; j <= maxImageCols; j++) {
                preCSV[k]['ImageUrl' + j] = preCSV[k]['ImageUrl' + j] || " ";
              }
            }
  
            promise.resolve(preCSV, 'facets');
          });
  
          return promise;
        }

Leave a comment

Your email address will not be published. Required fields are marked *