UpdateCssProductInput yöntemini kullanarak, ürün cssProductInput.name değerini ve ürün için güncellemek istediğiniz verileri içeren bir JSON gövdesi belirterek mevcut tek bir CSS ürününü güncelleyin.
Not: Bu yöntem yalnızca güncelleme isteğinde sağlanan özellikleri günceller. Yanıt, istekteki özelliklerin aynısını içeriyor ve güncelleme uygulandıktan sonraki tam CssProductInput durumunu yansıtmıyor.
CssProductInput öğesinin nihai durumunu belirlemek için yanıta güvenmemelisiniz.
PATCH https://css.googleapis.com/v1/accounts/{ACCOUNT_ID}/cssProductInputs/{CSS_PRODUCT_ID}
Bir ürüne özellik eklemek veya üründeki bir özelliği değiştirmek için JSON gövdesinde yeni değere sahip alanı belirtin. Gösterilen örnekte, mevcut bir ürün adının başlığı ve başlıktaki teklif bağlantısı, istek gövdesinde sağlanan özellik değeriyle güncellenir. Diğer tüm alanlar değiştirilmez.123/cssProductInputs/de~DE~B019G4
HTTP
PATCH https://css.googleapis.com/v1/accounts/{ACCOUNT_ID}/cssProductInputs/{CSS_PRODUCT_ID}
{
"attributes": {
"title": "new item title",
"headlineOfferLink": "headline-offer.com"
}
}
cURL
curl --location --request PATCH 'https://css.googleapis.com/v1/accounts/{ACCOUNT_ID}/cssProductInputs/{CSS_PRODUCT_ID}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--data '{"attributes":{"numberOfOffers":"99","headlineOfferPrice":{"currency_code":"EUR","amount_micros":"1200000"}}}'
Java
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package shopping.css.samples.v1.cssproducts;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
import com.google.shopping.css.v1.CssProductInput;
import com.google.shopping.css.v1.CssProductInputsServiceClient;
import com.google.shopping.css.v1.CssProductInputsServiceSettings;
import com.google.shopping.css.v1.UpdateCssProductInputRequest;
import shopping.css.samples.utils.Authenticator;
import shopping.css.samples.utils.Config;
/** This class demonstrates how to update a CSS Product for a given Account */
public class UpdateCssProductInput {
private static String getName(String domainId, String productId) {
return String.format("accounts/%s/cssProductInputs/%s", domainId, productId);
}
public static void updateCssProductInput(Config config, String productId) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
String name = getName(config.getDomainId().toString(), productId);
CssProductInputsServiceSettings cssProductInputsServiceSettings =
CssProductInputsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
try (CssProductInputsServiceClient cssProductInputsServiceClient =
CssProductInputsServiceClient.create(cssProductInputsServiceSettings)) {
// Updates the title of the CSS Product leaving the rest of the fields unchanged
UpdateCssProductInputRequest request =
UpdateCssProductInputRequest.newBuilder()
.setCssProductInput(
CssProductInput.newBuilder()
.setName(name)
.setAttributes(
com.google.shopping.css.v1.Attributes.newBuilder()
.setTitle("Attribute Title")
.setHeadlineOfferLink("abc.com")
.setHeadlineOfferCondition("New")
.setDescription("CSS Product description 0")
.build())
.build())
.setUpdateMask(FieldMask.newBuilder().addPaths("title").build())
.build();
System.out.println("Updating CSS Product");
CssProductInput response = cssProductInputsServiceClient.updateCssProductInput(request);
System.out.print("CSS product updated:");
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
final Config config = Config.load();
// The ID uniquely identifying each product. In
// the format languageCode~countryCode~rawProvidedId
final String productId = "de~DE~rawProvidedId17";
updateCssProductInput(config, productId);
}
}
Yalnızca üst düzey alanlar cssProductInputs.update isteğiyle güncellenebilir.
İç içe yerleştirilmiş alanları güncellemek istiyorsanız en üst düzeydeki nesnenin tamamını sağlamanız gerekir.
Gösterilen örnek, üst düzey headlineOfferPrice nesnesini (mevcut bir ürünün iç içe yerleştirilmiş alanları dahil) istek gövdesinde sağlanan ürün verileriyle güncelleyecek ve diğer tüm alanları olduğu gibi bırakacaktır.
PATCH https://css.googleapis.com/v1/accounts/{ACCOUNT_ID}/cssProductInputs/{CSS_PRODUCT_ID}
{
"attributes": {
"headlineOfferPrice": {
"amountMicros": "17.99",
"currencyCode": "USD"
}
}
}
İsteğin gövdesinde yer alan diğer alanlarda değişiklik yapmadan güncellenecek belirli alanları seçmek için bir updateMask belirtebilirsiniz. Bu sorgu dizesi
parametresi, değiştirmeniz gereken alanların virgülle ayrılmış bir listesi olmalıdır.
updateMask, yalnızca adlandırılmış alanların güncelleneceğini onaylamak istediğinizde kullanışlıdır.
updateMask belirtmemek, örnekte gösterildiği gibi, istekteki tüm alanların güncellenecek şekilde işaretlenmesiyle eşdeğerdir. Ancak updateMask açıkça sağlanmıyorsa mevcut özelliklerin silinmesi mümkün değildir.
Gösterilen örnek, mevcut öğenin title bölümünü yalnızca istek gövdesinde sağlanan ilgili ürün verileriyle güncelleyecek ve headline offer link dahil olmak üzere diğer tüm alanları değiştirmeden bırakacaktır.
PATCH https://css.googleapis.com/v1/accounts/{ACCOUNT_ID}/cssProductInputs/{CSS_PRODUCT_ID}?updateMask=title
{
"attributes": {
"title":"item-title",
"headlineOfferLink":"headline-offer-newer.com"
}
}
updateMask listesinde sağlanan ancak isteğin gövdesinde bulunmayan bir alan varsa bu alan, mevcutsa Ürün kaynağında silinir.
Gösterilen örnekte, title alanının değerini kaldırmak için updateMask kullanılır.
PATCH https://css.googleapis.com/v1/accounts/{ACCOUNT_ID}/cssProductInputs/{CSS_PRODUCT_ID}?updateMask=title
ACCOUNT_ID:
Hesabın benzersiz tanımlayıcısı (örneğin, 123).
CSS_PRODUCT_ID:
CSS ürün kimliği (ör. de~DE~B019G4).
title alanını silmek için istek gövdesinden çıkarın. İsteği gövde olmadan veya boş bir gövdeyle de gönderebilirsiniz. updateMask'ta bulunmayan alanlar değişmeden kalır.