NodeJS модуль. Работает через приватное API Wildberries
Разработано при спонсировании:
Нейромаркет - Глубокий Анализ товаров на Wildberries.
Установка: npm i wb-private-api
После установки рекомендую протестировать работоспособность
Если все результаты положительные, значит библиотека полностью работоспособна и сервера WB отвечают верно. В случае, если каки-либо тесты отрицательные, прошу создать обращение https://github.com/glmn/wb-private-api/issues
import { WBPrivateAPI, Constants } from "wb-private-api";
const keyword = "HotWheels";
/*
* Select destination and init WBPrivateAPI with it
* You can find more destionations in Constants.DESTINATIONS
*/
const destination = Constants.DESTINATIONS.MOSCOW;
const wbapi = new WBPrivateAPI({ destination });
const initiate = async () => {
/*
* Search and Grab first 2 pages
* with specified keyword
*/
const catalog = await wbapi.search(keyword, 2);
const product = catalog.products[0];
/*
* Returning all Stocks with Warehouses Ids
* Then you can compare these Ids
* using Constants.WAREHOUSES
*/
const stocks = await product.getStocks();
/* No comments here :P */
const feedbacks = await product.getFeedbacks();
const questions = await product.getQuestions();
};
initiate();
import { WBPrivateAPI, Constants } from "wb-private-api";
const keyword = "Менструальные чаши";
/*
* Select destination and init WBPrivateAPI with it
* You can find more destionations in Constants.DESTINATIONS
*/
const destination = Constants.DESTINATIONS.MOSCOW;
const wbapi = new WBPrivateAPI({ destination });
const initiate = async () => {
/*
* Search ads in search results
* with specified keyword
*/
const { pages, prioritySubjects, adverts } = await wbapi.getSearchAds(
keyword
);
// Ads positions on each page
console.log(pages);
// Subjects ordered by priority
console.log(prioritySubjects);
// Adverts including CPM
console.log(adverts);
};
initiate();
.search(keyword, pageCount, retries = 0, filters = [])
- Поиск всех товаров по Ключевому слову keyword
. pageCount
отвечает за кол-во необходимых страниц для прохода. Если pageCount = 0
, то будет взяты все страницы или 100
, если их больше. retries
отвечает за количество попыток выполнить запрос, если в ответ был получен статус 5хх или 429. filters
это массив с объектами вида [{type: 'fbrand' value: 11399 }]
, необходим для фильтрации поисковой выдачи по брендам, поставщикам, цене и т.д. Метод возвращает объект WBCatalog
.getSearchAds(keyword)
- Поиск рекламодателей (в разделе Поиск) по Ключевому слову
.getCarouselAds(keyword)
- Поиск рекламодателей внутри карточке в каруселе "Рекламный блок"
.keyHint(query)
- Возвращает список подсказок из поиска WB по фразе query
.searchSimilarByNm(productId)
- Возвращает список похожих товаров (как в разделе "Похожие товары" внутри карточки на WB)
.getPromos()
- Возвращает массив текущих промо-акций на WB
.getListOfProducts(productIds)
- Возвращает массив найденных артикулов на WB с деталями (Не оборачивается в WBProduct)
.page(number)
- Возвращает массив товаров с заданной страницы (массив состоит из объектов WBProduct
)
.getPosition(productId)
- Возвращает номер позиции по заданному SKU. Если такого SKU в выдаче нет, то вернёт -1
.create(id)
- Статичный метод. Использовать в виде WBProduct.create(id)
. Где id
= Артикул товара
. Метод асинхронный, поэтому перед вызовом используйте await
. Вернет объект WBProduct
.totalStocks
- Вернёт сумму остатков товара со всех складов (!) предварительно вызвать .getStocks()
)
.getStocks()
- Присвоет (и вернет) свойству stocks
массив с данными об остатках на складе
.getPromo()
- Присвоет (и вернет) свойству promo
объект с данными об участии в промо-акции
.getFeedbacks()
- Присвоет (и вернет) свойству feedbacks
массив со всеми отзывами WBFeedback
о товаре
.getQuestions()
- Присвоет (и вернет) свойству questions
массив со всеми вопросами WBQuestion
о товаре
.getPhotos(size='min')
- Вернет ссылки на все фотографии в текущем отзыве. size
по умолчанию = min
. Заменить на full
если необходим большой размер