ChannelEngine: custom feed builder [add-on]
About this article
This article describes ChannelEngine's custom feed builder.
Table of contents
Introduction
Some third-party selling solutions require a specific syntax structure for your product feed. For channels that require the JSON format, specific nesting structures, or other specific syntax, further customize your product feed with the custom feed builder. You completely design the attributes in the product feed that you generate from the custom feed builder, either by uploading a template or adding attributes to your feed via the web interface.
With the custom feed builder, generate a product feed in CSV, XML, or JSON format to meet the formatting requirements of the third-party channel. Use the custom feed builder to meet the following use cases:
Transform your ChannelEngine product data into CSV, XML, or JSON format, and submit the new format to a third party, e.g.: an affiliate channel or pricing solution that ChannelEngine does not yet connect to.
Upload an example CSV, JSON, or XML file from a third party to automatically load the required attributes for the custom feed.
When required by the third party, add more attributes on top of your existing product data, so that the newly generated feed URL contains this new product structure.
Setup
On ChannelEngine
Add the Feed channel plugin to your dashboard.
Custom feed builder is available as an optional add-on to your existing package. To activate it, either:
- Reach out to your customer success manager, or
- Click Request to configure, and a ChannelEngine representative will reach out to you.
Complete the following configuration steps:
- Go to Setup in the custom feed builder. Enter a suitable name for the feed channel. In Export data type, select the format for the feed – CSV, XML, or JSON.
- Optionally, enable the Block empty exports setting. This setting prevents empty product feeds from being generated, i.e.: feeds that contain no products or attributes.
- Upload a custom PNG image for your custom feed. The default custom feed image will remain if you do not upload a new image.
Click Save and continue.
Create a new product selection or copy an existing product selection. To learn more about how to set up a product selection and use filters, check out the article ChannelEngine: product selection. Save your product selection with a meaningful name. Click Save.
Feed settings
Upload a template with the desired attributes and structure. If you want to modify the structure of your attributes after the upload is complete or manually create attributes from scratch, read the section Managing attributes below.
CSV feeds
If you opted to generate a CSV feed, upload a CSV file template that defines the attributes to be added to the feed. Click Upload. The attributes in the file will appear on the page. (Refresh the page if needed.)
XML feeds
If you opted to generate an XML feed, upload an XML file template.
To upload an XML template, first enter the product root in the field that is indicated with 'Enter root name'. The product root element is the top-level element in the XML file. In the following example, Product is the product root.
XML feed example
<Products>
<Product>
<name>TShirt</name>
<color>blue</color>
</Product>
</Products>
Click Upload. The attributes from the XML file will appear with their paths on the Feed settings and Mappings pages.
Content names
A content name is specific to the XML language. If your XML feed contains content names, the custom feed builder shows the content names on the user interface.
XML snippet with a content name
<Products>
<Product>
<name>1080p Bundle-956</name>
<images>
<image img="https://via.placeholder.com/500x500/227F49/ffffff.png?text=MPN-956-B" />
In the above XML snippet, a syntax is used that contains a content name for an image attribute, i.e: <image img=... />. The content name img is automatically recognized in the custom feed settings, as shown in the screenshot below. Content names are useful when documenting a series of images, where several images should appear with a given product, e.g.: img1, img2, etc.
If an attribute is not categorized as either ‘Container’ or ‘Parent’, you have the option to show or hide a content name tag within the exported XML file. Toggle content names on and off in the generated XML file by clicking the buttons Show content name and Hide content name.
Containers
From the above XML snippet, the ‘Product’ and ‘images’ nodes are automatically categorized as type ‘Container’ on the page, after the upload is complete. Containers do not appear on the Mappings page as mappable fields. Your XML template does not require explicit containers. This might be the case if your product structure does not contain parent-child relationships. Rather, the custom feed builder will recognize the parent node as the container.
JSON feeds
If you opted to generate a JSON feed, upload a JSON file template.
To upload a JSON file, click Upload. You do not need to define a product root element on the page. The example below shows a JSON feed that contains a nested grandparent-parent-child relationship of product attributes.
JSON snippet with grandparent-parent-child relationship
[
{
"name": "Cool Bike helmet",
"brand": "Helmetking",
"description": "This bike helmet has a great fit with an adjustable strap. comes in two colors.",
"parents":[
{
"color" : "red",
"children":
[
{
"size": "XL"Parent-child relationships
After uploading the JSON file, the first attributes from the file appear highest in the hierarchy on the page, and the parent attribute ‘color’ and child attribute ‘size’ appear indented on the page, matching the syntax of the JSON file. These attributes are marked as ‘Default’ because the custom feed builder mirrors their syntax from the uploaded JSON file. Each container in the JSON file is automatically recognized as type ‘Container’.
Content names must be hidden when generating JSON files. By default, the Show content name button appears next to each attribute, and there is no need to take further action. Click Hide content name if, for some reason, a content name is toggled on.
By default, all attributes from uploaded files are marked as optional attributes and will appear as optional when mapping the attributes on the Mappings page. To mark a field as Required, click on the Optional button toggle.
Managing attributes
To populate your product feed, click Add attribute.
- Enter a name and value for the attribute. Click Add to add more options. Make sure the attribute names exactly match those used on the marketplace where you will apply this product feed.
- If you are generating an XML file, you can indicate if you want to use content names in your syntax. If you want to use a content name, then enter the name of the tag, e.g.:
img. - For each attribute, select one of the following types:
- Container - for XML or JSON files, a node that contains more attributes within it.
- Default - the default node type that is read from an uploaded file template.
- Child - for XML or JSON files, a child node, which is nested under a parent.
- Parent - for XML or JSON files, a parent node, which has children. Select this type if your container contains groupings of parents.
- Price - a price attribute. Select ‘Price’ to designate price attributes so that your mapped fields work with the pricing feature on ChannelEngine.
- To reorder the attributes, use the grip to drag and drop them.
- When you have created all attributes and the desired structure, click Save and continue.
- Go to Mappings, and map your attributes. Click Save. To learn more about attribute mapping, check out the article ChannelEngine: content mappings.
- If your feed contains price attributes, go to Pricing. Set up relevant price rules and promotions if they apply to the third party to which your feed will apply. To learn more about pricing on ChannelEngine, check out the article ChannelEngine: pricing.
- Go to Overview. On the right-hand side of the page, you will see a health status report that indicates the readiness of your new feed.
- Toggle on the Activate synchronization for [feed channel] setting. This setting triggers a task that updates the feed each time new attributes or structures are added. We recommend that you keep this setting enabled to send real-time feed updates to the third party.
- Click Generate feed. When generated, the URL of your product feed is published on the page. The URL is ready to be copied and used on third-party solutions. When the generated file is ready, ChannelEngine also sends the URL of your product feed to the email address that you use to log into ChannelEngine.
FAQs
How frequently does ChannelEngine update the custom feed?
ChannelEngine uses scheduled tasks to update the custom feed. The task runs every 30 minutes as long as the Activate synchronization for [feed channel] setting is enabled, and the product feed is actively used on at least one channel. If the feed is not in use, it is generated only once. The custom feed also updates whenever there is a change to the product structure.
ChannelEngine has generated an empty custom feed. How can I prevent this?
By default, ChannelEngine generates product feeds even if they contain no products or attributes. To prevent this, enable the Block empty exports setting on the Setup page. This stops ChannelEngine from generating empty feeds and ensures that a previous feed with data is not overwritten.
If you prefer to monitor empty feeds instead of blocking them entirely, you can enable the Feed builder empty export notification. This allows you to track when an empty custom feed is generated. To learn more about enabling notifications, check out ChannelEngine: how to configure notifications.
Interactive demo
Comments
0 comments
Article is closed for comments.