Актуальный код

Последняя версия кода

Code.js
/**
 * @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