Content API for Shopping से Merchant API पर माइग्रेट करना

इस गाइड में, कारोबार के डेटा को मैनेज करने के लिए, Content API for Shopping से Merchant API पर माइग्रेट करने की प्रोसेस के बारे में बताया गया है.

इस गाइड का इस्तेमाल करके, Content API for Shopping के मौजूदा सेटअप को Merchant API पर माइग्रेट किया जा सकता है. Merchant API और इसके सब-एपीआई के बारे में ज़्यादा जानने के लिए, Merchant API का डिज़ाइन देखें.

अपनी प्रोफ़ाइल बनाना शुरू करें

Merchant API का इस्तेमाल शुरू करने के लिए, अपने अनुरोध के यूआरएल को इस फ़ॉर्मैट में बदलें:

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

Merchant API का इस्तेमाल करने के लिए, आपको अपने Merchant Center खाते और Google Cloud प्रोजेक्ट को लिंक करना होगा. इसके लिए, डेवलपर के तौर पर रजिस्टर करने का तरीका अपनाएं. यह तरीका यहां बताया गया है:

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

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

ज़्यादा जानकारी के लिए, क्विकस्टार्ट गाइड और Merchant API का रेफ़रंस देखें.

Content API for Shopping की तुलना में Merchant Center API में किए गए सुधार

Merchant API की मदद से, Merchant Center में वर्कफ़्लो को अपने-आप होने के लिए सेट किया जा सकता है और उन्हें बेहतर बनाया जा सकता है. साथ ही, यह Content API for Shopping की तुलना में बेहतर सुविधाएं देता है.

इस्तेमाल के मुख्य उदाहरण:

  • खाते का ऑटोमेटेड मैनेजमेंट
  • प्रॉडक्ट अपने-आप मैनेज होने की सुविधा
  • अपने-आप होने वाला इन्वेंट्री मैनेजमेंट
  • कस्टम रिपोर्टिंग

इनमें सुधार की ज़रूरत है:

  • नई सुविधाओं वाले सब-एपीआई, जिनमें ये शामिल हैं:
    • ऑर्डर ट्रैकिंग की सुविधा, कारोबार के ऑर्डर ट्रैकिंग इतिहास को ट्रैक करती है. इससे ग्राहकों को शिपिंग के सटीक अनुमान मिलते हैं. इसके सिग्नल, मुफ़्त और तेज़ शिपिंग की सुविधा के साथ बेहतर लिस्टिंग दिखाने में भी मदद करते हैं.
    • समस्या हल करना इससे गड़बड़ी की जानकारी वाले कॉन्टेंट और सहायता से जुड़ी कार्रवाइयों को उसी तरह ऐक्सेस किया जा सकता है जिस तरह Merchant Center के यूज़र इंटरफ़ेस (यूआई) में किया जाता है.
    • Accounts सब-एपीआई में नए संसाधन.
    • OmnichannelSettings ओम्नीचैनल पर प्रॉडक्ट दिखाने के लिए, खाते के कॉन्फ़िगरेशन को मैनेज करता है. जैसे, मुफ़्त में दिखाई जाने वाली स्थानीय लिस्टिंग (एफ़एलएल) और स्थानीय इन्वेंट्री विज्ञापन (एलआईए).
    • LfpProviders इन्वेंट्री डेटा के लिए, Local Feeds Partnership (LFP) पार्टनर से कनेक्ट करता है.
    • GbpAccounts स्थानीय स्टोर के डेटा के लिए, Google Business Profile खाते से कनेक्ट करता है.
    • OnlineReturnPolicy की मदद से, ऑनलाइन नीतियों को बनाया, मिटाया, और अपडेट किया जा सकता है.
  • इन्वेंट्री, प्रॉडक्ट डेटा, और अन्य एपीआई के लिए नए तरीके. इनमें ये शामिल हैं:
    • Products सब-एपीआई में एक नया तरीका.
    • ProductsUpdate की मदद से, अलग-अलग प्रॉडक्ट अपडेट किए जा सकते हैं. इसके लिए, आपको ProductInput के लिए ज़रूरी सभी फ़ील्ड भरने की ज़रूरत नहीं है.
  • प्राइमरी डेटा सोर्स के साथ-साथ, कई अन्य डेटा सोर्स बनाने की सुविधा. जैसे:
  • प्रॉडक्ट की समीक्षाएं और कारोबारी या कंपनी की समीक्षाएं अपलोड करने की सुविधा के बारे में जानकारी
  • Merchant API की मदद से, खाते में मौजूद डेटा में होने वाले बदलावों के लिए सूचनाएं पाने की सुविधा चालू की जा सकती है

क्या बदलाव हुए हैं

  • हर एपीआई कॉल के लिए, ज़्यादा से ज़्यादा pageSize को 250 से बढ़ाकर 1,000 पंक्तियां कर दिया गया है.
  • DataSources बनाने के बाद, प्रॉडक्ट शामिल करने, प्रमोशन, प्रॉडक्ट की समीक्षाओं, और कारोबारी या कंपनी की समीक्षाओं में होने वाली देरी को ठीक कर दिया गया है.
  • Reporting sub-API में मौजूद productView टेबल में, clickPotentialRank की परिभाषा को अपडेट किया गया है:
    • clickPotential के आधार पर प्रॉडक्ट की रैंकिंग को 1 से 1,000 के बीच की वैल्यू में नॉर्मलाइज़ किया जाता है.
  • AccountRelationship रिसॉर्स में मौजूद AccountIdAlias की मदद से, खाते के जटिल स्ट्रक्चर को बेहतर तरीके से मैनेज किया जा सकता है. उदाहरण के लिए, मार्केटप्लेस, कारोबारी या कंपनी के इंटरनल आईडी (जैसे, खाता आईडी) के बजाय, उपयोगकर्ता के तय किए गए उपनाम का इस्तेमाल करते हैं.

gRPC के साथ काम करने की सुविधा

Merchant API, gRPC और REST के साथ काम करता है. Merchant API के लिए gRPC और Content API for Shopping के लिए REST का इस्तेमाल एक साथ किया जा सकता है.

Merchant API की क्लाइंट लाइब्रेरी के लिए, gRPC ज़रूरी है.

ज़्यादा जानकारी के लिए, gRPC की खास जानकारी देखें.

इनके साथ काम करता है

इस गाइड में, Merchant API में किए गए सामान्य बदलावों के बारे में बताया गया है.

Merchant API को Content API for Shopping की मौजूदा सुविधाओं के साथ काम करने के लिए डिज़ाइन किया गया है.

उदाहरण के लिए, Merchant Inventories API का इस्तेमाल, Content API for Shopping v2.1 products के मौजूदा वर्शन के साथ किया जा सकता है. Content API for Shopping का इस्तेमाल करके, नया स्थानीय प्रॉडक्ट अपलोड किया जा सकता है. यह ऐसा प्रॉडक्ट होता है जिसे स्थानीय स्टोर में बेचा जाता है. इसके बाद, Merchant Inventories API LocalInventory रिसॉर्स का इस्तेमाल करके, उस प्रॉडक्ट के लिए स्टोर में मौजूद इन्वेंट्री की जानकारी मैनेज की जा सकती है.

Content API के मुकाबले, Merchant Center API में स्ट्रक्चर के लेवल पर किए गए सुधार

Merchant API, इन मामलों में Content API से बेहतर है:

इन बदलावों के बारे में ज़्यादा जानें.

वर्शन और सब-एपीआई

Merchant API में, वर्शनिंग और सब-एपीआई के कॉन्सेप्ट शामिल हैं. इसका मॉड्यूलर डिज़ाइन, इस्तेमाल को आसान बनाता है. इससे आपको उन सब-एपीआई पर फ़ोकस करने में मदद मिलती है जिनकी आपको ज़रूरत है. साथ ही, आने वाले समय में नए वर्शन पर आसानी से माइग्रेट किया जा सकता है. वर्शनिंग को आपके अनुरोध यूआरएल के साथ लागू किया जाएगा. यह रणनीति, Google Ads API के अनुभव जैसी ही है.

ज़्यादा बेहतर अनुरोध

Merchant API को कॉल करने के लिए, Merchant API के यूआरएल अनुरोधों में ज़्यादा पैरामीटर की ज़रूरत होती है. इसमें संसाधन, वर्शन, नाम (आइडेंटिफ़ायर), और तरीका (नॉन-स्टैंडर्ड तरीके) शामिल हैं. इस बारे में ज़्यादा जानने के लिए, खाते और प्रॉडक्ट आइडेंटिफ़ायर और उदाहरण देखें.

आइडेंटिफ़ायर के लिए एआईपी के सिद्धांत

Content API for Shopping, संसाधनों की पहचान करने के लिए आईडी का इस्तेमाल करता है. उदाहरण के लिए, merchantId, productId. वहीं, Merchant API, एआईपी के साथ अलाइन करने के लिए name आइडेंटिफ़ायर का इस्तेमाल करता है. इस बारे में ज़्यादा जानने के लिए, एपीआई को बेहतर बनाने के सिद्धांत देखें.

{name} आइडेंटिफ़ायर में, संसाधन आइडेंटिफ़ायर और उसका पैरंट (या कई पैरंट) शामिल होता है. इससे {name}, accounts/{account}/products/{product} के बराबर हो जाता है

सभी रीड और राइट कॉल, संसाधन आइडेंटिफ़ायर के तौर पर name फ़ील्ड दिखाते हैं.

{name} में कलेक्शन आइडेंटिफ़ायर accounts/ और products/ भी शामिल हैं.

Merchant API, Merchant Center आईडी के लिए {account} और प्रॉडक्ट आइडेंटिफ़ायर के लिए {product} का इस्तेमाल करता है.

उदाहरण के लिए, किसी संसाधन से name को वापस पाने के लिए, getName() तरीका लागू करें. साथ ही, आउटपुट को वैरिएबल के तौर पर सेव करें. ऐसा करने से, आपको कारोबारी या कंपनी और संसाधन आईडी से name को खुद बनाने की ज़रूरत नहीं पड़ेगी.

यहां एक उदाहरण दिया गया है, जिसमें बताया गया है कि अपने कॉल में name फ़ील्ड का इस्तेमाल कैसे किया जा सकता है:

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

इस टेबल से पता चलता है कि Content API for Shopping products.get के अनुरोध में किस तरह बदलाव होता है:

Shopping के लिए Content API Merchant API
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} GET https://merchantapi.googleapis.com/products/v1/{name}

ज़्यादा जानकारी के लिए, आइडेंटिफ़ायर में हुए बदलाव देखें.

एक और उदाहरण के तौर पर, Merchant API का इस्तेमाल करके Merchant Center का आईडी 4321 से आइडेंटिफ़ायर en~US~1234 वाले प्रॉडक्ट को वापस पाने का तरीका कुछ ऐसा दिखेगा:

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

जहां {name}, accounts/4321/products/en~US~1234 के बराबर है. यह नया नाम फ़ील्ड, Merchant API में सभी रीड और राइट कॉल के लिए संसाधन आइडेंटिफ़ायर के तौर पर दिखाया जाता है.

Content API for Shopping में, प्रॉडक्ट के नाम में कोलन (:) का इस्तेमाल डीलिमिटर के तौर पर किया जाता है. वहीं, Merchant API में टिल्ड (~) का इस्तेमाल किया जाता है. Merchant API के आइडेंटिफ़ायर में channel वाला हिस्सा शामिल नहीं है.

उदाहरण के लिए, Content API for Shopping में प्रॉडक्ट आईडी:

channel:contentLanguage:feedLabel:offerId.

Merchant API में इस तरह दिखेगा:

contentLanguage~feedLabel~offerId.

चाइल्ड रिसॉर्स के लिए पैरंट फ़ील्ड

Merchant API में, सभी चाइल्ड रिसॉर्स में parent फ़ील्ड होता है. पूरे पैरंट रिसॉर्स को पास करने के बजाय, parent फ़ील्ड का इस्तेमाल करके, उस रिसॉर्स का {name} तय किया जा सकता है जिसमें चाइल्ड रिसॉर्स को शामिल करना है. list के साथ, parent फ़ील्ड का भी इस्तेमाल किया जा सकता है

उदाहरण के लिए, किसी प्रॉडक्ट की स्थानीय इन्वेंट्री की सूची बनाने के लिए, list तरीके के लिए parent फ़ील्ड में प्रॉडक्ट का name डालें. इस मामले में, दिया गया product, दिखाए गए LocalInventory संसाधनों का parent है.

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

प्रॉडक्ट en~US~1234 और खाते 4321 के लिए सभी स्थानीय इन्वेंट्री की जानकारी पाने के लिए, अनुरोध कुछ ऐसा दिखेगा

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

पैरंट accounts/{account}/products/{product} है. ध्यान दें कि इस मामले में, localInventories संसाधन के नाम आइडेंटिफ़ायर में दो पैरंट शामिल हैं (accounts/ और products/). ऐसा इसलिए है, क्योंकि खाता, प्रॉडक्ट संसाधन का पैरंट है.

सामान्य enum

सामान्य enum का इस्तेमाल करने से, ज़्यादा एक जैसा अनुभव मिलता है.

Destination.DestinationEnum फ़ील्ड में, उन प्लैटफ़ॉर्म की जानकारी दी जाती है जिन पर आपके संसाधन दिखाए जाएंगे. DestinationEnum, डेस्टिनेशन टारगेटिंग के लिए उपलब्ध सभी वैल्यू की सूची दिखाता है. साथ ही, यह सब-एपीआई के लिए यूनिफ़ाइड होता है. उदाहरण के लिए, प्रमोशन एट्रिब्यूट के लिए.

ReportingContext.ReportingContextEnum फ़ील्ड से पता चलता है कि आपके खाते और प्रॉडक्ट की समस्याएं किस संदर्भ में लागू होती हैं. इस फ़ील्ड का इस्तेमाल, रिपोर्टिंग के तरीकों में किया जाता है. उदाहरण के लिए, IssueSeverityPerReportingContext के लिए.

पुराने सिस्टम के साथ काम करने की सुविधा

Merchant API का इस्तेमाल शुरू करने पर, Content API for Shopping का आपका मौजूदा इंटिग्रेशन बिना किसी रुकावट के काम करता रहेगा. ज़्यादा जानकारी के लिए, नीति के मुताबिक काम करने के बारे में जानें.

सब-एपीआई को Merchant API पर माइग्रेट करने के बाद, हमारा सुझाव है कि आप माइग्रेट किए गए सब-एपीआई के लिए सिर्फ़ Merchant API का इस्तेमाल करें.

रिमोट प्रोसीजर कॉल (gRPC) की उपलब्धता

Merchant API के साथ इंटिग्रेट करने के लिए, gRPC का इस्तेमाल करने का सुझाव दिया जाता है.

इसके ये फ़ायदे हैं:

कस्टम बैचिंग की सुविधा, पहले से मौजूद बैचिंग की सुविधा बन जाती है

एसिंक्रोनस कॉल का इस्तेमाल करने पर, बैच बनाने की सुविधा ज़्यादा बेहतर तरीके से काम करती है. Merchant API में बैच बनाने के लिए, एक साथ कई कॉल करने के बारे में ज़्यादा जानें. साथ ही, एक साथ कई अनुरोध करने के लिए कोड को रीफ़ैक्टर करने का तरीका जानें.

माइग्रेशन की प्रोसेस को तेज़ करने के लिए, हमारा सुझाव है कि आप क्लाइंट लाइब्रेरी का इस्तेमाल करें.

Merchant API में, Content API for Shopping में मौजूद customBatch तरीके का इस्तेमाल नहीं किया जा सकता. इसके बजाय, एक साथ कई अनुरोध भेजें या अपने कॉल को एसिंक्रोनस तरीके से एक्ज़ीक्यूट करें.

लेख पढ़ें

यहां दिए गए Java सैंपल में, प्रॉडक्ट इनपुट डालने का तरीका बताया गया है:

   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.api.gax.grpc.ChannelPoolSettings;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
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 a channel provider. This provider manages a pool of gRPC channels
    // to enhance throughput for bulk operations. Each individual channel in the pool
    // can handle up to approximately 100 concurrent requests.
    //
    // Channel: A single connection pathway to the service.
    // Pool: A collection of multiple channels managed by this provider.
    //   Requests are distributed across the channels in the pool.
    //
    // We recommend estimating the number of concurrent requests you'll make, divide by 50 (50%
    // utilization of channel capacity), and set the pool size to that number.
    InstantiatingGrpcChannelProvider channelProvider =
        InstantiatingGrpcChannelProvider.newBuilder()
            .setChannelPoolSettings(ChannelPoolSettings.staticallySized(30))
            .build();

    // Creates service settings using the credentials retrieved above.
    ProductInputsServiceSettings productInputsServiceSettings =
        ProductInputsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .setTransportChannelProvider(channelProvider)
            .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);
  }
}

अगर Content API में customBatch का इस्तेमाल किया जाता है और आपको Merchant API के लिए इस सुविधा की ज़रूरत है, तो सुझाव/राय दें या शिकायत करें सेक्शन में जाकर हमें इसकी वजह बताएं.

अनन्य विशेषताएं

आने वाले समय में, नई सुविधाएं सिर्फ़ Merchant API में दिखेंगी. हालांकि, इसके कुछ अपवाद भी होंगे. जैसे, 2025 का सालाना फ़ीड स्पेसिफ़िकेशन.

Merchant API की खास सुविधाओं में ये शामिल हैं

  • Reviews API. अपने प्रॉडक्ट और दुकान की रेटिंग लागू करने और उन्हें मैनेज करने के लिए, समीक्षाओं का इस्तेमाल करें. ज़्यादा जानकारी के लिए, विक्रेता की समीक्षा और प्रॉडक्ट की समीक्षा देखें.
  • सूचनाएं: खाते और प्रॉडक्ट डेटा में होने वाले बदलावों के बारे में पुश नोटिफ़िकेशन पाने के लिए साइन अप करें.

कीमत

Merchant Common पैकेज में, Price के लिए ये बदलाव किए गए हैं:

Shopping के लिए Content API Merchant API
रकम वाला फ़ील्ड value:string amountMicros:int64
मुद्रा फ़ील्ड currency:string currencyCode:string

Price की रकम अब माइक्रोस में रिकॉर्ड की जाती है. इसमें 10 लाख माइक्रोस, आपकी मुद्रा की स्टैंडर्ड यूनिट के बराबर होता है.

Content API for Shopping में, Price स्ट्रिंग के तौर पर एक दशमलव संख्या थी.

रकम वाले फ़ील्ड का नाम value से बदलकर amountMicros कर दिया गया है

मुद्रा फ़ील्ड का नाम currency से बदलकर currencyCode हो गया है. फ़ॉर्मैट अब भी ISO 4217 ही रहेगा.

नए अपडेट और सूचनाएं

ज़्यादा जानकारी वाले अपडेट के लिए, हर सब-एपीआई के रिलीज़ नोट देखें. Merchant API के बारे में समय-समय पर मिलने वाले अपडेट के लिए, हमारे नए अपडेट देखें.

ज़्यादा जानकारी और Merchant API के बारे में ज़्यादा जानने के लिए, हमारी डेवलपर साइट पर मौजूद खास जानकारी और माइग्रेट करने से जुड़ी पूरी गाइड देखें.

Merchant API और इसके सब-एपीआई के बारे में ज़्यादा जानने के लिए, Merchant API का डिज़ाइन देखें.