Mevcut tek bir CSS ürünü güncellemek için UpdateCssProductInput yöntemini kullanın. Bu yöntemde, ürün cssProductInput.name
ve ürün için güncellemek istediğiniz verileri içeren bir JSON gövdesi belirtirsiniz.
Not: Bu yöntem yalnızca güncelleme isteğinde sağlanan özellikleri günceller. Yanıt, istekle aynı özellikleri içerir ve güncelleme uygulandıktan sonra CssProductInput
durumunun tamamını yansıtmaz.
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 mevcut bir özelliği değiştirmek için JSON gövdesinde yeni değeri içeren 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 ise 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);
}
}
cssProductInputs.update
isteğiyle yalnızca üst düzey alanlar güncellenebilir.
İç içe yerleştirilmiş alanları güncellemek istiyorsanız üst düzey nesnenin tamamını sağlamanız gerekir.
Gösterilen örnekte, mevcut bir ürünün iç içe yerleştirilmiş alanları da dahil olmak üzere üst düzey headlineOfferPrice
nesnesi, istek gövdesinde sağlanan ürün verileriyle güncellenir. Diğer tüm alanlara dokunulmaz.
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 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 belirtmek istediğinizde kullanışlıdır.
updateMask
belirtmemek, örnekte gösterildiği gibi istekteki tüm alanların güncellenecek şekilde işaretlenmesine eşdeğerdir. Ancak updateMask
açıkça sağlanmazsa mevcut özellikleri silmek mümkün değildir.
Gösterilen örnekte, mevcut öğenin title
alanı yalnızca istek gövdesinde sağlanan ilgili ürün verileriyle güncellenir. headline offer link
dahil diğer tüm alanlar ise değiştirilmez.
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 istek gövdesinde bulunmayan bir alan varsa (varsa) bu alan ürün kaynağından silinir.
Gösterilen örnekte, title
alanının değeri updateMask kullanılarak kaldırı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ıdır (ör. 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 içinde olmayan alanlar değişmeden kalır.