Puoi utilizzare l'API Merchant Inventories per indicare che le informazioni sul prodotto variano in base alla regione. Ad esempio, potresti vendere prodotti diversi in luoghi diversi o applicare prezzi diversi per gli stessi prodotti in base al luogo in cui vengono acquistati.
Per ulteriori informazioni, consulta Prezzi e disponibilità a livello regionale.
Le informazioni regionali riguardano i prodotti che vendi online. Per informazioni sui prodotti disponibili in negozio, consulta Aggiungere informazioni in negozio ai prodotti locali.
Ecco i passaggi per aggiungere informazioni regionali ai tuoi prodotti online:
Creare regioni
Prima di poter aggiungere informazioni regionali a un prodotto, devi configurare le regioni per il tuo account commerciante. Puoi utilizzare la risorsa API Merchant
regions
per creare nuove regioni.
Consulta la guida sulle regioni per un codice di esempio e ulteriori informazioni sulla gestione delle regioni.
Verificare di avere prodotti online
Puoi utilizzare l'API Merchant per filtrare i prodotti nel tuo account
in base a channel
per verificare se hai già dei prodotti online. I prodotti online devono avere online
come valore per channel
.
Se devi aggiungere prodotti online al tuo account, utilizza l'API Merchant per inserire nuovi prodotti o creare un'origine dati.
Inserire informazioni regionali
Dopo aver inserito i prodotti online nel tuo account commerciante, puoi aggiungere informazioni regionali come region
, price
e availability
.
Ecco un esempio che puoi utilizzare per aggiungere informazioni regionali a un prodotto con
regionalInventories.insert
:
Java
public static void insertRegionalInventory(Config config, String productId, String regionId)
throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
RegionalInventoryServiceSettings regionalInventoryServiceSettings =
RegionalInventoryServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
String parent = getParent(config.getMerchantId().toString(), productId);
try (RegionalInventoryServiceClient regionalInventoryServiceClient =
RegionalInventoryServiceClient.create(regionalInventoryServiceSettings)) {
Price price = Price.newBuilder().setAmountMicros(33_450_000).setCurrencyCode("USD").build();
InsertRegionalInventoryRequest request =
InsertRegionalInventoryRequest.newBuilder()
.setParent(parent)
.setRegionalInventory(
RegionalInventory.newBuilder()
.setAvailability("out of stock")
.setRegion(regionId)
.setPrice(price)
.build())
.build();
System.out.println("Sending insert RegionalInventory request");
RegionalInventory response = regionalInventoryServiceClient.insertRegionalInventory(request);
System.out.println("Inserted RegionalInventory Name below");
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
cURL
curl --location
'https://merchantapi.googleapis.com/inventories/v1beta/accounts/987654321/products/en~US~12345/regionalInventories:insert' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--data '{
"region": "123456",
"price": {
"amountMicros": "33450000",
"currencyCode": "USD"
},
"availability": "out of stock"
}'
PHP
class InsertRegionalInventory
{
// ENSURE you fill in the merchant account and product ID for the sample to
// work.
private const PARENT = 'accounts/[INSERT_ACCOUNT_HERE]/products/[INSERT_PRODUCT_HERE]';
// ENSURE you fill in region ID for the sample to work.
private const REGIONAL_INVENTORY_REGION = 'INSERT_REGION_HERE';
/**
* Inserts a regional inventory underneath the parent product.
*
* @param string $parent The account and product where this inventory will be inserted.
* Format: `accounts/{account}/products/{product}`
* @param string $regionalInventoryRegion
* ID of the region for this
* `RegionalInventory` resource. See the [Regional availability and
* pricing](https://support.google.com/merchants/answer/9698880) for more details.
*/
public function insertRegionalInventorySample(string $parent, string $regionalInventoryRegion): 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.
$regionalInventoryServiceClient = new RegionalInventoryServiceClient($options);
// Creates a price object.
$price = new Price(
[
'currency_code' => "USD",
'amount_micros' => 33450000,
]
);
// Creates a new regional inventory object.
$regionalInventory = (new RegionalInventory())
->setRegion($regionalInventoryRegion)
->setAvailability("in stock")
->setPrice($price);
// Calls the API and catches and prints any network failures/errors.
try {
/** @var RegionalInventory $response */
$response = $regionalInventoryServiceClient->insertRegionalInventory(
$parent,
$regionalInventory
);
printf('Response data: %s%s', $response->serializeToJsonString(), PHP_EOL);
} catch (ApiException $ex) {
printf('Call failed with message: %s%s', $ex->getMessage(), PHP_EOL);
}
}
/**
* Helper to execute the sample.
*/
public function callSample(): void
{
// Makes the call to insert the regional inventory to the parent product
// for the given region.
$this->insertRegionalInventorySample($this::PARENT, $this::REGIONAL_INVENTORY_REGION);
}
}
Python
from examples.authentication import generate_user_credentials
from google.shopping import merchant_inventories_v1beta
# ENSURE you fill in the merchant account and product ID for the sample to
# work.
_ACCOUNT = "INSERT_ACCOUNT_HERE"
_PRODUCT = "INSERT_PRODUCT_HERE"
_PARENT = f"accounts/{_ACCOUNT}/products/{_PRODUCT}"
# ENSURE you fill in region ID for the sample to work.
_REGION = "INSERT_REGION_HERE"
def insert_regional_inventory():
"""Inserts a `RegionalInventory` to a given product.
Replaces the full `RegionalInventory` resource if an entry with the same
`region` already exists for the product.
It might take up to 30 minutes for the new or updated `RegionalInventory`
resource to appear in products.
"""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = merchant_inventories_v1beta.RegionalInventoryServiceClient(
credentials=credentials)
# Creates a regional inventory and populate its attributes.
regional_inventory = merchant_inventories_v1beta.RegionalInventory()
regional_inventory.region = _REGION
regional_inventory.availability = "in stock"
regional_inventory.price = {
"currency_code": "USD",
"amount_micros": 33450000,
}
# Creates the request.
request = merchant_inventories_v1beta.InsertRegionalInventoryRequest(
parent=_PARENT,
regional_inventory=regional_inventory,
)
# Makes the request and catch and print any error messages.
try:
response = client.insert_regional_inventory(request=request)
print("Insert successful")
print(response)
except Exception as e:
print("Insert failed")
print(e)
Questa chiamata restituisce esattamente gli stessi valori inviati e potrebbe non rappresentare completamente i dati di inventario finali.
Potrebbero essere necessari fino a 30 minuti prima che il nuovo RegionalInventory
venga visualizzato nel prodotto.
Per altri modi per aggiungere informazioni sull'inventario regionale, consulta la sezione Origini dati dell'inventario dei prodotti a livello di regione alla fine di Creare un'origine dati di prodotto.
Registrati per le schede senza costi su Google
Per mostrare i tuoi prodotti senza costi su Google, configura le schede di prodotto senza costi. Dopo aver configurato le schede senza costi, i prodotti idonei con RegionalInventory
possono essere visualizzati nella scheda Shopping di Google in base alle informazioni regionali che fornisci.