filter ship orders by shipping date desc

main
saif 2025-02-19 10:03:11 +05:00
parent 68e825b1e1
commit 7a2b5e184c
1 changed files with 46 additions and 32 deletions

View File

@ -133,41 +133,56 @@ const emailUtils = require("./email-utils");
`processed/` `processed/`
); );
/** /**
* Capture response * Capture response
*/ */
const checkShippingLabelResponse = async (page, timer) => { const checkShippingLabelResponse = async (page, timer) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// Timeout mechanism to resolve with an empty list after 5 seconds // Timeout mechanism to resolve with an empty list after 5 seconds
const timeout = setTimeout(() => { const timeout = setTimeout(() => {
page.off("response", handleResponse); // Remove listener on timeout page.off("response", handleResponse); // Remove listener on timeout
resolve([]); // Resolve with an empty list resolve([]); // Resolve with an empty list
}, timer); }, timer);
const handleResponse = async (res) => { const handleResponse = async (res) => {
try { try {
const req = res.request(); const req = res.request();
if (req.url().includes("/batch_print_shipping_label")) { if (req.url().includes("/batch_print_shipping_label")) {
const resJson = await res.json(); const resJson = await res.json();
// Remove listener and clear timeout once response is captured // Remove listener and clear timeout once response is captured
clearTimeout(timeout); clearTimeout(timeout);
page.off("response", handleResponse); page.off("response", handleResponse);
resolve(resJson || []); resolve(resJson || []);
} }
} catch (ex) { } catch (ex) {
// Remove listener and clear timeout on error // Remove listener and clear timeout on error
clearTimeout(timeout); clearTimeout(timeout);
page.off("response", handleResponse); page.off("response", handleResponse);
reject(ex); reject(ex);
} }
};
page.on("response", handleResponse);
});
}; };
page.on("response", handleResponse);
});
};
try { try {
await new Promise((resolve) => setTimeout(resolve, 2_000)); await new Promise((resolve) => setTimeout(resolve, 2_000));
// filter by ship date desc
const shipByDateFilterSelector =
"#orders-tab-list > div.y0DVv7GO > div > div._2iyGKl7j > div._3oBKKUKo > div._3eA-bRh2 > div.ST_outerWrapper_123.ST_medium_123";
await page.waitForSelector(shipByDateFilterSelector);
await page.click(shipByDateFilterSelector);
await new Promise((resolve) => setTimeout(resolve, 2_000));
// set ship by date desc option
const orderByShipDescOptionSelector =
"body > div.PT_outerWrapper_123.PP_outerWrapper_123.ST_dropdown_123.ST_mediumDropdown_123.ST_customItem_123.PT_dropdown_123.PT_portalBottomLeft_123.PT_inCustom_123.PP_dropdown_123 > div > div > div > div > ul > li:nth-child(4)"
await page.waitForSelector(orderByShipDescOptionSelector);
await page.click(orderByShipDescOptionSelector);
console.log("Clicking on Order by Shipment Date Select");
await new Promise((resolve) => setTimeout(resolve, 2_000));
// set the pagination to 100 / page // set the pagination to 100 / page
const pageinationSeletor = const pageinationSeletor =
"#orders-tab-list > div.y0DVv7GO > div > div._38NAUUfN > div._15QWqbZs > ul > li.PGT_sizeChanger_123 > div > div > div > div > div"; "#orders-tab-list > div.y0DVv7GO > div > div._38NAUUfN > div._15QWqbZs > ul > li.PGT_sizeChanger_123 > div > div > div > div > div";
@ -182,7 +197,6 @@ const emailUtils = require("./email-utils");
await page.waitForSelector(pagesPerPageSelector); await page.waitForSelector(pagesPerPageSelector);
await page.click(pagesPerPageSelector); await page.click(pagesPerPageSelector);
await new Promise((resolve) => setTimeout(resolve, 1_000)); await new Promise((resolve) => setTimeout(resolve, 1_000));
} catch (e) { } catch (e) {
emailUtils.notify(`Download Order Shipping Labels`, e.message); emailUtils.notify(`Download Order Shipping Labels`, e.message);
} }