ショッピング コンテンツ サービス

Shopping Content Service を使用すると、Apps Script で Google Content API for Shopping を使用できます。この API を使用すると、Google Merchant Center ユーザーは商品リスティングのアップロードと管理、Merchant Center アカウントの管理を行うことができます。

このサービスの詳細については、Google Content API for Shopping のリファレンス ドキュメントをご覧ください。Apps Script のすべての高度なサービスと同様に、Shopping Content Service でも公開 API と同じオブジェクト、メソッド、パラメータを使用します。

リファレンス

このサービスの詳細については、Google Content API for Shopping API のリファレンス ドキュメントをご覧ください。Apps Script のすべての高度なサービスと同様に、高度なスプレッドシート サービスは公開 API と同じオブジェクト、メソッド、パラメータを使用します。詳細については、メソッド シグネチャの決定方法をご覧ください。

問題を報告し、その他のサポートを見つけるには、Google Content API for Shopping サポートガイドをご覧ください。

サンプルコード

ショッピング コンテンツ サービスのいくつかの機能の使用方法について説明します。

商品を挿入

この例では、特定の Merchant Center アカウントに単一の商品を挿入する方法を示します。

Advanced/shoppingContent.gs
/**
 * Inserts a product into the products list. Logs the API response.
 */
function productInsert() {
  const merchantId = 123456; // Replace this with your Merchant Center ID.
  // Create a product resource and insert it
  const productResource = {
    'offerId': 'book123',
    'title': 'A Tale of Two Cities',
    'description': 'A classic novel about the French Revolution',
    'link': 'http://my-book-shop.com/tale-of-two-cities.html',
    'imageLink': 'http://my-book-shop.com/tale-of-two-cities.jpg',
    'contentLanguage': 'en',
    'targetCountry': 'US',
    'channel': 'online',
    'availability': 'in stock',
    'condition': 'new',
    'googleProductCategory': 'Media > Books',
    'productType': 'Media > Books',
    'gtin': '9780007350896',
    'price': {
      'value': '2.50',
      'currency': 'USD'
    },
    'shipping': [{
      'country': 'US',
      'service': 'Standard shipping',
      'price': {
        'value': '0.99',
        'currency': 'USD'
      }
    }],
    'shippingWeight': {
      'value': '2',
      'unit': 'pounds'
    }
  };

  try {
    response = ShoppingContent.Products.insert(productResource, merchantId);
    // RESTful insert returns the JSON object as a response.
    Logger.log(response);
  } catch (e) {
    // TODO (Developer) - Handle exceptions
    Logger.log('Failed with error: $s', e.error);
  }
}

商品を一覧表示

この例では、特定の Merchant Center アカウントの商品を一覧表示する方法を示します。

Advanced/shoppingContent.gs
/**
 * Lists the products for a given merchant.
 */
function productList() {
  const merchantId = 123456; // Replace this with your Merchant Center ID.
  let pageToken;
  let pageNum = 1;
  const maxResults = 10;
  try {
    do {
      const products = ShoppingContent.Products.list(merchantId, {
        pageToken: pageToken,
        maxResults: maxResults
      });
      Logger.log('Page ' + pageNum);
      if (products.resources) {
        for (let i = 0; i < products.resources.length; i++) {
          Logger.log('Item [' + i + '] ==> ' + products.resources[i]);
        }
      } else {
        Logger.log('No more products in account ' + merchantId);
      }
      pageToken = products.nextPageToken;
      pageNum++;
    } while (pageToken);
  } catch (e) {
    // TODO (Developer) - Handle exceptions
    Logger.log('Failed with error: $s', e.error);
  }
}

商品の一括挿入

この例では、Products.custombatch を使用して 3 つの商品を同時に挿入します。

Advanced/shoppingContent.gs
/**
 * Batch updates products. Logs the response.
 * @param  {object} productResource1 The first product resource.
 * @param  {object} productResource2 The second product resource.
 * @param  {object} productResource3 The third product resource.
 */
function custombatch(productResource1, productResource2, productResource3) {
  const merchantId = 123456; // Replace this with your Merchant Center ID.
  custombatchResource = {
    'entries': [
      {
        'batchId': 1,
        'merchantId': merchantId,
        'method': 'insert',
        'productId': 'book124',
        'product': productResource1
      },
      {
        'batchId': 2,
        'merchantId': merchantId,
        'method': 'insert',
        'productId': 'book125',
        'product': productResource2
      },
      {
        'batchId': 3,
        'merchantId': merchantId,
        'method': 'insert',
        'productId': 'book126',
        'product': productResource3
      }
    ]
  };
  try {
    const response = ShoppingContent.Products.custombatch(custombatchResource);
    Logger.log(response);
  } catch (e) {
    // TODO (Developer) - Handle exceptions
    Logger.log('Failed with error: $s', e.error);
  }
}

アカウント単位の税金の更新

このサンプルコードでは、Accounttax を使用して、Merchant Center アカウントのアカウント単位の税金情報を更新します。アカウント単位の税金と送料について詳しくは、API ガイドをご覧ください。

Advanced/shoppingContent.gs
/**
 * Updates content account tax information.
 * Logs the API response.
 */
function updateAccountTax() {
  // Replace this with your Merchant Center ID.
  const merchantId = 123456;

  // Replace this with the account that you are updating taxes for.
  const accountId = 123456;

  try {
    const accounttax = ShoppingContent.Accounttax.get(merchantId, accountId);
    Logger.log(accounttax);

    const taxInfo = {
      accountId: accountId,
      rules: [
        {
          'useGlobalRate': true,
          'locationId': 21135,
          'shippingTaxed': true,
          'country': 'US'
        },
        {
          'ratePercent': 3,
          'locationId': 21136,
          'country': 'US'
        },
        {
          'ratePercent': 2,
          'locationId': 21160,
          'shippingTaxed': true,
          'country': 'US'
        }
      ]
    };

    Logger.log(ShoppingContent.Accounttax
        .update(taxInfo, merchantId, accountId));
  } catch (e) {
    // TODO (Developer) - Handle exceptions
    Logger.log('Failed with error: $s', e.error);
  }
}