پرس و جو از وضعیت تاجر از طریق API

موارد استفاده

API رزرو گوگل مپ دو روش ارائه می‌دهد که می‌توان از آنها برای بازیابی برنامه‌ای وضعیت هر فروشنده برای ادغام‌های مختلف مرکز عملیات یا موجودی تبلیغات خدمات محلی استفاده کرد.

موارد استفاده برای API وضعیت فروشنده:

  • ابزارهای مدیریت ارتباط با مشتری موجود را بهبود بخشید تا به مشتریان خود نشان دهید که موجودی آنها چگونه در پلتفرم مرکز عملیات نمایش داده می‌شود.
  • یک داشبورد برای پیگیری وضعیت موجودی و وضعیت تطبیق فروشندگان خود بسازید.
  • به صورت برنامه‌نویسی‌شده، وضعیت‌های تطبیق و قابل رزرو پذیرندگان خود را بازیابی کنید و هرگونه اطلاعات نادرست را برای بهبود کیفیت داده‌ها اصلاح کنید.

وضعیت تاجر شامل چه مواردی است؟

وضعیت فروشنده (MerchantStatus) شامل اطلاعات زیر است:

  • وضعیت موجودی فروشنده: هم برای فروشندگان رزرو و/یا لیست انتظار اعمال می‌شود.
  • وضعیت تطبیق فروشنده: شامل جزئیات مربوط به فهرست کسب‌وکار تطبیق‌یافته است
  • فقط برای تبلیغات خدمات محلی گوگل ) ارائه‌دهنده خدمات تجاری منطبق: شامل شناسه مشتری و دسته‌بندی‌های خدمات می‌شود.
  • URLهایی که نشان می‌دهند چگونه فروشنده از طریق رزرو با گوگل نمایش داده می‌شود.

وضعیت یک تاجر را جستجو کنید

شما می‌توانید وضعیت یک تاجر را با استفاده از inventory.partners.merchants.getStatus دریافت کنید:

GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}/status

در اینجا یک نمونه کد پایتون وجود دارد (مثال‌ها را به زبان‌های بیشتر اینجا ببینید):

from google.auth.transport.requests import AuthorizedSession
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file(
    './your_key.json')
scoped_credentials = credentials.with_scopes(
    ['https://www.googleapis.com/auth/mapsbooking'])
authed_session = AuthorizedSession(scoped_credentials)

response = authed_session.get('https://partnerdev-mapsbooking.googleapis.com' +
    '/v1alpha/inventory/partners/123456789/merchants/001/status')

یک نمونه پاسخ MerchantStatus به شکل زیر است:

  {
    "name": "partners/123456789/merchants/001/status",
    "merchantName": "Foo Bar Restaurant",
    "inputGeoInfo": {
      "unstructured_address": "123 Foo Bar Street, Mountain View"
    },
    "processingStatus": "COMPLETED",
    "bookingStatus": {
      "hasValidFutureInventory": true
    },
    "waitlistStatus": {
      "hasValidWaitlistService": true
    }
    "geoMatch": {
      "name": "Foo Bar Restaurant",
      "formattedAddress": "123 Foo Bar St, Mountain View, CA 94043",
      "placeId": "ChIAAAAAAAAABBBBBBBB"
    },
    "directUrls": [
      {
        "type": "BOOKING",
        "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/dine/m/Nwaaaaa"
      },
      {
        "type": "WAITLIST",
        "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/wait/c/iDbbbbb"
      }
    ]
  }

بازیابی وضعیت‌های تجاری به صورت عمده

شما می‌توانید وضعیت همه بازرگانان یا گروهی از بازرگانان که شرایط موجودی/تطبیق خاصی را برآورده می‌کنند، با استفاده از inventory.partners.merchants.status.list بازیابی کنید. به عنوان مثال، می‌توانید این فراخوانی را برای دریافت همه بازرگانان تطبیق نیافته با موجودی رزرو معتبر با تاریخ آینده انجام دهید:

GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/status?pageSize=50&bookingInventoryStatusRestrict=HAS_VALID_FUTURE_INVENTORY&geoMatchRestrict=GEO_UNMATCHED

یک نمونه پاسخ به این شکل خواهد بود:

  {
    "merchantStatuses": [
      {
        "name": "partners/123456789/merchants/002/status",
        "merchantName": "Bar Foo Restaurant",
        "inputGeoInfo": {
          "unstructured_address": "234 Bar Foo Street, Mountain View"
        },
        "processingStatus": "COMPLETED",
        "bookingStatus": {
          "hasValidFutureInventory": true
        },
        "waitlistStatus": {},
      },
      ...
      {
        "name": "partners/123456789/merchants/080/status",
        "merchantName": "Baz Restaurant",
        "inputGeoInfo": {
          "unstructured_address": "345 Baz Street, Mountain View"
        },
        "processingStatus": "COMPLETED",
        "bookingStatus": {
          "hasValidFutureInventory": true
        },
        "waitlistStatus": {
          "hasValidWaitlistService": true
        },
      },
    ],
    "nextPageToken": "AAABBBB"
  }

این پاسخ شامل ۵۰ وضعیت فروشنده (MerchantStatus) خواهد بود که شرایط فیلترینگ را برآورده می‌کنند و بر اساس merchant_id مرتب شده‌اند. این پاسخ همچنین شامل یک توکن صفحه (page token) (اگر آخرین صفحه نباشد) برای پرس و جو در صفحه بعدی است.

لطفا توجه داشته باشید: شرایط فیلترینگ باید در تمام صفحات یکسان باشد.

بهترین شیوه‌ها

از آنجایی که وضعیت‌های فروشنده اغلب اوقات تغییر نمی‌کنند، توصیه می‌شود نتایج بازیابی شده را ذخیره کرده و به صورت دوره‌ای (مثلاً هر چند ساعت) آنها را از طریق درخواست‌های جدید بازیابی کنید. اگر تعداد درخواست‌ها در ثانیه بیش از حد زیاد باشد، مرکز عملیات ممکن است درخواست‌های شما را محدود کند.