Advertisement
RemcoE33

DM.de prices

Oct 21st, 2022
867
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2. * Returns information from DM products.
  3. *
  4. * @param {A1:A5} urls the url(s).
  5. * @param {true} headers boolean to return the headers.
  6. * @return {array} DM information.
  7. * @customfunction
  8. */
  9. function DM_DATA(urls, headers = true) {
  10.   if (!Array.isArray(urls)) {
  11.     urls = [urls]
  12.   }
  13.   urls = urls.flat()
  14.  
  15.   const requestUrls = urls.filter(u => u !== "").map(u => {
  16.     const id = /[a-zA-Z-]*?([0-9]*)\.html/.exec(u)[1]
  17.     return `https://products.dm.de/product/de/products/gtins/${id}?view=details`
  18.   })
  19.  
  20.   const results = []
  21.  
  22.   UrlFetchApp.fetchAll(requestUrls).forEach((response, i) => {
  23.     const data = JSON.parse(response.getContentText())[0]
  24.     const selectedFields = {
  25.       'Name': data.name,
  26.       'Price': Number(data.price)
  27.     }
  28.  
  29.     if (i === 0 && headers) {
  30.       results.push(Object.keys(selectedFields))
  31.     }
  32.  
  33.     results.push(Object.values(selectedFields))
  34.   })
  35.  
  36.   return results
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement