Here product details are json format.
function xmlCreation(json_data) {
const { STATIC_URL } = require('../../global/sitemapconstant');
const siteMapArray = [`<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">`];
console.log("xml ", json_data)
const currentDate = new Date().toISOString();
siteMapArray.push(...STATIC_URL.map((el, i) => {
return i == 0 ? (`
<url>
<loc>${WEBSITE_CONSTANT.website_url.decodeHTML()}</loc>
<changefreq>daily</changefreq>
<priority>1.00</priority>
<lastmod>${currentDate}</lastmod>
</url>
`) : (`
<url>
<loc>${WEBSITE_CONSTANT.website_url.decodeHTML()}/${el.decodeHTML()}</loc>
<changefreq>daily</changefreq>
<priority>0.75</priority>
<lastmod>${currentDate}</lastmod>
</url>
`);
}));
siteMapArray.push(...json_data.map((el, i) => {
let encodedItemName = encodeURIComponent(`${el.name.decodeHTML()} (Case -${el.wine_packsize}/${el.wine_bottlesize}cl)`);
return `
<url>
<loc>${WEBSITE_CONSTANT.website_url.decodeHTML()}/product/${el.record_row_id}?${encodedItemName}</loc>
<changefreq>daily</changefreq>
<priority>0.95</priority>
<lastmod>${currentDate}</lastmod>
</url>
`;
}));
siteMapArray.push(`
</urlset>
`);
const site_map = await server.updatesitemap({ data: siteMapArray.join("") });
}
function updatesitemap({ data, headers }) {
const options = {
url: WEBSTORE_CONSTANT.upload + 'sitemap',
method: 'POST',
headers: {
//"Content-Length": Buffer.byteLength(data)
// "Content-Type": "multipart/form-data",
...headers
},
data: data
};
return axios(options)
.then(function (response) {
return response.data;
})
.catch(function (error) {
console.log(error);
return { summary: { status: "SUCCESS", reason: "RECORD_NOT_FOUND" } }
});
}
node
router.post('/upload/sitemap', (req, res) => {
let writeStream = fs.createWriteStream("./static/sitemap.xml");
req.pipe(writeStream);
writeStream.on('data', function (chunk) {
//console.log(chunk.toString());
});
req.on('error', function (err) {
// console.log(err)
})
req.on('end', function () {
let cron_job = {
"summary": {
status: "SUCCESS", reason: "RECORD_UPDATED"
}
}
res.send(cron_job);
})
});