This article is relevant only to the Restaurants vertical
A product feed is a file that contains your product catalog (all your products, with product metadata). It powers product recommendations, location-based experiences, limited-time offers (LTO), and more.
The following is the framework for creating and syncing your product feed with Dynamic Yield. The planning is critical from a business perspective because the feed fields determine what information you can use to personalize your campaigns. Work with your dev team to create the feed file, and to determine how and how often it should be synced.
Product feed structure
The product feed file must include the basic information about your product. Each column in the feed file represents a product attribute.
-
Mandatory fields: Basic product details required for a successful feed sync, such as SKU, product name, and group ID. If a product is missing a value in a mandatory column, it's skipped. If more than 10% of products have an empty value in one of the columns, the entire sync fails.
Mandatory fieldsField name Field type Comments sku String (Product ID) name String group_id String group_name String categories String
(separated by pipes with no spaces)price Float If the customer has a store-level price and will use store-aware recommendations, we'll use the price from the store feed, and this column should contain an average price, as it's used only for conditioning for core experiences. in_stock Boolean A product must be recommendable in at least one channel to be considered in stock. url String
(must be a valid URL, starting with HTTP/HTTPS)Needed for Experience Email and VisualML. If you aren't using these features, this field can contain a dummy URL. image_url String
(must be a valid URL, starting with HTTP/HTTPS)Needed for Experience Email and VisualML. If you aren't using these features, this field can contain a dummy URL. odmb_recommendable Boolean For the Drive Thru channel.
If you aren't using this channel, use TRUE.
kiosk_recommendable Boolean If you aren't using this channel, use TRUE. mobile_recommendable Boolean If you aren't using this channel, use TRUE. web_recommendable Boolean If you aren't using this channel, use TRUE. breakfast Boolean restofday Boolean mdp_breakfast Boolean mdp_lunch Boolean mdp_dinner Boolean mdp_latenight Boolean meal Boolean -
Advanced fields: Predefined, non-mandatory columns that enhance product behavior and enable specific platform features, such as order upsell target, upsell type, or pricing-related logic.
Advanced fieldsField name Field type Comments order_fulfillment String
(separate multiple values with commas)
Possible values:
DELIVERY, PICKUP, DINEIN, CURBSIDE, ALL
upsell_target Number Upsell Feature upsell_type String Upsell Feature upsell_category_2 String Upsell Feature mobile_expiration_date String
(YYYY-MM-DD)
LTO Feature kiosk_expiration_date String
(YYYY-MM-DD)
LTO Feature odmb_expiration_date String
(YYYY-MM-DD)
LTO Feature is_add_on Boolean Add-on widget Feature profit_margin Double Margin (weight profit margin) Feature -
Custom fields: Market-defined attributes that describe additional product details, such as LTO (Limited-Time Offer) for loyalty campaigns, meal period, and can be used for granular targeting, affinity modeling, and merchandising rules.
Custom fieldsField name Field type Comments Float
(up to 1000 characters)Number
<"column_name">
Any custom product attribute with numeric values. Must be ≥ 0.
For example, "special_price" or "margin".Date
(yyyy-mm-ddThh:mm:ss)
String
<"column_name">
Any custom product attribute with date values.
For example, "date_added" or "sale_end_date".String
(up to 1000 characters)
<"column_name"> Any custom product attribute with string values.For example, "brand" or "badge title".
Ensure all data is properly structured, before publishing review validations.
Create a new feed
Go to Assets › Data Feeds and create a new product feed.
Choose type > Product Feed and determine if this product feed is Shared across all stores or Localized by store.
- Shared across all stores - A single feed per section that includes all products, their category hierarchy, and availability across different day parts (breakfast, lunch, dinner, late night)
- Localized by store - A separate feed per restaurant containing all product information, including price, in-stock values, and additional details
To upload a localized feed per store, see — How to Update a Branch Feed.
After naming the feed, you can select one of the following sync options:
- Sync a URL or upload a file: Upload a feed file (up to 25 MB), or refer to a URL location where a feed file is stored. If you are using HTTP authentication, add the username and password to the feed URL as follows http://user:password@url.
- Sync securely via Amazon S3: File size up to 5 GB.
- Sync securely via SFTP
- Sync via API: Use to update only the changes (rather than syncing the entire feed). This can be helpful to quickly sync a feed with a large number of products, which can take some time to sync by file.
After the user uploads the catalog and it passes validation, the catalog is automatically sent to the QSR Admin. From there, you must complete the deployment process manually.