Your IP : 216.73.216.43


Current Path : /proc/thread-self/root/home/deltalab/PMS/ims-connector/rest/routes/
Upload File :
Current File : //proc/thread-self/root/home/deltalab/PMS/ims-connector/rest/routes/buybutton.js

const express = require('express');
const { dotenv } = require('dotenv').config();

const { storeQuery } = require('../queries');
const { productQuery } = require('../queries');

const router = express.Router({ mergeParams: true });

const BuyButtonTemplates = {
  classic: "<iframe srcdoc=\"<div id='buybutton-init'></div><script>(function(d, s, id) {var js, bjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s);js.id = id;js.async = true;js.src = '{{urlAccess}}';js.onload = function() {new BuyButton({redirectToProduct: '0',locale:'it-it',currency_code: 'EUR',storeId: '{{storeId}}',productIds:'{{productIds}}',baseUrl: '{{url}}',styles: '',vButtonText: 'Dettagli',miniCartText:'Carrello',addToCartText:'Aggiungi al Carrello',buyNowText:'Buy Now',itemInCartText:'Prodotti nel Carrello',cButtonText:'Procedi con il checkout',noItemFoundText:'Il carrello è vuoto.',shippingInfoText:'',qtyText:'Qty',subTotalText:'Subtotale Carrello',designTemplate: 1,staticUrl: '{{staticUrl}}',accessKey: '{{accessId}}'});};bjs.parentNode.insertBefore(js, bjs);}(document, 'script', 'buybutton-js'));</script>\" id='bb-iframe' width='100%' height='500' frameBorder='0'></iframe><script> setTimeout(function() {let iframe = document.getElementById(\"bb-iframe\");iframe.onload = function(){iframe.style.height = iframe.contentWindow.document.body.scrollHeight + 'px';}}, 5000) </script>",
};

router.post('/', async (req, res) => {
  try {
    const { productSKUs, channel } = req.body;
    const productIds = [];
    for (let i = 0; i < productSKUs.length; i++) {
      const product = await productQuery.readOne(productSKUs[i]);
      productIds.push(product.id);
    }

    let storeObj = null;
    const stores = await storeQuery.readAllStores();
    for (let i = 0; i < stores.length; i++) {
      if (stores[i].code === channel.storeName) {
        storeObj = stores[i];
      }
    }
    if (!storeObj) {
      return res.status(400).send({ success: false, message: 'Cannot create the buybutton - store does not exist' });
    }

    const template = BuyButtonTemplates.classic;
    let buyButton = template.replace('{{storeId}}', storeObj.default_store_id);
    buyButton = buyButton.replace('{{productIds}}', productIds.join());
    buyButton = buyButton.replace('{{urlAccess}}', process.env.BUYBUTTON_URL_ACCESS);
    buyButton = buyButton.replace('{{url}}', process.env.BUYBUTTON_URL);
    buyButton = buyButton.replace('{{staticUrl}}', process.env.BUYBUTTON_STATIC_URL);
    buyButton = buyButton.replace('{{accessId}}', process.env.BUYBUTTON_ACCESS);
    return res.status(200).send({ success: true, data: buyButton });
  } catch (error) {
    console.log(error);
    return res.status(400).send({ success: false, message: 'Error reading the tax codes' });
  }
});

module.exports = router;