var regions = { "MSK": "&spp=0®ions=83,75,64,4,38,30,33,70,71,22,31,66,68,82,1,40,48,69,80&stores=117673,122258,122259,125238,125239,125240,507,3158,117501,120602,120762,6158,121709,124731,130744,159402,2737,117986,1733,686,132043&pricemarginCoeff=1.0®=0&appType=1&offlineBonus=0&onlineBonus=0&emp=0&locale=ru&lang=ru&curr=rub&couponsGeo=12,3,18,15,21&dest=-1029256,-102269,-2162196,-1275551&sort=popular", "SPB": "&spp=0®ions=83,64,4,38,30,33,70,22,31,66,68,82,1,40,48,69,80&stores=125238,125239,125240,117673,122258,122259,117734,159402,2737,161812,117544,132043,121709,124731,117501,507,3158,120762,117986,130744&pricemarginCoeff=1.0®=0&appType=1&offlineBonus=0&onlineBonus=0&emp=0&locale=ru&lang=ru&curr=rub&couponsGeo=12,6,7,5,3,18,21&dest=-1216601,-337422,-1114902,-1198058&sort=popular", "SMR": "&spp=0®ions=83,64,4,38,30,33,70,22,31,66,68,82,1,40,48,69,80&stores=122258,122259,117230,117986,1733,130744,121709,124731,117501,507,3158,120762,686,159402,2737,1193&pricemarginCoeff=1.0®=0&appType=1&offlineBonus=0&onlineBonus=0&emp=0&locale=ru&lang=ru&curr=rub&couponsGeo=2,12,6,7,3,18,22,21&dest=-1075831,-72194,-287507,-283781&sort=popular" } async function findPreset(query) { try { var res = await fetch("https://wbxsearch.wildberries.ru/exactmatch/v2/common?query=" + encodeURI(query), { "method": "GET", retry: 5, pause: 3000 }); var json = await res.json(); if (json['shardKey'] == null) return null return json; } catch (a) { console.error(a); return null; } } async function getCatalog(bucket, preset, page = 0, region) { try { var url = "https://wbxcatalog-ru.wildberries.ru/" + encodeURI(bucket) + "/catalog?" + encodeURI(preset) + "&limit=300&page=" + page + region; var res = await fetch(url, { headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36' }, "method": "GET", retry: 5, pause: 3000 }); var json = await res.json(); return json } catch (a) { console.error(a); return null; } } async function searchByKeyword(keyword) { var preset = await findPreset(keyword) if (preset != null) { var catalog = await getCatalog(preset['shardKey'], preset['query'], 1, regions[key]) } }