เอกสารนี้อธิบายแนวทางปฏิบัติแนะนำบางส่วนเกี่ยวกับการใช้ CSS API คำแนะนำในหน้านี้ไม่ได้บังคับให้ใช้ API แต่จะช่วยชี้แจง การใช้งานที่ตั้งใจไว้บางอย่าง
ตั้งค่าสภาพแวดล้อม
หากต้องการตั้งค่าสภาพแวดล้อมในการพัฒนา ให้ทำตามขั้นตอนที่ระบุไว้ในเอกสารประกอบฉบับเริ่มต้น
- สร้างไฟล์ JSON ของผู้ใช้และสิทธิ์ใน Google Cloud Console
- เปิดใช้ CSS API ใน Google Cloud Console
- เพิ่มผู้ใช้ดังกล่าวที่มีสิทธิ์ผู้ดูแลระบบไปยังบัญชี CSS (กลุ่ม CSS หรือโดเมน CSS)
- ตรวจสอบว่าคุณใช้ขอบเขต OAuth ที่ถูกต้อง:
https://www.googleapis.com/auth/content
ตอนนี้ไลบรารีของไคลเอ็นต์อยู่ในที่เก็บมาตรฐานสำหรับภาษาโปรแกรมส่วนใหญ่แล้ว ดูรายการได้ในหน้าคลังไคลเอ็นต์
ใช้รหัสที่ถูกต้อง
ใช้รหัสที่ถูกต้องกับปลายทาง API ที่ถูกต้อง
- CSS API (
css.googleapis.com
): ใช้รหัสโดเมน CSS เมื่อ โต้ตอบกับผลิตภัณฑ์ CSS (เช่นaccounts/{cssDomainId}/cssProductInputs:insert
) - Merchant API (
merchantapi.googleapis.com
): ใช้ Merchant API สำหรับ ผลิตภัณฑ์ของผู้ขายมาตรฐาน
การสลับข้อมูลเหล่านี้จะทำให้เกิดข้อผิดพลาด ดูรายละเอียดเพิ่มเติมได้ที่ภาพรวมของ CSS API
วิธีที่ดีในการเริ่มต้นใช้งาน
เราขอแนะนำให้ทดสอบด้วยวิธีต่อไปนี้
ListChildAccounts
ListChildAccounts เป็นการเรียกแบบอ่านอย่างเดียวที่แสดงรายการโดเมน CSS ทั้งหมด (หากเรียกสำหรับ กลุ่ม CSS) หรือผู้ขาย (หากเรียกสำหรับโดเมน CSS) ดังนั้นจึงเป็น วิธีที่ดีในการทดสอบว่าได้ตั้งค่าทุกอย่างถูกต้องหรือไม่
แทรก/แสดง/อัปเดต/ลบผลิตภัณฑ์
เมื่อทราบว่า API ทำงานได้แล้ว ให้ลองเพิ่มผลิตภัณฑ์ โปรดใช้raw_provided_id
ที่คุณจำได้
- แทรกผลิตภัณฑ์ทดสอบโดยใช้ InsertCssProductInput เรามีโค้ดตัวอย่าง หากคุณต้องการความช่วยเหลือเกี่ยวกับแอตทริบิวต์ที่จะส่ง
- แสดงผลิตภัณฑ์ทั้งหมดโดยใช้ ListCssProducts อาจมีความล่าช้าในการประมวลผลเล็กน้อยก่อนที่ผลิตภัณฑ์จะปรากฏหลังจากการแทรก ดังนั้นหากคุณไม่เห็นผลิตภัณฑ์ ให้ลองอีกครั้งหลังจากผ่านไป 2-3 วินาที
- อัปเดตผลิตภัณฑ์รายการเดียวโดยใช้
UpdateCssProductInput
โดยใช้
cssproductinput.name
คุณต้อง ส่งเฉพาะแอตทริบิวต์ที่ต้องอัปเดต ดูโค้ดตัวอย่าง ได้ที่นี่ - ลบผลิตภัณฑ์ทดสอบโดยใช้
DeleteCssProductInput
คุณจะต้องใช้
raw_provided_id
ใช้ Async เพื่อปรับปรุงประสิทธิภาพ
CSS API ออกแบบมาสำหรับการเรียกแบบคู่ขนาน คุณจะพบว่าประสิทธิภาพ ของการดำเนินการเดียวอาจช้า แต่จะเร็วขึ้นมากเมื่อเรียกใช้การดำเนินการเดียวกัน หลายครั้งแบบขนาน วิธีที่ดีที่สุดในการใช้ฟีเจอร์นี้คือการใช้ ฟังก์ชันการทำงานแบบไม่พร้อมกันของภาษาโปรแกรม
ตัวอย่างจากภาษาโปรแกรมบางภาษา
- สำหรับ Java ให้ใช้ insertCssProductInputCallable().futureCall()
- สำหรับ Python ให้ใช้ CssProductInputsServiceAsyncClient
- สำหรับ C# ให้ใช้ InsertCssProductInputAsync
ค้นหาและใช้ฟังก์ชันการทำงานแบบไม่พร้อมกันของภาษาโปรแกรมเพื่อแทรก ผลิตภัณฑ์หลายรายการพร้อมกัน คุณไม่ต้องกังวลว่าระบบของเราจะรับภาระหนักเกินไป เพราะเรามีโควต้าไว้สำหรับเรื่องนี้
ดูรายละเอียดเพิ่มเติมได้ในหน้าประสิทธิภาพ
ตรวจสอบความถูกต้องของเพย์โหลด
เพื่อหลีกเลี่ยงข้อผิดพลาดที่พบบ่อย โปรดตรวจสอบว่าเพย์โหลด JSON มีรูปแบบที่ถูกต้อง
- อ่านเอกสารประกอบอย่างเป็นทางการ: โปรดดู ข้อมูลอ้างอิง CSS API ล่าสุดเสมอเพื่อดู คำจำกัดความของฟิลด์, Enums, ประเภทข้อมูล และโครงสร้างเพย์โหลด
- ตรวจสอบเพย์โหลดตัวอย่าง: เปรียบเทียบเพย์โหลดกับตัวอย่างโค้ดที่ให้ไว้เพื่อระบุความคลาดเคลื่อน
- ประเภทข้อมูล: ตรวจสอบว่าคุณใช้ประเภทข้อมูลที่ถูกต้อง (เช่น สตริง ออบเจ็กต์ อาร์เรย์) ตามที่ระบุไว้ในเอกสารประกอบ
- ทดสอบทีละน้อย: เริ่มต้นด้วยเพย์โหลดที่ถูกต้องขั้นต่ำเพื่อยืนยันการเชื่อมต่อพื้นฐาน และค่อยๆ เพิ่มแอตทริบิวต์
อัปเดตผลิตภัณฑ์
เมื่ออัปโหลดผลิตภัณฑ์แล้ว ผลิตภัณฑ์จะอยู่ในระบบของเราจนกว่าจะมีการ อัปเดต ลบ หรือหมดอายุ
- คุณอัปเดตผลิตภัณฑ์ทั้งหมดได้โดยส่ง
InsertCssProductInput
คำขออีกครั้งraw_provided_id
โดยใช้raw_provided_id
เดียวกันกับที่ใช้ในตอนแรก ในตอนนี้ คุณจะต้องส่งข้อมูลผลิตภัณฑ์ทั้งหมด แม้ว่าจะมีเพียงแอตทริบิวต์บางรายการ (อาจมีเพียงราคา/ความพร้อมจำหน่ายผลิตภัณฑ์) ที่มีการเปลี่ยนแปลงก็ตาม - คุณสามารถอัปเดตชิ้นส่วนของผลิตภัณฑ์ได้โดยใช้วิธี PATCH
UpdateCssProductInput
ระบุชื่อผลิตภัณฑ์ และเนื้อหา JSON ที่มี ข้อมูลที่คุณต้องการอัปเดตสำหรับผลิตภัณฑ์ ซึ่งแตกต่างจากInsertCssProductInput
ที่กำหนดให้ต้องระบุช่องที่เกี่ยวข้องทั้งหมดUpdateCssProductInput
โดยคุณจะต้องระบุเฉพาะช่องที่ต้องการเปลี่ยนแปลงเท่านั้น - คุณลบผลิตภัณฑ์ได้โดยเรียกใช้
DeleteCssProductInput
ด้วยraw_provided_id
เดียวกัน - ผลิตภัณฑ์จะหมดอายุโดยอัตโนมัติประมาณ 1 เดือนหลังจากการอัปเดตครั้งล่าสุด
โหมดการทำงานต่อเนื่อง
โหมดการทำงานต่อเนื่องอาจมีลักษณะดังนี้
- ใช้รหัสภายในของคุณเองเป็น
raw_provided_id
- อัปโหลดผลิตภัณฑ์ทั้งหมดอีกครั้งตามกำหนดการปกติ อาจเป็นรายสัปดาห์ ซึ่งจะช่วยให้มั่นใจได้ว่า ผลิตภัณฑ์ที่ใช้งานอยู่จะไม่หมดอายุ
- อัปเดตผลิตภัณฑ์แต่ละรายการทันทีที่ได้รับข้อมูลที่เปลี่ยนแปลงจากผู้ขาย
- หากตอบสนองต่อการเปลี่ยนแปลงได้ไม่ทันที ให้ค้นหาผลิตภัณฑ์ทั้งหมดที่มีการเปลี่ยนแปลง บ่อยๆ (อาจเป็นทุกชั่วโมง) แล้วอัปโหลดเฉพาะผลิตภัณฑ์เหล่านั้นอีกครั้ง
- สำหรับผลิตภัณฑ์ที่ไม่มีจำหน่ายแล้ว คุณจะใช้ การเรียกใช้การลบหรือตั้งค่าจำนวนข้อเสนอที่พร้อมใช้งานเป็น 0 ก็ได้
- อย่าส่งผลิตภัณฑ์ที่ไม่มีการเปลี่ยนแปลงมาให้เราบ่อยๆ การเรียกเหล่านี้จะนับรวม ในโควต้า API ของคุณ การรีเฟรชรายสัปดาห์ก็เพียงพอแล้ว
การเลือกข้อเสนอบรรทัดแรก
ข้อเสนอบรรทัดแรกไม่จำเป็นต้องเป็นข้อเสนออันดับต้นๆ หรือข้อเสนอที่ถูกที่สุดในเว็บไซต์ แต่ต้องแสดงอย่างโดดเด่น คุณใช้ตัวเลือกนี้ได้ในกรณีที่ข้อเสนออันดับต้นๆ มีการเปลี่ยนแปลงอย่างรวดเร็ว โดยคุณสามารถเลือกข้อเสนออื่นที่มีความเสถียรมากกว่าได้ที่นี่
โปรดกลับมาตรวจสอบเอกสารนี้เป็นครั้งคราว
เราได้รับความคิดเห็นเกี่ยวกับวิธีปรับปรุง API นี้ และกำลังดำเนินการปรับปรุงบางส่วนให้พร้อมใช้งาน เราจะอัปเดตหน้านี้เมื่อมี ฟีเจอร์ใหม่ที่พร้อมให้ใช้งานซึ่งจะช่วยให้การใช้ CSS API ง่ายขึ้น