Le service Merchant API vous permet d'utiliser l'API Merchant dans Apps Script pour importer des produits et gérer des comptes Merchant Center.
Pour en savoir plus sur l'API Merchant, consultez la documentation de référence. Comme tous les services avancés d'Apps Script, le service Merchant API utilise les mêmes objets, méthodes et paramètres que l'API publique.
L'API Merchant est un ensemble de sous-API, qui sont des groupes de services et de ressources associés. Voici la liste des sous-API.
Pour utiliser le service Merchant API dans Apps Script, procédez comme suit :
Assurez-vous que votre projet Apps Script est associé à un projet Google Cloud standard.
Activez le service avancé Apps Script, comme décrit dans ce document :
- Activez
appsscript.json
pour les nouveaux projets. - Activez Apps Script pour les projets existants.
- Activez
Enregistrez votre projet Google Cloud standard avec votre compte Merchant Center, comme décrit dans le guide de démarrage rapide de l'API Merchant.
Activer le service avancé Apps Script
Vous pouvez activer le service Apps Script de deux manières :
Activer les API dans appsscript.json
L'exemple suivant montre un fichier appsscript.json
qui active les sous-API Products, Accounts, Reports et Data sources.
Dans l'éditeur Apps Script, sélectionnez Paramètres du projet
.Activez l'option Afficher le fichier manifeste "appsscript.json" dans l'éditeur.
Dans l'éditeur, sélectionnez le fichier
appsscript.json
.Remplacez le contenu du fichier
appsscript.json
par le code suivant :{ "dependencies": { "enabledAdvancedServices": [ { "userSymbol": "MerchantApiAccounts", "version": "accounts_v1beta", "serviceId": "merchantapi" }, { "userSymbol": "MerchantApiDataSources", "version": "datasources_v1beta", "serviceId": "merchantapi" }, { "userSymbol": "MerchantApiProducts", "version": "products_v1beta", "serviceId": "merchantapi" }, { "userSymbol": "MerchantApiReports", "version": "reports_v1beta", "serviceId": "merchantapi" } ] }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" }
Cliquez sur Enregistrer.
Vous pouvez désormais faire référence aux sous-API suivantes dans votre code :
a.
MerchantApiAccounts
b.
MerchantApiDataSources
c.
MerchantApiProducts
d.
MerchantApiReports
Activer Apps Script pour des sous-API supplémentaires ou des projets existants
Pour activer les sous-API dans les projets existants, procédez comme suit :
Ouvrez votre projet Apps Script.
Sur la gauche, cliquez sur Éditeur < >.
Sur la gauche, à côté de Services, cliquez sur Ajouter un service +.
Sélectionnez la sous-API que vous souhaitez activer dans le sélecteur de version.
Ajoutez l'identifiant avec le nom de votre sous-API. Par exemple, pour activer la sous-API Inventories, sélectionnez la version inventories_v1beta et remplacez l'identifiant par MerchantApiInventories.
Vous pouvez désormais faire référence à la sous-API Inventories dans votre code en tant que
MerchantApiInventories
.
Exemple de code
Cette section explique comment utiliser l'API Merchant pour certaines fonctionnalités.
Lister les produits
Cet exemple montre comment lister les produits d'un compte Merchant Center donné.
/**
* Lists all products for a given Merchant Center account.
*/
function productList() {
// IMPORTANT:
// Enable the Merchant API Products sub-API Advanced Service and call it
// "MerchantApiProducts"
// Replace this with your Merchant Center ID.
const accountId = '<MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
try {
console.log('Sending list Products request');
let pageToken;
// Set the page size to 1000. This is the maximum allowed page size.
let pageSize = 1000;
console.log('Retrieved products below:');
// Call the Products.list API method. Use the pageToken to iterate through
// all pages of results.
do {
response = MerchantApiProducts.Accounts.Products.list(parent, {pageToken, pageSize});
console.log(response);
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
} catch (e) {
console.log('ERROR!');
console.log(e);
}
}
Filtrer les produits refusés
Cet exemple montre comment filtrer les produits refusés dans un compte Merchant Center.
/**
* Demonstrates how to filter disapproved products using the Merchant API Reports service.
*/
function filterDisapprovedProducts() {
// IMPORTANT:
// Enable the Merchant API Reports sub-API Advanced Service and call it
// "MerchantApiReports"
// Enable the Merchant API Products sub-API Advanced Service and call it
// "MerchantApiProducts"
// Replace this with your Merchant Center ID.
const accountId = '<INSERT_MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
try {
console.log('Sending search Report request');
// Set pageSize to the maximum value (default: 1000)
let pageSize = 1000;
let pageToken;
// The query below is an example of a query for the productView that gets product informations
// for all disapproved products.
let query = 'SELECT offer_id,' +
'id,' +
'price,' +
'title' +
' FROM product_view' +
' WHERE aggregated_reporting_context_status = "NOT_ELIGIBLE_OR_DISAPPROVED"';
// Call the Reports.search API method. Use the pageToken to iterate through
// all pages of results.
do {
response =
MerchantApiReports.Accounts.Reports.search({query, pageSize, pageToken}, parent);
for (const reportRow of response.results) {
console.log("Printing data from Product View:");
console.log(reportRow);
// OPTIONALLY, you can get the full product details by calling the GetProduct method.
let productName = parent + "/products/" + reportRow.getProductView().getId();
product = MerchantApiProducts.Accounts.Products.get(productName);
console.log(product);
}
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
} catch (e) {
console.log('ERROR!');
console.log('Error message:' + e.message);
}
}
Récupérer un rapport pour un compte donné
Cet exemple montre comment récupérer un rapport pour un compte Merchant Center donné.
/**
* Searches a report for a given Merchant Center account.
*/
function searchReport() {
// IMPORTANT:
// Enable the Merchant API Reports sub-API Advanced Service and call it
// "MerchantApiReports"
// Replace this with your Merchant Center ID.
const accountId = '<MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
try {
console.log('Sending search Report request');
// Set pageSize to the maximum value (default: 1000)
let pageSize = 1000;
let pageToken;
// Uncomment the desired query from below. Documentation can be found at
// https://developers.google.com/merchant/api/reference/rest/reports_v1beta/accounts.reports#ReportRow
// The query below is an example of a query for the product_view.
let query = 'SELECT offer_id,' +
'id,' +
'price,' +
'gtin,' +
'item_issues,' +
'channel,' +
'language_code,' +
'feed_label,' +
'title,' +
'brand,' +
'category_l1,' +
'product_type_l1,' +
'availability,' +
'shipping_label,' +
'thumbnail_link,' +
'click_potential' +
' FROM product_view';
/*
// The query below is an example of a query for the
price_competitiveness_product_view. let query = "SELECT offer_id,"
+ "id,"
+ "benchmark_price,"
+ "report_country_code,"
+ "price,"
+ "title,"
+ "brand,"
+ "category_l1,"
+ "product_type_l1"
+ " FROM price_competitiveness_product_view"
+ " WHERE date BETWEEN '2023-03-03' AND '2025-03-10'"; */
/*
// The query below is an example of a query for the
price_insights_product_view. let query = "SELECT offer_id,"
+ "id,"
+ "suggested_price,"
+ "price,"
+ "effectiveness,"
+ "title,"
+ "brand,"
+ "category_l1,"
+ "product_type_l1,"
+ "predicted_impressions_change_fraction,"
+ "predicted_clicks_change_fraction,"
+ "predicted_conversions_change_fraction"
+ " FROM price_insights_product_view"; */
/*
// The query below is an example of a query for the
product_performance_view. let query = "SELECT offer_id,"
+ "conversion_value,"
+ "marketing_method,"
+ "customer_country_code,"
+ "title,"
+ "brand,"
+ "category_l1,"
+ "product_type_l1,"
+ "custom_label0,"
+ "clicks,"
+ "impressions,"
+ "click_through_rate,"
+ "conversions,"
+ "conversion_rate"
+ " FROM product_performance_view"
+ " WHERE date BETWEEN '2023-03-03' AND '2025-03-10'"; */
// Call the Reports.search API method. Use the pageToken to iterate through
// all pages of results.
do {
response =
MerchantApiReports.Accounts.Reports.search({query, pageSize, pageToken}, parent);
for (const reportRow of response.results) {
console.log(reportRow);
}
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
} catch (e) {
console.log('ERROR!');
console.log(e);
console.log('Error message:' + e.message);
if (e.stack) {
console.log('Stack trace:' + e.stack);
}
}
}
Lister toutes les sources de données
Cet exemple montre comment lister toutes les sources de données d'un compte Merchant Center donné.
/**
* Lists all data sources for a given Merchant Center account.
*/
function listDataSources() {
// IMPORTANT:
// Enable the Merchant API DataSources sub-API Advanced Service and call it
// "MerchantApiDataSources"
// Replace this with your Merchant Center ID.
const accountId = '<MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
let dataSources = [];
let primaryDataSources = [];
try {
console.log('Sending list DataSources request');
let pageToken;
let pageSize = 10;
// Call the DataSources.list API method. Use the pageToken to iterate through
// all pages of results.
do {
response =
MerchantApiDataSources.Accounts.DataSources.list(parent, {pageSize, pageToken});
for (const datasource of response.dataSources) {
dataSources.push(datasource);
if (datasource.primaryProductDataSource) {
primaryDataSources.push(datasource);
}
}
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
console.log('Retrieved ' + dataSources.length + ' data sources.');
console.log(
'There were ' + primaryDataSources.length +
' primary product data sources.');
} catch (e) {
console.log('ERROR!');
console.log(e);
}
}