Merchant API, işletme ihtiyaçlarınıza uygun ürünle ilgili bilgiler sağlamak için birden fazla veri kaynağı türünü ve giriş yöntemini destekler. Veri kaynakları farklı veri türleri içerebilir:
- ürün
- inventory
- promosyon
- inceleme
Veri kaynaklarını aşağıdaki yöntemler de dahil olmak üzere birden fazla yöntem kullanarak yapılandırabilirsiniz:
- API çağrıları
- dosya yükleme işlemleri
- Otomatik besleme
Veri kaynakları alt API'si aracılığıyla yönetilebilen bazı veri kaynağı türlerini (ör. ürünler veya promosyonlar) birden fazla desteklenen giriş yöntemiyle (API, dosya yükleme veya dosya getirme) birleştirebilirsiniz. Örneğin, birincil ürün veri kaynağı aşağıdakilerden herhangi biri olabilir:
- API feed'i
- getirilmiş bir dosya feed'i
- yüklenmiş dosya feed'i
- Otomatik feed
Bu kılavuzda, çeşitli veri türleri ve giriş yöntemleriyle veri kaynaklarını yönetme örnekleri verilmektedir.
Dikkat edilmesi gereken noktalar
Bazı veri kaynağı türleriyle ilgili aşağıdaki özel hususları göz önünde bulundurun.
- Salt okunur veri kaynakları: Bazı veri kaynağı türleri, Veri kaynakları alt API'si aracılığıyla salt okunurdur. Bu, bunları listeleyebileceğiniz ve ayrıntılarını görüntüleyebileceğiniz ancak bu API'yi kullanarak oluşturamayacağınız, güncelleyemeyeceğiniz veya silemeyeceğiniz anlamına gelir. Bunlardan bazıları:
- Ürünlerin doğrudan Merchant Center kullanıcı arayüzünde yönetildiği veri kaynakları
(giriş türü
UI
). - Otomatik feed'ler (giriş türü
AUTOFEED
). Otomatik feed'ler, Veri kaynakları alt API'sinde salt okunur olsa da Hesaplar alt API'sindekiautofeedSettings
yöntemlerini kullanarak hesabınız için otomatik feed özelliğini etkinleştirebilir veya devre dışı bırakabilirsiniz. Daha fazla bilgi için Otomatik besleme ayarlarını yapılandırma bölümüne bakın.
- Ürünlerin doğrudan Merchant Center kullanıcı arayüzünde yönetildiği veri kaynakları
(giriş türü
- Feed kuralları: Veri kaynakları alt API'si, ek veri kaynaklarını birincil veri kaynaklarına bağlamak için öncelikle varsayılan feed kurallarını destekler. Karmaşık özel kural oluşturma ve yönetme işlemleri bu API'de doğrudan desteklenmez. Birincil kaynaktaki ve ek kaynaklardaki özelliklerin hangi sırada birleştirileceğini belirtmek için varsayılan kuralda ek veri kaynaklarının sırasını yönetebilirsiniz.
Planlanmış dosya getirme ile yerel envanter veri kaynağı oluşturma
Belirli bir URL'den planlı olarak otomatik şekilde dosya getiren bir yerel envanter veri kaynağı oluşturabilirsiniz. Bölgesel envanter için benzer bir veri kaynağı oluşturmak üzere istek gövdesindeki localInventoryDataSource
alanını regionalInventoryDataSource
ile değiştirin.
Veri kaynağını oluşturmak için dataSources.create
yöntemini kullanın ve fetchSettings
yapılandırılmış bir fileInput
nesnesi sağlayın.
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "My Scheduled Local Inventory Feed",
"localInventoryDataSource": {
"feedLabel": "US_Stores",
"contentLanguage": "en"
},
"fileInput": {
"fetchSettings": {
"enabled": true,
"timeOfDay": {
"hours": 23
},
"timeZone": "America/New_York",
"frequency": "FREQUENCY_DAILY",
"fetchUri": "https://www.example.com/inventory/local_inventory_feed.csv"
}
}
}
Başarılı bir istek, oluşturulan DataSource
kaynağını döndürür.
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "My Scheduled Local Inventory Feed",
"localInventoryDataSource": {
"feedLabel": "US_Stores",
"contentLanguage": "en"
},
"input": "FILE",
"fileInput": {
"fetchSettings": {
"enabled": true,
"timeOfDay": {
"hours": 23
},
"timeZone": "America/New_York",
"frequency": "FREQUENCY_DAILY",
"fetchUri": "https://www.example.com/inventory/local_inventory_feed.csv"
},
"fileInputType": "FETCH"
}
}
Aşağıdaki kod örneklerinde, planlanmış getirme ile yerel envanter verisi kaynağının nasıl oluşturulacağı gösterilmektedir.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.datasources.v1.CreateDataSourceRequest;
import com.google.shopping.merchant.datasources.v1.DataSource;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceClient;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceSettings;
import com.google.shopping.merchant.datasources.v1.FileInput;
import com.google.shopping.merchant.datasources.v1.LocalInventoryDataSource;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to create a local inventory datasource */
public class CreateFileLocalInventoryDataSourceSample {
private static String getParent(String merchantId) {
return String.format("accounts/%s", merchantId);
}
private static FileInput setFileInput() {
// If FetchSettings are not set, then this will be an `UPLOAD` file type
// that you must manually upload via the Merchant Center UI.
return FileInput.newBuilder()
// FileName is required for `UPLOAD` fileInput type.
.setFileName("British T-shirts Local Inventory Data")
.build();
}
public static String createDataSource(Config config, String displayName, FileInput fileInput)
throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getAccountId().toString());
// LocalInventoryDataSources can only be created for a specific `feedLabel` and
// `contentLanguage` combination.
LocalInventoryDataSource localInventoryDataSource =
LocalInventoryDataSource.newBuilder().setContentLanguage("en").setFeedLabel("GB").build();
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
CreateDataSourceRequest request =
CreateDataSourceRequest.newBuilder()
.setParent(parent)
.setDataSource(
DataSource.newBuilder()
.setDisplayName(displayName)
.setLocalInventoryDataSource(localInventoryDataSource)
.setFileInput(fileInput)
.build())
.build();
System.out.println("Sending Create Local Inventory DataSource request");
DataSource response = dataSourcesServiceClient.createDataSource(request);
System.out.println("Inserted DataSource Name below");
System.out.println(response.getName());
return response.getName();
} catch (Exception e) {
System.out.println(e);
System.exit(1);
return null;
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The displayed datasource name in the Merchant Center UI.
String displayName = "British Local Inventory File";
// The file input data that this datasource will receive.
FileInput fileInput = setFileInput();
createDataSource(config, displayName, fileInput);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\DataSources\V1\Client\DataSourcesServiceClient;
use Google\Shopping\Merchant\DataSources\V1\CreateDataSourceRequest;
use Google\Shopping\Merchant\DataSources\V1\DataSource;
use Google\Shopping\Merchant\DataSources\V1\FileInput;
use Google\Shopping\Merchant\DataSources\V1\LocalInventoryDataSource;
/**
* This class demonstrates how to create a local inventory datasource with a
* file input.
*/
class CreateFileLocalInventoryDataSourceSample
{
private static function getFileInput(): FileInput
{
// If FetchSettings is not set, then this will be an `UPLOAD` file type
// that you must manually upload via the Merchant Center UI.
return (new FileInput())
// FileName is required for `UPLOAD` fileInput type.
->setFileName('British T-shirts Local Inventory Data');
}
public function createDataSource(string $merchantId, string $displayName, FileInput $fileInput): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$dataSourcesServiceClient = new DataSourcesServiceClient($options);
$parent = sprintf('accounts/%s', $merchantId);
// LocalInventoryDataSources can only be created for a specific `feedLabel` and
// `contentLanguage` combination.
$localInventoryDataSource =
(new LocalInventoryDataSource())
->setContentLanguage('en')
->setFeedLabel('GB');
try {
// Prepare the request message.
$request = (new CreateDataSourceRequest())
->setParent($parent)
->setDataSource(
(new DataSource())
->setDisplayName($displayName)
->setLocalInventoryDataSource($localInventoryDataSource)
->setFileInput($fileInput)
);
print('Sending Create Local Inventory DataSource request' . PHP_EOL);
$response = $dataSourcesServiceClient->createDataSource($request);
print('Inserted DataSource Name below' . PHP_EOL);
print($response->getName() . PHP_EOL);
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}
// Helper to execute the sample.
function callSample(): void
{
$config = Config::generateConfig();
// The Merchant Center Account ID.
$merchantId = $config['accountId'];
// The displayed datasource name in the Merchant Center UI.
$displayName = 'British Primary Inventory File';
$fileInput = self::getFileInput();
$this->createDataSource($merchantId, $displayName, $fileInput);
}
}
$sample = new CreateFileLocalInventoryDataSourceSample();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_datasources_v1 import CreateDataSourceRequest
from google.shopping.merchant_datasources_v1 import DataSource
from google.shopping.merchant_datasources_v1 import DataSourcesServiceClient
from google.shopping.merchant_datasources_v1 import FileInput
from google.shopping.merchant_datasources_v1 import LocalInventoryDataSource
_ACCOUNT = configuration.Configuration().read_merchant_info()
_PARENT = f"accounts/{_ACCOUNT}"
def create_file_local_inventory_data_source():
"""Creates a `DataSource` resource."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = DataSourcesServiceClient(credentials=credentials)
# If FetchSettings are not set, then this will be an `UPLOAD` file type
# that you must manually upload via the Merchant Center UI or via SFTP.
file_input = FileInput()
file_input.file_name = "British T-shirts Local Inventory Data.txt"
# Creates a SupplementalProductDataSource.
local_inventory_datasource = LocalInventoryDataSource()
# LocalInventoryDataSources can only be created for a specific
# `feedLabel` and `contentLanguage` combination.
local_inventory_datasource.content_language = "en"
local_inventory_datasource.feed_label = "GB"
# Creates a DataSource and populates its attributes.
data_source = DataSource()
data_source.display_name = "Example Local Inventory DataSource"
data_source.local_inventory_data_source = local_inventory_datasource
data_source.file_input = file_input
# Creates the request.
request = CreateDataSourceRequest(parent=_PARENT, data_source=data_source)
# Makes the request and catches and prints any error messages.
try:
response = client.create_data_source(request=request)
print(f"DataSource successfully created: {response}")
except RuntimeError as e:
print("DataSource creation failed")
print(e)
if __name__ == "__main__":
create_file_local_inventory_data_source()
cURL
curl -X POST \
"https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"displayName": "My Scheduled Local Inventory Feed",
"localInventoryDataSource": {
"feedLabel": "US_Stores",
"contentLanguage": "en"
},
"fileInput": {
"fetchSettings": {
"enabled": true,
"timeOfDay": {
"hours": 23
},
"timeZone": "America/New_York",
"frequency": "FREQUENCY_DAILY",
"fetchUri": "https://www.example.com/inventory/local_inventory_feed.csv"
}
}
}'
API'yi kullanarak promosyon veri kaynağı oluşturma
Promosyon veri kaynakları, ürünleriniz için promosyon teklifleri göndermenize olanak tanır. Promosyonlarınız için API tabanlı bir veri kaynağı oluşturabilirsiniz. Bu sayede, dosyaları yönetmenize gerek kalmadan promosyon verilerini doğrudan gönderebilirsiniz.
dataSources.create
yöntemini kullanın ve promotionDataSource
değerini belirtin.
API feed'i için fileInput
alanını atlayın.
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "My API Promotions Source",
"promotionDataSource": {
"targetCountry": "US",
"contentLanguage": "en"
}
}
Başarılı bir istek, yeni oluşturulan DataSource
kaynağını döndürür.
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "My API Promotions Source",
"promotionDataSource": {
"targetCountry": "US",
"contentLanguage": "en"
},
"input": "API"
}
Aşağıdaki kod örneklerinde, API tabanlı bir promosyon verileri kaynağının nasıl oluşturulacağı gösterilmektedir.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.datasources.v1.CreateDataSourceRequest;
import com.google.shopping.merchant.datasources.v1.DataSource;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceClient;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceSettings;
import com.google.shopping.merchant.datasources.v1.PromotionDataSource;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to create a promotion datasource. */
public class CreatePromotionDataSourceSample {
private static String getParent(String merchantId) {
return String.format("accounts/%s", merchantId);
}
public static String createDataSource(Config config, String displayName) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getAccountId().toString());
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
CreateDataSourceRequest request =
CreateDataSourceRequest.newBuilder()
.setParent(parent)
.setDataSource(
DataSource.newBuilder()
.setDisplayName(displayName)
// PromotionDataSources
// can only be created for a specific `targetCountry` and `contentLanguage`
// combination.
.setPromotionDataSource(
PromotionDataSource.newBuilder()
.setContentLanguage("en")
.setTargetCountry("GB")
.build())
.build())
.build();
System.out.println("Sending Create Promotion DataSource request");
DataSource response = dataSourcesServiceClient.createDataSource(request);
System.out.println("Inserted DataSource Name below");
System.out.println(response.getName());
return response.getName();
} catch (Exception e) {
System.out.println(e);
System.exit(1);
return null;
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The displayed datasource name in the Merchant Center UI.
String displayName = "British Promotions";
createDataSource(config, displayName);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\DataSources\V1\Client\DataSourcesServiceClient;
use Google\Shopping\Merchant\DataSources\V1\CreateDataSourceRequest;
use Google\Shopping\Merchant\DataSources\V1\DataSource;
use Google\Shopping\Merchant\DataSources\V1\PromotionDataSource;
/**
* This class demonstrates how to create a promotion datasource.
*/
class CreatePromotionDataSource
{
/**
* Creates a new PromotionDataSource.
*
* @param int $merchantId The Merchant Center account ID.
* @param string $displayName The displayed datasource name in the Merchant Center UI.
* @return string The name of the newly created PromotionDataSource.
*/
function createPromotionDataSourceSample(int $merchantId, string $displayName): string
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$dataSourcesServiceClient = new DataSourcesServiceClient($options);
$parent = sprintf('accounts/%s', $merchantId);
// Creates the data source.
$dataSource = (new DataSource())
->setDisplayName($displayName)
->setPromotionDataSource(
(new PromotionDataSource())
->setContentLanguage('en')
->setTargetCountry('GB')
);
// Creates the request.
$request = (new CreateDataSourceRequest())
->setParent($parent)
->setDataSource($dataSource);
// Sends the request to the API.
try {
print('Sending Create Promotion DataSource request' . PHP_EOL);
$response = $dataSourcesServiceClient->createDataSource($request);
print('Inserted DataSource Name below' . PHP_EOL);
print($response->getName() . PHP_EOL);
return $response->getName();
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
return '';
}
}
// Helper to execute the sample.
public function callSample(): void
{
$config = Config::generateConfig();
// The Merchant Center Account ID.
$merchantId = $config['accountId'];
// The displayed datasource name in the Merchant Center UI.
$displayName = 'British Promotions';
$this->createPromotionDataSourceSample($merchantId, $displayName);
}
}
$sample = new CreatePromotionDataSource();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping import merchant_datasources_v1
_ACCOUNT = configuration.Configuration().read_merchant_info()
_PARENT = f"accounts/{_ACCOUNT}"
def create_promotion_data_source():
"""Creates a `DataSource` resource."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = merchant_datasources_v1.DataSourcesServiceClient(
credentials=credentials
)
# Creates a PromotionDataSource.
# PromotionDataSources
# can only be created for a specific `targetCountry` and `contentLanguage`
# combination.
promotion_datasource = merchant_datasources_v1.PromotionDataSource()
promotion_datasource.target_country = "CH"
promotion_datasource.content_language = "fr"
# Creates a DataSource and populates its attributes.
data_source = merchant_datasources_v1.DataSource()
data_source.display_name = "Example DataSource"
data_source.promotion_data_source = promotion_datasource
# Creates the request.
request = merchant_datasources_v1.CreateDataSourceRequest(
parent=_PARENT, data_source=data_source
)
# Makes the request and catches and prints any error messages.
try:
response = client.create_data_source(request=request)
print(f"DataSource successfully created: {response}")
except RuntimeError as e:
print("DataSource creation failed")
print(e)
if __name__ == "__main__":
create_promotion_data_source()
cURL
curl -X POST \
"https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"displayName": "My API Promotions Source",
"promotionDataSource": {
"targetCountry": "US",
"contentLanguage": "en"
}
}'
Dosya yüklemeleri için ürün yorumu veri kaynağı oluşturma
Ürünlerinizle ilgili müşteri yorumlarını göndermek için ürün yorumları veri kaynaklarını kullanın. Veri kaynağını, ürün yorumları için manuel olarak yüklenen dosyaları kabul edecek şekilde yapılandırabilirsiniz.
dataSources.create
yöntemini kullanın, productReviewDataSource
değerini belirtin ve belirlenmiş bir fileName
ile fileInput
değerini ekleyin.
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "My Product Reviews Upload Feed",
"productReviewDataSource": {},
"fileInput": {
"fileName": "product_reviews.xml"
}
}
Başarılı bir istek, yeni oluşturulan DataSource
kaynağını döndürür.
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "My Product Reviews Upload Feed",
"productReviewDataSource": {},
"input": "FILE",
"fileInput": {
"fileName": "product_reviews.xml",
"fileInputType": "UPLOAD"
}
}
Satıcı yorumları için veri kaynağı oluşturmak üzere benzer bir istek kullanabilir, productReviewDataSource
nesnesini boş bir merchantReviewDataSource
nesnesiyle değiştirebilirsiniz.
Aşağıdaki kod örneklerinde, manuel dosya yüklemeleri için ürün yorumu veri kaynağının nasıl oluşturulacağı gösterilmektedir.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.datasources.v1.CreateDataSourceRequest;
import com.google.shopping.merchant.datasources.v1.DataSource;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceClient;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceSettings;
import com.google.shopping.merchant.datasources.v1.ProductReviewDataSource;
import java.io.IOException;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to create a product review data source. */
public class CreateProductReviewsDataSourceSample {
private static void createProductReviewsDataSource(String accountId) throws IOException {
GoogleCredentials credential = new Authenticator().authenticate();
DataSourcesServiceSettings dataSourcesServiceSettings =
DataSourcesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
try (DataSourcesServiceClient dataSourcesServiceClient =
DataSourcesServiceClient.create(dataSourcesServiceSettings)) {
CreateDataSourceRequest request =
CreateDataSourceRequest.newBuilder()
.setParent(String.format("accounts/%s", accountId))
.setDataSource(
DataSource.newBuilder()
.setDisplayName("Product Reviews Data Source")
.setProductReviewDataSource(ProductReviewDataSource.newBuilder().build())
.build())
.build();
System.out.println("Creating product reviews data source...");
DataSource dataSource = dataSourcesServiceClient.createDataSource(request);
System.out.println(
String.format("Datasource created successfully: %s", dataSource.getName()));
} catch (Exception e) {
System.out.println(e);
System.exit(1);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
createProductReviewsDataSource(config.getAccountId().toString());
}
}
cURL
curl -X POST \
"https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"displayName": "My Product Reviews Upload Feed",
"productReviewDataSource": {},
"fileInput": {
"fileName": "product_reviews.xml"
}
}'
Otomatik feed ayarlarını yapılandırma
Otomatik veri kaynakları, web sitenizin içeriğine göre otomatik olarak ürün verileri oluşturur. Otomatik feed veri kaynağı, Veri kaynakları alt API'sinde salt okunur olsa da Hesaplar alt API'sindeki autofeedSettings.updateAutofeedSettings
yöntemini kullanarak hesabınız için otomatik feed özelliğini etkinleştirebilir veya devre dışı bırakabilirsiniz.
Bu örnek, hesap için otomatik feed aracılığıyla ürün taramasına olanak tanır.
PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/autofeedSettings?updateMask=enableProducts
{
"name": "accounts/{ACCOUNT_ID}/autofeedSettings",
"enableProducts": true
}
Başarılı bir istek, güncellenen AutofeedSettings
kaynağını döndürür.
{
"name": "accounts/{ACCOUNT_ID}/autofeedSettings",
"enableProducts": true,
"eligible": true
}
Aşağıdaki kod örneklerinde, bir hesap için otomatik feed ayarlarının nasıl etkinleştirileceği gösterilmektedir.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
import com.google.shopping.merchant.accounts.v1.AutofeedSettings;
import com.google.shopping.merchant.accounts.v1.AutofeedSettingsName;
import com.google.shopping.merchant.accounts.v1.AutofeedSettingsServiceClient;
import com.google.shopping.merchant.accounts.v1.AutofeedSettingsServiceSettings;
import com.google.shopping.merchant.accounts.v1.UpdateAutofeedSettingsRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to update AutofeedSettings to be enabled. */
public class UpdateAutofeedSettingsSample {
public static void updateAutofeedSettings(Config config) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
AutofeedSettingsServiceSettings autofeedSettingsServiceSettings =
AutofeedSettingsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates AutofeedSettings name to identify AutofeedSettings.
String name =
AutofeedSettingsName.newBuilder()
.setAccount(config.getAccountId().toString())
.build()
.toString();
// Create AutofeedSettings with the updated fields.
AutofeedSettings autofeedSettings = AutofeedSettings.newBuilder().setName(name).build();
FieldMask fieldMask = FieldMask.newBuilder().addPaths("*").build();
try (AutofeedSettingsServiceClient autofeedSettingsServiceClient =
AutofeedSettingsServiceClient.create(autofeedSettingsServiceSettings)) {
UpdateAutofeedSettingsRequest request =
UpdateAutofeedSettingsRequest.newBuilder()
.setAutofeedSettings(autofeedSettings)
.setUpdateMask(fieldMask)
.build();
System.out.println("Sending Update AutofeedSettings request");
AutofeedSettings response = autofeedSettingsServiceClient.updateAutofeedSettings(request);
System.out.println("Updated AutofeedSettings Name below");
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
updateAutofeedSettings(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Protobuf\FieldMask;
use Google\Shopping\Merchant\Accounts\V1\AutofeedSettings;
use Google\Shopping\Merchant\Accounts\V1\Client\AutofeedSettingsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\UpdateAutofeedSettingsRequest;
/**
* This class demonstrates how to update AutofeedSettings to be enabled.
*/
class UpdateAutofeedSettingsSample
{
/**
* Update AutofeedSettings to be enabled.
*
* @param array $config The configuration data for authentication and account ID.
* @return void
*/
public static function updateAutofeedSettingsSample(array $config): void
{
// Get OAuth credentials.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Create options for the client.
$options = ['credentials' => $credentials];
// Create a client.
$autofeedSettingsServiceClient = new AutofeedSettingsServiceClient($options);
// Create the AutofeedSettings name.
$name = "accounts/" . $config['accountId'] . "/autofeedSettings";
// Create AutofeedSettings object.
$autofeedSettings = (new AutofeedSettings())
->setName($name);
// Create FieldMask.
$fieldMask = (new FieldMask())
->setPaths(["*"]);
// Call the API.
try {
// Prepare the request.
$request = (new UpdateAutofeedSettingsRequest())
->setAutofeedSettings($autofeedSettings)
->setUpdateMask($fieldMask);
print "Sending Update AutofeedSettings request\n";
$response = $autofeedSettingsServiceClient->updateAutofeedSettings($request);
print "Updated AutofeedSettings Name below\n";
print $response->getName() . "\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
self::updateAutofeedSettingsSample($config);
}
}
// Run the script
$sample = new UpdateAutofeedSettingsSample();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.protobuf import field_mask_pb2
from google.shopping.merchant_accounts_v1 import AutofeedSettings
from google.shopping.merchant_accounts_v1 import AutofeedSettingsServiceClient
from google.shopping.merchant_accounts_v1 import UpdateAutofeedSettingsRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def update_autofeed_settings():
"""Updates the AutofeedSettings of a Merchant Center account."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = AutofeedSettingsServiceClient(credentials=credentials)
# Creates name to identify the AutofeedSettings.
name = "accounts/" + _ACCOUNT + "/autofeedSettings"
# Create AutofeedSettings with the updated fields.
autofeed_settings = AutofeedSettings(name=name, enable_products=False)
# Create the field mask.
field_mask = field_mask_pb2.FieldMask(paths=["enable_products"])
# Creates the request.
request = UpdateAutofeedSettingsRequest(
autofeed_settings=autofeed_settings, update_mask=field_mask
)
# Makes the request and catches and prints any error messages.
try:
response = client.update_autofeed_settings(request=request)
print("Updated AutofeedSettings Name below")
print(response.name)
except RuntimeError as e:
print("Update AutofeedSettings request failed")
print(e)
if __name__ == "__main__":
update_autofeed_settings()
cURL
curl -X PATCH \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/autofeedSettings?updateMask=enableProducts" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "accounts/{ACCOUNT_ID}/autofeedSettings",
"enableProducts": true
}'