var express = require("express"); var bodyParser = require("body-parser"); var cors = require("cors"); const WooCommerceRestApi = require("@woocommerce/woocommerce-rest-api").default; const https = require("https"); const fs = require("fs"); const WooCommerce = new WooCommerceRestApi({ url: "https://sprise.ro/", // Your store URL consumerKey: " ck_75037658ff20ba988157a8bfb98b1d0d63f8e7b7", // Your consumer key consumerSecret: "cs_7eb3d081d9fd4d1be5f08dd8fa7b95dcba2c0dee", // Your consumer secret version: "wc/v3", // WooCommerce WP REST API version }); /** npm install express body-parser cors @woocommerce/woocommerce-rest-api fs https */ let app = express(); let router = express.Router(); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(cors()); app.use("/api", router); app.listen(8100); function generateRandomString(length) { var characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var randomString = ""; for (var i = 0; i < length; i++) { var randomIndex = Math.floor(Math.random() * characters.length); randomString += characters.charAt(randomIndex); } return randomString; } app.post("/product", async (req, res) => { try { uploadProductToWooCommerce(req.body); const filename = `${new Date().toISOString()}${generateRandomString( 10 )}.jpg`; const file = fs.createWriteStream(`imagini/${filename}`); https .get(req.body.image, (response) => { response.pipe(file); file.on("finish", () => { file.close(); }); console.error( `${req.body.name},${req.body.regular_price},https://preetoon.com/imagini/${filename},${req.body.description}` ); }) .on("error", (err) => { fs.unlink(`imagini/${filename}`); }); return res.status(200); } catch (e) { return res.status(400); } }); function uploadProductToWooCommerce(body) { try { const data = { name: body.name, type: "simple", regular_price: body.regular_price, description: body.description, images: [ { src: body.image, name: "product_image.jpg", }, ], }; WooCommerce.post("products", data) .then((response) => {}) .catch((error) => {}); } catch (e) {} }