কেনাকাটার জন্য সামগ্রী API থেকে মার্চেন্ট API-এ স্থানান্তর করুন৷

এই নির্দেশিকাটি ব্যবসায়িক ডেটা পরিচালনার জন্য শপিংয়ের জন্য কন্টেন্ট API থেকে মার্চেন্ট API-তে স্থানান্তর প্রক্রিয়া ব্যাখ্যা করে।

শপিং বাস্তবায়নের জন্য আপনার বিদ্যমান কন্টেন্ট API কে Merchant API তে স্থানান্তর করতে আপনি এই নির্দেশিকাটি ব্যবহার করতে পারেন। Merchant API এবং এর সাব-API গুলির বিশদ বিবরণ সম্পর্কে আরও তথ্যের জন্য, Merchant API ডিজাইন দেখুন।

শুরু করুন

মার্চেন্ট এপিআই ব্যবহার শুরু করতে, আপনার অনুরোধের URL গুলি নিম্নলিখিত ফর্ম্যাটে পরিবর্তন করুন:

https://merchantapi.googleapis.com/{SUB_API}/{VERSION}/{RESOURCE_NAME}:{METHOD}

মার্চেন্ট এপিআই ব্যবহার করার জন্য, আপনাকে অবশ্যই আপনার মার্চেন্ট সেন্টার অ্যাকাউন্ট এবং আপনার গুগল ক্লাউড প্রোজেক্টকে ডেভেলপার রেজিস্ট্রেশন পদ্ধতি ব্যবহার করে লিঙ্ক করতে হবে, যেমন:

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/developerRegistration:registerGcp

{
  developer_email:"example-email@example.com"
}

আরও তথ্যের জন্য, কুইকস্টার্ট গাইড এবং মার্চেন্ট API রেফারেন্স দেখুন।

শপিংয়ের জন্য কন্টেন্ট এপিআই-এর উন্নতি

মার্চেন্ট এপিআই আপনাকে মার্চেন্ট সেন্টারে কর্মপ্রবাহ স্বয়ংক্রিয় এবং স্ট্রিমলাইন করতে দেয় এবং শপিংয়ের জন্য কন্টেন্ট এপিআই-এর তুলনায় উন্নত ক্ষমতা প্রদান করে।

মূল ব্যবহারের ক্ষেত্রে:

  • স্বয়ংক্রিয় অ্যাকাউন্ট ব্যবস্থাপনা
  • স্বয়ংক্রিয় পণ্য ব্যবস্থাপনা
  • স্বয়ংক্রিয় ইনভেন্টরি ব্যবস্থাপনা
  • কাস্টম রিপোর্টিং

মূল উন্নতির ক্ষেত্রগুলি:

কী পরিবর্তন হয়েছে:

  • প্রতি API কলে সর্বাধিক pageSize ২৫০ থেকে ১০০০ সারি পর্যন্ত বৃদ্ধি করা হয়েছে।
  • DataSources তৈরির পরে পণ্য সন্নিবেশ, প্রচার, পণ্য পর্যালোচনা এবং মার্চেন্ট পর্যালোচনার জন্য যে বিলম্ব ছিল তা ঠিক করা হয়েছে।

কী আসছে:

  • রিপোর্টিং সাব-এপিআই- এর অধীনে productView টেবিলে clickPotentialRank এর জন্য একটি আপডেট করা সংজ্ঞা চালু করা হয়েছে: * clickPotential এর উপর ভিত্তি করে পণ্যের র‍্যাঙ্কিং 1 থেকে 1000-এর মধ্যে স্বাভাবিক করা হয়েছে।
    • কম clickPotentialRank এর পণ্যগুলিতে এখনও সার্চ কোয়েরির শর্ত পূরণকারী ব্যবসায়ীর পণ্যগুলির মধ্যে সর্বোচ্চ ক্লিক সম্ভাবনা রয়েছে। এটি একটি অবিচ্ছেদ্য পরিবর্তন যা ১ জুলাই, ২০২৫ তারিখে চালু হতে পারে।
  • AccountRelationship রিসোর্সে AccountIdAlias ​​জটিল অ্যাকাউন্ট কাঠামো আরও ভালোভাবে পরিচালনা করা সম্ভব করে তোলে। উদাহরণস্বরূপ, মার্কেটপ্লেসগুলি মার্চেন্টের অভ্যন্তরীণ আইডি, যেমন অ্যাকাউন্ট আইডি, এর পরিবর্তে একটি ব্যবহারকারী-সংজ্ঞায়িত উপনাম ব্যবহার করে।

জিআরপিসি সাপোর্ট

মার্চেন্ট API gRPC এবং REST সমর্থন করে। আপনি একই সাথে মার্চেন্ট API এর জন্য gRPC এবং শপিংয়ের জন্য Content API এর জন্য REST ব্যবহার করতে পারেন।

মার্চেন্ট এপিআই ক্লায়েন্ট লাইব্রেরিগুলির জন্য gRPC প্রয়োজন।

আরও তথ্যের জন্য, gRPC ওভারভিউ দেখুন।

সামঞ্জস্য

এই নির্দেশিকাটি সমগ্র মার্চেন্ট API-তে প্রযোজ্য সাধারণ পরিবর্তনগুলি বর্ণনা করে।

মার্চেন্ট এপিআইটি বিদ্যমান কন্টেন্ট এপিআই ফর শপিং বৈশিষ্ট্যগুলির সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।

উদাহরণস্বরূপ, আপনি আপনার বিদ্যমান কন্টেন্ট API for Shopping v2.1 products বাস্তবায়নের পাশাপাশি Merchant Inventories API ব্যবহার করতে পারেন। আপনি একটি নতুন স্থানীয় পণ্য (যা আপনি স্থানীয় দোকানে বিক্রি করেন) আপলোড করতে Content API for Shopping ব্যবহার করতে পারেন, তারপর সেই পণ্যের জন্য স্টোরের তথ্য পরিচালনা করতে Merchant Inventories API LocalInventory রিসোর্স ব্যবহার করতে পারেন।

কন্টেন্ট API-এর উন্নতি

মার্চেন্ট এপিআই নিম্নলিখিত ক্ষেত্রগুলিতে কন্টেন্ট এপিআইয়ের তুলনায় উন্নত:

এই পরিবর্তনগুলি আরও বিশদে বিবেচনা করুন।

সংস্করণ এবং উপ-API গুলি

মার্চেন্ট এপিআই ভার্সনিং এবং সাব-এপিআই- এর ধারণাগুলি উপস্থাপন করে। এর মডুলার ডিজাইন ব্যবহারের সহজতা উন্নত করে, আপনার প্রয়োজনীয় সাব-এপিআই-এর উপর ফোকাস করার সুযোগ করে দেয় এবং ভবিষ্যতে আরও নতুন সংস্করণে স্থানান্তর সহজ করে তোলে। আপনার অনুরোধের ইউআরএলগুলির সাথে ভার্সনিং প্রয়োগ করা হবে। কৌশলটি গুগল বিজ্ঞাপন এপিআই অভিজ্ঞতার অনুরূপ।

আরও জোরালো অনুরোধ

মার্চেন্ট API URL অনুরোধগুলিতে মার্চেন্ট API কল করার জন্য আরও প্যারামিটারের প্রয়োজন হয়। এর মধ্যে রয়েছে রিসোর্স, সংস্করণ, নাম (শনাক্তকারী) এবং পদ্ধতি (অ-মানক পদ্ধতি)। এই সম্পর্কে আরও জানতে, অ্যাকাউন্ট এবং পণ্য শনাক্তকারী এবং উদাহরণ দেখুন।

শনাক্তকারীদের জন্য AIP নীতিমালা

যদিও শপিংয়ের জন্য Content API রিসোর্স সনাক্ত করতে আইডি ব্যবহার করে (উদাহরণস্বরূপ, merchantId , productId ), Merchant API AIP এর সাথে সারিবদ্ধ হওয়ার জন্য একটি name শনাক্তকারী ব্যবহার করে ( API উন্নতির নীতি দেখুন)।

{name} শনাক্তকারীতে রিসোর্স শনাক্তকারী এবং এর প্যারেন্ট (অথবা সম্ভাব্য একাধিক প্যারেন্ট) অন্তর্ভুক্ত থাকে, যাতে {name} accounts/{account}/products/{product} সমান হয়।

সমস্ত পঠন এবং লেখার কলগুলি name ক্ষেত্রটিকে রিসোর্স শনাক্তকারী হিসাবে ফেরত দেয়।

{name} -এ সংগ্রহ শনাক্তকারী accounts/ এবং products/ ও অন্তর্ভুক্ত রয়েছে।

মার্চেন্ট এপিআই একটি মার্চেন্ট সেন্টার আইডি বোঝাতে {account} এবং পণ্য শনাক্তকারী বোঝাতে {product} ব্যবহার করে।

উদাহরণস্বরূপ, একটি রিসোর্স থেকে name পুনরুদ্ধার করার জন্য একটি getName() পদ্ধতি প্রয়োগ করুন, এবং মার্চেন্ট এবং রিসোর্স আইডি থেকে name তৈরি করার পরিবর্তে আউটপুটটিকে একটি ভেরিয়েবল হিসাবে সংরক্ষণ করুন।

আপনার কলগুলিতে name ফিল্ডটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ এখানে দেওয়া হল:

   POST https://merchantapi.googleapis.com/inventories/v1/{PARENT}/regionalInventories:insert

Shopping products.get অনুরোধের জন্য Content API কীভাবে পরিবর্তিত হয় তা টেবিলটি দেখায়:

কেনাকাটার জন্য কন্টেন্ট API মার্চেন্ট এপিআই
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} GET https://merchantapi.googleapis.com/products/v1/{name}

আরও বিস্তারিত জানার জন্য, আইডেন্টিফায়ার পরিবর্তনগুলি পর্যালোচনা করুন।

আরেকটি উদাহরণ হিসেবে, Merchant API ব্যবহার করে Merchant Center ID 4321 থেকে en~US~1234 আইডেন্টিফায়ার সহ একটি পণ্য পুনরুদ্ধার করা নিম্নলিখিতটির মতো দেখাবে:

    GET
    https://merchantapi.googleapis.com/products/v1/accounts/4321/products/online~en~US~1234

যেখানে {name} accounts/4321/products/en~US~1234 এর সমান। এই নতুন নাম ক্ষেত্রটি Merchant API-তে সমস্ত পঠন এবং লেখার কলের জন্য রিসোর্স শনাক্তকারী হিসাবে ফিরে আসে।

কন্টেন্ট এপিআই ফর শপিং-এ, পণ্যের নামের মধ্যে একটি কোলন (:) একটি ডিলিমিটার নির্দেশ করে যেখানে মার্চেন্ট এপিআই-তে, একটি টিল্ড (~) এই ফাংশনটি সম্পাদন করে। মার্চেন্ট এপিআই শনাক্তকারীতে channel অংশ থাকে না।

উদাহরণস্বরূপ, কেনাকাটার জন্য Content API-তে পণ্য আইডি:

channel:contentLanguage:feedLabel:offerId

মার্চেন্ট এপিআই-তে নিম্নলিখিতটি হয়ে যায়:

contentLanguage~feedLabel~offerId

শিশু সম্পদের জন্য অভিভাবক ক্ষেত্র

মার্চেন্ট API-তে, সকল চাইল্ড রিসোর্সের একটি parent ফিল্ড থাকে। আপনি সম্পূর্ণ প্যারেন্ট রিসোর্স পাস করার পরিবর্তে, চাইল্ডকে সন্নিবেশ করার জন্য রিসোর্সের {name} নির্দিষ্ট করতে parent ফিল্ড ব্যবহার করতে পারেন। আপনি list সহ parent ফিল্ডও ব্যবহার করতে পারেন।

উদাহরণস্বরূপ, একটি প্রদত্ত পণ্যের স্থানীয় ইনভেন্টরি তালিকাভুক্ত করতে, list পদ্ধতির জন্য parent ক্ষেত্রে পণ্যের name উল্লেখ করুন। এই ক্ষেত্রে, প্রদত্ত product হল স্থানীয় ইনভেন্টরি রিসোর্সের parent

    GET
    https://merchantapi.googleapis.com/inventories/v1/{parent}/localInventories

পণ্য en~US~1234' এবং অ্যাকাউন্ট 4321 এর জন্য সমস্ত স্থানীয় ইনভেন্টরি পুনরুদ্ধার করতে অনুরোধটি এরকম দেখাবে

    GET
    https://merchantapi.googleapis.com/inventories/v1/accounts/4321/products/online~en~US~1234/localInventories</code>

প্যারেন্ট হল accounts/{account}/products/{product} । মনে রাখবেন যে এই ক্ষেত্রে localInventories রিসোর্সের নাম শনাক্তকারীতে দুটি প্যারেন্ট অন্তর্ভুক্ত রয়েছে ( accounts/ and products/ ), কারণ অ্যাকাউন্টটি হল পণ্য রিসোর্সের প্যারেন্ট।

সাধারণ এনাম

সাধারণ এনামের ব্যবহার আরও ধারাবাহিকতা প্রদান করে।

Destination.DestinationEnum ক্ষেত্রটি আপনার রিসোর্সগুলি প্রদর্শন করার জন্য কোন পৃষ্ঠতলগুলিতে প্রদর্শিত হবে তা নির্দিষ্ট করে। DestinationEnum গন্তব্য লক্ষ্যবস্তুর জন্য সমস্ত উপলব্ধ মান তালিকাভুক্ত করে এবং উপ-API গুলিতে একত্রিত হয়, উদাহরণস্বরূপ প্রচারের বৈশিষ্ট্যগুলির জন্য।

ReportingContext.ReportingContextEnum ফিল্ডটি সেই প্রেক্ষাপটকে প্রতিনিধিত্ব করে যেখানে আপনার অ্যাকাউন্ট এবং পণ্যের সমস্যাগুলি প্রযোজ্য। এই ফিল্ডটি রিপোর্টিং পদ্ধতিগুলিতে ব্যবহৃত হয় (উদাহরণস্বরূপ, IssueSeverityPerReportingContext এর জন্য)।

পিছনের দিকে সামঞ্জস্য

আপনি যখন মার্চেন্ট API ব্যবহার শুরু করবেন, তখন আপনার বিদ্যমান কন্টেন্ট API ফর শপিং ইন্টিগ্রেশন কোনও বাধা ছাড়াই কাজ করতে থাকবে। আরও তথ্যের জন্য, সামঞ্জস্যতা দেখুন।

একবার আপনি আপনার সাব-এপিআইগুলিকে মার্চেন্ট এপিআই-তে স্থানান্তরিত করলে, আমরা আপনাকে আপনার মাইগ্রেটেড সাব-এপিআই-এর জন্য শুধুমাত্র মার্চেন্ট এপিআই ব্যবহার করার পরামর্শ দিচ্ছি।

রিমোট প্রসিডিউর কল (gRPC) প্রাপ্যতা

মার্চেন্ট এপিআই-এর সাথে একীভূত করার জন্য gRPC হল নতুন প্রস্তাবিত উপায়।

এর সুবিধার মধ্যে রয়েছে:

কাস্টম ব্যাচিং বিল্ট-ইন ব্যাচিং হয়ে যায়

অ্যাসিঙ্ক্রোনাস কল ব্যবহার করলে ব্যাচিং আরও দক্ষতার সাথে কাজ করে। মার্চেন্ট API-তে ব্যাচিং অর্জনের জন্য সমান্তরাল কল ব্যবহার এবং সমবর্তী অনুরোধের জন্য কোড কীভাবে রিফ্যাক্টর করবেন সে সম্পর্কে আরও জানুন।

আপনার মাইগ্রেশন দ্রুত করার জন্য, আমরা ক্লায়েন্ট লাইব্রেরিগুলি সুপারিশ করি।

মার্চেন্ট API, শপিংয়ের জন্য সামগ্রী API-তে বৈশিষ্ট্যযুক্ত customBatch পদ্ধতি সমর্থন করে না। পরিবর্তে, একবারে একাধিক অনুরোধ পাঠান বা আপনার কলগুলি অ্যাসিঙ্ক্রোনাসভাবে কার্যকর করুন দেখুন।

নিম্নলিখিত জাভা নমুনাটি দেখায় যে কীভাবে একটি পণ্য ইনপুট সন্নিবেশ করাতে হয়।

   import com.google.api.core.ApiFuture;
import com.google.api.core.ApiFutureCallback;
import com.google.api.core.ApiFutures;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.shopping.merchant.products.v1.Availability;
import com.google.shopping.merchant.products.v1.Condition;
import com.google.shopping.merchant.products.v1.InsertProductInputRequest;
import com.google.shopping.merchant.products.v1.ProductAttributes;
import com.google.shopping.merchant.products.v1.ProductInput;
import com.google.shopping.merchant.products.v1.ProductInputsServiceClient;
import com.google.shopping.merchant.products.v1.ProductInputsServiceSettings;
import com.google.shopping.merchant.products.v1.Shipping;
import com.google.shopping.type.Price;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to insert a product input */
public class InsertProductInputAsyncSample {

  private static String getParent(String accountId) {
    return String.format("accounts/%s", accountId);
  }

  private static String generateRandomString() {
    String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    Random random = new Random();
    StringBuilder sb = new StringBuilder(8);
    for (int i = 0; i < 8; i++) {
      sb.append(characters.charAt(random.nextInt(characters.length())));
    }
    return sb.toString();
  }

  private static ProductInput createRandomProduct() {
    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();

    ProductAttributes attributes =
        ProductAttributes.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(Availability.IN_STOCK)
            .setCondition(Condition.NEW)
            .setGoogleProductCategory("Media > Books")
            .addGtins("9780007350896")
            .addShipping(shipping)
            .addShipping(shipping2)
            .build();

    return ProductInput.newBuilder()
        .setContentLanguage("en")
        .setFeedLabel("CH")
        .setOfferId(generateRandomString())
        .setProductAttributes(attributes)
        .build();
  }

  public static void asyncInsertProductInput(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)) {

      // Creates five insert product input requests with random product IDs.
      List<InsertProductInputRequest> requests = new ArrayList<>(5);
      for (int i = 0; i < 5; i++) {
        InsertProductInputRequest request =
            InsertProductInputRequest.newBuilder()
                .setParent(parent)
                // You can only insert products into datasource types of Input "API", 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(createRandomProduct())
                .build();

        requests.add(request);
      }

      System.out.println("Sending insert product input requests");
      List<ApiFuture<ProductInput>> futures =
          requests.stream()
              .map(
                  request ->
                      productInputsServiceClient.insertProductInputCallable().futureCall(request))
              .collect(Collectors.toList());

      // Creates callback to handle the responses when all are ready.
      ApiFuture<List<ProductInput>> responses = ApiFutures.allAsList(futures);
      ApiFutures.addCallback(
          responses,
          new ApiFutureCallback<List<ProductInput>>() {
            @Override
            public void onSuccess(List<ProductInput> results) {
              System.out.println("Inserted products below");
              System.out.println(results);
            }

            @Override
            public void onFailure(Throwable throwable) {
              System.out.println(throwable);
            }
          },
          MoreExecutors.directExecutor());

    } 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/{datasourceId}";

    asyncInsertProductInput(config, dataSource);
  }
}

আপনি যদি কন্টেন্ট API-তে customBatch ব্যবহার করেন এবং Merchant API-এর জন্য এই বৈশিষ্ট্যটির প্রয়োজন হয়, তাহলে আপনার প্রতিক্রিয়ায় কেন তা আমাদের জানান।

এক্সক্লুসিভ বৈশিষ্ট্য

ভবিষ্যতের বৈশিষ্ট্যগুলি শুধুমাত্র মার্চেন্ট API-তে প্রদর্শিত হবে। (কিছু ব্যতিক্রম থাকবে, যেমন ২০২৫ সালের বার্ষিক ফিড স্পেক ।)

মার্চেন্ট এপিআই-এর একচেটিয়া বৈশিষ্ট্যগুলির মধ্যে রয়েছে

  • পর্যালোচনা API। আপনার পণ্য এবং দোকানের রেটিং বাস্তবায়ন এবং পরিচালনা করতে পর্যালোচনা ব্যবহার করুন। আরও তথ্যের জন্য বিক্রেতা পর্যালোচনা এবং পণ্য পর্যালোচনা দেখুন।
  • বিজ্ঞপ্তি : অ্যাকাউন্টের পণ্য ডেটাতে পরিবর্তনের জন্য পুশ বিজ্ঞপ্তি পেতে সাইন আপ করুন।

দাম

মার্চেন্ট কমন প্যাকেজে Price ক্ষেত্রে কী পরিবর্তন করা হয়েছে তা এখানে দেওয়া হল:

কেনাকাটার জন্য কন্টেন্ট API মার্চেন্ট এপিআই
পরিমাণ ক্ষেত্র value:string amountMicros:int64
মুদ্রা ক্ষেত্র currency:string currencyCode:string

Price পরিমাণ এখন মাইক্রোতে রেকর্ড করা হয়, যেখানে ১ মিলিয়ন মাইক্রো আপনার মুদ্রার স্ট্যান্ডার্ড ইউনিটের সমতুল্য।

শপিংয়ের জন্য কন্টেন্ট এপিআই-তে, Price ছিল একটি স্ট্রিং আকারে একটি দশমিক সংখ্যা।

পরিমাণ ক্ষেত্রের নাম value থেকে amountMicros এ পরিবর্তিত হয়েছে।

মুদ্রা ক্ষেত্রের নাম currency থেকে currencyCode পরিবর্তিত হয়েছে। ফর্ম্যাটটি ISO 4217 হিসাবে অব্যাহত রয়েছে।

সর্বশেষ আপডেট এবং ঘোষণা

আরও বিস্তৃত আপডেটের জন্য, প্রতিটি সাব-এপিআই-এর জন্য নির্দিষ্ট রিলিজ নোটগুলি দেখুন। আরও নিয়মিত সমষ্টিগত মার্চেন্ট এপিআই আপডেটের জন্য, আমাদের সর্বশেষ আপডেটগুলি পর্যালোচনা করুন।

আরও সুনির্দিষ্ট বিবরণের জন্য এবং মার্চেন্ট এপিআই সম্পর্কে আরও জানতে, আরও বিস্তারিত জানার জন্য আমাদের ডেভেলপার সাইটের ওভারভিউ এবং সামগ্রিক মাইগ্রেশন নির্দেশিকা দেখুন।

মার্চেন্ট API এবং এর সাব-API সম্পর্কে বিস্তারিত জানতে মার্চেন্ট API ডিজাইন দেখুন।