במדריך הזה מוסבר איך להעביר את השילוב משירותי datafeeds ו-datafeedstatuses של Content API for Shopping אל Data sources sub-API ב-Merchant API. ממשק ה-API החדש של מקורות הנתונים מאפשר שליטה ישירה יותר בצינורות הנתונים ומפשט את הניהול של מקורות הנתונים.
מידע נוסף על התכונות החדשות זמין במדריך ניהול מקורות הנתונים.
ההבדלים העיקריים
ל-Merchant API יש כמה יתרונות בהשוואה ל-Content API for Shopping.
- יצירה מפורשת של מקור נתונים. ה-API לא יוצר יותר באופן אוטומטי מקור נתונים מסוג Content API כשמוסיפים את המוצר הראשון. ב-Merchant API, צריך ליצור מקורות נתונים באופן מפורש לפני שמעלים אליהם מוצרים. כך תוכלו לשלוט טוב יותר בארגון ובניהול של צינורות הנתונים של המוצרים שלכם כבר מההתחלה. 
- תמיכה בכמה מקורות נתונים של API. ב-Content API for Shopping, הייתה לכם אפשרות להשתמש רק במקור נתונים אחד שנקרא Content API, שנוצר באופן אוטומטי. באמצעות Merchant API אפשר ליצור ולנהל כמה מקורות נתונים מסוג הקלט - API.
- מקורות נתונים ללא תווית ושפה. ה-Merchant API מאפשר ליצור מקור נתונים ראשי בלי לציין - feedLabelו- contentLanguage. בסוג הזה של מקור נתונים אפשר להעלות מוצרים בכל שילוב של- feedLabelושל- contentLanguage, וכך אפשר לפשט את העלאת המוצרים בשילובים שלא דורשים מקורות נתונים נפרדים לאזורים שונים.
- יעדי נתונים פשוטים יותר. כל מקור נתונים תואם עכשיו ליעד יחיד, שמוגדר על ידי שילוב ייחודי של - feedLabelו-- contentLanguage. הוצאנו משימוש את הפידים שמטורגטים ליותר מיעד אחד ב-Merchant API.
- סטטוס העלאת קובץ ייעודי. Merchant API מייצג את הסטטוס של מקורות נתונים מבוססי-קבצים באמצעות משאב - fileUploadsנפרד לקריאה בלבד. כדי לאחזר את הסטטוס של העלאת קובץ, משתמשים בשיטה- fileUploads.getעם הכינוי- latest.
- סוגים חדשים של מקורות נתונים. במשאב - DataSourceיש תמיכה בענפים נוספים, כולל מבצעים, מלאי בחנויות מקומיות ומלאי אזורי, והוא מספק דרך מאוחדת לניהול כל צינורות הנתונים.
- מקורות נתונים אוטומטיים. בעזרת Merchant API, אתם יכולים עכשיו להפעיל או להשבית את התכונה מקורות נתונים אוטומטיים בחשבון שלכם באמצעות השיטה - autofeedSettings.updateAutofeedSettingsב-Accounts sub-API. מידע נוסף זמין במאמר בנושא הגדרת עדכונים אוטומטיים של פידים.
בקשות
בטבלה הבאה מוצג השוואה בין הפורמטים של כתובות ה-URL של הבקשות ב-Content API for Shopping וב-Merchant API.
| תיאור הבקשה | Content API for Shopping | Merchant API | 
|---|---|---|
| יצירת מקור נתונים | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds | POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources | 
| קבלת מקור נתונים | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} | GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} | 
| הצגת רשימה של מקורות נתונים | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds | GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources | 
| עדכון מקור נתונים | PUT https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} | PATCH https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} | 
| מחיקה של מקור נתונים | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} | DELETE https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} | 
| אחזור של מקור נתונים | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID}/fetchNow | POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}:fetch | 
| קבלת סטטוס של מקור נתונים | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses/{DATAFEED_ID} | GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}/fileUploads/latest | 
| הצגת הסטטוסים של מקורות הנתונים | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses | לא זמין. משתמשים בשיטות dataSources.listו-fileUploads.getלכל מקור נתונים שמבוסס על קובץ. | 
מזהים
ב-Merchant API, מזהה הוא שם משאב מבוסס-מחרוזת.
| תיאור המזהה | Content API for Shopping | Merchant API | 
|---|---|---|
| מזהה מקור הנתונים | datafeedId(מספרי) | name(מחרוזת, פורמט:accounts/{account}/dataSources/{datasource}) | 
Methods
בטבלה הזו מוצגות השוואה בין השיטות משירותי Content API for Shopping datafeeds ו-datafeedstatuses לבין השיטות המקבילות ב-Merchant API.
| שיטה של Content API for Shopping | שיטת Merchant API | זמינות והערות | 
|---|---|---|
| datafeeds.custombatch | לא זמין | במקום זאת, אפשר להשתמש בקריאות נפרדות ל-API. | 
| datafeeds.delete | dataSources.delete | זמינים. | 
| datafeeds.fetchnow | dataSources.fetch | זמינים. השיטה הזו פועלת עכשיו רק במקורות נתונים עם קלט קובץ. | 
| datafeeds.get | dataSources.get | זמינים. | 
| datafeeds.insert | dataSources.create | זמינים. | 
| datafeeds.list | dataSources.list | זמינים. | 
| datafeeds.update | dataSources.update | זמינים. השימוש הוא בסמנטיקה של PATCHבמקוםPUT. | 
| datafeedstatuses.custombatch | לא זמין | במקום זאת, אפשר להשתמש בקריאות נפרדות ל-API. פרטים נוספים זמינים במאמר בנושא שליחת כמה בקשות בבת אחת. | 
| datafeedstatuses.get | fileUploads.get | זמין למקורות נתונים שמבוססים על קובץ. משתמשים בכינוי latestכדי לקבל את הסטטוס של ההעלאה האחרונה. בסוגים אחרים של מקורות נתונים, פרטי הסטטוס הם חלק מהמשאבDataSource. | 
| datafeedstatuses.list | לא זמין | כדי לקבל את הסטטוס של כמה מקורות נתונים, קודם צריך להציג את כל מקורות הנתונים באמצעות dataSources.list. לאחר מכן קוראים לפונקציהfileUploads.getעם הכינויlatestלכל מקור נתונים שמבוסס על קובץ. | 
שינויים מפורטים בשדות
בטבלה הזו מוצגים השינויים ברמת השדה בין המשאבים Datafeed ו-DatafeedStatus ב-Content API for Shopping לבין המשאבים DataSource ו-FileUpload ב-Merchant API.
| Content API for Shopping | Merchant API | תיאור | 
|---|---|---|
| Datafeed | DataSource | המקור העיקרי להגדרת מקורות נתונים. | 
| id | name | מזהה המשאב. השתנה ממזהה מספרי לשם משאב מסוג מחרוזת. | 
| name | displayName | השם של מקור הנתונים שמוצג למשתמש. | 
| attributeLanguage | primaryProductDataSource.contentLanguage | קוד שפה בן שתי אותיות לפי תקן ISO 639-1 של הפריטים במקור הנתונים. | 
| fileName | fileInput.fileName | השם של הקובץ שהועלה. השדה הזה מוטמע עכשיו בשדה fileInput. | 
| fetchSchedule | fileInput.fetchSettings | התזמון לאחזור של מקור נתונים מבוסס-קובץ. האפשרות הזו מוצגת עכשיו כחלק מהאפשרות fileInput. | 
| fetchSchedule.paused | fileInput.fetchSettings.enabled | הלוגיקה הפוכה. הפונקציה paused: trueשוות ערך לפונקציהenabled: false. | 
| format | לא זמין | השדות fileEncoding,columnDelimiterו-quotingModeיוסרו. הם מזוהים עכשיו באופן אוטומטי. | 
| targets | primaryProductDataSource.feedLabel,primaryProductDataSource.contentLanguage,primaryProductDataSource.countries | השדה החוזר targetsהוסר. לכל מקור נתונים יש עכשיו יעד אחד שמוגדר על ידי השדות האלה, כתוצאה מהוצאה משימוש של פידים עם כמה יעדי נתונים. | 
| DatafeedStatus | FileUpload | הסטטוס של העלאת קובץ הוא עכשיו משאב נפרד לקריאה בלבד. | 
| datafeedId | name | המזהה של העלאת הקובץ, שמפנה למקור הנתונים של ההורה. | 
| processingStatus | processingState | סטטוס העיבוד של ההעלאה. ערכי המחרוזת ( success, failure, in progress) מוחלפים על ידי ערך enum (SUCCEEDED, FAILED, IN_PROGRESS). | 
| errors,warnings | issues | שגיאות ואזהרות משולבות ברשימה אחת issues. לכל בעיה יש שדהseverity(ERRORאוWARNING). | 
| lastUploadDate | uploadTime | חותמת הזמן של ההעלאה האחרונה. הפורמט השתנה ממחרוזת לאובייקט Timestamp. | 
| country,language,feedLabel | לא רלוונטי | השדות האלה כבר לא נמצאים במשאב הסטטוס. הם חלק מהמשאב DataSource. | 
| targets[].included_destinations,targets[].excluded_destinations | primaryProductDataSource.destinations | שתי הרשימות הנפרדות של יעדים כלולים ויעדים מוחרגים מוחלפות ברשימה אחת destinations. כל פריט ברשימה החדשה הוא אובייקט שמציין את היעד ואת המצב שלו (ENABLEDאוDISABLED), וכך מספק הגדרה מפורשת יותר. |