v2 ek envanter güncellemeleri

Bu bölümde, envanter varlıklarınızın zamana duyarlı güncellemelerini Google'a nasıl gönderebileceğiniz açıklanmaktadır. Artırılmış Güncelleme API'si, Korumalı Alan veya Üretim envanterinizdeki güncellemeleri neredeyse gerçek zamanlı olarak aktarmanıza ve silmenize olanak tanır.

Bu işlev öncelikle acil durum kapatmaları gibi öngöremediğiniz güncellemelere yöneliktir. Kural olarak, Artımlı Güncelleme API'si aracılığıyla gönderilen herhangi bir değişiklik bir saatten uzun süre içinde gerçekleşen bir değişiklik olmalıdır. Değişikliğinizin hemen yansıtılması gerekmiyorsa bunun yerine toplu besleme özelliğini kullanabilirsiniz. Artımlı güncellemeler beş dakikadan fazla sürede işlenmez.

Ön koşullar

Artımlı güncellemeleri uygulamadan önce aşağıdaki öğeler gereklidir:

  1. Actions projenizde düzenleyici rolü olan bir hizmet hesabı oluşturulur. Daha fazla bilgi için Proje oluşturma ve ayarlama bölümüne bakın.
  2. Üretim veya korumalı alan veri feed'leri barındırılır ve beslenir. Daha fazla bilgi için Toplu besleme bölümüne bakın.
  3. (İsteğe bağlı olsa da önerilir) API'yi çağırırken OAuth 2.0 kullanımını kolaylaştırmak için Google İstemci Kitaplığı'nı istediğiniz dilde yükleyin. Aşağıda verilen kod örnekleri bu kitaplıkları kullanır. Aksi takdirde, jeton takaslarını Google API'lerine Erişmek için OAuth 2.0'ı Kullanma bölümünde açıklandığı şekilde manuel olarak işlemeniz gerekir.

Uç noktalar

Aşağıdaki isteklerde aşağıdakileri değiştirin:

  • PROJECT_ID: Proje oluşturma ve ayarlama bölümünde oluşturduğunuz projeyle ilişkili Google Cloud proje kimliği.
  • TYPE: Veri feed'inizde güncellemek istediğiniz nesnenin varlık türü (@type özelliği).
  • ENTITY_ID (yalnızca uç noktayı sil): Silinecek varlığın kimliği. Varlık kimliğinizi URL olarak kodlamayı unutmayın.
  • DELETE_TIME (yalnızca uç noktayı sil): Varlıkların sistemlerinizde silindiği zamanı belirtmek için kullanılan isteğe bağlı alandır (varsayılan olarak istek alındığında bu gerçekleşir). Zaman değeri gelecekte olmamalıdır. Varlıkları artımlı arama üzerinden gönderirken entity versioning, silme çağrısı durumunda delete_time alanını da kullanır. Bu değeri yyyy-mm-ddTHH:mm:ssZ olarak biçimlendir

Uç noktayı güncelleme

Varlık değiştirmek için aşağıdaki uç noktaya bir HTTP POST isteği yapın ve güncellemeler ve eklemeler yükünü ekleyin. Tek bir API çağrısında en fazla 1.000 varlık düzenleyebilirsiniz.

https://actions.googleapis.com/v2/apps/PROJECT_ID/entities:batchPush

Örneğin, bir projenin varlıklarını "delivery-provider-id" şeklinde güncellemek isterseniz uç nokta aşağıdaki gibi olur:

https://actions.googleapis.com/v2/apps/delivery-provider-id/entities:batchpush

Uç noktayı silme

Envanterinizdeki bir varlığı silmek için aşağıdaki uç noktaya bir HTTP SİLME isteği gönderin.

https://actions.googleapis.com/v2/apps/PROJECT_ID/entities/TYPE/ENTITY_ID?entity.vertical=FOODORDERING&delete_time=DELETE_TIME

Örneğin, "quoSection;menuSection_122&quot kimliğine sahip bir "MenuSection" varlığını silmek için "quot;delivery-provider-id&quot" projenizden silmek üzere aşağıdaki adrese bir HTTP DELETE API çağrısı yaparsınız:

https://actions.googleapis.com/v2/apps/delivery-provider-id/entities/MenuSection/menuSection_122?entity.vertical=FOODORDERING

Korumalı alan ortamı

Artırılmış Güncelleme API'sını korumalı alan envanterinizde kullanmak için yukarıdaki Uç Noktalar bölümündeki talimatları uygulayın ancak /v2/apps/ yerine /v2/sandbox/apps/ için istekte bulunun.

https://actions.googleapis.com/v2/sandbox/apps/PROJECT_ID/entities:batchPush
https://actions.googleapis.com/v2/sandbox/apps/PROJECT_ID/entities/TYPE/ENTITY_ID?entity.vertical=FOODORDERING&delete_time=DELETE_TIME

Varlıkları güncelleme

Her POST isteği, envanter şemasında listelenen herhangi bir varlık türünün yapılandırılmış verilerini içeren JSON yükünün yanı sıra istek parametrelerini de içermelidir.

Yükü güncelleyin

JSON dosyası, aşağıdaki farklılıklarla birlikte toplu özet akışında olduğu gibi görünmelidir:

  • Yükün boyutu 5 MB'tan büyük olmamalıdır. Toplu feed'lere benzer şekilde, daha fazla veri sığdırmak için boşlukları kaldırmanızı öneririz.
  • Zarf şu şekildedir:
{
  "requests": [
    {
      "entity": {
        "data":"ENTITY_DATA",
        "name": "apps/project_id>/entities/type/entity_id"
      },
      "update_time":"UPDATE_TIMESTAMP"
    },
  ],
  "vertical": "FOODORDERING"
}

Yukarıdaki yükte aşağıdakileri değiştirin:

  • ENTITY_DATA: JSON biçiminde öğe dize olarak serileştirilmiş. JSON-LD varlığı data alanına dize olarak geçirilmelidir.
  • UPDATE_TIMESTAMP (isteğe bağlı): Sistemlerinizde varlığın güncellendiği zaman damgası. Zaman değeri gelecekte olmamalıdır. Varsayılan zaman damgası, Google'ın isteği almasıdır. Varlıkları artımlı istek üzerinden gönderirken entity sürüm oluşturma, ekleme/güncelleme isteği durumunda update_time alanını da kullanır.

Örnekler

1. Örnek: Bir restoranı güncelleme

Bir restoranın telefon numarasını acil bir şekilde güncellemeniz gerektiğini varsayalım. Güncellemeniz tüm restoran için JSON içeriyor.

Aşağıdaki gibi görünen bir toplu feed'i değerlendirin:

{
  "@type": "Restaurant",
  "@id": "restaurant12345",
  "name": "Some Restaurant",
  "url": "https://www.provider.com/somerestaurant",
  "telephone": "+16501234567",
  "streetAddress": "345 Spear St",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94105",
  "addressCountry": "US",
  "latitude": 37.472842,
  "longitude": -122.217144
}

Sonra, HTTP POST'u ile artımlı güncellemeniz şöyle olur:

POST v2/sandbox/apps/provider-project/entities:batchPush
Host: actions.googleapis.com
Content-Type: application/ld+json
{
  "requests": [
    {
      "entity": {
        "name": "apps/provider-project/entities/restaurant/restaurant12345",
        "data": {
          "@type": "Restaurant",
          "@id": "restaurant12345",
          "name": "Some Restaurant",
          "url": "https://www.provider.com/somerestaurant",
          "telephone": "+16501235555",
          "streetAddress": "345 Spear St",
          "addressLocality": "San Francisco",
          "addressRegion": "CA",
          "postalCode": "94105",
          "addressCountry": "US",
          "latitude": 37.472842,
          "longitude": -122.217144
        }
      }
    }
  "vertical": "FOODORDERING"
}

2. Örnek: Birden fazla restoranı güncelleme

Tek bir API çağrısındaki iki restoran öğesini güncellemek için HTTP POST isteği aşağıdaki gibi olur:

POST v2/sandbox/apps/provider-project/entities:batchPush
Host: actions.googleapis.com
Content-Type: application/ld+json
{
  "requests": [
    {
      "entity": {
        "name": "apps/provider-project/entities/restaurant/restaurant12345",
        "data": {
          "@type": "Restaurant",
          "@id": "restaurant12345",
          "name": "Some Restaurant",
          "url": "https://www.provider.com/somerestaurant",
          "telephone": "+16501235555",
          "streetAddress": "345 Spear St",
          "addressLocality": "San Francisco",
          "addressRegion": "CA",
          "postalCode": "94105",
          "addressCountry": "US",
          "latitude": 37.472842,
          "longitude": -122.217144
        }
      }
    },
    {
      "entity": {
        "name": "apps/provider-project/entities/restaurant/restaurant123",
        "data": {
          "@type": "Restaurant",
          "@id": "restaurant123",
          "name": "Some Other Restaurant",
          "url": "https://www.provider.com/somerestaurant",
          "telephone": "+16501231235",
          "streetAddress": "385 Spear St",
          "addressLocality": "San Mateo",
          "addressRegion": "CA",
          "postalCode": "94115",
          "addressCountry": "US"
        }
      }
    }
  ]
  "vertical": "FOODORDERING"
}

3. Örnek: Menü öğesi fiyatının güncellenmesi

Bir menü öğesinin fiyatını değiştirmeniz gerektiğini varsayalım. 1. Örnek'te olduğu gibi, güncellemenizin üst düzey varlığın tamamı (menü) için JSON içermesi gerekir. Feed, v1 envanter şemasını kullanır.

Aşağıdaki gibi görünen bir toplu feed'i değerlendirin:

{
  "@type": "MenuItemOffer",
  "@id": "menuitemoffer6680262",
  "sku": "offer-cola",
  "menuItemId": "menuitem896532",
  "price": 3.00,
  "priceCurrency": "USD"
}

Sonra, POST yoluyla artımlı güncellemeniz şöyle olur:

POST v2/sandbox/apps/provider-project/entities:batchPush
Host: actions.googleapis.com
Content-Type: application/ld+json
{
  "requests": [
    {
      "entity": {
        "name": "apps/provider-project/entities/menuitemoffer/menuitemoffer6680262",
        "data": {
          "@type": "MenuItemOffer",
          "@id": "menuitemoffer6680262",
          "sku": "offer-cola",
          "menuItemId": "menuitem896532",
          "price": 1.00,
          "priceCurrency": "USD"
        },
        "vertical": "FOODORDERING"
      }
    }
  ]
  "vertical": "FOODORDERING"
}

Varlık ekleme

Varlık eklemek için envanter güncellemelerini kullanmaktan kaçının. Bunun yerine, toplu feed sürecini v2 envanter şemasında açıklandığı şekilde kullanın.

Varlık kaldırma

Üst düzey varlıkları kaldırmak için hafif olarak değiştirilmiş bir uç nokta ve istekte HTTP POST yerine HTTP DELETE kullanın.

Üst düzey varlıkları silme

Feed'deki bir restoranı silmek istediğiniz bir durumu düşünün. Ayrıca hizmetlerini ve menülerini de silmeniz gerekir.

Şu kimliğin yer aldığı bir menü varlığı için örnek uç nokta: sağlayıcı/restoran/menü/nr"

DELETE v2/apps/delivery-provider-id/entities/menu/provider%2Frestaurant%2Fmenu%2Fnr?entity.vertical=FOODORDERING
Host: actions.googleapis.com

Bir restoran varlığı için şu kimlikle örnek bir uç nokta: https://www.provider.com/restoran/nr"

DELETE v2/apps/delivery-provider-id/entities/restaurant/provider%2Frestaurant%2Fnr?entity.vertical=FOODORDERING
Host: actions.googleapis.com

Aşağıdakileri içeren bir varlık varlığı için örnek uç nokta: https://www.provider.com/restoran/service/nr"

DELETE v2/apps/delivery-provider-id/entities/service/provider%2Frestaurant%2Fservice%2Fnr?entity.vertical=FOODORDERING
Host: actions.googleapis.com
}

Alt varlıkları kaldırma

Üst düzey varlık içindeki bir alt varlığı (örneğin, menüdeki menü öğesi) kaldırmak için HTTP SİLME'yi kullanmayın. Bunun yerine, alt varlıkların kaldırılmasını, alt varlığın ilgili listeden veya ters Referansta kaldırıldığı üst düzey bir varlık için güncelleme olarak ele alın.

API yanıt kodları

Başarılı bir çağrı, feed'in geçerli veya doğru olduğu anlamına gelmez, yalnızca API çağrısının yapıldığını gösterir. Başarılı aramalar, boş bir yanıt gövdesiyle birlikte bir HTTP yanıt kodu 200 alır:

{}

Başarısızlıklar için HTTP yanıt kodu 200 olmaz. Yanıt gövdesi, sorunun ne olduğunu gösterir.

Örneğin, kullanıcı zarftaki"vertical"quot değerini FAKE_VERTICAL olarak ayarladıysa aşağıdaki mesajı alırsınız:

{
  "error": {
    "code": 400,
    "message": "Invalid value at 'entity.vertical' (TYPE_ENUM), \"FAKE_VERTICAL\"",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "entity.vertical",
            "description": "Invalid value at 'entity.vertical' (TYPE_ENUM), \"FAKE_VERTICAL\""
          }
        ]
      }
    ]
  }
}

Kod örneği

Aşağıda, çeşitli dillerde Artımlı Güncelleme API'sinin nasıl kullanılacağına dair bazı örnekler verilmiştir. Bu örnekler Google Auth Kitaplıklarını kullanır ve v1 envanter şemasını kullanarak bir feed kabul eder. Alternatif çözümler için Sunucudan Sunucuya Uygulamalarda OAuth 2.0'ı Kullanma başlıklı makaleye bakın.

Varlıkları güncelleme

Node.js

Bu kod, Node.js için Google kimlik doğrulama kitaplığını kullanır.

const {auth} = require('google-auth-library')
const request = require('request');
// The service account client secret file downloaded from the Google Cloud Console
const serviceAccountJson = require('./service-account.json')
// entity.json is a file that contains the entity data in json format
const entity = require('./entity.json')

const ENTITY_ID = 'your/entity/id'
const PROJECT_ID = 'type/your-project-id'

/**
 * Get the authorization token using a service account.
 */
async function getAuthToken() {
  let client = auth.fromJSON(serviceAccountJson)
  client.scopes = ['https://www.googleapis.com/auth/assistant']
  const tokens = await client.authorize()
  return tokens.access_token;
}

/**
 * Send an incremental update to update or add an entity
 */
async function updateEntity(entity) {
  const token = await getAuthToken()
  request.post({
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${token}`
    },
    url: `https://actions.googleapis.com/v2/apps/${PROJECT_ID}/entities:batchPush`,
    body: {
      requests: [
        {
          entity: {
            data: JSON.stringify(entity)
            name: `apps/${PROJECT_ID}/entities/${ENTITY_ID}`
          }
        }
      ],
      vertical: 'FOODORDERING'
    },
    json: true
  },
  (err, res, body) => {
    if (err) { return console.log(err); }
    console.log(`Response: ${JSON.stringify(res)}`)
  })
}

updateEntity(entity)

Python

Bu kod, Python için Google kimlik doğrulama kitaplığını kullanır.

from google.oauth2 import service_account
from google.auth.transport.requests import AuthorizedSession
import json
import urllib

PROJECT_ID = 'your-project-id'
ENTITY_ID = 'type/your/entity/id'

ENDPOINT = 'https://actions.googleapis.com/v2/apps/%s/entities:batchPush' % (
    PROJECT_ID)

# service-account.json is the service account client secret file downloaded from the
# Google Cloud Console
credentials = service_account.Credentials.from_service_account_file(
    'service-account.json')

scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/assistant'])

authed_session = AuthorizedSession(scoped_credentials)

# Retrieving the entity
update_file = open("entity.json")  #JSON file containing entity data in json format.
data = update_file.read()

entity = {}
entity['data'] = data #entity JSON-LD serialized as string
entity['name'] = 'apps/%s/entities/%s' % (PROJECT_ID, urllib.quote(ENTITY_ID, '') )

# Populating the request
request = {}
request['entity'] = entity
requestArray = [request]

# Populating the payload
payload = {}
payload['requests'] = requestArray
payload['vertical'] = 'FOODORDERING'

response = authed_session.post(ENDPOINT, json=payload)

print(response.text) #if successful, will be '{}'

Java

Bu kod, Java için Google kimlik doğrulama kitaplığını kullanır.

private static final String PROJECT_ID = "your-project-id";
private static final String ENTITY_ID = "type/your-entity-id";

/**
 * Get the authorization token using a service account.
 */
private static String getAuthToken() {
  InputStream serviceAccountFile =
      Example.class.getClassLoader().getResourceAsStream("service-account.json");
  ServiceAccountCredentials.Builder credentialsSimpleBuilder =
      ServiceAccountCredentials.fromStream(serviceAccountFile).toBuilder();
  credentialsSimpleBuilder.setScopes(ImmutableList.of("https://www.googleapis.com/auth/assistant"));
  AccessToken accessToken = credentialsSimpleBuilder.build().refreshAccessToken();
  return accessToken.getTokenValue();
}

/**
 * Send an incremental update to update or add an entity.
 * @param entityId The id of the entity to update.
 * @param entity the json of the entity to be updated.
 */
public void updateEntity(String entityId, JSONObject data) {
  String authToken = getAuthToken();
  String endpoint = String.format("https://actions.googleapis.com/v2/apps/%s/entities/:batchPush", PROJECT_ID);

  JSONObject entity = new JSONObject();
  entity.put("data", data.toString());
  entity.put("name", String.format("apps/%s/entities/%s", PROJECT_ID, URLEncoder.encode(ENTITY_ID, "UTF-8")));

  JSONObject request = new JSONObject();
  request.put("entity", entity);

  JSONArray requestArray = new JSONArray();
  requestArray.put(request);

  JSONObject payload = new JSONObject();
  payload.put("requests", requestArray);
  payload.put("vertical", FOODORDERING);

  // Execute POST request
  executePostRequest(endpoint, authToken, payload);
}

Varlıkları kaldırma

Node.js

Bu kod, Node.js için Google kimlik doğrulama kitaplığını kullanır.

const {auth} = require('google-auth-library')
const request = require('request');
// The service account client secret file downloaded from the Google Cloud Console
const serviceAccountJson = require('./service-account.json')
// entity.json is a file that contains the entity data in json format
const entity = require('./entity.json')

const ENTITY_ID = 'restaurant/http://www.provider.com/somerestaurant'
const PROJECT_ID = 'your-project-id'

/**
 * Get the authorization token using a service account.
 */
async function getAuthToken() {
  let client = auth.fromJSON(serviceAccountJson)
  client.scopes = ['https://www.googleapis.com/auth/assistant']
  const tokens = await client.authorize()
  return tokens.access_token;
}

/**
 * Send an incremental update to delete an entity
 */
async function deleteEntity(entityId) {
  const token = await getAuthToken()
  request.delete({
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${token}`
    },
    url: `https://actions.googleapis.com/v2/apps/${PROJECT_ID}/entities/${encodeURIComponent(entityId)}?entity.vertical=FOODORDERING`,
    body: {},
    json: true
  },
  (err, res, body) => {
    if (err) { return console.log(err); }
    console.log(`Response: ${JSON.stringify(res)}`)
  })
}

deleteEntity(ENTITY_ID)

Python

Bu kod, Python için Google kimlik doğrulama kitaplığını kullanır.

from google.oauth2 import service_account
from google.auth.transport.requests import AuthorizedSession
import json
import urllib

# Service config
PROJECT_ID = 'your-project-id'
ENTITY_ID = 'restaurant/http://www.provider.com/somerestaurant'
DELETE_TIME = '2018-04-07T14:30:00-07:00'
ENDPOINT = 'https://actions.googleapis.com/v2/apps/%s/entities/%s?entity.vertical=FOODORDERING&delete_time=%s' % (
    PROJECT_ID, urllib.quote(ENTITY_ID, ''), urllib.quote(DELETE_TIME, ''))

# service-account.json is the service account client secret file downloaded from the
# Google Cloud Console
credentials = service_account.Credentials.from_service_account_file(
    'service-account.json')

scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/assistant'])

authed_session = AuthorizedSession(scoped_credentials)
response = authed_session.delete(ENDPOINT)

print(response.text) #if successful, will be '{}'

Java

Bu kod, Java için Google kimlik doğrulama kitaplığını kullanır.

private static final String PROJECT_ID = "your-project-id";
private static final String ENTITY_ID = "restaurant/http://www.provider.com/somerestaurant";

/**
 * Get the authorization token using a service account.
 */
private static String getAuthToken() {
  InputStream serviceAccountFile = Example.class.getClassLoader().getResourceAsStream("service-account.json");
  ServiceAccountCredentials.Builder credentialsSimpleBuilder =
      ServiceAccountCredentials.fromStream(serviceAccountFile).toBuilder();
  credentialsSimpleBuilder.setScopes(ImmutableList.of("https://www.googleapis.com/auth/assistant"));
  AccessToken accessToken = credentialsSimpleBuilder.build().refreshAccessToken();
  return accessToken.getTokenValue();
}

/**
 * Send an incremental update to delete an entity.
 * @param entityId The id of the entity to delete.
 */
public void deleteEntity(String entityId) {
  String authToken = getAuthToken();
  String endpoint = String.format(
      "https://actions.googleapis.com/v2/apps/%s/entities/%s?entity.vertical=FOODORDERING",
      PROJECT_ID, URLEncoder.encode(entityId, "UTF-8"));
  // Execute DELETE request
  System.out.println(executeDeleteRequest(endpoint, authToken));
}

Kullanım alanları

Aşağıdaki kullanım alanları artımlı güncellemeler, tam feed güncellemeleri ve API çağrısında üst düzey içerik örnekleridir:

Senaryo Güncellenecek varlık Açıklama ve efektler
Bir hizmeti devre dışı bırakma Service

Beklenmeyen bir nedenle bir hizmeti devre dışı bırakmanız gerekiyor.

Ek güncellemeler: isDisabled özelliğini true olarak ayarlayarak söz konusu Service öğesini güncelleyin, ancak diğer özellikleri aynı tutun.

Tam feed'ler: Google tarafından bir sonraki getirilmesinden önce isDisabled öğesini true olarak ayarlamak için tam feed'lerdeki varlığı güncellediğinizden emin olun. Aksi takdirde varlık yeniden etkinleştirilir.

Belirli bir ürün stokta yok MenuItemOffer Artımlı güncellemeler: Kapsamlı MenuItemOffer varlığını inventoryLevel ile birlikte MenuItem için gönderin ve diğer tüm verileri değiştirin.
Menü öğesi fiyat değişikliği MenuItemOffer Ek güncellemeler: Kapsamlı MenuItemOffer varlığını price ile birlikte verilen MenuItem için güncellenmiş fiyata gönderin ve diğer tüm veriler değişmeden gönderin.

Yeni üst düzey varlık ekle

Yalnızca Menu, Restaurant ve Service türleri için geçerlidir.

Menu, Restaurant Service

Örneğin, bir restorana yeni bir menü eklemeniz gerekir.

Tam feed'ler: Varlıkları veri feed'lerinize ekleyip toplu beslemeyi bekleyin.

Üst düzey varlığı kalıcı olarak silme

Yalnızca Menu, Restaurant ve Service türleri için geçerlidir.

Menu, Restaurant Service

Artımlı güncellemeler: Uygunsuz silme gönderin.

Tam feed'ler: Google tarafından tekrar getirilmesinden önce varlığı tam feed'lerden kaldırdığınızdan emin olun. Aksi takdirde varlık yeniden eklenir.

Belirli bir Service bölgesine yeni teslimat alanı ekleme ServiceArea Ek feed'ler: İlgili ServiceArea öğesini, tüm feed'lerinde olduğu gibi normalde tüm feed'lerinde olduğu gibi polygon, geoRadius veya postalCode ile belirtilen yeni teslimat bölgesiyle birlikte gönderin.
Tahmini teslimat süresini Service olarak güncelleyin ServiceHours Ek feed'ler: ServiceHours, feed'lerle aynı şekilde gönderilir ancak leadTimeMin uygun şekilde güncellenir.
Service için teslimat fiyatlarını güncelleyin Fee Ek feed'ler: price güncellenmiş şekilde tam yayını Fee gönderin.
Service içinde teslimat veya paket servisi saatlerini güncelleyin ServiceHours Ek feed'ler: ServiceHours ve feed'leri, feed'lerle aynı şekilde gönderilir. Ancak, opens ve closes özellikleri de buna göre güncellenir.
Service (min. sipariş tutarını değiştir) Fee Ek feed'ler: minPrice güncellemesiyle eksiksiz Fee mesajı gönderin
MenuItem kalıcı olarak siliniyor Menu Ek feed'ler: MenuItem öğesini feed'lerdeki gibi gönderin ancak parentMenuSectionId boş olmalıdır.

Toplu işler ve artımlı güncellemeler için işleme süresinde Qwiklab

Bir toplu işlem aracılığıyla güncellenen veya silinen bir varlık en iyi çalışma modunda 2 saat içinde, artımlı güncelleme aracılığıyla güncellenen öğe ise 5 dakika içinde işlenir. Eski bir varlık 7 gün içinde silinir.

Google’a şunları gönderebilirsiniz:

  • Envanterinizi güncel tutmak için günde birden fazla toplu iş olması VEYA
  • Envanterinizi güncel tutmak için günde bir toplu iş ve Artımlı API'ler.