ফাইল ভিত্তিক ডেটা সোর্স প্রসেসিং মনিটর এবং ট্রিগার করুন

মার্চেন্ট এপিআই আপনাকে আপনার ফাইল-ভিত্তিক ডেটা উত্সগুলির প্রক্রিয়াকরণের স্থিতি নিরীক্ষণ করতে দেয় এবং ম্যানুয়ালি সেগুলির একটি অবিলম্বে আনার ট্রিগার করতে দেয়৷

সর্বশেষ ফাইল আপলোড অবস্থা পান

একটি ফাইল-ভিত্তিক ডেটা উত্সের জন্য সাম্প্রতিক প্রক্রিয়াকরণ প্রচেষ্টার স্থিতি পরীক্ষা করতে, fileUploads.get পদ্ধতিটি ব্যবহার করুন৷ সাম্প্রতিক আপলোড বা আনয়নের স্থিতি পুনরুদ্ধার করতে আপনাকে অবশ্যই fileuploadId latest উপনাম ব্যবহার করতে হবে।

এই পদ্ধতিটি সম্পর্কে বিশদ প্রদান করে:

  • প্রক্রিয়াকরণ অবস্থা (যেমন, SUCCEEDED , FAILED , IN_PROGRESS )
  • প্রক্রিয়াকৃত আইটেম সংখ্যা
  • কোন সমস্যা সম্মুখীন
  • আপলোড টাইমস্ট্যাম্প
GET https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}/fileUploads/latest

একটি সফল অনুরোধ স্থিতির বিবরণ সহ FileUpload সংস্থান ফেরত দেয়।

এটি সতর্কতা সহ একটি সফল আপলোডের প্রতিক্রিয়ার একটি উদাহরণ৷

{
  "name": "accounts/123456789/dataSources/111222333/fileUploads/latest",
  "dataSourceId": "111222333",
  "processingState": "SUCCEEDED",
  "issues": [
    {
      "title": "Missing recommended attribute",
      "description": "Products are missing a recommended attribute 'description'.",
      "code": "validation/missing_recommended_attribute",
      "count": "5",
      "severity": "WARNING",
      "documentationUri": "https://support.google.com/merchants/answer/6324468"
    }
  ],
  "itemsTotal": "100",
  "itemsCreated": "90",
  "itemsUpdated": "10",
  "uploadTime": "2023-10-26T10:30:00Z"
}

এটি একটি আপলোড প্রগতির জন্য একটি প্রতিক্রিয়ার উদাহরণ৷

{
  "name": "accounts/123456789/dataSources/111222333/fileUploads/latest",
  "dataSourceId": "111222333",
  "processingState": "IN_PROGRESS",
  "uploadTime": "2023-10-26T11:00:00Z"
}

এটি একটি ব্যর্থ আপলোডের জন্য একটি প্রতিক্রিয়ার একটি উদাহরণ৷

{
  "name": "accounts/123456789/dataSources/111222333/fileUploads/latest",
  "dataSourceId": "111222333",
  "processingState": "FAILED",
  "issues": [
    {
      "title": "Invalid file format",
      "description": "The uploaded file is not a valid XML or CSV file.",
      "code": "validation/invalid_file_format",
      "count": "1",
      "severity": "ERROR",
      "documentationUri": "https://support.google.com/merchants/answer/188494"
    }
  ],
  "uploadTime": "2023-10-26T11:15:00Z"
}

নিম্নলিখিত কোড নমুনাগুলি latest উপনাম সহ fileUploads.get পদ্ধতি ব্যবহার করে সাম্প্রতিকতম ফাইল আপলোডের অবস্থা কীভাবে পেতে হয় তা দেখায়৷

জাভা

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.datasources.v1.FileUpload;
import com.google.shopping.merchant.datasources.v1.FileUploadName;
import com.google.shopping.merchant.datasources.v1.FileUploadsServiceClient;
import com.google.shopping.merchant.datasources.v1.FileUploadsServiceSettings;
import com.google.shopping.merchant.datasources.v1.GetFileUploadRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to get the latest data source file upload. */
public class GetFileUploadSample {

  public static void getFileUpload(Config config, String datasourceId) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    FileUploadsServiceSettings fileUploadsServiceSettings =
        FileUploadsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates FileUpload name with datasource id to identify datasource.
    String name =
        FileUploadName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .setDatasource(datasourceId)
            .setFileupload("latest")
            .build()
            .toString();

    // Calls the API and catches and prints any network failures/errors.
    try (FileUploadsServiceClient fileUploadsServiceClient =
        FileUploadsServiceClient.create(fileUploadsServiceSettings)) {

      // The name has the format: accounts/{account}/datasources/{datasource}/fileUploads/latest
      GetFileUploadRequest request = GetFileUploadRequest.newBuilder().setName(name).build();

      System.out.println("Sending get FileUpload request:");
      FileUpload response = fileUploadsServiceClient.getFileUpload(request);

      System.out.println("Retrieved FileUpload below");
      System.out.println(response);
      //   return response;
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // An ID assigned to a datasource by Google.
    String datasourceId = "123456789";

    getFileUpload(config, datasourceId);
  }
}

cURL

curl \
"https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}/fileUploads/latest" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json"

অবিলম্বে একটি ডেটা উত্স আনুন

এই পদ্ধতিটি আপনাকে dataSources.fetch পদ্ধতি ব্যবহার করে একটি ফাইল-ভিত্তিক ডেটা উৎসের অবিলম্বে আনয়ন এবং প্রক্রিয়াকরণের অনুরোধ করতে দেয়। আপনি যদি আপনার সোর্স ফাইল আপডেট করে থাকেন এবং পরবর্তী সময়সূচী আনার চেয়ে Google এটিকে দ্রুত পুনরুদ্ধার করতে চান তাহলে এটি কার্যকর।

POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}:fetch

একটি আনয়ন শুরু করার একটি সফল অনুরোধ একটি খালি প্রতিক্রিয়া প্রদান করে কারণ প্রকৃত প্রক্রিয়াকরণ অ্যাসিঙ্ক্রোনাসভাবে ঘটে৷ আপনি আগে বর্ণিত fileUploads.get পদ্ধতি ব্যবহার করে ফলাফল নিরীক্ষণ করতে পারেন।

নিম্নলিখিত কোড নমুনাগুলি দেখায় যে কীভাবে একটি প্রদত্ত ডেটা উৎসের অবিলম্বে আনার অনুরোধ করতে dataSources.fetch পদ্ধতি ব্যবহার করতে হয়৷

জাভা

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.datasources.v1.DataSourceName;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceClient;
import com.google.shopping.merchant.datasources.v1.DataSourcesServiceSettings;
import com.google.shopping.merchant.datasources.v1.FetchDataSourceRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to fetch a specific FileInput DataSource for a given Merchant Center
 * account.
 */
public class FetchFileDataSourceSample {

  public static void fetchDataSource(Config config, String dataSourceId) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    DataSourcesServiceSettings dataSourcesServiceSettings =
        DataSourcesServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates datasource name to identify datasource.
    String name =
        DataSourceName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .setDatasource(dataSourceId)
            .build()
            .toString();

    // Calls the API and catches and prints any network failures/errors.
    try (DataSourcesServiceClient dataSourcesServiceClient =
        DataSourcesServiceClient.create(dataSourcesServiceSettings)) {

      // The name has the format: accounts/{account}/datasources/{datasource}
      FetchDataSourceRequest request = FetchDataSourceRequest.newBuilder().setName(name).build();

      System.out.println("Sending FETCH DataSource request:");
      // Fetch works ONLY for FileInput DataSource type.
      dataSourcesServiceClient.fetchDataSource(request); // No response returned on success

      System.out.println("Successfully fetched DataSource.");

    } catch (Exception e) {
      System.out.println(e);
      System.exit(1);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    String datasourceId = "<DATASOURCE_ID>"; // Replace with your FileInput DataSource ID.

    fetchDataSource(config, datasourceId);
  }
}

cURL

curl -X POST \
"https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}:fetch" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{}'