Актуальный код
Последняя версия кода
/**
* @OnlyCurrentDoc
* @author Mikhail Nosaev <m.nosaev@gmail.com>
* @see {@link https://t.me/nosaev_m Telegram} разработка Google таблиц и GAS скриптов
* @see {@link https://yandex.ru/dev/market/partner-api/doc/ru/ YandexMarket API}
* Актуально для версии 32
*/
const YM = YandexMarket;
function onOpen() {
YM.CONFIG.menu.full();
}
const useCampaignIds = [];
const yandexMarketContext = {
service: PropertiesService,
requestLog: false,
debug: false,
};
YM.context = Object.assign(YM.context, {
...yandexMarketContext,
storage: YM.setStorage({ service: yandexMarketContext.service }),
...JSON.parse(
yandexMarketContext.service[YM.context.serviceType]().getProperty(
YM.context.serviceName
) || "{}"
),
useCampaignIds,
});
const YMC =
(YM.context?.tokenOauth2 || YM.context?.apiKey) && YM.context?.businessId
? YM.apiClient(YM.context)
: null;
function yandexMarketSetAccess() {
YM.yandexMarketSetAccess();
}
// ####################################################################################################################################
// ОСТАТКИ
// ####################################################################################################################################
function ymStocks() {
// Информация об остатках и оборачиваемости
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/stocks/getStocks
const { settings: accumulate } = YM.settingsMain({
func: arguments.callee.name,
});
YM.stocks(YMC, { accumulate });
}
function ymStocksAll() {
// Информация об остатках и оборачиваемости (все магазины)
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/stocks/getStocks
const { settings: accumulate } = YM.settingsMain({
func: arguments.callee.name,
});
YM.stocksAll(YMC, { accumulate });
}
// ####################################################################################################################################
// ЗАКАЗЫ
// ####################################################################################################################################
function ymOrders() {
// Информация о нескольких заказах
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/orders/getOrders
const {
fromDate,
toDate,
settings: status,
} = YM.settingsMain({ func: arguments.callee.name });
YM.orders(YMC, {
fromDate,
toDate,
status,
});
}
function ymOrdersAll() {
// Информация о нескольких заказах (все магазины)
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/orders/getOrders
const {
fromDate,
toDate,
settings: status,
} = YM.settingsMain({ func: arguments.callee.name });
YM.ordersAll(YMC, {
fromDate,
toDate,
status,
});
}
// ####################################################################################################################################
// ВОЗВРАТЫ
// ####################################################################################################################################
function ymReturns() {
// Список невыкупов и возвратов
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/orders/getReturns
const {
fromDate,
toDate,
settings: type,
} = YM.settingsMain({ func: arguments.callee.name });
YM.returns(YMC, {
fromDate,
toDate,
type,
});
}
function ymReturnsAll() {
// Список невыкупов и возвратов (все магазины)
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/orders/getReturns
const {
fromDate,
toDate,
settings: type,
} = YM.settingsMain({ func: arguments.callee.name });
YM.returnsAll(YMC, {
fromDate,
toDate,
type,
});
}
// ####################################################################################################################################
// ЦЕНЫ
// ####################################################################################################################################
function ymPrices() {
// Просмотр цен на указанные товары в магазине
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/assortment/getPricesByOfferIds
const { settings: accumulate } = YM.settingsMain({
func: arguments.callee.name,
});
YM.prices(YMC, { accumulate });
}
function ymPricesAll() {
// Просмотр цен на указанные товары в магазине (все магазины)
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/assortment/getPricesByOfferIds
const { settings: accumulate } = YM.settingsMain({
func: arguments.callee.name,
});
YM.pricesAll(YMC, { accumulate });
}
function ymPricesRecommendations() {
// Рекомендации Маркета, касающиеся цен
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/getOfferRecommendations
YM.pricesRecommendations(YMC, {});
}
// ####################################################################################################################################
// ТОВАРЫ
// ####################################################################################################################################
function ymBusinessesAssortment() {
// Информация о товарах в каталоге
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/getOfferMappings
const { settings: cardStatuses } = YM.settingsMain({
func: arguments.callee.name,
});
YM.businessesAssortment(YMC, { cardStatuses, useCampaignIds });
}
// ####################################################################################################################################
// ПРОЧЕЕ
// ####################################################################################################################################
function ymWarehouses() {
// Идентификаторы складов Маркета (FBY)
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/warehouses/getFulfillmentWarehouses
YM.warehouses(YMC);
}
function ymCampaigns() {
// Список магазинов пользователя
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaigns
YM.campaigns(YMC, {});
}
// ####################################################################################################################################
// АКЦИИ
// ####################################################################################################################################
function ymPromos() {
// Получение списка акций
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/promos/getPromos
const { settings: mechanics } = YM.settingsMain({
func: arguments.callee.name,
});
YM.promos(YMC, { mechanics });
}
function ymPromoOffers() {
// Получение списка товаров, которые участвуют или могут участвовать в акции
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/promos/getPromoOffers
const { settings: promos } = YM.settingsMain({ func: arguments.callee.name });
YM.promoOffers(YMC, { promos });
}
// ####################################################################################################################################
// ОТЧЕТЫ
// ####################################################################################################################################
function ymReportStatsOrders() {
// Детальная информация по заказам
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/stats/getOrdersStats
const {
fromDate: dateFrom,
toDate: dateTo,
settings: campaignId,
} = YM.settingsMain({ func: arguments.callee.name });
YM.reportStatsOrders(YMC, {
dateFrom,
dateTo,
campaignId,
});
}
function ymReportShowsSales() {
// Отчет «Аналитика продаж»
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateShowsSalesReport
const {
fromDate: dateFrom,
toDate: dateTo,
settings: campaignId,
} = YM.settingsMain({ func: arguments.callee.name });
YM.reportShowsSales(YMC, {
dateFrom,
dateTo,
campaignId,
});
}
function ymReportBoostConsolidated() {
// Отчет по бусту продаж
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateBoostConsolidatedReport
const { fromDate: dateFrom, toDate: dateTo } = YM.settingsMain({
func: arguments.callee.name,
});
YM.reportBoostConsolidated(YMC, {
dateFrom,
dateTo,
});
}
function ymReportGoodsFeedback() {
// Отчет по отзывам о товарах
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateGoodsFeedbackReport
YM.reportGoodsFeedback(YMC);
}
function ymReportShelfStatistics() {
// Отчет по полкам
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateShelfsStatisticsReport
const {
fromDate: dateFrom,
toDate: dateTo,
settings: attributionType,
} = YM.settingsMain({ func: arguments.callee.name });
YM.reportShelfStatistics(YMC, {
dateFrom,
dateTo,
attributionType,
});
}
function ymReportStocksOnWarehouses() {
// Отчет по остаткам на складах
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateStocksOnWarehousesReport
const { settings: campaignId } = YM.settingsMain({
func: arguments.callee.name,
});
YM.reportStocksOnWarehouses(YMC, {
campaignId,
});
}
function ymReportGoodsTurnover() {
// Отчет по оборачиваемости
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateGoodsTurnoverReport
const { fromDate: date, settings: campaignId } = YM.settingsMain({
func: arguments.callee.name,
});
YM.reportGoodsTurnover(YMC, {
campaignId,
date,
});
}
function ymReportUnitedMarketplaceServices() {
// Отчет по стоимости услуг
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateUnitedMarketplaceServicesReport
const {
fromDate: dateFrom,
toDate: dateTo,
settings: campaignId,
} = YM.settingsMain({ func: arguments.callee.name });
YM.reportUnitedMarketplaceServices(YMC, {
dateFrom,
dateTo,
campaignId,
});
}
function ymReportUnitedMarketplaceServicesAll() {
// Отчет по стоимости услуг
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateUnitedMarketplaceServicesReport
const {
fromDate: dateFrom,
toDate: dateTo,
settings: campaignId,
} = YM.settingsMain({ func: arguments.callee.name });
YM.reportUnitedMarketplaceServicesAll(YMC, {
dateFrom,
dateTo,
campaignId,
});
}
function ymReportGoodsRealization() {
// Отчет по реализации
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateGoodsRealizationReport
const { fromDate, settings: campaignId } = YM.settingsMain({
func: arguments.callee.name,
});
YM.reportGoodsRealization(YMC, {
month: parseInt(fromDate.split("-")[1]),
year: parseInt(fromDate.split("-")[0]),
campaignId,
});
}
function ymReportPrices() {
// Отчет «Цены»
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generatePricesReport
const {
fromDate: creationDateFrom,
toDate: creationDateTo,
settings: campaignId,
} = YM.settingsMain({ func: arguments.callee.name });
YM.reportPrices(YMC, {
creationDateFrom,
creationDateTo,
campaignId,
});
}
function ymReportKeyIndicators() {
// Отчет по ключевым показателям
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateKeyIndicatorsReport
const { settings: campaignId } = YM.settingsMain({
func: arguments.callee.name, custom: true,
});
YM.reportKeyIndicators(YMC, {
campaignId,
});
}
function ymReportUnitedNetting() {
// Отчет по платежам
// @see https://yandex.ru/dev/market/partner-api/doc/ru/reference/reports/generateUnitedNettingReport
const {
fromDate: dateFrom,
toDate: dateTo,
} = YM.settingsMain({ func: arguments.callee.name });
YM.reportUnitedNetting(YMC, {
dateFrom,
dateTo,
});
}Last updated