กรณีการใช้งาน
Google Maps Booking API มี 2 วิธีที่ใช้ดึงข้อมูลสถานะของผู้ขายแต่ละรายเพื่อผสานรวมหรือการจองต่างๆ หรือพื้นที่โฆษณา Local Services Ads โดยใช้โปรแกรม
กรณีการใช้งาน Merchant Status API
- ปรับปรุงเครื่องมือการจัดการลูกค้าสัมพันธ์ที่มีอยู่เพื่อแสดงให้ลูกค้าเห็นลักษณะที่สินค้าคงคลังแสดงบน Google
- สร้างแดชบอร์ดเพื่อติดตามสถานะสินค้าคงคลังและสถานะการจับคู่ของผู้ขาย
- เรียกข้อมูลสถานะการจับคู่และสถานะที่สามารถจองได้ของผู้ขายแบบเป็นโปรแกรม และแก้ไขข้อมูลที่ไม่ถูกต้องเพื่อปรับปรุงคุณภาพของข้อมูล
สถานะผู้ขายมีอะไรบ้าง
MerchantStatus มีข้อมูลต่อไปนี้
- สถานะสินค้าคงคลังของผู้ขาย: มีผลกับผู้ขายแบบจองและ/หรือผู้ขายที่อยู่ในคิวรอ
- สถานะการจับคู่ผู้ขาย: มีรายละเอียดเกี่ยวกับข้อมูลธุรกิจที่ตรงกัน
- สำหรับโฆษณาบริการในพื้นที่ของ Google เท่านั้น) ผู้ให้บริการของผู้ขายที่ตรงกัน: มีรหัสลูกค้าและหมวดหมู่บริการ
- URL ที่แสดงวิธีที่ผู้ขายปรากฏใน Google
ค้นหาสถานะผู้ขายรายเดียว
คุณดูสถานะของผู้ให้บริการรายเดียวได้โดยใช้ inventory.partners.merchants.getStatus ดังนี้
GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}/status
ตัวอย่างโค้ด Python มีดังนี้ (ดูตัวอย่างในภาษาอื่นๆ ได้ที่นี่)
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 50 รายการที่ตรงกับเงื่อนไขการกรองและจัดเรียงตาม merchant_id
การตอบกลับยังมีโทเค็นหน้าเว็บ (หากไม่ใช่หน้าสุดท้าย) เพื่อค้นหาหน้าถัดไปด้วย
โปรดทราบว่าเงื่อนไขการกรองควรสอดคล้องกันในทุกหน้า
แนวทางปฏิบัติแนะนำ
เนื่องจากสถานะของผู้ขายมักไม่เปลี่ยนแปลงบ่อยนัก เราจึงขอแนะนำให้แคชผลการค้นหาที่ดึงข้อมูลมาและดึงข้อมูลเหล่านั้นผ่านคำค้นหาใหม่เป็นระยะๆ (เช่น ทุก 2-3 ชั่วโมง) ศูนย์การดำเนินการอาจจำกัดการค้นหาของคุณหากจำนวนคำขอต่อวินาทีสูงเกินไป