এই পৃষ্ঠাটি ব্যাখ্যা করে যে আপনি কীভাবে আপনার পণ্যগুলি প্রোগ্রামগতভাবে আপলোড এবং পরিচালনা করতে পারেন। বণিক পণ্য API ব্যবহার করে, আপনি একটি ডেটা উত্সে একটি পণ্য সন্নিবেশ বা আপডেট করতে পারেন, আপনার অ্যাকাউন্ট থেকে একটি পণ্য পুনরুদ্ধার করতে পারেন এবং একটি ডেটা উত্স থেকে একটি পণ্য মুছতে পারেন৷
বণিক পণ্য API-এ দুটি সংস্থান রয়েছে।
-
productInputs
আপনার পণ্যের ইনপুট অংশ প্রতিনিধিত্ব করে। -
products
আপনার ইনপুট অংশগুলি থেকে তৈরি করা প্রক্রিয়াজাত পণ্যগুলির প্রতিনিধিত্ব করে৷
productInputs
প্রাথমিক এবং সম্পূরক হতে পারে, এটি নির্ভর করে যে এটি একটি প্রাথমিক ডেটা উত্সে আপলোড করা হয়েছে বা একটি পরিপূরক ডেটা উত্সে ৷ প্রতিটি product
একটি একক প্রাথমিক productInput
এবং যেকোন সংখ্যক সম্পূরক productInputs
থেকে তৈরি করা হবে।
আপনি একটি অনলাইন বা স্থানীয় স্টোর ক্যাটালগ তৈরি করতে বণিক পণ্য API ব্যবহার করতে পারেন, এটি এমন পণ্য যা একাধিক শপিং গন্তব্যে প্রদর্শিত হতে পারে। একবার আপনি আপনার Merchant Center অ্যাকাউন্ট তৈরি করার পরে, আপনার প্রথম ডেটা উত্স সেট আপ করার এবং API-এর মাধ্যমে পণ্যগুলির একটি প্রাথমিক সেট আপলোড করার জন্য প্রস্তুত হয়ে গেলে আপনি productInputs
সংস্থানটি ব্যবহার করতে পারেন৷
যদিও বণিকদের একটি PrimaryProductDataSource নামে একটি ফাইল ব্যবহার করে পণ্য আপলোড করার ক্ষমতা রয়েছে, তবে মার্চেন্ট API ব্যবহার করে পণ্য তৈরি এবং মুছে ফেলার বিভিন্ন সুবিধা রয়েছে। এই সুবিধাগুলির মধ্যে রয়েছে দ্রুত প্রতিক্রিয়ার সময় এবং বড় ফাইলগুলি পরিচালনা করার প্রয়োজন ছাড়াই রিয়েল টাইমে পণ্য আপডেট করার ক্ষমতা। এপিআই কলের মাধ্যমে করা পণ্যের পরিবর্তন শপিং ডাটাবেসে দেখাতে কয়েক ঘণ্টা পর্যন্ত সময় লাগতে পারে।
পূর্বশর্ত
আপনার যদি কোনো ডেটা উৎস না থাকে, তাহলে মার্চেন্ট ডেটা সোর্স API বা মার্চেন্ট সেন্টার ব্যবহার করে একটি ডেটা উৎস তৈরি করুন ।
আপনার যদি ইতিমধ্যেই একটি ডেটা উত্স থাকে যা আপনি বণিক কেন্দ্র UI ব্যবহার করে বা API ব্যবহার করে তৈরি করেছেন, তাহলে আপনি আপনার পণ্যগুলি যোগ করতে বণিক পণ্য API ব্যবহার করতে পারেন৷ আপনি যদি পণ্য যোগ করার জন্য কেনাকাটার জন্য সামগ্রী API ব্যবহার করেন, তাহলে কীভাবে মার্চেন্ট পণ্য API দিয়ে শুরু করবেন তা বোঝার জন্য মাইগ্রেশন গাইড পড়ুন।
আপনি শপিং বিজ্ঞাপন এবং বিনামূল্যে তালিকা নীতি মেনে চলার জন্য দায়ী। শপিং বিজ্ঞাপনগুলি এই নীতিগুলি প্রয়োগ করার অধিকার সংরক্ষণ করে এবং যদি আমরা এই নীতিগুলি লঙ্ঘন করে এমন সামগ্রী বা আচরণ খুঁজে পাই তবে উপযুক্তভাবে প্রতিক্রিয়া জানাতে৷
সম্পদ
products
সম্পদ আপনাকে শপিং ডাটাবেস থেকে পণ্য তথ্য পুনরুদ্ধার করতে দেয়।
productInput
রিসোর্সটি কোনও পণ্যের জন্য আপনার জমা দেওয়া ইনপুট ডেটাকে উপস্থাপন করে। এটি এমন পদ্ধতিগুলিও প্রদান করে যা আপনাকে আপডেট করতে দেয়, বা পণ্যের তথ্য মুছে ফেলতে এক সময়ে, বা একাধিকবার ব্যাচ মোডে । একটি productInput
রিসোর্সে অবশ্যই নিম্নলিখিত ক্ষেত্র থাকতে হবে:
-
channel
: পণ্যের চ্যানেল । -
offerId
: পণ্যের অনন্য শনাক্তকারী। -
contentLanguage
: পণ্যের জন্য দুই-অক্ষরের ISO 639-1 ভাষার কোড। -
feedLabel
: লেবেল যা আপনাকে আপনার পণ্যগুলিকে শ্রেণীবদ্ধ করতে এবং সনাক্ত করতে দেয়৷ সর্বাধিক অনুমোদিত অক্ষর হল 20 এবং সমর্থিত অক্ষর হলAZ
,0-9
, হাইফেন এবং আন্ডারস্কোর৷ ফিড লেবেলে কোনো স্পেস অন্তর্ভুক্ত করা উচিত নয়। আরও তথ্যের জন্য, ফিড লেবেল ব্যবহার করা দেখুন।
আপনার অ্যাকাউন্টে একটি পণ্য ইনপুট আপলোড করুন
আপনার অ্যাকাউন্টে একটি পণ্য ইনপুট আপলোড করতে, accounts.productInputs.insert
পদ্ধতি ব্যবহার করুন। আপনাকে অবশ্যই প্রাথমিক বা সম্পূরক ডেটা উৎসের অনন্য শনাক্তকারী পাস করতে হবে।
নিম্নলিখিত নমুনা অনুরোধটি দেখায় যে আপনি কীভাবে আপনার বণিক অ্যাকাউন্টে একটি পণ্য ইনপুট আপলোড করতে accounts.productInputs.insert
পদ্ধতি ব্যবহার করতে পারেন৷ অনুরোধটি শিপিংয়ের মূল্য এবং অঞ্চল এবং উত্পাদনের তারিখ এবং আকারের মতো কাস্টম বৈশিষ্ট্যগুলি সেট করে।
POST https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID} /productInputs:insert?dataSource={DATASOURCE}
{
"name": "{PRODUCT_TITLE} ",
"versionNumber": {VERSION_NUMBER} ,
"contentLanguage": "{CONTENT_LANGUAGE} ",
"feedLabel": "{FEED_LABEL} ",
"offerId": "{OFFER_ID} ",
"channel": "ONLINE",
"attributes": {
"availability": "in stock",
"imageLink": "{IMAGE_LINK} ",
"link": "{PRODUCT_LINK} ",
"brand": "{BRAND_NAME} ",
"price": {
"currencyCode": "{CURRENCY_CODE} ",
"amountMicros": {PRICE}
},
"color": "red",
"productWeight": {
"value": 320,
"unit": "g"
},
"adult": false,
"shipping": [
{
"country": "GB",
"price": {
"amountMicros": {SHIPPING_COST} ,
"currencyCode": "{CURRENCY_CODE_SHIPPING} "
},
"postalCode": "{SHIPPING_POSTALCODE} ",
"service": "",
"region": "{SHIPPING_REGION} ",
"maxHandlingTime": "{MAX_HANDLING_TIME} ",
"minHandlingTime": "{MIN_HANDLING_TIME} ",
"maxTransitTime": "{MAX_TRANSIT_TIME} ",
"minTransitTime": "{MIN_TRANSIT_TIME} "
}
],
"gender": "Female"
},
"customAttributes": [
{
"name": "size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
- {ACCOUNT_ID} : আপনার Merchant Center অ্যাকাউন্টের অনন্য শনাক্তকারী।
- {DATASOURCE} : ডেটা উৎসের অনন্য শনাক্তকারী। এটি
accounts/
{ACCOUNT_ID}/dataSources/
{DATASOURCE_ID} । - {PRODUCT_TITLE} : পণ্যটির নাম।
- {VERSION_NUMBER} : পণ্যটির সংস্করণ নম্বর। ঐচ্ছিক।
- {CONTENT_LANGUAGE} : পণ্যের জন্য দুই-অক্ষরের ISO 639-1 ভাষার কোড। প্রয়োজন।
- {FEED_LABEL} : লেবেল যা আপনাকে আপনার পণ্যগুলিকে শ্রেণীবদ্ধ করতে এবং সনাক্ত করতে দেয়৷ সর্বাধিক অনুমোদিত অক্ষর হল 20 এবং সমর্থিত অক্ষর হল
AZ
,0-9
, হাইফেন এবং আন্ডারস্কোর৷ ফিড লেবেলে কোনো স্পেস অন্তর্ভুক্ত করা উচিত নয়। - {OFFER_ID} : পণ্যের অনন্য শনাক্তকারী। প্রয়োজন।
- {IMAGE_LINK} : আপনার ওয়েবসাইটে পণ্যের ছবির লিঙ্ক। ঐচ্ছিক।
- {PRODUCT_LINK} : আপনার ওয়েবসাইটে পণ্যটির লিঙ্ক। ঐচ্ছিক।
- {CURRENCY_CODE} : ISO 4217 অনুযায়ী তিন-অক্ষরের সংক্ষিপ্ত শব্দ ব্যবহার করে মূল্যের মুদ্রা। ঐচ্ছিক।
- {PRICE} : পণ্যের মূল্য মাইক্রোতে একটি সংখ্যা হিসাবে উপস্থাপিত৷ ঐচ্ছিক।
- {SHIPPING_COST} : নির্দিষ্ট শিপিং মূল্য একটি সংখ্যা হিসাবে উপস্থাপিত৷ ঐচ্ছিক।
- {SHIPPING_POSTALCODE} : পোস্টাল কোডের ব্যাপ্তি যেখানে শিপিং রেট প্রযোজ্য। ঐচ্ছিক।
- {MAX_HANDLING_TIME} : যখন অর্ডার প্রাপ্ত হয় এবং যখন এটি পাঠানো হয় তখন ব্যবসায়িক দিনের মধ্যে সর্বাধিক পরিচালনার সময়৷ ঐচ্ছিক।
- {MIN_HANDLING_TIME} : যখন অর্ডার প্রাপ্ত হয় এবং যখন এটি পাঠানো হয় তখন ব্যবসায়িক দিনে সর্বনিম্ন হ্যান্ডলিং সময়। মান 0 এর মানে হল যে অর্ডারটি প্রাপ্তির দিনেই বিতরণ করা হয়। ঐচ্ছিক।
- {MAX_TRANSIT_TIME} : যখন অর্ডারটি পাঠানো হয়েছে এবং কখন এটি বিতরণ করা হয়েছে তার মধ্যে ব্যবসায়িক দিনের মধ্যে সর্বাধিক ট্রানজিট সময়৷ ঐচ্ছিক।
- {MIN_TRANSIT_TIME} : যখন অর্ডারটি পাঠানো হয়েছে এবং যখন এটি বিতরণ করা হয়েছে তখন ব্যবসায়িক দিনের মধ্যে সর্বনিম্ন ট্রানজিট সময়। মান 0 এর মানে হল যে অর্ডারটি পাঠানোর দিনেই বিতরণ করা হয়। ঐচ্ছিক।
অনুরোধটি সফলভাবে চালানো হলে, আপনি নিম্নলিখিত প্রতিক্রিয়া দেখতে পাবেন:
{
"name": "{PRODUCT_NAME} ",
"product": "{PRODUCT_ID} ",
"channel": "ONLINE",
"offerId": "{OFFER_ID} ",
"contentLanguage": "{CONTENT_LANGUAGE} ",
"feedLabel": "{FEED_LABEL} ",
"versionNumber": "{VERSION_NUMBER} ",
"attributes": {
"link": "{PRODUCT_LINK} ",
"imageLink": "{IMAGE_LINK} ",
"adult": false,
"availability": "in stock",
"brand": "{BRAND_NAME} ",
"color": "red",
"gender": "Female",
"price": {
"amountMicros": "{PRICE} ",
"currencyCode": "{CURRENCY_CODE} "
},
"shipping": [
{
"price": {
"amountMicros": "{SHIPPING_COST} ",
"currencyCode": "{CURRENCY_CODE} "
},
"country": "{SHIPPING_COUNTRY} ",
"region": "{SHIPPING_REGION} ",
"postalCode": "{SHIPPING_POSTALCODE} ",
"minHandlingTime": "{MIN_HANDLING_TIME} ",
"maxHandlingTime": "{MAX_HANDLING_TIME} ",
"minTransitTime": "{MIN_TRANSIT_TIME} ",
"maxTransitTime": "{MAX_TRANSIT_TIME} "
}
],
"productWeight": {
"value": 320,
"unit": "g"
}
},
"customAttributes": [
{
"name": "Size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
আপনার Merchant Center অ্যাকাউন্টে একটি পণ্য যোগ করতে, আপনি google.shopping.merchant.accounts.v1beta.InsertProductInputSample
পদ্ধতি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে।
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.products.v1beta.Attributes;
import com.google.shopping.merchant.products.v1beta.InsertProductInputRequest;
import com.google.shopping.merchant.products.v1beta.ProductInput;
import com.google.shopping.merchant.products.v1beta.ProductInputsServiceClient;
import com.google.shopping.merchant.products.v1beta.ProductInputsServiceSettings;
import com.google.shopping.merchant.products.v1beta.Shipping;
import com.google.shopping.type.Channel.ChannelEnum;
import com.google.shopping.type.Price;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to insert a product input */
public class InsertProductInputSample {
private static String getParent(String accountId) {
return String.format("accounts/%s", accountId);
}
public static void insertProductInput(Config config, String dataSource) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
ProductInputsServiceSettings productInputsServiceSettings =
ProductInputsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent to identify where to insert the product.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (ProductInputsServiceClient productInputsServiceClient =
ProductInputsServiceClient.create(productInputsServiceSettings)) {
// Price to be used for shipping ($33.45).
Price price = Price.newBuilder().setAmountMicros(33_450_000).setCurrencyCode("USD").build();
Shipping shipping =
Shipping.newBuilder()
.setPrice(price)
.setCountry("GB")
.setService("1st class post")
.build();
Shipping shipping2 =
Shipping.newBuilder()
.setPrice(price)
.setCountry("FR")
.setService("1st class post")
.build();
Attributes attributes =
Attributes.newBuilder()
.setTitle("A Tale of Two Cities")
.setDescription("A classic novel about the French Revolution")
.setLink("https://exampleWebsite.com/tale-of-two-cities.html")
.setImageLink("https://exampleWebsite.com/tale-of-two-cities.jpg")
.setAvailability("in stock")
.setCondition("new")
.setGoogleProductCategory("Media > Books")
.setGtin(0, "9780007350896")
.addShipping(shipping)
.addShipping(shipping2)
.build();
// The datasource can be either a primary or supplemental datasource.
InsertProductInputRequest request =
InsertProductInputRequest.newBuilder()
.setParent(parent)
// You can only insert products into datasource types of Input "API" and "FILE", and
// of Type "Primary" or "Supplemental."
// This field takes the `name` field of the datasource.
.setDataSource(dataSource)
// If this product is already owned by another datasource, when re-inserting, the
// new datasource will take ownership of the product.
.setProductInput(
ProductInput.newBuilder()
.setChannel(ChannelEnum.ONLINE)
.setContentLanguage("en")
.setFeedLabel("label")
.setOfferId("sku123")
.setAttributes(attributes)
.build())
.build();
System.out.println("Sending insert ProductInput request");
ProductInput response = productInputsServiceClient.insertProductInput(request);
System.out.println("Inserted ProductInput Name below");
// The last part of the product name will be the product ID assigned to a product by Google.
// Product ID has the format `channel~contentLanguage~feedLabel~offerId`
System.out.println(response.getName());
System.out.println("Inserted Product Name below");
System.out.println(response.getProduct());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// Identifies the data source that will own the product input.
String dataSource = "accounts/" + config.getAccountId() + "/dataSources/{INSERT_DATASOURCE_ID}";
insertProductInput(config, dataSource);
}
}
আপনার অ্যাকাউন্ট থেকে একটি প্রক্রিয়াজাত পণ্য পুনরুদ্ধার করুন
আপনার অ্যাকাউন্ট থেকে একটি প্রক্রিয়াজাত পণ্য পুনরুদ্ধার করতে, accounts.products.get
পদ্ধতি ব্যবহার করুন। প্রক্রিয়াজাত পণ্য সন্নিবেশের পরে প্রদর্শিত হতে কয়েক মিনিট সময় লাগতে পারে।
GET https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID} /products/{PRODUCT_NAME}
আপনি যে পণ্য ইনপুট সংস্থানটি মুছতে চান তার নামের সাথে {PRODUCT_NAME} প্রতিস্থাপন করুন৷ উদাহরণস্বরূপ, online~en~US~sku123
।
আপনি accounts.productInputs.insert
এর প্রতিক্রিয়াতে product
ক্ষেত্র থেকে প্রক্রিয়াকৃত পণ্যের সংস্থানের নাম পেতে পারেন।
প্রদত্ত বণিক কেন্দ্র অ্যাকাউন্টের জন্য একটি একক পণ্য পুনরুদ্ধার করতে, আপনি google.shopping.merchant.accounts.v1beta.GetProductRequest
পদ্ধতি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে।
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.products.v1beta.GetProductRequest;
import com.google.shopping.merchant.products.v1beta.Product;
import com.google.shopping.merchant.products.v1beta.ProductsServiceClient;
import com.google.shopping.merchant.products.v1beta.ProductsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to get a single product for a given Merchant Center account */
public class GetProductSample {
public static void getProduct(Config config, String product) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
ProductsServiceSettings productsServiceSettings =
ProductsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Calls the API and catches and prints any network failures/errors.
try (ProductsServiceClient productsServiceClient =
ProductsServiceClient.create(productsServiceSettings)) {
// The name has the format: accounts/{account}/products/{productId}
GetProductRequest request = GetProductRequest.newBuilder().setName(product).build();
System.out.println("Sending get product request:");
Product response = productsServiceClient.getProduct(request);
System.out.println("Retrieved Product below");
System.out.println(response);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The name of the `product`, returned after a `Product.insert` request. We recommend
// having stored this value in your database to use for all future requests.
String product = "accounts/{datasource}/products/{productId}";
getProduct(config, product);
}
}
আপনার অ্যাকাউন্ট থেকে একটি পণ্য ইনপুট মুছুন
আপনার অ্যাকাউন্ট থেকে একটি পণ্য ইনপুট মুছে ফেলতে, accounts.productInputs.delete
পদ্ধতি ব্যবহার করুন। বণিক পণ্য API ব্যবহার করে একটি পণ্য মুছে ফেলার জন্য আপনাকে পণ্যটি যে প্রাথমিক বা পরিপূরক ডেটা উৎসের অনন্য শনাক্তকারীকে পাস করতে হবে।
নিম্নলিখিত অনুরোধটি দেখায় কিভাবে আপনি একটি পণ্য ইনপুট মুছে ফেলার জন্য accounts.productInputs.delete
পদ্ধতি ব্যবহার করতে পারেন:
DELETE https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID} /productInputs/{PRODUCT_NAME} ?dataSource=accounts/{ACCOUNT_ID} /dataSources/{DATASOURCE_ID}
আপনি যে পণ্য ইনপুট সংস্থানটি মুছতে চান তার নামের সাথে {PRODUCT_NAME} প্রতিস্থাপন করুন৷ উদাহরণস্বরূপ, online~en~US~sku123
।
একটি প্রদত্ত বণিক কেন্দ্র অ্যাকাউন্টের জন্য একটি পণ্য মুছে ফেলার জন্য, আপনি google.shopping.merchant.accounts.v1beta.DeleteProductInputRequest
পদ্ধতি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে।
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.products.v1beta.DeleteProductInputRequest;
import com.google.shopping.merchant.products.v1beta.ProductInputName;
import com.google.shopping.merchant.products.v1beta.ProductInputsServiceClient;
import com.google.shopping.merchant.products.v1beta.ProductInputsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to delete a product for a given Merchant Center account */
public class DeleteProductInputSample {
public static void deleteProductInput(Config config, String productId, String dataSource)
throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
ProductInputsServiceSettings productInputsServiceSettings =
ProductInputsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates product name to identify product.
String name =
ProductInputName.newBuilder()
.setAccount(config.getAccountId().toString())
.setProductinput(productId)
.build()
.toString();
// Calls the API and catches and prints any network failures/errors.
try (ProductInputsServiceClient productInputsServiceClient =
ProductInputsServiceClient.create(productInputsServiceSettings)) {
DeleteProductInputRequest request =
DeleteProductInputRequest.newBuilder().setName(name).setDataSource(dataSource).build();
System.out.println("Sending deleteProductInput request");
productInputsServiceClient.deleteProductInput(request); // no response returned on success
System.out.println(
"Delete successful, note that it may take a few minutes for the delete to update in"
+ " the system. If you make a products.get or products.list request before a few"
+ " minutes have passed, the old product data may be returned.");
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// An ID assigned to a product by Google. In the format
// channel~contentLanguage~feedLabel~offerId
String productId = "online~en~label~sku123";
// The name of the dataSource from which to delete the product. If it is a primary feed, this
// will delete the product completely. If it's a supplemental feed, it will only delete the
// product information from that feed, but the product will still be available from the primary
// feed.
String dataSource = "accounts/{account}/dataSources/{dataSource}";
deleteProductInput(config, productId, dataSource);
}
}
আপনার অ্যাকাউন্ট থেকে পণ্য তালিকা
আপনার অ্যাকাউন্টে প্রক্রিয়াকৃত পণ্য তালিকাভুক্ত করতে, accounts.products.list
পদ্ধতি ব্যবহার করুন, যেমনটি নিম্নলিখিত অনুরোধে দেখানো হয়েছে।
GET https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID} /products
একটি প্রদত্ত বণিক কেন্দ্র অ্যাকাউন্টের জন্য একটি পণ্য তালিকাভুক্ত করতে, আপনি google.shopping.merchant.accounts.v1beta.ListProductsRequest
পদ্ধতি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে।
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.products.v1beta.ListProductsRequest;
import com.google.shopping.merchant.products.v1beta.Product;
import com.google.shopping.merchant.products.v1beta.ProductsServiceClient;
import com.google.shopping.merchant.products.v1beta.ProductsServiceClient.ListProductsPagedResponse;
import com.google.shopping.merchant.products.v1beta.ProductsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to list all the products for a given merchant center account */
public class ListProductsSample {
private static String getParent(String accountId) {
return String.format("accounts/%s", accountId);
}
public static void listProducts(Config config) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
ProductsServiceSettings productsServiceSettings =
ProductsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent to identify the account from which to list all products.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (ProductsServiceClient productsServiceClient =
ProductsServiceClient.create(productsServiceSettings)) {
// The parent has the format: accounts/{account}
ListProductsRequest request = ListProductsRequest.newBuilder().setParent(parent).build();
System.out.println("Sending list products request:");
ListProductsPagedResponse response = productsServiceClient.listProducts(request);
int count = 0;
// Iterates over all rows in all pages and prints the datasource in each row.
// Automatically uses the `nextPageToken` if returned to fetch all pages of data.
for (Product product : response.iterateAll()) {
System.out.println(product); // The product includes the `productStatus` field
// That shows approval and disapproval information.
count++;
}
System.out.print("The following count of products were returned: ");
System.out.println(count);
} catch (Exception e) {
System.out.println("An error has occured: ");
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
listProducts(config);
}
}