Magento 2

Simple Google Shopping

Export quickly and safely a valid and well-structured data feed of your complete catalog of products from your Magento website to your Google Merchant Account thanks to Simple Google Shopping, an extension built by a Google partner.

marketplace approved
best seller
145,00€excl. VAT

4.9/5 rated 543 reviews

  • Lifetime license
  • 12 months support & upgrade
  • 60 days money-back guarantee
  • Extensible source code
  • Unlimited test domains
  • Free composer access
Demo Store

Easily export your products data to Google Shopping thanks to the powerful Simple Google Shopping extension for Magento 2

  • Create an XML data feed including all your catalog of products in one go using Simple Google Shopping.

Efficiently export your Magento 2 products catalog to Google Shopping

  • Product types — Include all product types to your data feeds: simple, configurable, downloadable...
  • Multi-stores — Create multi-currencies and multi-VAT-rates data feeds for each one of your Magento stores.

Create a data feed in compliance with Google requirements

  • Template — Start configuring your data feed very quickly using the sample XML pattern included with the extension.
  • Library — Find any attribute you're looking for in the attributes library.
  • Reports — Fix your data feed errors thanks to the errors and warnings reports.
  • Preview — Preview your data feeds from the black box and use the syntactic helper to avoid any misprints.

Completely customize your data feed according to your products catalog

  • XML pattern — Configure your XML pattern by adding any Magento 2 attributes.
  • PHP API — Add PHP scripts into your XML patterns.
  • Category filter — Filter your products according to the product and/or parent categories.
  • Filters — Create filters based on the attribute sets, product types, and visibility.
  • Advanced Filters — Define more personalized filters using advanced filters.
  • AND/OR statements — Use OR/AND statements in your advanced filters.

Automatically and regularly send your updated data feed to Google

  • Cron tasks — Use the scheduled tasks to periodically generate your data feed.
  • Generation details — Check your data feed generation: number of items, time, and resource
  • Generation status — Ensure that your data feed is correctly generated thanks to the status.

Easily find the Google categories that correspond to yours

  • Category Mapping — Easily and rapidly map each one of your categories to Google ones.
  • Search As You Type — Facilitate your category mapping with the Search As You Type option.

Data Feed Manager

Export your products into CSV, TXT, and XML data feeds for any shopping engine

  • Display your products on any marketplace and make the most of your data feeds thanks to Data Feed Manager for Magento 2.
  • Are you interested in Data Feed Manager?
  • See More details
  • Check the demo

Content

    What are Google Merchant and Google Shopping?

    In order to use Simple Google Shopping, you should be aware of what Google Merchant and Google Shopping are.

    Here is some basic knowledge about Google Shopping and data feed management.

    What are Google Shopping and Google Merchant?

    Google Shopping is a free Google service allowing customers to find and compare products they want to buy online. If you are an online merchant, you can submit all your products to Google Shopping and attract potential customers by allowing them to view your products more easily.

    Google Merchant Center is a tool that helps you upload your store and product data to Google and so make it available for Google Shopping ads and other services of Google Learn more on how to get started with Merchant Center.

    How to create my Google Merchant Account?

    In order to submit your products to Google Shopping, you need to create a Google Merchant Account. Click on the following link for further information on creating an account: https://support.google.com/merchants/answer/188924?hl=en

    Once your account created, you'll have access to the Google Merchant interface. There you can manage all your product data feeds and plan any daily, weekly, or monthly updating tasks.

    What is a products data feed?

    A data feed is a file made up of a unique group of attributes that define each one of your products. This allows customers to search and find your items more easily. This file is similar to a RSS data feed but includes some specific XML tags used by Google Merchant Center or any other shopping engine.

    To know more about the product data feeds, feel free to have a look at the Google Merchant Center support site: https://support.google.com/merchants/answer/188478?hl=en

    How to create a products data feed?

    Simple Google Shopping and Data Feed Manager are two Magento 2 extensions that allow you to quickly configure, generate, and automate several product data feeds.

    How to use Simple Google Shopping?

    STEP 1: Configure Simple Google Shopping in a general way

    Before being able to configure your data feeds, you should configure the extension in a general way. To do so, go to:
    Stores › Settings › Configuration › Wyomind › Simple Google Shopping

    Cron job reporting
    In the Cron job reporting tab, you can activate the cron job reporting and fill in an email address to receive the reports. You can also rename the reports as you want. 
    Core Settings
    In the Core Settings tab, you'll need to configure a certain number of fields.
    • Items in preview:
      By default, there are 10 items in preview, if you want you can reduce or increase that number.
    • Items in buffer:
      By default, products are inserted into the file on the server every 10 items but you can reduce or increase that number.
    • Items in SQL request:
      By default, there are 1500 items in each MySql query.
    • Number of advanced filters:
      By default, you have 10 advanced filters. If you need more, you can at any time increase that value.
    • Use of OR/AND statements in advanced filters:
      OR/AND statements can be used in the advanced filters simply by enabling that option. 
    • Include not in menu categories:
      You can also include the categories of products that are not in the menu. 
    • Memory limit size (M):
      The default memory limit is 1024.
    • Use canonical urls:
      You have a choice between several options. You can choose to use the shortest category URL, the longest one, or the product URL.

    For example, if you have a "T-shirt" in 2 categories: "New arrivals" and "Shirts", the urls may be
    Product Url = http://mywebsite.com/t-shirt.html
    Shortest category url = http://www.mywebsite.com/men/shirts/t-shirt.html
    Longest category url = http://mywebsite.com/men/new-arrivals/t-shirt.html

    • Enable log reporting:
      You can also enable the log reporting.

    STEP 2: Configure your data feeds with Simple Google Shopping

    To create and configure your data feeds, go to:
    Products › Simple Google Shopping

    Your data feeds will be listed according to IDs. You will find the name of the file, its path as well as the link to the data feed file. You should also get a message that sums up the number of products exported, the time it took, and the number of errors and warnings in your data feed.

    The status of your data feed will vary according to the situation:

    • Pending: the data feed has never been generated or the scheduled hour is passed (waiting for the execution of the cron task)
    • Success: successful generation of the data feed, manually or automatically (the generation corresponds with a schedule)
    • Hold: in the process of generation (latency, indeterminate status)
    • Processing: generation progression percentage
    • Error: the generation is stopped

    You should find the date and the hour of the last generation of the data feed as well as the Store view taken into account for the data feed.

    From the Action dropdown, you'll be able to:

    • Edit
    • Generate
    • Preview (10 items)
    • Delete

    Click on Create new data feed to configure your data feed as you want.

    The Tool Box

    When creating a data feed, you should see a black box on the right of your screen. The Simple Google Shopping extension includes that tool to help you configure your feed and see what is wrong.

    The toolbox is inevitably a very useful tool. This will help you to configure your data feed more quickly.

    Below are the different options for the toolbox.

    Library
    If you click on that button, a library of your store attributes will be displayed. This makes it easier to find very quickly which attribute you need to add to your pattern.
    Preview
    When clicking on it, you'll see a preview of your data feed. It's very useful to see if the values of your attributes are correctly retrieved or if the filters you've defined are working as expected.
    Report

    You can get reports on the errors and warnings of your data feeds.

    Those reports do not replace the error reports from Google and are by no means a guarantee that your data feed will be approved by the Google team. This will help you to save time by quickly identifying the main problems of your data feed and by making the necessary changes.

    • In orange will be displayed the warnings such as: Missing recommended attribute: product_type.
    • In red will be displayed the error that you must correct to be able to submit your data feed: Missing required attribute:
      google_product_category.

    Next to these errors or warnings, you should see the number of items that are concerned.

    By default, the reports will give the 10 first examples ( sku ) that are concerned with each error and warning. You can change that by editing the Items in preview in:
    Stores › Settings › Configuration › Wyomind › Simple Google Shopping › Core Settings

    Configuration

    In that first tab is the main configuration of the data feed. To customize your feed, you'll find several fields to fill in.

    • Name
      You can add a name to your data feed. 
    • Filename
      Enter a name for the file.
    • Path
      Define the path where you want the data feed to be generated. 

      /feeds/

    • Store View
      Define which store view is concerned.
    • Website url
      Add your website URL.
    • Title
      Add a title to your feed.
    • Description
      Add a description to your data feed.
    • XML pattern
      This is probably the most important field as this is where you will configure your pattern.

    Categories filter

    In the Categories tab, you will find 2 subtabs that will allow you to manage your categories.

    You can filter your categories according to two different ways:

    • Exclude all products from the selected categories.
    • Include all products from the selected categories.

    For example, if you wish to include only products of the Gear category, you can configure your filters in two different ways.

    First of all by ticking the Include option that will allow you to include all categories that you have selected.

    Or via the Exclude option that will exclude all categories that you have selected.

    You are able to include or exclude your categories depending on:

    • Parent categories only
      In the case where you have a configurable product with simple variants associated. The configurable has a category assigned but not the variants.
    • Product categories only
      If you have categories assigned to simple variants but not to the configurable product.
    • Product and parent categories
      In the case where you have both situations.

    Category selection and mapping

    In that subtab, you can select and map your categories to Google ones. This step is very important so that Google can make a link between their product categories and yours.

    What is the category mapping?

    The Google product taxonomy is a tree of categories that will help you generate values for the Google product category attribute listing all possibilities.

    Categories names you are using in your Magento aren't always the same as the ones used by Google Merchant to reference your products.

    This means you have to find out which Google Merchant categories have the best matching with yours, according to the Google product taxonomy.

    For example, if you're selling furniture like coffee tables, you'll have a Coffee table category in your Magento admin. But Google Merchant doesn't handle this kind of category. The closest Google product category could be Kitchen & Dining Room Table. 

    So this should appear this way in your data feed:

    <g:google_product_category>Furniture > Desks & Tables > Kitchen & Dining Room Tables</g:google_product_category>
    How to map your categories to Google ones?

    Simple Google Shopping provides you with an easy way to input Google product categories that are matching yours.

    In your data feed configuration, go to the Categories tab. Then, in the Category selection and mapping section, you'll find a tree view of all your categories.

    First, select the Google Taxonomy source on which the category mapping is based.

    Taxonomy files for the main countries are directly included in the extension to allow you to map your categories more easily. You can also have a look at the below documentation to know how to add a new taxonomy file.

    For each category, you have a little arrow followed by mapped as.

    There, you'll be able to start typing a keyword in order to display a list of all categories including that keyword. You simply need to select the one you need.

    Once all your categories are mapped, you can click on the Save button.

    Here are a few guidelines for choosing the most appropriate category:

    • Use the category that best describes your item. To do this, first determine the primary function of the products you are submitting. For specific items like MP3 Players, select the MP3 Players category. While some MP3 players can also serve different functions, like those that contain a clock, they are primarily MP3 Players.
    • Use only one category. For some products, more than one category might be relevant. For example, an adapter to allow an MP3 player to be used in a car could be in both categories Motor Vehicles > Audio & Video and Electronics > Audio > Audio Accessories > MP3 Player Accessories. In such cases, choose the category that seems the most appropriate to you, but don't include more than one.
    • Use the most specific category possible. Being specific will help improve your data quality and in turn ensure that offers are presented in the right category. When viewing the taxonomy, try to navigate to the most specific category that still covers all the products being submitted. For instance, if you are submitting MP3 player chargers use the category MP3 Player Chargers . Conversely, if you are submitting multiple types of chargers use the category Chargers.
    How to include the Google category to the XML template?

    Finally, so that the Google category is retrieved in your data feed, you must add the following attribute to the XML template:

    <g:google_product_category>{{product.google_product_category}}</g:google_product_category>

    Read also: https://support.google.com/merchants/answer/6324406?hl=en

    How to add a taxonomy file?

    With Simple Google Shopping, you have the possibility to change the file on which the category mapping is based.

    From that page, choose the language you want to use for your taxonomy at the bottom right. Then, in the Downloadable taxonomy, open the Plain Text link that contains full category names.

    Save that file and paste it in:
    Magento 2 Root Directory › lib › WyominD › Google › Taxonomies

    Don't forget to apply the permissions 644 to the file.

    You'll then be able to choose that specific taxonomy from your data feed configuration.

    Filters

    Simple Google Shopping for Magento 2 also allows you to filter your products on several levels according to their attribute sets or their visibility for example.

    Product Type
    First of all, you can choose to include products to your feed according to their type. For example, only include simple, virtual, and downloadable products.
    Attribute Set
    You have the choice to include several attribute sets. In our case, we've decided to include only the Default and Gear attribute sets. 
    Product Visibility
    Then, choose the products that will be included to the feed between the products that are not visible individually, products from the Catalog, the Search results, or both. 
    Advanced Filters
    In the Advanced filters, you can go further by setting more personalized filters. For example, we wanted to include only products which price is higher than 0, and which SKU is not null.

    Here again, you have the possibility to configure your advanced filters according to several options.

    • LIKE / NOT LIKE

    a name like %shirt: will include all products which name ends with 'shirt'.
    name like Apple%: will include all products which name starts with 'Apple'.
    name like %women%: will include all products which name contains the 'women' character string.

    name not like %shirt: won't include any product which name ends with 'shirt'.
    name not like Apple%: won't include any product which name starts with 'Apple'.
    name not like %women%: won't include any product which name contains the 'women' character string.

    • IS NULL / IS NOT NULL

    Special price is null: will include all products that don't have special prices. 

    SKU is not null: will include all products which SKU is not null.

    • IN / NOT IN

    Size in S L: will include only products from these 2 sizes. 

    Size not in S L: will include all products which size is not S or L.

    Cron Schedule

    Simple Google Shopping for Magento 2 provides you with a fully configurable schedule in the Cron Schedule tab of each data feed pattern configuration.

    You just have to tick the days and hours when you want your data feed to be generated.

    Note

    In that section, you can use the Note field to add any information you can find useful. This is an internal note. 

    Action History

    In the Action History tab, you can find a history of your previous generations and configurations. 

    You'll find: 

    • ID
      It is the ID of the history line. 
    • Version ID
      It is the ID of the data feed configuration version.
    • Origin
      The origin of the action can be: Backend / Cron / CLI / API
    • Username
      It is the name of the user behind the action.
    • Action
      The available actions are: create / generate / update / delete
    • Details
      If you click on More details, you can see the detail of the data feed update from a grid.
      If you click on a line of the above grid, you can check the detail in a popup.

    • Date
      It is the date of the modification.

    STEP 3: Generate and download the data feeds

    Generate the data feeds manually

    Simple Google Shopping allows you to generate the data feeds manually or automatically. 

    Manually

    You can generate your data feeds manually from the action dropdown of the data feeds grid. 

    You also have the possibility to do it from the configuration panel by clicking on Generate. 

    With the cron tasks

    In order to automatically generate the data feeds through the cron tasks, you must first make sure that the main cron task is enabled on your server.

    Data Feed Manager - Cron Success

    If not, you should see a warning message in Simple Google Shopping.

    Then, you need to select a least one day and one-time frame from the Cron schedule tab for each data feed that must be updated.

    Generate the data feeds through CLI

    You can easily use the Command Line Interface to generate the data feeds.

    To generate all the data feeds:

    bin/magento wyomind:simplegoogleshopping:generate


    To generate one data feed from a given id:

    bin/magento wyomind:simplegoogleshopping:generate int DATA_FEED_ID


    To generate several data feeds from a given list of ids:

    bin/magento wyomind:simplegoogleshopping:generate  int DATA_FEED_ID [, int DATA_FEED_ID] [, int DATA_FEED_ID]...


    To list all data feeds including status, name, last update:

    bin/magento wyomind:simplegoogleshopping:list

    Download the generated data feed

    When a data feed is ready to be downloaded, the link is displayed in both, the data feed grid and the data feed page at the top of the page. To download the data feed, select Save link as after a right-click on the link. You should also find the file in your ftp client if the directory where the data feed is stored is not publicly accessible.

    Manage your data feed templates with Simple Google Shopping

    10 Things to know when creating an XML data feed with Simple Google Shopping

    1. An XML data feed is using opening and closing tags that include a value.
      <g:id>123456</g:id><price>45.99 USD</price>​

    2. A data feed template is made of several tags including dynamic or fixed values.
      <g:id>{{product.sku}}</g:id><g:brand>Fixed Brand</g:brand>
    3. Dynamic values are called variables and use the attribute codes of your Magento website preceded with the object. The variable must be enclosed using double brackets.
      <g:id>{{product.sku}}</g:id><price>{{parent.price}}</price>
    4. Between every opening and closing tags, you can also include some fixed values. Fixed values are simply text.
      <g:brand>YOUR BRAND</g:brand>
    5. You have also the possibility to add several variables and fixed values in the same tag.
      <title>{{parent.name}}, available in {{product.color}} for only ${{product.price}}</title>
    6. Some Magento 2 attributes like price, image, or URL may have further configuration options or parameters that will correspond to your specific data feed needs.
      <price>{{product.price currency=EUR vat_rate=20}}</price>​
    7. You're allowed to use PHP code if you want to customize the pattern. Check how to add PHP scripts into your patterns.
      <tag>{{product.name output="wyomind_strtolower($self)"}}</tag>
    8. The syntactic coloration in Simple Google Shopping will also help you to avoid many errors in your pattern.
    9. You can use one or more fallback variables in case of the previous is empty or null. If attributeA exists then the value will be attributeA, otherwise, the value will be attributeB...
      {{product.color | product.colour}}​
    10. CDATA is recommended. CDATA stands for Character Data. It means that the data in between these tags include data that could be interpreted as XML markup, but should not be (Wikipedia article).
      <description>
      <![CDATA[<p>Fantastic <b>Watch</b>, that not only tells you what time it is,but also gives the weather trends</p>]]>
      </description>​

    How is a variable structured?

    To modify your pattern as you want, before anything you need to respect a particular syntax. Indeed, in order to retrieve attributes, the Simple Google Shopping extension uses a specific structure. Then it is essential that you know how the variable is built to be able to configure your data feed according to your needs.

    The above screen details the different components of a variable.

    • object
      Defines what is the target for the attribute to retrieve. It can be a simple product, a parent, configurable, bundle or grouped one.  
    • attribute
      Defines the code of the attribute to retrieve. For example, the price, the URL...
    • parameters
      Defines some additional parameters for specific attributes such as the currency or the VAT rate.
    • value
      Defines the different values available for the previous parameter.

    Attribute specifications

    The data feed pattern is totally customizable.

    OBJECTS

    In order to retrieve the value of an attribute, you need to define which object is targeted. Below are the different types of objects that you can use.

    {{product.attribute_code}}

    Retrieves the attribute for the product.

    For example:

    {{product.sku}}
    {{product.color}}
    {{parent.attribute_code}}

    Retrieves the parent attribute value.

    The parent value is retrieved only if the simple (item) product is associated with a parent product, if not, nothing is retrieved.

    The parent product may be a configurable, a grouped or a bundle product. The first parent product that matches the simple product is used to get the attribute value.

    For example:

    {{parent.product_type}}
    {{parent.brand}}
    {{configurable.attribute_code}}

    Retrieves the first configurable parent attribute value.

    The configurable product value is retrieved only if the simple product is associated to a configurable product, if not, nothing is retrieved.

    For example:

    {{configurable.image_link}}
    {{configurable.url}}
    {{grouped.attribute_code}}

    Retrieves the first grouped parent attribute value.

    The grouped product value is retrieved only if the simple product is associated to a grouped product, if not, nothing is retrieved.

    For example:

    {{grouped.google_product_category}}
    {{grouped.url}}
    {{bundle.attribute_code}}

    Retrieves the first bundle parent attribute value.

    The bundle product value is retrieved only if the simple product is associated to a bundle product, if not, nothing is retrieved.

    For example:

    {{bundle.sale_price}}
    {{bundle.price}}

    PRODUCT IDENTIFIERS

    You'll find below the attributes the most commonly used to identify the products in data feeds patterns.

    {{object.id}}

    Retrieves the id of the product.

    For example:

    {{product.id}}
    {{object.sku}}

    Retrieves the sku of the product.

    For example:

    {{product.sku}}
    {{object.brand}}

    Retrieves the brand of the product.

    For example:

    {{product.brand}}
    {{object.manufacturer}}

    Retrieves the brand of the product.

    For example:

    {{product.manufacturer}}

    BASIC INFORMATION

    You'll find below the attributes that are generally used to define basic information of products in the data feeds.

    {{object.name}}

    Retrieves the name of the product.

    For example:

    {{product.name}}
    {{object.description}}

    Retrieves the description of the product.

    For example:

    {{product.description}}
    {{object.short_description}}

    Retrieves the short description of the product.

    For example:

    {{product.short_description}}
    {{object.condition}}

    Retrieves the condition of the product.

    For example:

    {{product.condition}}
    {{object.weight}}

    Retrieves the weight of the product.

    For example:

    {{product.weight}}

    PRICES AND PROMOTIONS

    Below is a list of the price attributes that you can use in your feed pattern. For most of them, you can add some parameters in order to define the currency used or the VAT to apply for example.

    {{object.price}}

    Retrieves the best price among all the prices defined.

    If prices are exclusive of VAT and the product is liable to a unique VAT rate, the price retrieved will include this rate. Otherwise, the price exclusive of tax is retrieved.

    For example:

    {{product.price}}


    You also have the possibility to use some parameters with this attribute:

    • currency = automatically converts the original product price to a specified currency. It uses an exchange rate that you have already stored in your admin panel. By default, your local currency is used.
    • vat_rate = is a floating value between 0.00 and 100.00 that represents an arbitrary VAT rate to apply. This parameter rewrites the VAT rule for the product except if the product doesn't have any tax class.


    Here are some examples:


    To convert the prices to EUR and apply a 20% VAT rate:

    {{product.price currency=EUR vat_rate=20}}


    To convert the prices to USD and not apply any VAT rate:

    {{product.price currency=USD vat_rate=0}}


    If the prices of your catalog are already including VAT:

    {{product.price currency=USD}}


    To use an ISO2 code corresponding to one of the countries for which you specified a VAT rate in your tax settings:

    {{product.price currency=EUR vat_rate=FR}}


    This code may also be completed by an area code:

    {{product.price currency=USD vat_rate=US/NY}}


    To deduce the VAT corresponding to a country/area:

    {{product.price currency=GBP vat_rate=-GB}}


    To retrieve prices including different price values for simple products associated to a configurable one:

    {{parent.price currency=EUR vat_rate=20}}
    {{object.normal_price}}

    Retrieves the base price and ignores any other existing price value.

    For example:

    {{product.normal_price}}
    {{object.special_price}}

    Retrieves the special price if exists. If this price doesn't exist the value is null.

    For example:

    {{product.special_price}}
    {{object.price_rules}}

    Retrieves the price including the catalog price rules if indicated, if not, nothing is retrieved.

    If prices are exclusive of VAT and the product is liable to a unique VAT rate, the price retrieved will include this rate. Otherwise, the price exclusive of tax is retrieved.

    For example:

    {{product.price_rules}}
    {{object.sale_price}}

    Retrieves the best promotional between price rules and special prices).

    For example:

    {{product.sale_price}}
    {{object.sale_price_effective_date}}

    Retrieves the sale price effective date as 2011-03-01T13:00-0800/2011-03-11T15:30-0800. If no date is defined or if the dates defined don't match with the current date, the value is null.

    For example:

    {{product.sale_price_effective_date}}
    {{object.has_special_price}}

    Retrieves either 1 if a special price exists or 0 if not.

    You also have the possibility to use some parameters with this attribute:

    • yes = value to retrieve if a special price exists. By default 1.
    • no = value to retrieve if no special price exists. By default 0.

    For example:

    {{product.has_special_price yes="Special price" no="No special price"}}
    {{object.has_sale_price}}

    Retrieves either 1 if a promotional price exists or 0 if not.

    You also have the possibility to use some parameters with this attribute:

    • yes = value to retrieve if a promotional price exists. By default 1.
    • no = value to retrieve if no promotional price exists. By default 0.

    For example:

    {{product.has_sale_price yes="Sale price" no="No sale price"}}
    {{object.min_price}}

    Retrieves the minimum price.

    This attribute is used for configurable, bundle, or grouped products.

    If prices are exclusive of VAT and the product is liable to a unique VAT rate, the price retrieved will include this rate. Otherwise, the price exclusive of tax is retrieved.

    For example:

    {{product.min_price}}
    {{object.max_price}}

    Retrieves the maximum price.

    This attribute is used for configurable, bundle, or grouped products.

    If prices are exclusive of VAT and the product is liable to a unique VAT rate, the price retrieved will include this rate. Otherwise, the price exclusive of tax is retrieved.

    For example:

    {{product.max_price}}
    {{object.promotion_id}}

    Retrieves the product promotion id if exists.

    For example:

    <g:promotion_id>{{product.promotion_id}}</g:promotion_id>

    Below are listed the attributes that are generally used to retrieve any kind of link.

    {{product.url_config}}

    Retrieves URL to pre-select the simple product attributes from its configurable.

    You also have the possibility to use a parameter with this attribute:

    • currency=XXX = This will add ?currency=XXX to the generated URL.
      The access to the generated URL will switch the product page to the corresponding currency.

    For example:

    {{product.url_config currency=USD}}

    This will generate:

    https://www.yourstore.com/chaz-kangeroo-hoodie.html?currency=USD#142=5594&93=5476

    {{object.url}}

    Retrieves the product’s canonical absolute URL.

    You also have the possibility to use a parameter with this attribute:

    • currency=XXX = This will add ?currency=XXX to the generated URL.
      The access to the generated URL will switch the product page to the corresponding currency.

    For example:

    {{product.url currency=EUR}}

    This will generate:

    https://www.yourstore.com/joust-duffle-bag.html?currency=EUR

    Retrieves the product’s main image.

    You also have the possibility to use some parameters with this attribute:

    • index = index of any additional images to retrieve. By default 0 (the main image).
    • role = role of the image to retrieve. Also works with the roles configured by the admin.

    For example:

    {{product.image_link index=2}}
    {{product.image_link role="thumbnail"}}
    {{object.host}}

    Retrieves the host url, for example https://www.website.com.

    Example with the small_image attribute:

    {{product.host}}/media/catalog/{{product.small_image}}
    {{object.uri}} or {{object.url_key}}

    Retrieves the product canonical relative url.

    For example:

    https://www.mywebsite.com/mystore_code/{{product.uri}}

    CATEGORIES

    To retrieve the categories of your products, you can check the below attributes.

    {{object.categories}}

    Display the category paths in which the product may be found.

    All category paths are listed under the categories attribute from the shortest to the longest path as in the below example:

    1. Default Category
    2. Default Category › Sales
    3. Default Category › Clothes
    4. Default Category › Clothes › Men
    5. Default Category › Clothes › Men › Pants
    6. Default Category › Sales › Spring and Summer Sales


    In order to display a specific category path you have the possibility to use some parameters with this attribute:

    • nth: display the nth category path, if not specified the 1st category is used by default. Negative values are allowed.
    • from: display a category path starting from the nth category level, if not specified the 1st category level is used by default. Negative values are allowed.
    • length: display a category path limited to the given number of category levels, if not specified the whole path is displayed by default.
    • separator: the character used to separate each category level.

    For example:

    {{product.categories nth="1"}}

    Shows the first category path : Default Category

    {{product.categories nth="-1"}}

    Shows the last category path: Default Category › Sales › Spring and Summer Sales

    {{product.categories nth="3" separator="-"}}

    Shows the 3th category path and change the category levels separator to "-":  DEFAULT CATEGORY - CLOTHES

    {{product.categories nth="-2"}}

    Shows the before last category path: Default CategorY › Clothes › Men › Pants

    {{product.categories nth="-2" from="2"}}

    Shows the before last category path from the 2nd category level: Clothes › Men › Pants

    {{product.categories nth="-1" from="-1"}}

    Shows the last category path from the last category level: Spring and Summer Sales
       

    {{product.categories nth="-2" from="2" length="1"}}

    Shows the before last category path from the 2nd category level with only one category level: Clothes

    {{object.category_mapping}}

    Retrieves any new category that you have assigned (in the Categories tab) to the item’s own product category. If no mapping is assigned to the first category found, the second category will be used etc…

    You also have the possibility to use some parameters with this attribute:

    • index = index of the category mapping


    For example:

    {{product.category_mapping index=0}}
    {{product.category_mapping index=1}}
    {{product.category_mapping index=2}}
    {{product.category_mapping index=3}}
    {{product.category_mapping index=4}}

    This will retrieve a maximum of 5 category mappings in 5 separate tags.

    {{object.google_product_category}}

    Retrieves the Google category that you have assigned (in the Categories section) to the first category found for the product (index 0).

    For example:

    {{product.google_product_category}}

    AVAILABILITY

    The below attributes are often used to retrieve the availability of your products, for example, the quantity.

    {{object.qty}}

    Retrieves the available quantity.

    The quantity retrieved for configurable products is based on the sum of simple products.

    You also have the possibility to use some parameters with this attribute:

    • float = is the number of decimals.
    • stock_id = id of the stock for which you want to retrieve the quantity.
      The sum of the quantities of the sources associated with the stock is retrieved (Magento Multi Stock Inventory module).
      By default, the value of the default stock is retrieved.

    For example:

    {{product.qty float=1 stock_id="1"}}
    {{object.availability}}

    Retrieves either "in stock" if the product is in stock, "out of stock" if the product is out of stock or "available for order" if the product is backorderable.

    You also have the possibility to use some parameters with this attribute:

    • in_stock = value to retrieve if the product is in stock
    • out_of_stock = value to retrieve if the product is out of stock
    • backorderable = value to retrieve if the product is backorderable
    • stock_id = id of the stock for which you want to retrieve the availability (Magento Multi Stock Inventory module).
      By default, the value of the default stock is retrieved.

    For example:

    {{product.availability stock_id="2" in_stock="Currently in stock" out_of_stock="Out of stock" backorderable="Available for order"}}
    {{object.is_in_stock}}

    Retrieves either "in stock" if the product is in stock, "out of stock" if the product is out of stock.

    You also have the possibility to use some parameters with this attribute:

    • in_stock = value to retrieve if the product is in stock
    • out_of_stock = value to retrieve if the product is out of stock
    • stock_id = id of the stock for which you want to retrieve the status (Magento Multi Stock Inventory module).
      By default, the value of the default stock is retrieved.

    For example:

    {{product.is_in_stock stock_id="1" in_stock="In stock" out_of_stock="No more Stock"}}

    PRODUCT VARIANTS

    In the case where you're using product variations (color, size or gender) then you can use the following attributes. Attention, these attributes are examples and can differ according to the configuration of your Magento 2 store.

    {{object.gender}}

    Retrieves the gender of the product.

    For example:

    {{product.gender}}
    {{object.age_group}}

    Retrieves the age group of the product.

    For example:

    {{product.age_group}}
    {{object.color}}

    Retrieves the color of the product.

    For example:

    {{product.color}}
    {{object.size}}

    Retrieves the size of the product.

    For example:

    {{product.size}}
    {{object.material}}

    Retrieves the material of the product.

    For example:

    {{product.material}}
    {{object.pattern}}

    Retrieves the pattern of the product.

    For example:

    {{product.pattern}}

    GENERAL PARAMETERS

    Below are listed all the parameters that you can use with any attribute in your data feeds.

    {{object.attribute prefix="value"}}

    The prefix is what will be displayed before the attribute value only if it is not null, otherwise, nothing is retrieved.


    Below are some examples:


    To add the currency symbol before the price and not retrieve anything when the value of the attribute is null:

    {{product.price currency=USD vat_rate=0 prefix="$"}}


    To add the weight unit before the attribute value and not retrieve anything when that value is null:

    {{product.weight prefix="LBS "}}
    {{object.attribute suffix="value"}}

    The suffix is what will be displayed after the attribute value only if it is not null, otherwise, nothing is retrieved.


    Below are some examples:


    To add the currency code after the price and not retrieve anything when the value of the attribute is null:

    {{product.price currency=USD vat_rate=0 suffix=" USD"}}


    To add the weight unit after the attribute value
    and not retrieve anything when that value is null:

    {{product.weight suffix=" LBS"}}
    {{object.attribute as="myVariable"}}

    The as parameter allows you to store the value of a given attribute into a variable for a later use in one of your PHP script or in a condition (see if parameter).
    Notice, the attribute call even if it uses the as parameter will produce an output in the data feed expect if you add the output attribute with the value null (see output parameter)


    Here are a few examples:


    Display the product name and store the value in a variable $name:

    <!-- Product name is displayed and stored under a new variable "name" -->
    <name>{{product.name as="name"}}</name>

    $name can be then used in a PHP script latter in the template

    <?php
    /* If variable $name is equal to "Apple", then display "Apple" then display "Banana"
    */
    if($name=="Apple") return $name;else return "Banana";
    ?>


    Store the visibility of a product and use it in a condition for another attribute

    <!-- Product visibility is stored under a new variable "visibility" and the attribute doesn't display -->
    {{product.visibility as="visibility" output="null"}}
    <!-- If the product is not visible individually (1) then we display the parent product url, otherwise we use the product url-->
    <url>{{parent.url if="visibility==1" | product.url}}</url>
    {{object.attribute if="condition"}}

    The if parameter allows you to define one or more necessary conditions to display the given attribute in the data feed.

    One condition is built with 3 items :

    • the variable to check :
      a product attribute
      a variable previously stores thanks to the as parameter (see as parameter)
    • the comparison statement
      == equal
      <= lower or equal to
      => hieght or equal to
      < lower than
      > higher than
      != different from
    • the value


    Example:

    <!-- Product description will be displayed only if product brand is equal to "Apple" -->
    <name>{{product.description if="product.brand==Apple"}}</name>
    {{object.attribute output="functions"}}

    The output parameter allows you to define the output format for a given attribute.

    You can use the basic functions (see basic functions), the advanced functions (see advanced functions) or any PHP functions.


    You must refer to the attribute by using the $self variable as the function's parameter.

    Example :

    <!-- Get the product name with the first letter of each word in uppercase -->
    <name>{{product.name output="ucwords($self)"}}</name>


    If you want to use several functions, those must be imbricated as you do for with PHP:

    Example :

    <!-- Remove all html tags from the description and limit the description to the first 100 characters -->
    <name>{{product.description output="substr(strip_tags($self),0,100)"}}</name>


    You can also use null to display an empty string or you can use any string to display a specific message:

    Example :

    <!-- If product price is lower than $10 then display "Free Shipping"-->
    <shipping_cost>{{product.price if="product.price<10" output="'Free Shipping'"}}</shipping_cost>
    {{object.attribute php="functions"}}

    The php parameter acts exactly like the output parameter.

    BASIC FUNCTIONS

    You can use any of the native PHP functions, as well as all of the following ones with the default attributes that are defined in your Magento 2 back-office and also any attribute you have defined for your products (eg: name, description, short_description, weight, size, color…) apart from those which generate XML.


    The syntax to use in order to include PHP functions in the variables is:

    {{object.attribute output=”function(parameters)”}}


    You can also apply one or more functions to all of these attributes by using the following syntax:

    {{object.attribute output=”function1(function2(function3($self,parameters)))”}}


    All options are executed in the written order:

    <title>{{product.name}}</title>
    <title>{{product.name output="wyomind_strtoupper($self)"}}</title>
    <title>{{product.name output="wyomind_strtoupper(wyomind_substr($self,20,'...'))"}}</title>

    This will produce:

    <title>Affirm Water Bottle</title>
    <title>AFFIRM WATER BOTTLE</title>
    <title>AFFIRM WATER...</title>
    float($self,$decimal)

    Converts a numeric value to a floating number.

    You need to define some parameters:

    • decimal = number of floating number. By default: 0

    For example:

    <g:shipping_weight> {{product.weight output="float($self,2)"}}kg </g:shipping_weight>
    cleaner($self)

    Removes all characters that don't belong to the UTF-8 charset.

    For example:

    <g:title>{{product.name output="cleaner($self)"}}</g:title>
    inline($self)

    Removes all EOL characters from the value.

    For example:

    <description> {{product.description output="inline($self)"}} </description>

    IMPROVED FUNCTIONS

    The improved functions are used in the same way as the basic php functions but offer more possibilities. They are a rewrite of the native php functions but have been improved for a specific use of the Simple Google Shopping extension.

    wyomind_strtoupper($self)

    Transforms the value to uppercase.

    For example:

    <g:title>{{product.name output="wyomind_strtoupper($self)"}}</g:title>
    wyomind_strtolower($self)

    Transforms the value to lowercase.

    For example:

    <tag>{{product.name output="wyomind_strtolower($self)"}}</tag>
    wyomind_implode($separator,$self)

    Joins all array elements in a string.

    You need to define some parameters:

    • separator = string used between each value. By default: ,

    This function may be useful for multi-select attributes like climate, activity general...

    For example:

    <activity> {{product.activity_general output="wyomind_implode('-',$self)"}} </activity>

    Will give: Outdoor-Running-Warmup-Lounge-Gym

    wyomind_html_entity_decode($self)

    Converts all HTML entities to their applicable characters.

    For example:

    <description> {{product.description output="wyomind_html_entity_decode($self)"}} </description>
    wyomind_strip_tags($self)

    Removes all HTML tags.

    For example:

    <description> {{product.description output="wyomind_strip_tags($self)"}} </description>
    wyomind_htmlentities($self)

    Converts all applicable characters to HTML entities.

    For example:

    <description> {{product.description output="wyomind_htmlentities($self)"}} </description>
    wyomind_substr($self,$length,$end)

    Truncates the value.

    You need to define some parameters:

    • length = maximum length of the value
    • end = string that will be added at the end of the string. By default: ...


    For example:

    <description> {{product.description output="wyomind_substr($self,50,'...')"}} </description>


    If there are HTML tags in your descriptions, you may need to use in combination with this function:

    <description> {{product.description output="wyomind_strip_tags(wyomind_substr($self,50,'...'))"}} </description>

    API PHP for Simple Google Shopping

    With Simple Google Shopping you can use PHP scripts in different ways to fully customize and control the data feed output.

    • Inline PHP scripts 
      Scripts that are added directly to the data feed template surrounded by PHP tags (<?php ... ?>).

      Those scripts are used with Data Feed Manager only.

    API coding standards

    The Simple Google Shopping PHP API uses the exact same syntax and standards as any PHP coding.

    Attribute calls

    For performance reasons, Simple Google Shopping only loads in the collection of products the attributes that are explicitly required in the data feed template.
    This means that only the attributes that are called using the template placeholders, {{scope.attribute_code}}, will be added to the collection of products.

    As a consequence, when you try to access the value of an attribute from the $product object, you must be sure that the attribute has been added to the collection.
    Most of the time when the returned value is null for a given attribute, it means the attribute is not loaded in the collection of products.

    The best way to be sure that all the attributes you need are well loaded in the collection, is to add at the beginning of your template a simple script that lists all the attributes required.

    <?php
    /* list of required attributes
    * {{product.attribute_1}} {{product.attribute_2}} {{product.attribute_3}} {{product.attribute_4}}...
    */
    ?>


    Then you should be able to get the values of these attributes in your PHP script:

    <?php
    return $product->getAttribute1();
    ?>
    <?php
    return $product->getAttribute2()
    ;?>
    <?php
    return $product->getAttribute3();
    ?>
    ...
    PHP functions in attribute calls

    You can use any PHP function to apply in the attribute calls even if the function requires one or more additional arguments, for instance:

    {{product.name output="str_replace('Apple','Banana',$self)}}


    You can use several consecutive functions:

    {{product.ean output="str_pad(str_replace('X','0',$self),10,'0',STR_PAD_LEFT)}}
    Conditional values

    To output values based on different conditions, use PHP conditional statements:

    • if/else
      <?php
      /* attribute {{product.sku}} required */
      if ($product->getSku()=="abc")
      {
      return "Alphabetic";
      }
      elseif($product->getSku()=="123")
      {
      return "Numeric";
      }
      else{return "Mixed";
      }
      ?>
    • switch/case
      <?php
      /* attribute {{product.sku}} required
      */
      switch($product->getSku()){
      case "abc":
      return "Alphabetic";
      break;
      case "123":
      return "Numeric";
      break;
      default:
      return "Mixed";}
      ?>
    Opening and closing tags

    When using the PHP API inline directly in your data feed template, you must use the opening and closing PHP tags (<? php ... ?>)

    <?php
    if($product->getData('size')=="X-Large") {return "XL";
    }
    ?>
    Outputting a value

    Return
    Any value that you want to output in your data feed, must be returned with the return instruction.

    <?php
    return "Don't miss! ".$product->getTitle();
    ?>
    /* This script adds for each product in data feed  a new ouput line
    *  Don't miss! Iphone 5
    *  Don't miss! Galaxy note 7
    *  ...
    */
    Variables scope

    All variables available in PHP scripts have a local scope, this means they can't be shared between several scripts.

    If you wish to share a variable with different scripts all along the data feed generation process, then the variable must be set as a global variable.

    <?php global $increment;$increment++;return $increment;
    /* This script will output a incremental $variable* 1* 2* 3* ...*
    /?>

    API Objects, Variables and Methods

    Object $product

    $product is an instance of Mage_Catalog_Model_Product. It contains all methods available by default and some other specific to Simple Google Shopping.

    The list below includes the main methods available to use:

    • $product->getCategoriesArray()
      Retrieves an array of arrays that describes the categories to which belongs the products
    • $product->getCategoryIds()
      Lists all category ids in which the product may be found
    • $product->getVisibility()
      Returns the visibility of the product (1 = not visible individually, 2 = catalog, 3 = search, 4 = catalog and search)
    • $product->getStatus()
      Returns the status of the product (1 = enabled, 2 = disabled)
    • $product->getData($attributeCode)
      Returns the value of the given attribute code
    • $product->getAttributeText($attributeCode)
      Returns the textual value of the given attribute code
    Object $this

    $this is an instance of Wyomind_simplegoogleshopping_Model_Feed.

    It provides a few useful methods: 

    • $this->hasParent($product, $type="parent")
      Returns a Boolean value whether a product has a parent from the give type (parent, configurable, grouped, bundle) or not
    • $this->getParent($product, $type="parent", $strict=false)
      Returns a product object of the given parent type (parent, configurable, grouped, bundle) if available or the product object passed as 1st parameter when $strict parameter is set on false. 
    • $this->skip()
      Skips the current product, useful to filter out some products based on specific condition

    Manage your Google Shopping data feeds in your Google Merchant Account

    Each store is different, this is why you must pay particular attention to how is configured your data feed to be sure that it matches your own needs. We highly encourage you to check how to use Simple Google Shopping before starting using our extension and before submitting your data to Google Merchant.

    Create a data feed in Google Merchant

    To create a data feed, click on the PLUS icon from your Google Merchant Center account in:
    ProductsFeeds

    Basic Information

    Start with filling in the basic information:

    • Type
      The "Products" feed type is to submit your Google Shopping product information.
    • Country of Sale
      Choose the country where the products included in your data feed are sold and will be shipped. Note that these items must meet the requirements for the country of sale you submit to, including the feed specifications and policies.
    • Language
      It is the language of the content in your feed. Each country of sale has accepted content languages.
    • Destinations
      Select which Google products can display the items in your data feed.

      Shopping ads

    Once it's filled in, click on Continue.

    Name and input method

    You can continue with the name and the input method of your data feed.

    • Primary feed name 
      This is the name of the data feed as it will appear in your merchant account and help you understand the content of the feed.
      Note that the feed name does not need to match the name of the actual file you’re submitting.

    Now choose how to connect your data to Merchant Center. You have several options:

    • Google sheets
      If you're updating your product data via a Google Sheet.
      Note that the changes will automatically be applied to your account.
    • Scheduled Fetch
      If you're hosting a file on your website that contains data and scheduling a regular time for Google to fetch updates.
      Note that updates are only applied to your account when the fetch occurs.
    • Upload
      If you prefer keeping a file on your computer that contains data and regularly uploading it to your account through SFTP, FTP, Google Cloud Storage, or manually.
    • Content API
      If you're using the Content API for Shopping to automatically upload product listings.

    Click on Continue.

    Setup for Scheduled Fetch

    If you have selected the Scheduled Fetch to connect your data to Merchant Center, fill in the below info:

    • File name
      This is the exact file name that you can find in the File name column from:
      Catalog › Simple Google Shopping
       

      Googleshopping_full.xml

    • Fetch Frequency
      Choose to update your data daily, weekly, or monthly.

    Note that Fetch frequency must be synchronized with your catalog updates. A daily fetch frequency requires to monitor your data feeds daily.

    • Fetch Weekday/Date
      Choose the day of the week/month when to update your data feed.
    • Fetch Time
      Choose the time when Google must fetch the data feed.
    • Time zone
      Select your locale time zone
    • File URL
      Add the URL that appears in the File link column when the data feed is generated from:
      Catalog › Simple Google Shopping
    • Login and Password
      Add your login and password in the case where the data feed is protected with http authentication.

    Click on Continue.

    Be careful to synchronize the fetching time with the data feed generation time. For example, when the data feed is generated at 01:00 AM, Google should fetch the data feed at 02:00 AM.

    Setup for Upload

    If you've selected the Upload method, fill in:

    • File name
      This is the exact file name that you can find in the File name column from:
      Catalog › Simple Google Shopping
       

      Googleshopping_full.xml

    • Upload a file now
      You can now directly upload or drop your file.

    Click on Continue.

    Fetch data

    The data feed should then be displayed in the data feed list from:
    ProductsFeeds

    Open the new data feed and click on  Fetch Now.

    Fix the errors and warnings of the data feed

    Once the data has been fetched a report is generated including errors and warnings that must be fixed.

    You can have a clear overview of your product status from the Diagnostics tab. Check how many products are: 

    • Active
    • Expiring
    • Pending
    • Disapproved

    Errors

    Here is a few examples of the common errors in Google Merchant Center. 

    Note that the errors will appear with a red exclamation mark.

    Invalid URL

    All the errors linked to the URL are due to the fact that you didn't specify the URL of your website in your Google Merchant Center account or it is not claimed, so go to:
    Google Merchant Center › Business Information › About Your Business › Website

    Missing shipping information

    If you get this error, it is because you didn't configure a shipping rule in your Google Merchant Center account or if you did, you didn't do it for the target country.

    For that, go to:
    Shipping › Services

    Here you can add a new rule just by clicking on the  + button.

    Then, fill in the different settings and click on Save.

    Insufficient product identifiers: Missing brand attribute

    That error occurs when products don't have a brand. For example, clothing items need a "brand" value.

    You can first check that you're using the right attribute in your data feed template. For example, you may be using:

    <g:brand>{{product.manufacturer}}</g:brand>

    instead of:

    <g:brand>{{product.brand}}</g:brand>

    Otherwise, you can add an attribute from your Magento back office and define a brand for each one of those products from your admin:
    Magento › Manage products

    In the case where all your products have the same brand, you can also define in your data feed configuration that all products will get the brand XXX by writing:

    <g:brand>XXX</g:brand>

    In the case where your products don't have enough identifiers, you can define that there is no identifier existing by replacing:

    <g:identifier_exists>true</g:identifier_exists>

     by:

    <g:identifier_exists>false</g:identifier_exists>
    Missing required attribute: age group

    That error is due to the age group. In the case where you sell items for only one age group (adult), you could edit the data feed template with:

    <g:age_group>adult</g:age_group>

    In the case where you're selling products for adults and for children, you will need to add an attribute from your Magento back office (for example age_group) and specify the age group for each one of your products in your Magento admin:
    Magento › Manage products

     and keep in your data feed template:

    <g:age_group>{{product.age_group}}</g:age_group>
    Missing required attribute: color

    Concerning that error, it means that there is no "color" value found for some products.

    You can first check that you're using the right attribute in your data feed template. For example:

    <g:color>{{product.colour}}</g:color>

    instead of:

    <g:color>{{product.color}}</g:color>

    Also, you may not have defined a color value for a particular product in your Magento admin:
    Magento › Manage products

    Currency is not supported in the given country in attribute: price

    When the currency is not supported in the given country, it means the currency defined in the data feed template is not the same as the currency of your products.

    For example, the currency defined in the template is in EUR whereas your product prices are in USD. In that case, every EUR must be changed into USD in your data feed template.

    Missing required attribute: size

    When a size attribute is missing, you can first check that your products have an attribute for size.

    For example, for the shoes category, the attribute for size may differ. You can have a look in the black box, in your data feed template configuration, to see if there is already an existing size attribute for shoes by clicking on   Attributes Library.

    As you can see, the size attribute for shoes exists under the name of shoe_size. Then you can add it to your data feed template as below: 

    <g:size>{{product.size}}{{product.shoe_size}}</g:size>

    Warnings

    With Google Merchant Center, you can also have an overview of the warnings. Warnings are not penalizing because your products are inserted to Google Shopping however it is better no to have some.  

    Note that the warnings will appear with an orange warning sign.

    That warning means that some of the products don't have image link.

    You can have a look at some products involved. The problem may be that the products are variants of configurable ones.

    The solution would be to modify the template  in order to get the image links of the parent products and to replace:

    {{product.image_link}}

     by:

    {{parent.image_link | product.image_link}}

    When a description is missing, you can simply edit the product directly from your Magento backoffice:
    Magento › Manage products 

    When Google product category is missing, it means that you didn't map your categories with Google ones.

    For that, go in the Categories tab of your data feed template, from:
    Catalog › Simple Google Shopping

    FAQ

    Pre-sales informations

    Magento versions supported by Simple Google Shopping

    This extension works with Magento Community Edition and also Magento Enterprise Edition. To know if Simple Google Shopping is compatible with your Magento version, please check the Compatibility tab.

    Send a pre-sale question

    To get information regarding our products and services, you can send your request:

    • from our live chat clicking on "Chat with us". 
    • from our contact form

    Keep in mind that these services are in no case technical support.

    Magento Open Source vs Magento Commerce vs Magento Commerce Cloud

    Magento offers three variations of its product.

    As their names have changed over the past few years, here is a recap:

    • Magento Open Source: previously Magento Community Edition (CE), is a free and non-hosted e-commerce platform.
    • Magento Commerce: previously Magento Enterprise (EE), is the paid version of Magento and offers support services.
    • Magento Commerce Cloud: is the paid version of Magento and offers support and hosting services.
    Modules' updates

    Also, on the Changelog tab of each product page, you can find detailed information about all new versions available. 

    Simple Google Shopping Vs Data Feed Manager

    Data Feed Manager includes all the features of Simple Google Shopping but allows you to create more kinds of data feeds (csv, txt, xml) and with special features like extra-header for any shopping engine, market place or search engine such as BingShopping, Shopping.com, Shopzilla, Amazon...

    .

    Countries supported by Simple Google Shopping

    All countries are supported (tax rates and currencies) by Simple Google Shopping.

    You just need to edit the data feed for the targeted country.

    You may also have to use the appropriate currency when using prices attributes.

    Currencies supported by Simple Google Shopping

    Any currency can be managed in your data feeds.

    You can define a different currency for each data feed using currency codes.

    This will automatically convert the prices into the indicated currency.

    Character encoding of the generated data feed

    The char encoding of the generated data feed is UTF-8 for Simple Google Shopping. It allows the use of special characters, such as accented letters, but also Arabic and Chinese letters.

    If you're using Data Feed Manager, the default char encoding is UTF-8, while no char encoding is specified in the XML header.

    Simple Google Shopping limitations

    Simple Google Shopping has been tested successfully on Magento 2 shops containing more than 70,000 products.

    Remember that the generation and export time for any quantity of products will depend on your server capacity. Generally, exporting a data feed with 10,000 products shouldn't take more than 2-3 minutes on a standard shared server.

    Syncing with a Google Merchant account

    The data feed is not automatically sent to Google Shopping. Google Merchant will automatically and periodically retrieve your data feed. Here is how to proceed:

    1. Create a Google Merchant Account.
    2. Upload the generated file for the first time manually.
    3. Once your file has been validated, create a cron job (a scheduled task) in your Google Merchant Account in order to automatically download the feed from your website. You can manage download periodicity directly in your Google Merchant Account.
    4. From Magento 2, configure the data feed generation from the Scheduled Tasks tab.

    Note that the validation of your data feed can take a few days for the first submission due to a manual verification from the Google team.

    Compatibility with the Google Shopping requirements

    The Simple Google Shopping and Data Feed Manager extensions for Magento 2 are fully compliant with the latest Google Merchant requirements.

    We are always looking for ways to improve our extensions so as to offer you the best features and user experience.

    Simple Google Shopping and Google Content API

    Simple Google Shopping for Magento 2 doesn't use the Google Content API since it generates data feeds.

    License and domains

    License validity

    A license is valid for an unlimited period of time on one single installation

    • If you're using more than one installation, you will have to buy a separate license for each instance.
    • if you're running several domains on a same installation, you will need only one license for all of them.
    Although your license doesn’t have a limited period of validity, your Support & Upgrade period does. By purchasing a module, you’ll be granted a 12-month support period for free. Passed this period, you will have to pay for a new one (see FAQ: Extend your Support period)
    Domains pre-registration

    You can pre-register your live domain to your license in advance.

    Thanks to this option, you'll be able to get the module ready to use on your domain before it goes live.

    To pre-register your production domain: 

    1. Go to:
      mY account › Licenses & DOwnloads
    2. Click on the Settings icon next to the module you want your domain to pre-register on.
    3. Click on the link at the bottom of the page saying:
      Do you want to pre-register your domain in order to be ready to go live?
    4. Finally, enter your domain name and click on pre-register now .

    Testing environments

    One license is valid for an unlimited period of time on one installation only. However, it is possible to extend or transfer your license in 2 cases: 

    • If you would like to add your testing environments to your license. 
      In that case, it is possible to extend your license to an unlimited number of domains for free.
      For  mywebsite-staging.com or mywebsite-dev.com
    • If you want to transfer your license to another live domain.
      In that case, the Support & Upgrade period for your license must still be active.

    To be able to use Simple Google Shopping on both your production and testing environments, follow the instructions below:

    1. Download Simple Google Shopping.
      (see FAQ: Extensions download)
    2. Install Simple Google Shopping on your environment.
      (see FAQ: Modules installation in Magento or in WooCommerce)
    3. Activate the license.
      (see FAQ: Licenses activation in Magento or in WooCommerce)
    Also, if you are managing a large amount of domains, please contact us so that we can automatically whitelist these domains.

    Modules versioning and download

    Extensions download

    In order to download Simple Google Shopping, log into your Wyomind account:

      1. Go to:
        my account › Licenses & downloads 
      2. Click on the settings icon next to Simple Google Shopping.

        A new window opens.

      3. Click on the download icon.

    Only the latest extension version released within your Support & Upgrade period is available. In order to get the very latest extension version make sure your Support & Upgrade plan is up to date.

    Modules upgrade

    When purchasing a module from wyomind.com, you benefit from 12 months of upgrade. Within this period you can at any time download the latest version of the module directly from your account.

    To upgrade Simple Google Shopping, follow the steps below:

    1. Go to:
      my account › Licenses & Downloads
    2. Click on the settings icon next to Simple Google Shopping.
    3. Click on the download icon.
    4. Install the new version of Simple Google Shopping in your Magento admin or your WooCommerce back-office.

    Modules Installation/Uninstallation

    Extensions manual installation

    You can install Simple Google Shopping manually.

    1. Download Simple Google Shopping (zip file) on:
      mY ACCOUNT › Licenses & Downloads 
      Refer to the FAQ: Extensions download
    2. Once Simple Google Shopping is downloaded, open the folder and unzip it.
    3. Copy the content of the unzipped folder and paste all files and directories in your Magento 2 root directory.
    4. In your Command Line Interface, execute:
      bin/magento setup:upgrade 

      If you are using a production mode, execute also:

      bin/magento setup:static-content:deploy  
      bin/magento setup:di:compile  
    Extensions installation via Composer

    You can install Simple Google Shopping using Composer software in two cases:

    • if you purchased Simple Google Shopping on Magento Marketplace.
    • if you purchased Simple Google Shopping on Wyomind.com AND requested access to our repository:
      repo.wyomind.com
    1. Add to your composer configuration our repository:
      composer config repositories.wyomind composer https://repo.wyomind.com 

    2. Execute Composer command:
      composer require wyomind/simplegoogleshopping
    3. Then go in your Command Line Interface and execute:
      bin/magento setup:upgrade ​
    4. If you are using a production mode, also execute:
      bin/magento setup:static-content:deploy  ​
      bin/magento setup:di:compile​
    Extensions uninstallation

    To uninstall Simple Google Shopping, start with disabling the extension running the following command:

    bin/magento module:disable Wyomind_SimpleGoogleShopping

    Then, you have 2 ways to uninstall the extension depending on how the extension has been previously installed: 

    • Manual installation

      Run the simplegoogleshopping-uninstall.sh file (you can find it in the extension zip folder) from your Magento root directory:

      sh simplegoogleshopping-uninstall.sh
    • Installation via Composer

      Run the below command line:

      composer remove wyomind/simplegoogleshopping

    Once the uninstallation is over, refresh your cache and enable the compiler back again (if you use it). 

    Extensions installation via Web Setup Wizard

    You can install Simple Google Shopping via Web Setup Wizard if you purchased it from Magento Marketplace only.

    To know how to proceed, all steps are described in the link below: 
    http://docs.magento.com/m2/ce/user_guide/system/component-manager.html

    Next step is to activate your license:
    Extension activation

    Modules activation

    Extensions activation from the back-office of Magento

    Once Simple Google Shopping is installed, you have to activate the license. For previous versions, you can activate the license from your back-office:

      1. Go to your Magento admin panel. A message pops up at the top of the page.
        If the message doesn't appear then you must check that:

           1. The Adminhtml_Notifications and Wyomind_Core modules are well enabled.
           2. The HTML output of the Adminhtml_Notifications and Wyomind_Core modules are not disabled in:
        storesconfigurationadvanced advanced
           3. The encryption key well exists in app/etc/env.php:
        <?php
         return array(
         'backend' => array(
         'frontName' => 'admin'
         ),
         'crypt' => array(
         'key' => '1e8f3c6772b7a6a6689c3c8cefa4ccf0'
         ),
         /* ... */
         )
        ?>​
      2. Copy your activation key in:
        Stores › Configuration › Wyomind › Your extension

        You can find your activation key in 2 different places:
        -  In the confirmation email that you received after purchasing Simple Google Shopping.
        -  In your Wyomind account: My account › Licenses & downloads
        Select Simple Google Shopping and click on  .

        A new page opens where you'll find your activation key (see below).
      3. In your Magento admin go to:
        Stores › Configuration › Wyomind › Your extension

        Paste the activation key in the Activation Key field and choose between the automatic (yes) or the manual (no) activation method:
        -  By choosing Yes, the connection to Wyomind license server will be automatic.
        -  By choosing No, you will have to log on to Wyomind license server yourself.
      4. Click on Save config .
      5. A message appears at the top of your admin panel. Click on that link: 
        Activate it now!
      6. Copy and paste the license code in the License code field from your admin or simply click on  Activate now! 

      7. Finally, refresh your cache, log out and log in back straight after, to complete the installation.

    Add another domain to your license


    To activate the license on another domain (test, staging...):

    1. Once the extension is installed on the new domain, copy your activation key in:
      Stores › Configuration › Wyomind › Your extension
    2. After having saved the configuration, a notification appears. Click on Add this domain to my license.

    3. A transfer request will then be sent to our team within an hour.
      Once the request is taken care of, you will receive a confirmation email.
      If your transfer request is accepted, you can use Simple Google Shopping on both environments at the same time.

    Note that the order in which you activate your license on your domains does not matter. You can start with your staging/dev/local environment or with your live domain, the process will be the same.

    Also, if you have loads of staging domains, or if you are an agency managing load of domains for your customers, please contact us so that we can automatically whitelist these domains.
    Extensions activation from the CLI

    Once Simple Google Shopping is installed, you have to activate the license.

    For this, you can use the below command line (change the Activation key with the corresponding value):

    bin/magento wyomind:license:activate Wyomind_SimpleGoogleShopping <YOUR_ACTIVATION_KEY>

    To retrieve the list of all the available modules as well as the licenses status, please use:

    bin/magento wyomind:license:status

     Among the different status, you can find: 

    • registered = your license is registered
    • pending = you need to run the activation command line
    • invalidated = the license has been invalidated due to a wrong activation key or a license infringement

    To activate several licenses at the same time, use:

    bin/magento wyomind:license:activate \
    Wyomind_Extension1,Wyomind_Extension2 \
    ACTIVATION_KEY_1,ACTIVATION_KEY_2

    or:

    bin/magento wyomind:license:activate \
    Extension1,Extension2 \
    ACTIVATION_KEY_1,ACTIVATION_KEY_2

    Check how to add another domain to your license.

    Magento and Google accounts access

    Access for the extension installation

    In the case where you've purchased the professional installation service, our team we will need the below information in order to proceed to the installation of the extension : 

    • a valid FTP access (host, login and password)
    • an access to your admin panel (url, login and password)
    • an SSH access (for Magento 2)

    Feel free to create a ticket including the above info from your Wyomind account in Support, or contact us via the following form. 

    Google Merchant account access

    So that our team can proceed with the configuration of your data feed, we need you to share the access to your Google Merchant account with us. 

    As Google Partner, we offer you many possibilities to manage your products on Google. Feel free to check our Google Shopping services for more information about the data feed configuration.  

    To share your access, go to your Google Merchant account. 

    1. Click on Users from the parameters on the top of your account. 
    2. Click on the +  icon to add a user and fill in our email address (contact us to see what email address you should use). 
    3. You can choose Standard as the user access.  
    Google Ads account access

    So that our team can proceed to the configuration of your data feed, we need you to share the access to your Google Ads account with us.

    As Google Partner, we offer you many possibilities to manage your products on Google. Feel free to check our Google Shopping services for more information about the data feed configuration.  

    To share your access, go to your Google Ads account.

    1. First send us your account ID that you can find on top of your account next to your company name. We'll then be able to send you a request.  
    2. When it's done, you should have received an email. You can also check in the Managers section of your Google Ads account.
      There, you should see a request from Wyomind in your Link requests. Click on Accept from the Actions column.
       
    3. A confirmation popup is displayed, click on Grant Access.
    4. Once you've granted access, you should see Wyomind among your Managers.
       

    Data feed configuration

    Schedule the file generation with Simple Google Shopping

    Simple Google Shopping provides you with a fully configurable schedule in the Cron Schedule tab of your pattern configuration for each data feed or profile.

    So that it works, you need to have one main scheduled task running from your server side and targeting cron.php located in the pub directory of Magento 2 root directory (ideally every hour).

    If the management panel from your hosting compagny doesn't provide such a service, you should be able to use a remote service such as: http://www.mywebcron.com

    Simple Google Shopping also provides you with a cron job reporting, so that you can get email reports on each data feed or profile you're generating.

    Shipping and tax in Google Shopping Data feeds

    You have 2 ways to manage shipping and tax with Google Merchant:

    1. Managing your shipping and tax settings in your Google Merchant Account:
      Settings › Shipping and tax
    2. Adding shipping and tax informations directly in your data feed template.

    You can refer to Google Merchant specifications for further informations about tax and shipping:
    https://support.google.com/merchants/bin/answer.py?hl=en&answer=160162&topic=2473824&ctx=topic

    How to setup tax (US Only)

    Please note that tax setting should only be used for merchants submitting feeds to the US. For all other countries, it is required to submit prices which are tax inclusive.

    Either you can manage tax in your Google Merchant account by choosing between these 3 options:

    • Opt to not charge tax.
    • Set a tax rate based on the state an item ships to.
    • Use an estimate based on the destination ZIP code. Note: To estimate the tax rate, we use data from Tax Data Systems based on the destination ZIP code.

    Either you can also use the tax attribute in your data feed.

    You have 4 different attributes about tax:

    • Country (optional), using ISO 3166 country code
    • region (optional), using two-letter state abbreviation, ZIP code or ZIP code range using * wildcard
    • rate (required), the tax rate as a percent of the item price.
    • tax ship (optional), boolean value for whether you chage tax on shipping (y or n). n is default value.

    Here is an example of tax attribute group:

    <g:tax>
       <g:country>US</g:country>
       <g:region>CA</g:region>
       <g:rate>8.25</g:rate>
       <g:tax_ship>y</g:tax_ship>
    </g:tax>

    How to setup shipping?

    Either you can manage shipping in your Google Merchant account by choosing between these 3 options:
    • Specify a flat shipping rate (or free shipping).
    • Define custom tables if the shipping rate you charge varies by price, weight, or number of items.
    • (US only) Apply a carrier-calculated rate if the shipping rate you charge is based on rates from UPS, FedEx, or USPS. Note: We use daily rates for UPS, and standard (non-retail counter) rates for FedEx.

    Either you can also use the shipping attribute in your data feed.

    The shipping attribute is an item-level override for merchant-level shipping settings as defined in your Google Merchant Center account.

    You have 4 different attributes about shipping:

    • country (optional), using ISO 3166 country code.
    • region (optional), using two-letter state abbreviation, ZIP code or ZIP code range using * wildcard
    • service (optional), the service class or delivery speed (by example : Ground)
    • price (required), fixed shipping price (including VAT) with currency code.

    Here is an example of shipping attribute group:

    <g:shipping>
    	<g:country>US</g:country>
    	<g:region>MA</g:region>
    	<g:service>Ground</g:service>
    	<g:price>5.95 USD</g:price>
    </g:shipping>
    Add a new taxonomy file in Simple Google Shopping

    The Google and Facebook product taxonomies are category trees that will help you to generate values for the Google and Facebook product category attributes listing all possibilities.

    • Taxonomie Google: From that page, choose the language you want to use for your taxonomy at the bottom right. Then, in the Downloadable taxonomy, open the Plain Text link that contains full category names and save the file.
    • Taxonomie Facebook: From that page, choose the language you want to use from the Facebook product categories by language section. Then, click on the Plain Text link that contains full category names to download the file.

    Paste the file in:

    • For Simple Google Shopping: Magento 2 > app > code > Wyomind > Simple Google Shopping > data > Google > Taxonomies
    • For Facebook Product Feed: Magento 2 > app > code > Wyomind > Facebook Product Feed > data > Facebook > Taxonomies

    Don't forget to apply the permissions 644 to the file.

    You'll then be able to choose that specific taxonomy from your data feed configuration.

    Use operands in the pattern

    You can use the OR operand with all these variables (without option) as in the example below:

    {{object.proprietyA | object.proprietyB}}

    If object.proprietyA exists then the value will be object.proprietyA, otherwise, the value will be object.proprietyB.

    For example:

    {{product.url | parent.url}}

    There isn't any other operand of that kind.

    Configurable products retrieve invalid price

    In Magento 2, configurable products are in fact containers for the simple variant products. Then, their price will depend on the options that the customer has selected.

    Unfortunately, as it's not possible to know in advance the choice of the customers, it is recommended to use the minimum or the maximum price in your data feeds. You can use one of the below attributes:

    {{product.min_price}}
    {{product.max_price}}
    Google Shopping and configurable products

    According to Google requirements, you should only have simple products exported in your generated data feed. In fact, configurable products are only empty shells for your simple products.

    In the case where you export only simple variants into your data feed, you need to check that:

    • you use the Parent object to retrieve the information from the configurable product if needed.
      For example:
      <g:link>{{product.url | parent.url}}</g:link>​
    • your filters are not too restrictive.
      For example if your simple variant products are not visible individually, make sure to have ticked that options in your data feed filters.

    • the categories you've selected in the configuration of your data feed are also assigned to the simple variants.
      For example, if only the parent product has a category assigned, you'll be able to include product into your data feed based on the Product and parent categories.

    Remove the VAT from the product catalog prices

    To subtract the VAT from your catalog prices, in your pattern, you need to replace:

    {{product.price}}

    with:

    {{product.price currency=USD vat_rate=0}} 

    Replace USD with your own currency.

    If the prices of your catalog are already including the VAT, then you can use:

    {{product.price currency=USD}}
    Apply a custom VAT to products

    To apply a custom VAT to your products, you can replace:

    {{product.price}}

    with:

    {{product.price currency=CUR vat_rate=0.00}}

    Replace CUR with your own currency and 0.00 with a value between 0 and 100 that represents the VAT.

    For example:

    {{product.price currency=USD vat_rate=10}}
    Display the categories in the product urls

    In your data feed, you get https://www.mywebsite.com/product but the correct URL is https://www.mywebsite.com/category/subcategory/product.

    To retrieve the URL you want, you can define the options under:
    Stores › Settings › Configuration › Wyomind › Simple Google Shopping

    You'll be able to choose which URL path to use in Use canonical URLs.

    You can choose between 3 options:

    • Individual product URLs
    • Shortest category URLs
    • Longest category URLs

    For example, if you have a "T-shirt" in 2 categories: "New arrivals" and "Shirts", then depending on your configuration, you'll get different results:

    • Shortest category URL = mywebsite.com/men/shirts/t-shirt
    • Longest category URL = mywebsite.com/men/new-arrivals/t-shirt

    The individual product URL won't include any category or subcategory.

    Frequent errors in Google Merchant

    Errors and warnings in your Google Merchant account

    After having uploaded your feed, you may get some errors and warnings in your Google Merchant account.

    1. Go to the Data Feeds tab and open your data feed by clicking on its name.

    2. There you'll be able to see the list of the different errors and warnings of your data feed. Click on the message you want to get more details about the issue.

    3. The drop-down notification displays details about the error or warning and also contains a non-exhaustive list of products that are concerned about the issue.

    4. Click on Show Item to see what's wrong with that product in particular.

    Once corrections are made for each error and warning, don't forget to regenerate your feed from your Magento 2 admin and reupload it manually from your Google Merchant account.

    You can find information on how to make the corrections for each error and warning in the following FAQs.
    Critical Errors: inaccurate prices

    This issue may happen if you didn't update the price configuration in the data feed pattern according to your Magento 2 website settings.

    By default, the Google Shopping pattern is pre-configured for the US market, USD currency, and prices excluding tax.

    {{product.price currency=USD vat_rate=0}}
    {{product.sale_price currency=USD vat_rate=0}}

    If your data feed doesn't target the US market these settings must be updated, for instance:

    • Great-Britain:
      {{product.price currency=GBP vat_rate=GB}}
      {{product.sale_price currency=GBP vat_rate=GB}}
      
    • France:
      {{product.price currency=EUR vat_rate=FR}}
      {{product.sale_price currency=EUR vat_rate=FR}}
      
    • Germany:
      {{product.price currency=EUR vat_rate=DE}}
      {{product.sale_price currency=EUR vat_rate=DE}}
    • ... 

    In the case where the prices of your catalog already include the VAT rate, you'll only need to use:

    {{product.price currency=USD}}
    {{product.sale_price currency=USD}}
    Critical Errors: Images cannot be crawled because of robots.txt restriction

    It seems that Google Merchant sometimes returns some inconsistent errors message concerning the robot.txt.

    You can try to add the following lines into the robot.txt file, what should explicitly allow Google Merchant to crawl your images:

    User-agent: Googlebot
    Disallow:

    User-agent: Googlebot-image
    Disallow:

    Missing required attribute: unique product identifier

    Google requires some Unique Product Identifiers that may be a brand, a MPN (manufacturer part number), an EAN, an ISBN, or any other global identifier. They must be added as below:

    <g:ean>{{product.ean}}</g:ean>

    If you do not have any strong identifier to provide to Google, you can use an association of brand and MPN.
    This means that you must add in your data feed configuration the following code snippet:

    <g:brand>{{product.brand}}</g:brand>
    <g:mpn>{{product.sku}}</g:mpn>

    Above, brand is your own attribute for brand and your SKU attribute is used as a manufacturer part number. If you do not have a manufacturer attribute, you can also hard code this value like this:

    <g:brand>Your own brand</g:brand>

    It's also possible to specify that your products don't have any identifier at all:

    <g:identifier_exists>FALSE</g:identifier_exists>
    Missing required attribute: gender

    You didn't specify gender.

    Gender is required for all apparel items in feeds that target the US, UK, DE, FR, and JP.

    3 values are accepted:

    • male
    • female
    • unisex
    Missing required attribute: age group

    You didn't specify the age group.

    Age group is required for all apparel items in feeds that target the US, UK, DE, FR, and JP.

    2 values are accepted:

    • adult
    • kids
    Missing required attribute: color

    You didn't specify the dominant color(s) of the item.

    Color is required for all apparel items in feeds that target the US, UK, DE, FR, and JP.

    Missing required attribute: size

    You didn't specify the size.

    Size is required for all apparel items in the 'clothing' and 'shoes' product categories in feeds that target the US, UK, DE, FR, and JP.

    Missing recommended attribute: google product category

    You didn't specify any category mapping for listed categories/collections.

    Category/collection names you are using in your Magento 2 aren't always the same that those used by Google Merchant to reference your products.

    This means you have to find out which Google Merchant categories have the best matching with yours according to the Google product taxonomy.

    Missing recommended attribute: product_type

    Reminder: product_type is an attribute that indicates the category/collection of the product being submitted, but you can provide your own classification. Unlike the google_product_category, you can include more than one product type attribute value if products apply to more than one category.

    In Simple Google Shopping, you have a magic attribute realizing this for you:

    {{product.product_type}}

    It creates a list of all the categories/collections where the product may be found :

    <g:product_type> category A > sub-category B </g:product_type>
    <g:product_type> category A > sub-category B > sub-category C </g:product_type>

    It happens that Google Merchant reports you warnings about missing product_type. The issue usually comes from simple products that are associated with configurable ones. You could try to use this code which will retrieve the parent "product type" for each product:

    {{parent.product_type}}
    Missing recommended attribute: description

    Description missing means that your products don't have any description available. Google needs the description for each item.

    First of all, check if the concerned products use the short_description. The short descriptions are filled for your products but not the long descriptions, so you must use in your data feed pattern:

    <g:description>{{product.short_description}}</g:description>

    rather than:

    <g:description>{{product.description}}</g:description>

    or both:

    <g:description>{{product.short_description}} {{product.description}}</g:description>

    Then, check if the concerned products are not linked to a parent that has the description, the descriptions are attached to the parent items (when using configurable / simple products), so you must use in your data feed pattern:

    <g:description>{{parent.description}}</g:description>

    rather than:

    <g:description>{{product.description}}</g:description>
    Encoding problem in attribute: description

    This error means that your descriptions contain some invalid characters: either wrongly encoded characters or unsupported characters (not supported by the UTF8 character set).

    Most of the time the cleaner function should help to remove all wrongly encoded characters:

    <g:description>{{product.description php="cleaner($self)"}}</g:description> 

    This option can be applied in addition to any other option, for instance:

    <description> {{product.description php="sgs_html_entity_decode(sgs_substr(cleaner($self),1000,'...'))"}} </description>

    If you still have an issue with encoding, you could convert all characters to HTML entities:

    <description> {{product.description php="cleaner(sgs_htmlentities($self))"}} </description>
    Missing recommended attribute: image link

    Image missing means that some of your product don't have any image attached.

    First of all, check if the concerned products have at least one image assigned.

    Then, check if the concerned products are not linked to a parent. If they are, you just need to use the following code that will display the parent product's images:

    {{parent.image_link}}

    If you still have missing images in your data feed, this could be because some of your products don't have images at all. In such a case you must use the advanced filters in order to remove these products from the feed.

    Some of my products have issues with microdata

    Microdata is a kind of HTML snippet that must be added to the product pages in order to allow Google to fetch your data more regularly.

    As Simple Google Shopping doesn't handle microdata, you should take a look at the documentation of Google: https://support.google.com/merchants/answer/6069143?hl=en

    Troubleshooting

    Base table or view not found

    This issue may be due to a problem during the installation process.

    You will be able to fix it by following these steps:

    1. Access your database via your control panel (Phpmyadmin for example).
    2. From the setup_module table, delete the entry Wyomind_extension.

      Be careful, that entry depends on your extension. For example, if you have the extension called Simple Google Shopping, you should delete Wyomind_SimpleGoogleShopping.

    3. Logout from your Magento 2 admin.
    4. Log into your Magento 2 admin.
    Scheduled tasks don't work in Magento 2
    How do cron tasks work?
    • The cron.php file (available in the pub directory of your Magento 2 root directory) is regularly launched from your server side (generally every 5 minutes).
    • The cron task for Simple Google Shopping is targeted and evaluates if a data feed or a profile needs to be refreshed (depending on the timestamp stored in the database and on the schedule table for this specific profile).
    • If the above condition matches, then the data feed and the profile is re-generated.

    Be sure that you have correctly configured a scheduled task from the server side (cpanel) targeting the cron.php file in your magento 2 installation.

    The extension includes reporting and debug tools for the scheduled tasks available in:
    Stores › Settings › Configuration › Wyomind › Simple Google Shopping

    For more information on the configuration of cron tasks in Magento 2, you can check their documentation.

    404 error instead of the Google Taxonomy

    You must apply the permissions 644 to app/code/Wyomind/SimpleGoogleShopping/data/Google directory and all sub folders and files via FTP.

    "Please make sure the directory /feeds/ is writeable by the server"

    The directory in which your data feed is stored must be writable (permissions 755). You should try to use another directory such as /media/ if /feeds/ is not properly set by changing the content of the Path field.

    "PHP features are disabled"

    You must update the module by downloading and installing the module last version available from your Wyomind.com account.

    The data feed is inaccessible

    In the case where your data feed URL is inaccessible, your site may be using the pub directory as the site root.

    Then, from the Configuration tab of your data feed, you should change the path so that it is generated in the /pub/feeds/ directory instead.

    Then, the data feed URL won't include the pub directory and will be:

    https://www.domain.com/feeds/GoogleShopping_full.xml

    Empty feed when opened from a browser

    You may have an incorrect character in your data feed description, for example, the & character.

    In that case, you should replace the & character with and or enclose your data between CDATA as in the example below.

    403 Forbidden error when saving data

    If when saving your data feed configuration in Magento 2, you get:

    Forbidden, You don't have permission to access /.../ on this server.

    This is probably something regarding the hosting company that doesn't allow to post XML in the form.

    The mod_security (security module) includes rules that stop all post/get requests including code.

    In order to fix that issue, you should get in touch with your hosting company so that they add some exceptions to the security rules.

    Characters from a data feed aren't displayed properly

    If the characters of your data feed are not correctly displayed, you should first be sure you used special attributes that will clean your content:

    {{product.description php="sgs_strip_tags(sgs_html_entity_decode(inline(cleaner($self))))"}}

    If your data feed still doesn't display properly, maybe it's because you're trying to read it as an ISO file while Simple Google Shopping creates UTF-8 encoded files.

    We recommend you read it with dedicated programs like Notepad++ or Firefox (with Display › Encoding type › utf8 selected).

    User's reviews

    UKD

    Merchant · United Kingdom · User for 9 years

    ★★★★★

    Great Simple And Essential Module

    Great simple and essential module for your Magento 2 store. Easy installation, good guidance and integrates with all our other modules. Support was required a few times for various issues we had and that was first class too. Allows easy and fast creation of google merchant centre feeds. Highly recommended.

    Sergio Doglioli

    Merchant · Italy

    ★★★★★

    Just simple and power

    Excellent module: I needed to perform several exports to synchronize my platform. Nothing is simpler, faster, or more powerful than Wyomind. I had tried other modules in the past, but they all had limitations that prevented their use: with Wyomind, I finally found the ultimate solution, even for those without technical expertise.Very powerful for those familiar with the software, simple to use for beginners or those without specific database and language skills. Perfect. Thanks.

    Fern

    Merchant · United Kingdom · User for 1 year

    ★★★★★

    Good, simple extension that does the job

    all good

    October 9, 2025Magento 2

    Mr Smith

    Merchant · United Kingdom · User for 13 years

    ★★★★★

    Excellent extension, does exactly what we need

    We needed an extension to generate xml sheets for google shopping with the ability to filter out certain product types and also to filter by attributes. This extension does exactly what we need, as well as offering many more customisable options and filter settings that may be useful for others. It has been in use for several years now, generating updated xml sheets every 24 hrs which our merchant centre then pulls across keeping every products details up to date. The few times we have needed to contact support with a query, they have been quick to respond and help resolve our query quickly and without fuss. Highly recommend for any magento website which uses google shopping, this is pretty much essential.

    talc

    Merchant · United Kingdom · User for 6 years

    ★★★★★

    Google Shopping extension for Magento is fantastic

    Wyomind’s Simple Google Shopping extension for Magento is fantastic! Easy to set up, highly customizable, and saves so much time. Great support team too. A must-have for seamless feed management!

    Jose

    Developer · Spain · User for 12 years

    ★★★★★

    Easy to use, intuitive and very good documentation.

    Every day they improve the extension a lot more, besides having it always with a very extensive documentation and the support is super fast.

    September 18, 2024Magento 1 / OpenmageMagento 2

    Mark

    Merchant · United Kingdom

    ★★★★★

    A Game-Changer - Highly Recommend!

    We've been using this Magento extension for several years now, and it has truly transformed how we manage our data feeds. What sets this extension apart is its simplicity combined with incredible flexibility. Setting up product feeds was straightforward, even for team members without extensive coding knowledge. The XML customization options allowed us to tailor our feeds exactly to our needs, ensuring everything is perfectly aligned with Google's requirements.

    The extension isn’t just limited to Google Shopping. We've also successfully used it to create feeds for other marketplaces, which has expanded our reach with minimal additional effort. The ability to schedule feeds and automate updates has saved us countless hours, keeping our product data current without the need for manual intervention. We've often used it in unconventional ways on our care home website.

    Another standout feature is the exceptional support team. Whenever we've encountered a question or needed assistance, their response has been quick and helpful, ensuring that any issues are resolved promptly. The documentation provided is thorough, making it easy to navigate even the more advanced features of the extension.

    In conclusion, this extension is a must-have for any Magento-based website looking to optimize product feeds efficiently. It’s reliable, easy to use, and supported by a team that clearly knows their stuff. We highly recommend it to any business aiming to streamline their data feeds and enhance their online presence.

    ANYBRAND

    Merchant · Germany · User for 10 years

    ★★★★★

    Easy to use and efficient

    We use this module for our promotional gifts products since years now. It is easy to use and efficient. The support from Wyomind is always fast and friendly. We highly recommend this extension.

    HS

    Merchant · United Kingdom · User for 3 years

    ★★★★★

    Makes life simple

    So, I have used Google Shopping feed Extension by Wyomind for our business to generate product feeds , Much satisfied with the extension and support service they offered. Also the extension generates the precised product feeds and much according as per the requirement.Easy to install extension. The configuration backend is very clear and intuitive and also customizable. Configurable products are supported. I installed it without any problem, modules are constantly updating and the upgrade is easy.

    Don D.

    Merchant · United States · User for 8 years

    ★★★★★

    This module is really simple and work well

    We have used this module for at least 10 years now. Yes, we had to pay for extended support a few times to update the compatibility with Magento and PHP versions, but the flexibility of the XML variables and codes itself always worked.

    We have never had to change the XML file, the file created by cron, and submitted the updated version of our inventory to Google every evening and never failed.
    Although they don't advertise it, you can use this same module to create different versions of inventory files to update to different marketplaces like Facebook Shopping...

    Great module, good work you guys!

    Gonzalo

    Developer · Spain · User for 12 years

    ★★★★★

    Very good extension and comfortable to use

    It is a very easy to use extension with a little knowledge and even if you do not have the documentation is very well explained and ready to work with it.

    Also the support is very good

    December 20, 2023Magento 1 / OpenmageMagento 2bluenty.com

    Samuel K

    Merchant · France · User for 14 years

    ★★★★★

    Un outil particulièrement puissant avec une flexibilité hors pair

    Une rapidité de mise en oeuvre, une pureté des données générées et un service client réactif toujours à l'écoute pour nous accompagner dans l'optimisation des mécaniques de création des données dynamiques.

    La puissance de l'intégration de la structure XML modifiable à souhait avec la puissance du PHP, c'est la perfection à l'état pur ! Nous avons rarement été autant surpris par un outil aussi puissant et aussi facile à exploiter, chapeau bas à l'équipe de Wyomind !

    Vicki

    Merchant · United Kingdom · User for 11 years

    ★★★★★

    This module is great for uploading your products to Google

    This module is great to upload your products en mass to the google shopping centre; it is super easy to use without coding knowledge requirement.
    Everytime we have required the support, the team have provided responses within minutes and the resolution to all of our issues.
    We have used this module for over 11 years now on different versions of Magento and it has never let us down.
    A* would thoroughly recommend

    July 5, 2023Magento 1 / OpenmageMagento 2

    JoshFBC

    Merchant · United Kingdom · User for 11 years

    ★★★★★

    Solid data exporter

    We have had this module installed ever since we moved to magento two, around 3 years ago. Since then with have comprehensively used this extension to generate a Google Merchant Feed that has been ingested directly into Google with great results. We now use the plugin to send the data to a Google Comparison Shopping Service (or CSS) with great success. We have also had similar success with exporting feeds to the Meta platform via an equivalent CSS and furthermore to Pinterest too. Each of these feeds had different requirements, all of which were handled with no issue but the extension. However, we have struggled to create stable feeds for other marketplaces that do not first feed into a data aggregator. This is almost certainly due to the fact that this kind of functionality is not the scope of this extension, and the Data Feed extension that wyomind is probably a far better option. I would definitely recommend this extension for businesses who have a simple requirements to send product data to the key Marketplaces, however with caution that they may not always work as expected, especially if not further feeding the data into some form of middleware/ data aggregation software. Overall I would give this module 5 stars, as it achieves more than what we ever expected it to.

    sbakker

    Merchant · Netherlands · User for 13 years

    ★★★★★

    Excelent module! Using it for more then 10 years

    As an online retailer, I understand the importance of having a strong presence on Google Shopping to maximize product visibility and drive sales.The pleasure of using Simple Google Shopping by Wyomind, and I must say, it has been a game-changer for my business. This review aims to shed light on the exceptional features and benefits of this remarkable tool. Simple Google Shopping Wyomind is a game-changer for online retailers. Its user-friendly interface, feed optimization, synchronization, and advanced filtering make it a must-have tool. Highly recommended!

    Areeb

    Merchant · United States · User for 4 years

    ★★★★★

    The Extension is great to generate product feeds

    So, I have used Google Shopping feed Extension by Wyomind for our business to generate product feeds , Much satisfied with the extension and support service they offered. Also the extension generates the precised product feeds and much according as per the requirement. I would recommend this extension to all the bushiness merchants to use it for their business and generate the google shopping feeds so that you all can grow your businesses.

    December 18, 2022Magento 2

    Schmucker_schmuck

    Merchant · Germany · User for 4 years

    ★★★★★

    The extension simple google shopping works fine

    Hi, with simple google shopping you can create data feeds for Google shopping with templates which allow the use of PHP in it. This makes it really easy to adapt the attributes of our magento 2 shop to the guidelines of Google Shopping, it helps a lot! One minor point of criticism is that the templates from the Magento 1 extension of Wyomind which we used as well had to be quite a bit adapted to make them work in the magento2 extension simple google shopping. But overall the migration from M1 to M2 was quite an adaption, so the guys at Wyomind had to do some adaption work themselves I reckon!

    R & W Media Magento Agency

    Ecommerce Agency · United Kingdom · User for 10 years

    ★★★★★

    Best Google Shopping feed extension

    The best Google Shopping feed extension on the market place. We use this for so many of our clients' stores. Easy to set up and use, highly recommended

    November 11, 2022Magento 1 / OpenmageMagento 2

    Manuel Moreno

    Marketing Agency · Spain · User for 7 years

    ★★★★★

    Indispensable for our store

    We were using the Simple Google Shopping plugin in Magento 1, and it worked flawlessly every time. When we migrated our store to Magento 2, we opted for the same solution. The plugin is good overall and performs the functions it was created for. The support team helps with the implementation thanks to the free support period and gives you the option to increase that support time by up to 2 more months. The wyomind team is made up of great Magento certified professionals, which is what we were interested in from the beginning.

    BettyJ2

    Developer · United Kingdom · User for 8 years

    ★★★★★

    Excellent - does exactly what it says it does!

    This is a module we have been using since 2018 and in this time we have had no issues or complaints. We have also been very impressed with the level of upgrades that are available after a Magento 2 update. No complaints here!

    September 8, 2022Magento 2

    Magento 2 Compatibility

    Supported by our master extension versions

    • 2.4.9
    • 2.4.8
    • 2.4.7
    • 2.4.6
    • 2.4.5
    • 2.4.4
    • 2.4.3
    • 2.4.2
    • 2.4.1
    • 2.4
    • 2.3.7
    • 2.3.6
    • 2.3.5
    • 2.3.4
    • 2.3.3
    • 2.3.2
    • 2.3.1
    • 2.3

    Supported by our legacy extension versions

    • 2.2.11
    • 2.2.10
    • 2.2.9
    • 2.2.8
    • 2.2.7
    • 2.2.6
    • 2.2.5
    • 2.2.4
    • 2.2.3
    • 2.2.2
    • 2.2.1
    • 2.2
    • 2.1.18
    • 2.1.17
    • 2.1.16
    • 2.1.15
    • 2.1.14
    • 2.1.13
    • 2.1.12
    • 2.1.11
    • 2.1.10
    • 2.1.9
    • 2.1.8
    • 2.1.7
    • 2.1.6
    • 2.1.5
    • 2.1.4
    • 2.1.3
    • 2.1.2
    • 2.1.1
    • 2.1
    • 2.0.18
    • 2.0.17
    • 2.0.16
    • 2.0.15
    • 2.0.14
    • 2.0.13
    • 2.0.12
    • 2.0.11
    • 2.0.10
    • 2.0.9
    • 2.0.8
    • 2.0.7
    • 2.0.6
    • 2.0.5
    • 2.0.4
    • 2.0.3
    • 2.0.2
    • 2.0.1
    • 2.0

    Changelog

    17.0.14

    Bug fix

    • Attribute set selection in the feed filters — when the Attribute Set selection added up to more than 250 characters, it was not saved and the feed silently kept the previously saved sets. The selection is now stored up to 4000 characters.

    17.0.13

    Bug fix

    • Product URL in the feeds — after the URL key of a product was changed with Create Permanent Redirect, {{product.url}} could output the old URL, redirected with a 301, whatever the Use canonical urls option (shortest or longest category URL, individual product URL). The feed now uses the current URL of the product.

    17.0.12

    Improvement

    • Output of the admin templates is now escaped.

    Compatibility

    • Replaced utf8_decode(), deprecated since PHP 8.2.

    17.0.11

    Bug fix

    • Tags with a quantity equal to 0 were dropped from the feed: the string "0" was treated as an empty value in the OR (|) fallback resolution. Numeric values are now accepted

    17.0.10

    Bug fix

    • Fixed a fatal error with PHP 8: the execute() method of the console commands is now compatible with Symfony Command::execute(): int
    • The Generate and Listing CLI commands always returned a failure code, whatever the outcome

    17.0.9

    Improvement

    • Improved price rounding

    17.0.8

    Compatibility

    • Compatibility with Php v 8.4

    17.0.7

    Compatibility

    • Zend_Json::encode has been replaced with the native json_encode function

    17.0.6

    Bug fix

    • Fix missing slash in image urls when using the role parameter

    17.0.5

    Bug fix

    • Feed's list page: display the last generation date in the Magento admin's timezone rather than GMT

    17.0.4

    Bug fix

    • Correct a javascript error in admin

    17.0.3

    Bug fix

    • Correctly render effective end date on special prices

    17.0.2

    Bug fix

    • Correct product visibility filter

    17.0.0

    Initial release for the master version

    16.0.0 legacy

    Initial release for the legacy version

    15.0.6

    Bug fix

    • Fix potential bug that drives to incorrect product page URL 

    15.0.5

    Improvement

    • Accelerate the data feed generation process 

    15.0.4

    Compatibility

    • Compatibility with Php v 8.1

    15.0.3

    Compatibility

    • Compatibility with Php v 8.1

    15.0.2

    Improvement

    • The extension supports now custom product visibility types 

    15.0.1

    Compatibility

    • Compatibility with Magento v2.4.6 + PHP v8.2

    15.0.0

    Compatibility

    • Compatibility with Magento v2.4.6 + PHP v8.2

    14.10.2

    Improvement

    • Price block override that prevents  price mismatches for configurable product (beta)

    14.10.1

    Improvement

    • Custom price block optimized (custom block that prevents product prices mismatches with configurable products)

    14.10.0

    Improvement

    • The category mapping auto-complete is updated to match new jQuery overrides

    14.9.3

    • Compatibility fix for PHP v8.1

    14.9.2

    • Better schema upgrade and data upgrade management

    14.9.1

    • Bug fix for data feeds including numerous attributes
    • Better schema upgrade and data upgrade management

    14.8.4

    • PHp v8.1 compatibility improvement

    14.8.3

    Compatibility

    • Compatibility with PHP 8.1

    14.7.2

    • Fix for recovering the promotion ids

    14.7.1

    • Fix for retrieving images with a particular role in the case where the role name ends with a number

    14.7.0

    Improvement

    • Possibility to choose the image role for {{product.image_link}}

    14.6.4

    • Temporary deactivation of the price rendering feature for configurable products with pre-selected options: this feature changed the price of other products displayed on the product page

    14.6.3

    • Fix for the error:
      Notice: Undefined property: WyomindSimpleGoogleShoppingModelResourceModelProductCollectionInterceptor::$attributesHelper

    14.6.2

    Improvement

    • google_product_category is now a reserved keyword so that it always provides the result of the category mapping even if there is an attribute produced with this code

    14.6.1

    • Minor fix on code

    14.6.0

    • Feed generation speed optimized

    14.5.2

    • Fix for the cron tasks

    14.5.1

    • Fix for a bug preventing the data feeds automatic generation

    14.5.0

    • Better management for cron tasks that are now based on the locale date and hour defined in the back-office

    14.4.14

    • The option to display the price of the pre-selected single product when arriving on the page of a configurable product is disabled by default

    14.4.13

    • Minor fix on code

    14.4.12

    • Minor fix on code

    14.4.11

    Improvement

    • Possibility to use a negative index when retrieving images: {{product.image_link index=-1}} retrieves the last image of the product
    • The price of the product in the DOM is now the price of the pre-selected single product when arriving on the page of a configurable product from a URL including the pre-selected attribute options 

    14.4.10

    • Fix when categories are deleted whereas they are selected in the data feed configuration

    14.4.9

    • Modification of the method to retrieve the base Magento directory and adaptation for some Magento Cloud configurations

    14.4.8

    • Fix when categories are selected as filters but don't exist anymore in Magento

    14.4.7

    Improvement

    • The currency parameter is supported for product.url_config

    14.4.6

    • Fix for a bug 
    • Management of a special case in the generation reports

    14.4.5

    • Fix for converting prices according to the price scope (global or website)

    14.4.4

    • Mapping section increased: useful when having a lot of categories

    14.4.3

    • The module is even more permissive for sites that do not have sources associated with a website

    14.4.2

    Improvement

    • The module can work even if there is no source configured for the current stock

    14.4.1

    • Fix for a bug preventing the data feed page to load when non-standard attributes were used

    14.4.0

    Improvement

    • New parameter for product_url and product.url_config that adds ?currency=XXX to the generated URL: this URL will automatically switch to the selected currency

    14.3.1

    Improvement

    • Report is back in the black box

    14.3.0

    Improvement

    • Error reporting available when clicking on "X errors, X warnings" after the feed generation and in the grid

    14.2.1

    • Magento Cloud fix for factory classes

    14.2.0

    Improvement

    • Improved license management system (Clear code)

    14.1.1

    • Fix for the demo store

    14.1.0

    Improvement

    • License system improved

    14.0.5

    • Minor fix for Magento 2.2

    14.0.4

    Improvement

    • PHP code quality improved

    14.0.3

    • Minor fix on code

    14.0.2

    • Minor fix on code

    13.8.9

    Bug fix

    • Fix for retrieving images for Magento Enterprise: row_id is used to retrieve images in the gallery table

    13.8.8

    Improvement

    • Product types filter: product types are retrieved dynamically

    13.8.7

    • Fix on a SQL error when there is a lot of mapped attributes

    13.8.6

    • Fix for retrieving stocks using Magento EE

    13.8.4

    Improvement

    • Better management of sales_effective_date: dates are not displayed if from and/or to date are missing

    13.8.3

    • Fix on a typo on the "separator" parameter

    13.8.2

    • Fix for products URLs with manually created rewrites

    13.8.1

    • Fix for Magento 2.3.3

    13.8.0

    • Compatibility with Magento 2.3.3

    13.7.1

    • Fix on a bug when generating feeds with promotional price rules

    13.7.0

    Compatibility

    • Compatibility with the Multi Stock Inventory module on Magento v2.3.0

    Patch v13.7.0.8

    • Fix for the default value of Use canonical URL

    Patch v13.7.0.7

    • Sample date available for the demo

    Patch v13.7.0.6

    • Fix on advanced filters

    Patch v13.7.0.5

    • Minor clean in etc/di.xml

    Patch v13.7.0.4

    • Minor fix for URL rewrite

    Patch v13.7.0.3

    • Fix for the promotion_id

    Patch v13.7.0.2

    • Fix for the canonical URLs default value

    Patch v13.7.0.1

    • Fix for the compilation

    13.6.1

    • Fix when installing several modules at the same time

    Patch v13.6.1.2

    • Fix for the default value of Use canonical URL

    Patch v13.6.1.1

    • Fix for the promotion_id

    13.6.0

    Compatibility

    • Magento 2.3 compatible

    Patch v13.6.0.9

    • Fix for the default value of Use canonical URL

    Patch v13.6.0.8

    • Revert for Magento Cloud

    Patch v13.6.0.7

    • Disabled images are excluded from the feeds

    Patch v13.6.0.6

    • Minor fix on code

    Patch v13.6.0.5

    • Fix when retrieving products urls for Magento 2 EE

    Patch v13.6.0.4

    • Fix on path with Magento Cloud

    Patch v13.6.0.3

    • Fix when using with Magento Cloud: /app/ was added to the path where the file is stored

    Patch v13.6.0.2

    • Fix for the energy_efficiency_class tag

    Patch v13.6.0.1

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    13.5.3

    Compatibility

    • Compatibility with PHP v5.5 and v5.6

    Patch v13.5.3.3

    • Minor fix on code

    Patch v13.5.3.2

    • Fix for the energy_efficiency_class tag

    Patch v13.5.3.1

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    13.5.1

    Improvement

    • Improved execution of php script when the attribute value is a table

    Patch v13.5.1.3

    • Minor fix on code

    Patch v13.5.1.2

    • Fix for the energy_efficiency_class tag

    Patch v13.5.1.1

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    13.5.0

    Improvement

    • Better management of category filters and mapping

    Patch v13.5.0.4

    • Minor fix on code

    Patch v13.5.0.3

    • Fix for the energy_efficiency_class tag

    Patch v13.5.0.2

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    Patch v13.5.0.1

    • Fix on php syntax 

    13.4.3

    • Better management of the module installation place

    Patch v13.4.3.3

    • Minor fix on code

    Patch v13.4.3.2

    • Fix for the energy_efficiency_class tag

    Patch v13.4.3.1

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    13.4.2

    Bug fix

    • Fix for compatibilty with Magento < 2.2.5

    Patch v13.4.2.5

    • Minor fix on code

    Patch v13.4.2.4

    • Fix for the energy_efficiency_class tag

    Patch v13.4.2.3

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    Patch v13.4.2.2

    • Fix on {{product.qty}} when a configurable product has no child

    Patch v13.4.2.1

    • Minor fix in the layout

    13.4.1

    • Fix on PHP code execution in the template

    Patch v13.4.1.3

    • Minor fix on code

    Patch v13.4.1.2

    • Fix for the energy_efficiency_class tag

    Patch v13.4.1.1

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    13.4.0

    Improvement

    • Compatibility with Magento 2.2.5

    Patch v13.4.0.3

    • Minor fix on code

    Patch v13.4.0.2

    • Fix for the energy_efficiency_class tag

    Patch v13.4.0.1

    • Fix on the simplegoogleshopping_categories variable that caused issue when creating a new data feed

    13.3.2

    Improvement

    • Better management of the taxonomy

    Bug fix

    • New use of the custom functions to prevent any error with the cron task
    • Fix for default feeds

    Patch v13.3.2.1

    • Minor fix on code

    13.3.1

    Improvement

    • Files are now automatically updated depending on the Magento version while installing the module

    Patch v13.3.1.5

    • Fix for the Google Taxonomy source
    • Better management of the taxonomy
    • Fix for default feeds

    Patch v13.3.1.4

    • Fix on specific tags

    Patch v13.3.1.3

    • Fix on CDATA management

    Patch v13.3.1.2

    • Fix for the category filters

    Patch v13.3.1.1

    • Fix for the bundle products

    13.3.0

    Improvement

    • Fix for a Magento Bug that displays the SQL request instead of the error message
    • Fix for the error messaged related to the license management 

    Patch v13.3.0.2

    • Fix for the Google Taxonomy source
    • Better management of the taxonomy
    • Fix for default feeds

    Patch v13.3.0.1

    • Fix for the bundle products

    13.2.0

    Improvement

    • Magento v2.2.1 compatibilty

    Patch v13.2.0.4

    • Fix for the Google Taxonomy source
    • Better management of the taxonomy
    • Fix for default feeds

    Patch v13.2.0.2

    • Fix for Magento Enterprise Edition

    Patch v13.2.0.1

    • Fix for the cron task frequency (*/30 * * * * instead of * * * * *)

    13.1.0

    Improvement

    • Better support for PHP script errors in the data feeds
    • Black box can now be collapsed/expanded, maximized/minimized
    • Command lines renamed to simplegoogleshopping_* (instead of sgs_*)
    • Default Custom functions renamed to wyomind_* (instead of sgs_*)

    Bug fix

    • minor fix on the output parameter for static values

    Patch v13.1.0.3

    • Fix for the Google Taxonomy source
    • Better management of the taxonomy
    • Fix for default feeds

    Patch v13.1.0.2

    • Fix for the cron task frequency (*/30 * * * * instead of * * * * *)

    Patch v13.1.0.1

    • fix for the translation file ("menu" was translated with an empty string)

    13.0.1

    Compatibility

    • Compatibility with Magento v2.2

    Patch v13.0.1.2

    • Fix for the Google Taxonomy source
    • Better management of the taxonomy
    • Fix for default feeds

    Patch v13.0.1.1

    • Fix for the cron task frequency (*/30 * * * * instead of * * * * *)

    13.0.0

    Support on the following Magento optimization options:

    • Javascript merging
    • JavaScript bundling
    • Javascript minification

    Patch v13.0.0.3

    • Fix for the Google Taxonomy source
    • Better management of the taxonomy
    • Fix for default feeds

    Patch v13.0.0.2

    • Fix for the cron task frequency (*/30 * * * * instead of * * * * *)

    Patch v13.0.0.1

    • Javascript fix for the category filter types

    12.0.1

    Bug fix

    • Fix a bug in the display of the categories

    Patch v12.0.1.2

    • Fix on PHP errors generated by previous patch version

    12.0.0

    Improvement

    • PHP API: getParent and hasParent functions supported 
    • Better management of Javascript files

    Improvement

    • Blackbox is back
    • Better performance when editing a configuration
    • Drag and drop available on the preview/library window

    Patch v12.0.0.2

    • Fix on PHP errors generated by previous patch version

    11.0.2

    Improvement

    • Better support for attributes including HTML tags

    Patch v11.0.2.2

    • Fix on PHP errors generated by previous patch version

    11.0.1

    Improvement

    • Better support for the install/upgrade scripts
    • Method $this->skip() available directly from the template to skip the current product

    Patch v11.0.1.2

    • Fix on {{product.categories}}
      Categories that are empty when retrieved by {{product.categories}}, are deleted from the category list.
    • Fix on PHP errors generated by previous patch version

    11.0.0

    Improvement

    • categories attribute re-designed for a more flexible usage
    • Attributes can now be stored under variables with the as parameter
    • Conditions can now be applied to the attributes with the if parameter
    • Data feeds can be triggered with CLI

    Patch v11.0.0.2

    • Fix on PHP errors generated by previous patch version

    10.0.8

    Compatibility

    • Simple Google Shopping is compatible with Magento 2.1.0

    Patch v10.0.8.3

    • fix for the translation file ("menu" was translated with an empty string)

    Patch v10.0.8.2

    • Fix on PHP errors generated by previous patch version

    10.0.7

    Bug fix

    • Fix for images recovery

    Patch v10.0.7.2

    • Fix on PHP errors generated by previous patch version

    10.0.6

    Improvement

    • Code improvements for Magento Audit

    Patch v10.0.6.2

    • Fix on PHP errors generated by previous patch version

    10.0.3

    Improvement

    • Minor code improvements

    Patch v10.0.3.2

    • Fix on PHP errors generated by previous patch version

    10.0.2

    Improvement

    • New attribute {{product.url_config}} retrieves URL to pre-select the simple product attributes from its configurable 
    • New management of licenses for Magento 2

    Patch v10.0.2.2

    • Fix on PHP errors generated by previous patch version

    10.0.0

    Compatibility

    • Simple Google Shopping is compatible with Magento 2

    Patch v10.0.0.2

    • Fix on PHP errors generated by previous patch version

    Feature request

    Specific needs or any ideas of enhancements and new features to add to the extension? Tell us more, we'll get back to you shortly!

    Thank you

    That’s a wrap.

    We will get back to you as soon as possible.

    You may also like