Product Feed in Brink Commerce

Concept

Brink Commerce provides a merchant api. With feed for Google Merchant Center, Facebook Business Catalog and other services based on the same schema.

Google Merchant Center and Facebook Business Catalog feed

The feed will be generated based on query parameters and product data in Brink Commerce

IdentifierTypeDescriptionRestrictions
currencyUnitStringCurrency unit [ISO 4217] format. Required[A-Z]{3}
baseUrlStringBase URL for where the products slug is appended. Required
brandStringBrand. https://support.google.com/merchants/answer/6324351. Required
langStringLanguage code [ISO 639-1]. Required[A-Z]{2}
overrideCountryISOStringCountry Code [ISO 3166-1]. Used to do a Localized Catalog Setup in [Facebook Business Catalog][A-Z]{2}

Swagger

curl --request GET \
  --url 'https://api.${env}.brinkcommerce.com/merchantv1/google/products?baseUrl=demo.brinkcommerce.com%2Fproduct&lang=en&currencyUnit=SEK&brand=Brink%20Commerce%20AB'

Response

<?xml version="1.0"?>
<rss
  xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <channel>
    <title>Online Store</title>
    <link>demo.brinkcommerce.com</link>
    <description>This is a sample feed containing the required and recommended attributes for a variety of different products</description>
    <item>
      <g:id>435bc351-76e0-42d8-a491-838179c6f9c9</g:id>
      <g:item_group_id>fc578e44-dff6-4536-ba55-3a3c72784880</g:item_group_id>
      <g:product_type>Tennis shoes</g:product_type>
      <g:title>Converse Play</g:title>
      <g:description>Wear your heart on your shoes with the Converse x PLAY Comme des Garçons Chuck 70 sneaker. This street-ready style features the premium Chuck details you know and love, paired with a whimsical heart-and-eyes graphic peeking just above the sole. Eye-catching is an understatement.</g:description>
      <g:link>https://demo.brinkcommerce.com/product/converse-play/?variant=converse-play-size-41</g:link>
      <g:image_link>https://cdn.sanity.io/images/6c7cwk47/demo/778762b2b4fc46997f87230e3aafa3c62366daa0-1350x900.jpg</g:image_link>
      <g:condition>new</g:condition>
      <g:brand>Brink Commerce AB</g:brand>
      <g:availability>out of stock</g:availability>
      <g:price>240.00 SEK</g:price>
    </item>
    <item>
      <g:id>70fe569a-d2f9-4435-b693-62b44b41d791</g:id>
      <g:mpn>MPN45678</g:mpn>
      <g:item_group_id>fc578e44-dff6-4536-ba55-3a3c72784880</g:item_group_id>
      <g:product_type>Tennis shoes</g:product_type>
      <g:title>Converse Play</g:title>
      <g:description>Wear your heart on your shoes with the Converse x PLAY Comme des Garçons Chuck 70 sneaker. This street-ready style features the premium Chuck details you know and love, paired with a whimsical heart-and-eyes graphic peeking just above the sole. Eye-catching is an understatement.</g:description>
      <g:link>https://demo.brinkcommerce.com/product/converse-play/?variant=converse-play-size-39</g:link>
      <g:image_link>https://cdn.sanity.io/images/6c7cwk47/demo/778762b2b4fc46997f87230e3aafa3c62366daa0-1350x900.jpg</g:image_link>
      <g:condition>new</g:condition>
      <g:brand>Brink Commerce AB</g:brand>
      <g:availability>out of stock</g:availability>
      <g:price>250.00 SEK</g:price>
    </item>
  </channel>
</rss>

Product and ProductVariant mapping

Product

Product Model AttributeG tag
idg:item_group_id
attribute.displayName[lang]g:title
attribute.description[lang]g:description
https://${baseUrl}/${product.slug}g:link
imageUrlg:image_link

Product Variant

ProductVariant Model AttributeG tag
idg:id
categoryg:product_type
stockg:availability
priceg:price

For productVariant object you can add yor own g tags with customerAttributes. Object key names prepended with productFeed_, will be transformed to a g string in the feed.

For example:

{
  "customerAttribute": {
    "productFeed_mpn": "12345",
    "productFeed_google_product_category": "524"
  }
}

will be transformed into

<g:mpn>12345</g:mpn>
<g:google_product_category>524</g:google_product_category>

Localized Catalog Setup

Information regarding adding localized Catalog Setup in FaceBook Business Catalog can be found here

Pick a overrideCountryISO and add it as a query parameter.

curl --request GET \
  --url 'https://api.${env}.brinkcommerce.com/merchantv1/google/products?baseUrl=demo.brinkcommerce.com%2Fproduct&lang=en&currencyUnit=SEK&brand=Brink%20Commerce%20AB&overrideCountryISO=SE'

A override xml feed will be returned. With language and price based on the query parameters.

Response

<?xml version="1.0"?>
<rss
  xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <channel>
    <title>Online Store</title>
    <link>demo.brinkcommerce.com</link>
    <description>This is a sample feed containing the required and recommended attributes for a variety of different products</description>
    <item>
      <g:id>d8ca1bf1-6ff4-497d-9d47-dea7c6ac155e</g:id>
      <g:title>Converse Play</g:title>
      <g:description>Wear your heart on your shoes with the Converse x PLAY Comme des Garçons Chuck 70 sneaker. This street-ready style features the premium Chuck details you know and love, paired with a whimsical heart-and-eyes graphic peeking just above the sole. Eye-catching is an understatement.</g:description>
      <g:link>https://demo.brinkcommerce.com/product/converse-play/?variant=converse-play-size-40</g:link>
      <g:override>SE</g:override>
      <g:price>240.00 SEK</g:price>
    </item>
    <item>
      <g:id>9a75be3b-9031-4bb3-bfe2-69ada1627f90</g:id>
      <g:title>Vans Classic Mustard</g:title>
      <g:description>The Vans Old Skool Pro is a low top, lace-up shoe. It is lined, has padded collars for support and flexibility, re-enforced toecaps to withstand repeated wear, and features the Vans signature waffle outsole for a firmer grip.</g:description>
      <g:link>https://demo.brinkcommerce.com/product/vans-classic-mustard/?variant=vans-classic-mustard-size-40</g:link>
      <g:override>SE</g:override>
      <g:price>260.00 SEK</g:price>
    </item>
  </channel>
</rss>

Next up: Price management

Ok, so that was all for product management. Next, we'll look at Price management