filter ship orders by shipping date desc
							parent
							
								
									68e825b1e1
								
							
						
					
					
						commit
						7a2b5e184c
					
				| 
						 | 
					@ -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);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue