Rocket Shopping Feeds
GSF v2.x
- Overview
- Developer
- Releases
- Releases
- 1.5.20
- 1.6.0
- 1.6.1
- 1.6.2
- 1.6.3
- 1.6.4
- 2.0.0
- 2.1.0
- 2.0.3
- 2.0.4
- 2.0.5
- 2.1.1
- 2.1.2
- 2.1.3
- 2.1.4
- 2.1.5
- 2.1.6
- 2.1.7
- 2.1.8
- 2.1.9
- 2.2.0
- 2.2.1
- 2.2.2
- Extension unit testing
- Getting started
- Set up Google Shopping
- Set up Google Shopping
- Run Adwords campaigns
- Set up Google Inventory
- Google Promotions
- Shipping and Tax
- Enable automatic item updates
- Feeds management
- Feeds management
- Adding a feed
- Optimizing feed output
- Columns Map
- Categories Map
- Product Filters
- Product Options
- Configurable Products
- Grouped Products
- Bundle Products
- Shipping
- Run Schedule
- FTP Uploads
- Generating the feed
- Testing and Troubleshooting
- Cloning a feed setup
- Migration to another magento
- General Configuration
- How-to articles
- How-to articles
- Use pricing from simple child products
- Setting up products with Minimum Advertised Pricing
- Set up stores and feeds for multiple countries
- Detaching feed generation from magento cron
- Set up Bing Catalog
- Set up ShareASale
- Developing custom feeds
Overview
Welcome to Rocket Shopping Feeds User's Guide
This guide covers features of v2.x of the formally known Google Shopping Feed extension. If you're running older versions, consider upgrading or follow our 1.x user guide.
VERSION 2.X.X
Getting started
Set up Google Shopping
- Shipping and Tax
- Run Adwords campaigns
- Enable automatic item updates
- Set up Google Inventory
- Google Promotions
Set up Bing Catalog
Set up ShareASale
Feeds management
- Adding a feed
- Generating the feed
- Testing and Troubleshooting
- Optimizing feed output
- Cloning a feed setup
- Migration to another magento
How-to articles
- Set up stores and feeds for multiple countries
- Use pricing from simple child products
- Detaching feed generation from magento cron
- Setting up products with Minimum Advertised Pricing
Developing custom feeds
Search this documentation
How to use this guide
If you're just starting out with this product, you should follow the steps at Getting Started; otherwise, if you are looking for details on a specific configuration, use the left side navigation on this page to find the appropriate information.
Solution lookup
Use the "search this documentation" for keywords that are relevant to your issue.
Get Support
If the solution you are looking for cannot be found here, please submit a request using our Service Desk.
Developer
Releases
Releases
File lists
Upload, preview and share files with your team.
1.5.20
Release Notes
New Features
- Adding bundle options to overwrite cumulative weight.
- Adding admin setting for overwriting configurable sub-items availability for out of stock parent item.
- Checked EE 1.14.0.1 and CE 1.9.0.1 compatibility.
- Check support for WebShopMatrix
- Bundle products apparel now have the option to detail sub-items
- Add map directive capabilities to Replace Empty feature
- Remove duplicate configurable sub-items when they are visible in catalog instead of not visible individually.
- Bundle sub-item form unique URLs which autoselect on product page bundle options so that the feed item matches information on page
- Implement description fallback logic for configurable apparel sub-items using "Associated products - Fetch description from"
- GSF-94 Moved submit products with no image setting to Skip product with empty setting.
- GSF-84 Refactor including products only from selected categories for easier output only specific categories
Bugs Fixes
- Fix batch mode freeze after an incomplete batch run. Added lock file cleanup for this situation.
- Fix shipping methods list in config dropdown to reflect the config scope
- Force shipping request to SalePrice if Price is not set; this fixes wrong shipping info been computed for methods with price threshold.
- Fix price rounding issue when includes tax price
- Fix grouped product price - include tax
- Fix configurable sale price - date range issues
- Fix hasSpecialPrice errors, causing invalid special price to show up for some products.
- Fix configurable price when no configurable attributes are found in product definition.
- Fix showing special price instead of catalog rule price when special price is not effective.
- Add support for apparel size_type and size_system
- Fix unique URLs for associated configurable items
- Fix grouped product to include the tax when using min price from the group of products.
- Grouped price fix when set to compute sum of the associated items
- Fix bundle pricing with special price
- Allow special price of children to be overwritten with values from the configurable
- Force qty = 1 for grouped products when is not defined.
- Fix price excluding tax on bundle and configurable
- Fix special price including tax.
- Fix segmentation fault for grouped products
- Fix GSF-65 infinite price overwrite loop
1.6.0
Release Notes
New Features
- Google Automatic Item Updates
- Concatenate attributes using a string template
- Cascade column mappings using replace empty values rules.
Bug Fixes
- Fixed admin router, support for SUPEE-6788
- GSF-145 Fix Sale Expiry date
- GSF-160 Product Type Using Magento Category directive enhanced to include all active product categories
- GSF-96 Refactor / simplify the "Associated products - Fetch ..." dropdowns and code logic, also fix apparel not following the logic.
- GSF-96 Correlate "Associated products - Fetch main image from" logic to "Replace Empty" rules, so that replace empty happens for both parent and associated when cascading them.
- GSF-202 Do not skip duplicates in test mode to avoid no output for stand alone products in test mode.
- GSF-197 Fix inherit apparel columns to configurable from associated items when feed is set to add only configurable in the feed.
- GSF-64 Added uninstall shell script.
- GSF-96 Fix skipped possible duplicates
- GSF-270 Fix default configs to match config options and fix config paths failing to save the values in DB
- GSF-270 fix duplicates removal - missing visible items when parent is not included in the feed.
- GSF-72 Support for google automatic items update through microdata on product page.
- GSF-66 Added concatenate attributes feature & enhanced the column map configuration grid.
- GSF-322 Limit shipping weight to only 2 decimals.
- GSF-324 fix double currency conversion when including taxes in price
- GSF-328 add option to specify which image type to output with the image directives.
- GSF-317 Add option for product type by magento category directive to limit the number of category paths at output.
- GSF-313 Fix the setting to skip empty columns
- GSF-297 Cleaned up old apparel variant logic causing mixed warning messages
1.6.1
Release notes
New Features
- [GSF-407] - Weee tax (Eco Tax) not included in Google Product Feed
- [GSF-444] - Support Ayasoftware's Simple pricing extension
- Support for Aitoc_Aitcbp Cost-based automatic pricing
- Support for MagicToolbox_Magic360 images
- Support for Configurable Swatches and Google re-marketing tag getting updated.
Improvements
- [GSF-108] - Change "Configurable attribute overwrites" to work on Feed columns
- [GSF-431] - Dynamic Remarketing - Google
- [GSF-474] - Better Microdata implementation. Block added on "content" to work on more themes.
Bug Fixes
- [GSF-90] - Missing weight for out of stock configurable
- [GSF-101] - Make sure we don't use the flat category collection
- [GSF-124] - Not default stock statuses + no attribute skips all products
- [GSF-410] - Global Skip out of stock also skips In stock variants
- [GSF-466] - Error: unexpected T_FUNCTION
- [GSF-468] - Enable extension just for a store-view doesn't work
- [GSF-473] - brand is no longer overridden by default in Grouped and Bundles children
- [GSF-497] - [SCP] Configurable products don't fetch price from simples when price is empty, don't fetch sale price at all.
- [GSF-498] - Special price on configurable children with mark-up don't add mark-up
- [GSF-513] - A valid bundle, with no options, takes all available options
- [GSF-546] - Single quotes in column titles generate an error in javascript
- [GSF-448] - fix badly formatted output of Concatenate directive
- [GSF-425] - fix fatal error for PHP 5.2 or lower
- [GSF-460] - fix identifier_exists to return false when only one identifier has value.
- [GSF-504] - Fix the upgrade script removing the by Google Category By Category and Product Type By Category values for version < 5.3
- [GSF-407] - Fix Sale Price for configurable associates having price that vary by option.
- [GSF-511] - Remove grouped and configurable associates that are disabled from the feed.
- [GSF-506] Enhance Item_Group_Id directive to split a configurable product into multiple parent products by non-variant options like: shirt_style, fit, than vary them by color, size, material or pattern.
1.6.2
Release notes
New Features
- [GSF-376] - Custom Options - support base magento feature. Simple products with custom options can now be detailed in the feed as options combinations per row.
- Added support for WebShopApps Productmatrix shipping extension
- EE Gift Card products can now be exported
Bug Fixes
- Fix missing #fragment from associated products URL. Ex. use of #utm_source=google_shopping instead of ?utm_source=google_shopping.
- Fix controller permission to work with SUPEE-6285 security patch.
- Fix URLs when not using server rewrites
- Refactored Apparel configuration section
- Catalog rules now use the logged-out group, so you can correctly exclude rules from applying in the feed if they don't apply to guests (Google only sees logged-out prices)
- Yes/No attributes now export correctly
- Configurable products with 0 price are now correctly skipped
- Better skip counts for complex products
- item_group_id is a default column
- fix URLs when server rewrites are off
- Quotes and double quotes in titles and descriptions now export correctly
- Product Type using Magento Category now works correctly on multiple storeviews
1.6.3
Release notes
This version includes a pricing rewrite for all product types, which address a few corner-case issues with pricing.
Bug Fixes
- fixes last-digit rounding issues for prices with and without tax
- fixes rounding issues when using storeviews with currency conversion
- fixes rounding issues with configurable pricing and mark-up prices on options, with and without tax
- fixes an issue with special price from Catalog Rules, on configurable products with mark-up pricing on options
1.6.4
Release notes
New Features
- Added microdata "condition" to output
- Added support for Amasty simple configurable price.
- Added memory limit catcher in batch mode
- Enhance Concatenate Attributes Directive to return empty String if all attribute values are empty
- Limit the output of "Item Group ID" directive to 50 chars max. independently of attribute count
- Added support for qty_increments
Bug Fixes
- Fix JS warnings on Configurable PDP
- Fix MSRP usage
- Fix how Quantity Increments are applied to the price
- Fix JS error when custom options is a radio button
- Fix various PHP warnings & notices
- Fix expiration date to show proper value instead of 1 year in the future
- Fix bundle availability and cleanup some special character
- Fix price rounding for CE version 1.7.0.2 or older
- Fix bug regarding special_price not being shown
- Fix size & color for configurable item when associates are been skipped.
- Fix JS warnings on Configurable PDP
2.0.0
Multi-feed support
Release Notes
New Features:
- Support multiple feeds for the same store
- Allow setting different currency than the store displayed one
- Support for google inventory feeds
- A new interface for managing feeds
- FTP uploads support
- Added run schedules with multiple runs per day
- Access to the feed processing logs
- Easy feeds migration from staging (import/export)
- Fixed grid filters throwing exceptions
- Fix skip log counts to count the parent and simple product. Also test mode should not change the full run counts.
2.0.1:
- Updated 'value' column in rw_gfeed_feed_config table from TEXT to MEDIUMTEXT
Demo site:
http://feed.rocketweb.com/admin
Login: demo / demofeed20
Add this line to you hosts file:
23.253.172.203 feed.rocketweb.com
Dev site:
Admin: http://dorin.sv1.magetesting.com/PYJzN8335/admin/
Admin login: dorin / 69582GurqeVm
FTP: ftp://dorin.sv1.magetesting.com
FTP login: mt_dorin / d6dc667cf3
2.1.0
Release Notes
- Concatenate directive now supports including both columns and attributes into concatenation template
- Pull of correct configurable attribute values into the concatenate directive, regardless of 'Fetch title from' setting
- Added category matching by priority into the Category Map widget
- Added granular product type definition into the Category Map widget
- Support for new GTIN requirements
New feeds support
- Google Promotions Feed https://rocketweb.atlassian.net/wiki/display/RSF/Google+Promotions
- Bing Catalog Feed https://rocketweb.atlassian.net/wiki/display/RSF/Set+up+Bing+Catalog
- ShareASale Feed https://rocketweb.atlassian.net/wiki/display/RSF/Set+up+ShareASale
2.0.3
Hot Fix:
- Missing feed headers when allowed_memory is reached and feed goes automatically in batch mode.
- Disabled categories been pulled through Taxonomy By Category directive.
- Shipping currency is off when specifying the a different feed currency.
- Microdata display information specific to associated item based on URL params.
2.0.4
Hot Fix:
- Category tree under product options won't save values.
- Detect php max_execution_time and switch to batch mode automatically before script failing.
- Duplicates check for bundle items with associated also visible in catalog.
- Detailed products in the feed by custom options missing price currency.
- Use image cache to output product image urls instead of direct media urls.
- Rendering large category numbers on the feed configuration page.
- Taxonomies not been saved because reaching the max_post_vars.
2.0.5
Hot Fix:
- Fix additional image keep repeating same file
- Added option to customize item_group_id output in old format.
- Adjusted directive Identifier Exists to configure which columns are required.
- Gtin support with directive 'Identifier Attribute' allowing to pull the less expensive item attribute if configurable or grouped attribute is empty, and from most expensive item on bundle products.
- Fix index.php/admin store view in the URL when Mageworks_Megamenu is installed.
- Fix missing product_type when using directive Product Type using Magento Category Path.
2.1.1
Release Notes:
Fixes:
- Backwards compatibility with magento 1.6.x
- A better shell script with options to skip logs, upload or skip ftp
- Fixed FTP upload for Google promotions feed
- Fixed an issue where categories mapping wouldn't work for Canada locales
- Fixed issues with the scheduler
- Share-a-sale now outputs correct header
- Fixed php compatibility issues with Share-a-sale
- Fixed adding store code to ID
- Fixed an issue with the Hook directory missing
- Catalog Rules are now calculated correctly, always using the Logged out group (just like Google sees it)
- Remove a wrong warning of duplicate skipped products
2.1.2
Release notes:
- Fix identifier_exists
- Fix shipping prices with configurable children with differing weights
- Fix shipping weight and rate for a grouped parent
- Fix shipping weight and rate for a grouped parent
- Add option to disable Magento cron, so you can use the custom shell cron without commenting in XML
- Expose config to turn SCP on and off
- Fix availability with backorders
2.1.3
Release notes
- Microdata is fixed on all product types
- Microdata also works with SCP
- Add missing delete button on price buckets and replace empty filter rules
2.1.4
Release Notes:
- Fix missing condition microdata
- Fix duplicate check on configurable and bundle sub-items.
- Convert installer to raw sql so it works with older versions of magento.
- Fix dates inconsistency on promotions tab.
- Fix errors around missing product options specified in columns map and functions definition compatibility.
- Fix promotion rule matching in Promotions Id directive.
- Fix missed schedule in cron autogeneration of the feed.
2.1.5
Release Notes:
2.1.6
Release Notes
- Remove disabled categories in product_type_by_category computation, and fix priority sorting.
- Fix usage of prefixed tables around salesrule.
- Fix infinite loop when doing concatenation for replace empty title column
- Fix removed feeds causing processing to create a new generic feed each time cron runs.
- Fix identifier_exists inconsistent values, changed default behaviour.
- Fix effective and display dates randomly resetting under Google Promotions tab when configuration is saved
- Fix error array_intersect(): Argument #1 is not an array in Adapter/Abstract.php.
2.1.7
Version Log:
- Add ability to change file delimiter and value enclosure.
- Fix configurable "Fetch images from" not applying for additional images.
- Do not upload test files to FTP.
- Fix bundle item price to include tax when configured, pulling price out of default options.
- Fix javascript change event on bundle product page,
- Fix bundle price to pull one from default selection.
- Add directive to output tier qty.
- Add directive to output any inventory attributes.
- Fix catalog rules matching for bundle with dynamic prices.
2.1.8
Version Log:
- Add support for php 7.2
- Fix qty increments division by zero issue.
- Fix skip attribute admin input causing edited products to be skipped unintended.
- Fix support for developer starter module.
- Fix usage of group price when computing sale price.
2.1.9
Version Log:
- Code cleanup & fix codesniffer issues.
- Add support for POS_SimplePrice module.
- Fix special price end date, missing last day of availability.
- Add option to disable qty increments from price computation.
2.2.0
Change log:
- Add setting to dictate if selected products are included or excluded from feed.
2.2.1
Release log:
- Fix find & replace not applying on certain directives.
- Allow restricted tags in the description column.
- Fix pricing of configurable associated products visible in catalog.
- Allow specific tags in the concatenate directive.
- Fix output of associated products that are visible in catalog.
- Fix product type check visibility and concatenation not following description inheritance setting.
- Shipping for associated products.
- Fix bundle price output around default configuration fix/dynamic.
- Fix php 7.2 warning.
- Fix price output for configurable sub-items with qty increments enabled.
- Convert usage of serialized strings to json format, required with code-sniffer severity=10.
2.2.2
Release log:
- Fix serialization issues for versions > 1.9.4.1.
- Fix missing default columns map post migration to json.
- Fix mixed serialized values in xml configs clashing with json migration.
Extension unit testing
Extension unit testing
Pre-requests
- Install vanilla Magento CE 1.9 with magento_sample_data_for_1.9.1.0
- Install extension and switch to correct branch (currently
phpunit for 2.0, 2.1.0 for 2.0+)
How to run
- Install phpunit v4.8.x or later.
Get it from https://phpunit.de/, and include it in your path: mv phpunit.phar /usr/local/bin/phpunit - Copy file
app/etc/local.xml.phpunit.templateintoapp/etc/local.xml.phpunitand edit the file (fields: dbname, secure_base_url, unsecure_base_url)
Same DB has to be configured in both local.xml and local.xml.phpunit Run
cd /magento_root/ # run all tests phpunit # run with debug info, will show all test parameters phpunit --debug # include HTML report in the local.dev/report/index.html phpunit --coverage-html report # run through XDebug, and debug your tests in the IDE (works for PhpStorm 10) export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_port=9000 remote_host=127.0.0.1 remote_connect_back=0" phpunit # disable XDebug export XDEBUG_CONFIG=""
Expected result:
$ phpunit PHPUnit 4.7.6 by Sebastian Bergmann and contributors. .................. Time: 7.9 seconds, Memory: 54.50Mb OK (18 tests, 18 assertions)
How to add test for:
Unit test Expansion List
This is a work-document where we list all the possible tests that we need to create.
Each provider test must include all generic mappings!
Mappings
Generic Mappings
Only Generic mapping test must include:
Mapping parameters tests
Product values tests
| Generic Directive Mappings | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) | Comment |
|---|---|---|---|---|---|---|---|---|---|---|
mapDirectiveId | ||||||||||
mapDirectiveStaticValue | ||||||||||
mapDirectiveProductReviewAverage | ||||||||||
mapDirectiveProductReviewCount | ||||||||||
mapDirectiveUrl | ||||||||||
mapDirectiveImageLink | ||||||||||
mapDirectiveCategoryImageLink | ||||||||||
mapDirectiveAdditionalImageLink | ||||||||||
mapDirectivePrice | ||||||||||
mapDirectiveSalePrice | ||||||||||
mapDirectiveSalePriceEffectiveDate | ||||||||||
mapDirectiveQuantity | ||||||||||
mapDirectiveAvailability | ||||||||||
mapDirectiveExpirationDate | Can't really be tested because this is not a fixed value | Can't really be tested because this is not a fixed value | Can't really be tested because this is not a fixed value | Can't really be tested because this is not a fixed value | Can't really be tested because this is not a fixed value | |||||
mapDirectiveShippingWeight | ||||||||||
mapDirectiveGoogleCategoryByCategory | Rename to mapDirectiveTaxonomyByCategory | |||||||||
mapDirectiveShipping | ||||||||||
mapDirectiveProductTypeMagentoCategory | ||||||||||
mapDirectiveIsBundle | ||||||||||
mapDirectiveVariantAttributes | ||||||||||
mapDirectiveProductOption | ||||||||||
mapDirectiveConcatenate | ||||||||||
Generic Attributes Mappings | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) | Comment |
mapAttributeDescription | This is currently a fallback for mapColumnDescription | This is currently a fallback for mapColumnDescription | This is currently a fallback for mapColumnDescription | This is currently a fallback for mapColumnDescription | This is currently a fallback for mapColumnDescription | |||||
mapAttributeName | ||||||||||
Generic Column Mappings | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) | Comment |
mapColumnDescription | This should be changed/removed | |||||||||
| 3rd Party Extension Directives | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) | Comment |
mapDirectiveImageLink360Magic | ||||||||||
mapDirectiveExternalImageLink | ||||||||||
| mapDirectiveAdditionalImageLink360Magic | ||||||||||
| mapAttributeAwShopbybrandBrand |
Google Mappings
| Google Directive Mappings | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) | Comment |
|---|---|---|---|---|---|---|---|---|---|---|
mapDirectivePriceBuckets | ||||||||||
mapDirectiveIdentifierExists | ||||||||||
| mapDirectiveItemGroupId |
Bing Mappings
| Google Directive Mappings | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) | Comment |
|---|---|---|---|---|---|---|---|---|---|---|
mapDirectivePrice | ||||||||||
mapDirectiveSalePrice |
Mapping parameters
| Mapping | Parameter Comment | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) |
|---|---|---|---|---|---|---|---|---|---|---|
| Generic Mappings | ||||||||||
| mapDirectiveId | Store Id | |||||||||
| mapDirectivePrice | Tax Yes/No | |||||||||
| mapDirectiveSalePrice | Tax Yes/No | |||||||||
| mapDirectiveUrl | Suffix | |||||||||
| mapDirectiveImageLink | Base / Small / Thumbnail | |||||||||
| mapDirectiveAdditionalImageLink | Base / Small / Thumbnail |
Product values
| Product attribute | Comment | Simple Products | Configurable Products | Grouped Products | Bundle Products | Giftcard Products | Simple Associated | Configurable Associated | Configurable SCP (external extension related) | Configurable SCP Associated (external extension related) |
|---|---|---|---|---|---|---|---|---|---|---|
| MSRP | ||||||||||
| Minimal Order Quantity | ||||||||||
| Order Quantity Increments |
Running SCP Tests
The SCP tests have been written by using the OrganicInternet_SimpleConfigurableProducts extension. This extension hasn't been updated in a while and there's an issue when installing it. You can read more about the issue here https://www.magentocommerce.com/magento-connect/simple-configurable-products.html in the Reviews tab. The extension committed to the RSF repository contains a modified version of the Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Price_Configurable class which fixes the issue. A re-indexing is required in order for the code to work.
Add Columns Map test
- All of the files are located inside: magento_root/app/code/community/RocketWeb/GoogleBaseFeedGenerator/ if not written otherwise!
- In all YAML files be extremely careful of space denotation (using two spaces)!
Setting up default columns map
Open test
Test/Model/Generator.phpand edit methodRocketWeb_GoogleBaseFeedGenerator_Test_Model_Generator::getColumnsMap()/** * @test * @loadFixture feed * @loadFixture config * @loadExpectation * @dataProvider dataProvider */ public function getColumnsMap($feedId) { // Comment out this line //$expected = $this->expected('map_%s', $feedId)->getData(); $this->setModel(); $map = $this->model->getColumnsMap(); // Add this two lines $tmp = $this->toYaml($map, ' '); $this->debug($tmp); // Comment out this line //$this->assertEquals($expected, $map, "Columns map was changed!"); }Open fixture
Test/Model/Generator/fixtures/feed.yamland add new feed:tables: rw_gfeed_feed: - id: 101 store_id: 0 name: 'PHPUnit feed' type: 'generic' status: 1 - id: 102 store_id: 0 name: 'PHPUnit feed' type: 'google_shoppings' status: 1 # Copy a section and change id & type value, id must be 100+ (101, 102, 103, ...)Open fixture
Test/Model/Generator/providers/getColumnMap.yamland add:... Existing lines ... - - 103 # Feed ID - add the ID from the previous step
Run the test with filter (phpunit --filter getColumnsMap) and this time, you will receive an output inside the console:
phpunit --filter getColumnsMap PHPUnit 4.7.6 by Sebastian Bergmann and contributors. .' id: column:id attribute:rw_gbase_directive_id param:0 order:10 title: column:title attribute:name ... MORE OUTPUT ... attribute:rw_gbase_directive_product_type_magento_category param:3 order:120 ' .Copy the whole text between two qoutes (so lines from id to the end) for the last chunk (each feed will output this chunk)
Open file
Test/Model/Generator/expectations/getColumns.yamland add:... Existing code ... map_FEED_ID: # FEED_ID is the ID from step 2 id: column:id ... The chunk copied in previous step ... attribute:rw_gbase_directive_product_type_magento_category param:3 order:120- Revert the changes in 1. step and rerun phpunit
Add Feed File test
Open extension file
Model/Config.phpand edit methodRocketWeb_GoogleBaseFeedGenerator_Model_Config::_beforeSave()to a public method (we are modifying the extension file - only temporary)/** * Processing object after save data. Form data preparation after submitting. * * @return Mage_Core_Model_Abstract */ public function _beforeSave() { switch($this->getPath()) { ... The rest of the method ...Open fixture
Test/Model/SimpleProduct/fixtures/testRunFeeds.yamland add new feed:tables: rw_gfeed_feed: - id: 101 store_id: 0 name: 'Generic feed unit test' type: 'generic' status: 1 - id: 102 store_id: 0 name: 'Generic feed unit test with tax' type: 'generic' status: 1 - id: 103 store_id: 0 name: 'Google shopping feed unit test' type: 'google_shopping' status: 1 # Copy a section and change id & type valueOpen test
Test/Model/SimpleProduct.phpand uncomment methodRocketWeb_GoogleBaseFeedGenerator_Test_Model_SimpleProduct::generateFeedConfig()and add \@ to the phpDocs:/** * test //- add @ * loadFixtures testRunFeeds //- add @ */ public function generateFeedConfig() { $feedId = 1; // Change to ID from step 2! parent::generateFeedConfig($feedId); }Run the test with filter (phpunit --filter generateFeedConfig) and you will receive an output inside the console:
$ phpunit --filter generateFeedConfig PHPUnit 4.7.6 by Sebastian Bergmann and contributors. Warning: Deprecated configuration setting "strict" used ' - feed_id: 3 path: general_name value: - feed_id: 3 value: 168 ... The rest of the output ... - feed_id: 3 path: shipping_carrier_realtime value: ups,usps,fedex,dhl,dhlint ' . Time: 632 ms, Memory: 24.00Mb OK (1 test, 0 assertions)Open data provider
Test/Model/SimpleProduct/fixtures/testRunConfigs.yamland add the chunk you copied in the previous step (make sure that the alignment is correct):... Existing lines ... # -------------------------------- # Default simple product feed. # type: google_shopping # Add your type # tax: no - feed_id: 103 path: general_name value: - feed_id: 103 value: 168 ... The rest of the output ... - feed_id: 103 path: shipping_carrier_realtime value: ups,usps,fedex,dhl,dhlintBe careful!
Make sure you enclose all serialized strings, otherwise you will receive an error when running phpunit!
Also:- replace value for path
categories_provider_taxonomy_by_categoryby:'{"4":{"category":"4","value":"Women -> Test","disabled":false},"5":{"category":"5","value":"Men -> Test","disabled":false}}'
- remove paths:
general_name, general_store_id - add value for path
general_currency: USD - change path
general_feed_dirtovar/feeds - don't forget to add the comment at the top of the new chunk (so its more readable)
- replace value for path
- Reverse the change from 1. step (from public to protected) and comment back the method from 3. step (also remove \@)
Open provider
Test/Model/SimpleProduct/providers/simpleProductsFeeds.yamland add new provider line:- - 101 #Feed ID - tax: 0 - - 102 #Feed ID - tax: 10 - - 103 #Feed ID - tax: 0 # Copy a section and change feed id to the one added 2. step, add under tax new line with "debug: 1" - - FeedId - tax :0 debug: 1Then run the test:
phpunit --filter simpleProductsFeeds$ phpunit --filter simpleProductsFeeds PHPUnit 4.7.6 by Sebastian Bergmann and contributors. 'id item_group_id title description link image_link additional_image_link price sale_price sale_price_effective_date availability shipping_weight brand mpn condition product_type google_product_category identifier_exists is_bundle 1231000231 Book Book http://local.gsf2.dev/index.php/catalog/product/view/id/1231000231/s/book/?utm_source=google_shopping http://local.gsf2.dev/media/catalog/product/1231.jpg 1231.31 USD 1100.31 USD out of stock 0.00 lb not specified msj000 new TRUE FALSE 1232000232 Book Book http://local.gsf2.dev/index.php/catalog/product/view/id/1232000232/s/book/?utm_source=google_shopping http://local.gsf2.dev/media/catalog/product/1232.jpg 1232.32 USD 1100.32 USD out of stock 0.00 lb not specified msj001 new TRUE FALSE 1233000233 Book Book http://local.gsf2.dev/index.php/catalog/product/view/id/1233000233/s/book/?utm_source=google_shopping http://local.gsf2.dev/media/catalog/product/1233.jpg 2032.00 USD 1100.33 USD out of stock 0.00 lb not specified msj002 new TRUE FALSE' . Time: 2.59 seconds, Memory: 51.00Mb OK (1 test, 0 assertions)
Copy everything in between the single qoutes (') and paste it into
Test/Model/SimpleProducts/expectations/simpleProductsFeeds.yaml#feed_FeedID_HasVAT feed_103_0: #Simple products, google_shopping result: - 'id item_group_id title description link image_link additional_image_link price sale_price sale_price_effective_date availability shipping_weight brand mpn condition product_type google_product_category identifier_exists is_bundle' - '1231000231 Book Book http://local.gsf2.dev/index.php/catalog/product/view/id/1231000231/s/book/?utm_source=google_shopping http://local.gsf2.dev/media/catalog/product/1231.jpg 1231.31 USD 1100.31 USD out of stock 0.00 lb not specified msj000 new TRUE FALSE' - '1232000232 Book Book http://local.gsf2.dev/index.php/catalog/product/view/id/1232000232/s/book/?utm_source=google_shopping http://local.gsf2.dev/media/catalog/product/1232.jpg 1232.32 USD 1100.32 USD out of stock 0.00 lb not specified msj001 new TRUE FALSE' - '1233000233 Book Book http://local.gsf2.dev/index.php/catalog/product/view/id/1233000233/s/book/?utm_source=google_shopping http://local.gsf2.dev/media/catalog/product/1233.jpg 2032.00 USD 1100.33 USD out of stock 0.00 lb not specified msj002 new TRUE FALSE'Notice that each line is enclosed as a string.
- Open provider
Test/Model/SimpleProducts/providers/simpleProductsFeeds.yamlremovedebug: 1line and run full unit testphpunit$ phpunit PHPUnit 4.7.6 by Sebastian Bergmann and contributors. .............. Time: 4.57 seconds, Memory: 52.50Mb OK (14 tests, 17 assertions)
Well, this is it for the simple products. Now redo this whole section, replacing wording "SimpleProducts" with "ConfigurableProducts"
Getting started
Getting started
Getting your products submitted to marketplace is a two step process and could take several iterations to get it right. The amount of effort you need to put in, depends on the quality of your catalog data and the amount of errors you'll be getting when your feeds are been reviewed.
Set up feeds following the guide corresponding to the marketplace of your choice:
Installation & upgrades
Backing up
Installing or upgrading this extension will make changes in your database, so it is best to have a backup of your database before proceeding.
Requirements
- min PHP 5.3.x
- Magento CE > 1.4.2, EE > 1.9.2
Step-by-step guide
Follow these steps to install the extension, or to upgrade from an older version of the extension.
Disable Compilation
In the Magento admin panel, go to System >Tools > Compilation. In case Compiler Status is "Enabled", click on the Disable button. In case the status is disabled you can skip this step. (see Fig1.1)
Fig 1.1 Disable Compiler Status
Download and Extract
Download and extract (unzip) the extension's contents on you computer. Navigate inside the extracted folder.Upload files
Using a FTP client, upload the content of the extension directory to the store's document root, so that the app directory in the extension folder merges with the app directory on the server. If asked to replace any files, select "Yes".Clear the cache
In the store admin panel, go to System > Cache Management and press Flush Magento Cache button.(see Fig 1.2)
Fig 1.2 Flush Magento Cache
Set cron script
Magento's cron.php should be running each 5 min or more frequent. This can be set through CPanel or directly on your server console as show in the right snippet.
Replace MAGENTO_PATH with the actual path on the server.
Reach out to your hosting provider to help set it up. More on how to install magento cron.
An alternative would be to detach feed generation from magento cron.
crontab -e*/5 * * * * /bin/sh MAGENTO_PATH/cron.sh
Feeds Management
After the extension was installed, look under Catalog > Rocket Shopping Feeds in the store admin, to start setting up your feeds. (see Fig 1.3)
Read more about managing your feeds.
Fig 1.3 Rocket Shopping Feeds
Troubleshooting
- I don't see Rocket Shopping Feeds in the admin.
Please verify that you have turned off compilation. If compilation is off, make sure you have uploaded all the files in the store's web root. - I get 404 when trying to access the feed's admin.
Logout & Login back into the shop admin panel to refresh admin permissions that allow access to the new installed section. - My site is broken.
Our extension is significantly modularised and we have never yet seen it break any site when it's fully uploaded and compilation is off. If your site does break, try reverting from a backup and contact us for support through http://help.rocketweb.com
Uninstall
Most of the times, you don't really have to completely remove the extension, you could just disable it from: app/etc/modules/RocketWeb_GoogleBaseFeedGenerator.xml
If you do want to completely remove this extension, open a shell console to your server and run shell/gsf_uninstall.sh script. This script will attempt to remove all extension files and also cleanup your database. Alternatively, you could manually remove all files from your server, by following the archive structure to find out where files are located on your store.
Set up Google Shopping
Set up Google Shopping
Google will review your products, process takes around 24 hrs, and results will be displayed under Diagnostics tab in Merchant Center.
Prepare your Merchant Account
If you don't already have an account, set up one: https://support.google.com/merchants/answer/188493
Once store is claimed and validated, we recommend the following:
- Settings > SFTP and FTP - create an FTP account within the Merchant Center, generate a password and keep it safe as we will need it later. (see Fig 1.4)
- Settings > AdWords - link the merchant center to your AdWords account.
- Settings > Tax - set the tax rules similar to your magento tax zones.
Fig 1.4 SFTP and FTP settings
Configure the feed
- Follow the steps on adding a feed section and use Google Shopping Feed under Feed Type.
Set the target Store View.
If you have different store views for each target country, you may want to create a feed for each of those stores.
When you change the store view, Feed Currency should be set on the default displayed currency for that store. (see Fig 1.5)Fig 1.5 Store view
Review Columns Map tab.
Basic columns are preconfigured to match most catalogs. If the default value does not match your catalog, then you should change it to one that suits your catalog setup.
If your store sells Apparels, you'll have to add in the apparel required columns: color, size, gender and age_group. Since apparels are mostly configurable products, use the Variant Attribute directive to map size and color columns onto configurable attributes. If your apparels are simple products with custom options instead of configurable products, you should use Custom Options in the mappings instead of Variant Attribute. Custom Options directive allow you to choose which options hold that particular column information. (see Fig 1.6)
Fig 1.6 Columns Map
US stores should not include tax in the product prices, so turn them off under the price and sale_price columns (see Fig 1.7)
More options on how to set your feed columns, can be seen at Columns Map page.
Save feed configuration !
Fig 1.7 Product prices
Categorize products under Categories Map tab.
First choose the right Feed Localization, which corresponds to target country and language of your store.
Use the autocomplete boxes for each of your categories to find a matching google taxonomy. You should always pick something from the autocomplete list, otherwise google will not validate them.
Here you have a chance to exclude products from certain categories, by unchecking the related green box from the right side. (see Fig 1.8)
Google will not accept products without a valid taxonomy, and if you have products that are not assigned to a category, you could use the Include products w/o category to exclude them.
Save feed configuration !
Fig 1.8 Categories Map
Select Shipping rates.
Depending on the complexity of your store shipping definition, you can provide the rates to google in multiple ways. This configuration allows you to map your shipping rates in basic shipping methods like: flat_rate, table_rates, free_shipping. (see Fig 1.9)
More complex shipping methods like carrier rates or rates by individual product can be set by following the Shipping and Tax guide.
After selecting the Shipping Methods, make sure you also select the target country under Countries select.
Fig 1.9 Shipping rates
Set the FTP Uploads
Use the Add Account button and fill in the FTP account details created in preparation of your Merchant Center. (see Fig 1.10)
See more information on FTP Uploads.
Validate and Save feed configuration !
Fig 1.10 FTP Uploads
Submit the feed to Google
Register the feed with Merchant Center
Navigate to Feeds under merchant center and select + FEED button, then follow the steps to register it:
Mode = Test,
Feed type = Products
Target country - should correspond to the Feed Localization and Feed Currency set earlier at step 2. from feed configuration in magento.
Feed name - can be anything, but for consistency, name it the same way as you did in magento. (see Fig 1.11)
Fig 1.11 Register new feed
Input method = Regular Uploads
You could also go with Schedule fetches, and set the feed URL to the one generated in magento, but it's more convenient to use FTP uploads.
File to be uploaded = feed_<id>.txt (see Fig 1.12)
Replace the <id> with the feed ID in magento, as it can be seen in the feed management screen.
Fig 1.12 Upload settings
Generate the feed
Click the Run Now button in the feed feed management screen, and wait for the feed to complete. This will generate the feed file and also upload it to your Merchant Center. (see Fig 1.13)
Feed will process daily, so at this step you may also adjust the Run Schedule if you need to. Check our guide on Generating the feed for more details.
Fig 1.13 Generate Feed
Analyze results
Once the feed has completed, go into the Merchant Center and select the feed you just registered.
Check the number of item processed and see if there are any errors with processing. If there are errors, follow our Testing and Troubleshooting section to help solve them.
Once you clear errors, register the feed live by redoing the step 1. only this time Mode = Live, and use the same feed_<id>.txt file as used for the test one.
Run Adwords campaigns
If your products are approved in Merchant Center but they are not visible in AdWords campaigns, you may need to contact a Google representative to help.
The basic product campaign is to bid the same way for all your products, but you can improve your ads by bidding differently on groups of products.
Edit your campaign in AdWords, and go to Product Groups and click the "+" sign to find out how you can group them. Those groups can be defined using the following columns in the feed:
- Category - is the google_product_category column in the feed and also the main way to organize your products into groups. It is filled with google taxonomies that should have been set as part of Set up Google Shopping
- Brand - is your brand column in the feed, mapped by default to manufacturer attribute on your products.
- Item Id - is your item_id column from the feed and should be mapped by default to your product ID from magento.
- Condition - is the condition columns from the feed, by default all products having value "new". If you want to change that, create a new attribute on your products, set the accepted values on your products and map it under Columns Map.
- Product type - is the product_type column in the feed, and should correspond to magento categories. That is if, product_type is mapped to Product Type by Category directive in the Columns Map.
- Custom label 0-4 - should correspond to columns in the feed custom_label_0 to custom_label_4, and allow you to specify custom data on which you can group products. Those columns are not mapped by default in your feed, so you will need to add them.
If you want to group your products for use in a Shopping campaign, you'll need to setup custom labels in your feed.
Setting up custom labels
To use custom labels, you'll need the following:
Create new product attributes
To create new product attributes in Magento, one for each label. If you already have an attribute, you can use that. If it's not a drop-down, that's ok too, but please be aware of its limits, and make sure it has consistent values, otherwise your grouping won't work.
We suggest you make these attributes dropdowns, and add the values you intend to use. This will give you one place to manage their values: if you have a typo, instead of editing each product, you just edit the attribute. This will also help staying consistent with Google requirements (see below)
As an example, let's say you want to add a label named "season" to all your products:
a. Add a Magento attribute named Season, of type dropdown. (see Fig 1.17)
Fig 1.17 Add a magento attribute
b. Add all your label values to the attribute: Winter, Spring, Summer, Fall. (see Fig 1.18)
Fig 1.18 Add labels for the attribute
c. Add the Season attribute to all the relevant Attribute Sets. If you don't use Attribute Sets, you will still have to add it to the Default set.
Go to Catalog > Attributes > Manage Attribute Sets, pick your set from the list, then use Drag-and-drop to take Season from the right, and place it in one of the groups on the left. You'll have to do this for all relevant attribute sets. (see Fig 1.19)
After this is done, you can edit your products and fill in Season values.
Fig 1.19 Add new attribute
Add Custom Labels to the feed columns
To include the new attributes in the feed as custom labels, you will need to do the following:
Go to the feed settings, under Columns Map and add a new column,
Name it custom_label_0, and select the new attribute ("season" in our example). You'll only need to do this once.
Save and you're done! The new feed that generates overnight should include the new attribute.
You can repeat these steps for up to 5 custom_labels. The attributes you set can have any value you'd like to use in AdWords.
Google requirements
You can create up to five custom labels, numbered 0 through 4, for each item in your feed. You may submit one value per item for each custom label attribute. You should assign a specific definition for each of the five custom labels and specify the possible values for each. Then, you use these custom labels consistently across the products in your Merchant Center account, assigning appropriate values to each product according to your definition. Each of the five custom labels can have only one value per product.
Source: https://support.google.com/merchants/answer/188494?hl=en
Limitations
- You can only have 5 custom labels
- one product can have only one value per label, so in total, a product can only have 5 labels
- and you cannot group more than 1,000 products with the same labels.
As custom labels are meant to allow grouping of items, only 1,000 unique values are supported for each custom label attribute across the items in your account. Products with a custom label submitted after the limit was exceeded won’t be included in product groups using this custom label. To correct the issue, update your product data to reduce the number of unique values for the custom label to less than 1,000.
Source: https://support.google.com/merchants/answer/188494?hl=en
Setting up Price Buckets
Price buckets is a concept to help target campaign bids by product price ranges. I.e. products with price intervals:
- < $50
- $50 - $100
- $100 - $500
- > $500
To set them up, you would need to define a set of rules under Adwords Price Buckets feed setting and insert a new custom_label_0 column and map it to the Adwords Price Buckets directive in the feed Columns Map.
Set up Google Inventory
Inventory feed is needed for shops where products go out of stock quickly, or prices vary throughout the day.
This feed aims to keep your products up to date in google merchant center. By submitting this update more than once per day, you'll be keeping in sync the following product information:
- price and sale_price
- availability
In order to submit inventory updates, first you'll have to Set up Google Shopping feed.
Pre-requirements
Setting up inventory feed requires a Google Shopping feed to be configured and submitted to google. Check the Set up Google Shopping page to set up one.
Similar to Google Shopping, Inventory feeds are recommended to be submitted through FTP Uploads, so if you haven't done it already, configure an FTP account in your merchnat account
Configure inventory feed
- Clone your Google Shopping feed, and edit the Columns Map and delete all comlumns but: id, price, availability, sale_price, sale_price_effective_date
- Update the schedule to generate the file around 3 times per day, or each 6 hours.
For example if your products feed is schedule at 1AM, the inventory update should happen at 7AM, 1PM and 7PM. (see Fig 1.22)
Fig 1.22 Update schedule
Submit the feed to Google
Register the feed with Merchant Center
Navigate to Feeds under merchant center and select + FEED button, than follow the steps to register it:
Mode = Test,
Feed type = Online Product Inventory Update
Target country - should math the one set for google shopping feed.
Feed name - can be anything, but for consistency, name it the same way as you did in magento. (see Fig 1.23)Generate the feed
Click the Run Now button in the feed feed management screen, and wait for the feed to complete. This will generate the feed file and also upload it to your merhcnat ceneter.
Feed will process daily, so at this step you may also adjust the Run Schedule if you need to. Check our guide on Generating the feed for more details.
Analyze results
Once the feed has completed, go into the merchnat center and select the feed you just registered.
Check the number of item processed and see if there are any errors with processing. If there are errors, follow ourTesting and Troubleshooting section to help solve them.
Once you clear errors, register the feed live by redoing the step 1. only this time Mode = Live, and use the same feed_<id>.txt file as used for the test one.
Fig 1.23 Register feed with Merchant Center
Google Promotions
Google Promotions program help you list the special offer link along with your products on Google Shopping. (See Fig. 2.1)
Read Google's program requirements to see if your store can participate in this program.
Google promotions are configured along with a Google Shopping products feed. If you don't already have a products feed, follow set up Google Shopping guide and come back to this page.
Prepare your Merchant Account
In order to submit promotion feeds to google shopping, you'll have to apply for program participation, use this form to request it.
Fig. 2.1. Special offer Ad
Configure the feed
Add promotion_id column to you products feed.
Edit your Google Shopping feed and set a new column under Columns Map called promotion_id. (See Fig. 2.2)
Fig. 2.2. Adding promotion_id column
Configure the Google Promotions tab.
Open the Google Promotions tab under the Google Shopping feed and complete the following:
Set Enable Google Promotions = Yes
Select the Include checkbox for the cart promotions you may want to send to google. Please read the program policies to make informed decisions on which promotion rules to include.
Edit the Promotion Title and From/To dates for the enabled promotions to match google's editorial requirements. (See Fig. 2.3)Fig. 2.3 Adjusting included promotions
Submit promotions feed to Google
Register the feed with Merchant Center.
Navigate to Feeds under merchant center and select + FEED button, then follow the steps to register it:
Mode = Test,
Feed type = Promotions
Target country - should match the one used to submit the Google Shopping Feed.
Feed name - can be anything, but for consistency, name it the same way as you did in magento. (See Fig 2.4)
Fig 2.4 Register new promotions feed
Input method = Regular Uploads
Promotions feed will be uploaded at the same time with your products feed, check your feed Schedule if you need to adjust when it would happen.
File to be uploaded = promotion_<id>.txt (See Fig 2.5)
Replace the <id> with the feed ID in magento, as it can be seen in the feed management screen.
Fig 2.5 Upload settings
- Generate the feed
The same way as you have uploaded the products feed, promotions feed will generate right after the products feed, and will be uploaded to you merchnat center.
Click the Run Now button in the feed feed management screen, and wait for the feed to complete. This will generate the feed file and also upload it to your Merchant Center.
Once the feed is completed, check the status of your feed under your Merchnat Account. If it says it has been uploaded, check under Promotions tab to see your promotions listings.
Troubleshooting
- Feed does not generate.
Check feed's log and see if there's a permission error and fix it.
Check if cron is running.
If no errors and cron running, contact our support. Feed is completed but not uploaded.
Check the feed error log, and look for a line that looks like:INFO (6): Running preHook: google_promotions
The next line under this should be specifying why feed is not uploaded:
INFO (6): No changes in Promotions feed found
Promotions feed has no changes from last generation, and as a result feed is not uploaded. If you need to submit it as a new promotion, you'll have to edit the feed configuration, under Google Promotions tab, and click the button Submit as new promotion. After that hit Save Config and regenerate the feed. (See Fig. 2.6)
Next generation feed would re-upload ad a new promotion, having new promotion ids. Log entry should look like:
Fig 2.6 Increment Promotion IDs
INFO (6): Recreated Promotions feed - added 2 lines
Shipping and Tax
Tax setup
For most of the countries, value added tax needs to be included in the price. This is needed on product pages as well as in the price field in the feed. Exception to this rule applies to US, Canada and India stores.
To see the up to date list of restrictions please read google's Tax Policy.
Including tax in the price (non-US feeds)
First make sure your products pages display the price including tax. You should check the setting under Admin > System > Configuration > Sales > Tax > Price Display Settings, should be set to Including Tax.
The feed has to be configured to follow it by setting the price and sale_price columns in the Columns Map to the appropriate Price and Sale Price directives, having the option Add Tax = Yes. (see Fig 1.14)
Fig 1.14 Include tax in the price
Explicit tax submission (US feeds)
Define tax information by setting it up in the Merchant Account. Under Settings > Tax define the same tax rules you have running on your store.
Another option to submit the tax is by creating a custom attribute on your products to hold tax information in google format, i.e. US:94114:8.75, then add the tax column to your feed under Columns Map and map it to the custom attribute you created.
Shipping setup
Depending on the complexity of your store shipping definition, you can provide the rates to google in multiple ways.
Basic shipping methods: flat_rate, table_rates, free_shipping
If your store is setup with one of those basic rates, you can include the shipping information in your feed by adding the shipping column to Columns Map and map it to the Shipping directive. Then, under the Shipping tab of the feed configuration, set the desired methods and regions to be included. The feed will automatically compute the rates based on your shipping methods definitions in magento, and provide the feed with the appropriate google shipping format. (see Fig 1.15)
Read more about what the shipping options are, under Shipping guide.
If for any reason the rates do not come through properly, you can always define them in merchant center instead of providing them through the feed. See guide on Merchant account-level shipping.Fig 1.15 Shipping methods
Carrier calculated rates: UPS, DHS, FedEx
Those rates cannot be computed through the feed, and those need to be setup in the Merchant Account under Settings > Shipping. Please follow the guide on Merchant account-level shipping.
In order for account-level shipping rates to apply on your products, the feed should not include shipping, so make sure you have shipping tuned OFF under Shipping section of feed configuration.Rates by individual product: i.e. free shipping items
If your catalog includes a set of products that apply for free shipping, and the rest of the products have regular rates or carrier calculated rates, the setup has to be defined in both your merchant account as well as in your feed configuration as follows:
- Create a custom attribute for your products and call it for example custom_shipping_rate, then fill in your free shipping items with US::Free Shipping:0 USD, leaving this attribute blank for the other products.
- Map this custom_shipping_rate attribute to the shipping column in the Columns Map.
- Set the catalog wide rates in the Merchant Account, similar to how it's defined for carrier calculated rates, bullet 2. (see Fig 2.6)
This setup has the following effect: the rates defined at bullet c) will apply for all products, but the ones having a value defined in the feed.
Another option for setting catalog wide rates from bullet c), is when you have basic shipping methods defined in magento and you don't want to define them in the merchant center. For this case you could fill in the appropriate rates in the feed by setting a replace empty rule under Product Filters section to replace empty shipping values with ones computed through the Shipping directive.Fig 1.16 Setup Rates
Enable automatic item updates
Benefits
If you update prices during the day, regularly hold promotions and special offers, or have low-stock items that sell fast, then microdata will help you:
- keep prices, availability and condition fresh in Google
- validate your products in Google's strict pricing consistency rules
- improve user experience, traffic to your product listings, and higher conversion rates because users already see the correct price on Google Shopping
In contrast, if you choose not to enable automatic item updates in your account, items with mismatched price and availability will be temporarily disapproved rather than updated.
Prerequisite
You'll need to have price and availability columns in the feed, these are enabled and set up by default.
Step-by-step guide
If you don't update prices more than once per day, you can still benefit from Microdata for stock information:
- Google will be able to see when a product goes out-of-stock, or back in stock, and mark it in Shopping.
- This will prevent item rejection due to mismatched stock info.
- Activate Microdata item updates from System > Configuration > .Rocket Shopping Feeds > General (see Fig 1.20)
Fig 1.20 Activate Microdata item updates
1. Activate Microdata item updates from System > Configuration > .Rocket Shopping Feeds > General
2. Enable automatic item updates in Google Merchant. (see Fig. 1.21)
- Go to "Settings" in the left-hand menu, then "Automatic item updates"
- Click "Edit Settings"
- Check "Enable automatic item updates"
- Select "Price and Availability" and check "Also update items that are 'in stock' on my website but 'out of stock' on Shopping."
- Click Save changes
Fig 1.21 Enable automatic updates
Troubleshooting
Google provides a handy tool to see what microdata is enabled on your product pages.
Just paste the URL to a Product Page and you should see all the items on that page with their respective price and stock status.
→ http://www.google.com/webmasters/tools/richsnippets
Microdata missing?
You should first verify that this particular product is included in the feed.
- if the product is not in the feed, then microdata may not appear correctly
- if the product is missing Stock and Price columns in the feed, then microdata will be missing them as well
- and that all caches are cleared - you'll need to see a fresh Product Page for the new info to work. So a full clear of Full Page Cache / Block Cache / 3rd party Varnish caches will be needed before your product pages will contain microdata. The "Flush Cache Storage" button will clear all caches in a default Magento installation
If you use another extension that outputs microdata in the Product Page, you should consider disabling it, or removing price and stock info from its output.
Our extension will always output the exact Product ID, availability, price and currency that you send in the feed - this is important for successful Google Merchant validation.
Feeds management
Feeds management
Accessing the feeds
From store admin, access Catalog > Rocket Shopping Feeds to see the feeds management screen (see Fig 3.4)
Fig 3.4 Feed management screen
Adding a feed
Select the feed type
From Rocket Shopping Feeds screen, hit the + Add New Feed button.
A new dialog window will open to let you choose what kind of feed you would like to add and set a name for it. (see Fig 3.5)The Feed Type dropdown only shows options available for your install. If you're not seeing the type you need, check whether it's available for purchase at Xtension Galaxy.
Fig 3.5 Adding a new feed
Review feed configuration
By pressing the Continue button, the next step will be brought up, which lets you adjust feed output settings for your new feed.
For default output settings, just hit Save Feed to finish adding it, and continue the Getting started steps which correspond to the marketplace and feed type you have chosen. (see Fig 3.6)
Fig 3.6 General Configuration Tab
Optimizing feed output
Columns Map
Feed Columns allows you to map any column to any product attributes, or to directives implementing special logic meant to follow marketplace specifications.
Please check with the marketplace feed specifications to understand what the feed columns should be.
The Column Map grid features the following:
- Order - allows you to define the columns order in the feed. Higher numbers go last.
- Feed Column - is the name of the column.
- Map To - can be either Directive (first options in the dropdown), or a product Attribute.
- Options - most Directives accept parameters that can be specified here.
Generally, it is recommended to associate directives (the first grouping in the dropdowns) to corresponding columns. Column names must be exactly as specified by marketplace provider.
When feed is added, depending on the marketplace feed type, a set of columns will be added by default. You can change and add more columns as you see fit, to better match your catalog data onto merchant feed specifications.
Save feed configuration !
Fig 4.4 Columns Map
Product URL
Processes product urls so that they match the type of product and listing in the feed. Set the additional parameter Add URL Suffix to further customize the end of a product URL with custom string.
The suffix can be used to track referring URLs in web analytics software. Setting this to ?utm_source=google_shopping will generate links like: http://mystore.com/product-url.html?utm_source=google_shopping. Products without assigned categories will not use the SEO friendly version of the URL.
Configurable associated products can append to this URL parameters to target their specific variant, see Unique urls for associated products not visible setting under Configurable Products section of the feed config. (see Fig 4.8)
Fig 4.8 Product URL
Product Image URL
Simply pulls the product's main image URL. Allows the option to set under the Type parameter, which images is the main image, by default it's set to Base Image.
If your product does not have an image assigned as the Base Image, your product may be skipped if "image_link" is under "Skip product with empty". If you notice problems, try removing it from skip rule. (see Fig 4.9)
Fig 4.9 Product Image URL
Product Category Image URL
Returns category image of the first category assignment found for your product. This should only be used for special cases where product images are defined on the category level. (see Fig 5.0)
Fig 5.0 Product Category Image URL
Toybanana External Image URL
Returns the value of product's "image_external_url", which comes packed with Toybanana_ExtImages extension. If you do not have the extension, you can simply create the image attribute and fill in the data for products. (see Fig 5.1)
Fig 5.1 Toybanana External Image URL
Product Additional Images URLs
This directive outputs a comma separated list of active image URLs for the product. Under the Exclude Type parameter should be set to the main image of the product, so that only the rest of images are added through this directive. (see Fig 5.2)
Fig 5.2 Product Additional Images URLs
Product Image URL 360_Magic
This directive outputs the main image managed by MagicToolbox_Magic360 extension. Under the Main Image no (0001) parameter can be specified which number of the image is the main image used with that extension. (see fig 5.3)
Fig 5.3 Product Image URL 360_Magic
Product Additional Image URL 360_Magic
This directive outputs other images managed by MagicToolbox_Magic360 extension, up to 10 images in a comma separated value. Under the Main Image no (0001) parameter can be specified which number of the image is the main image used with that extension so it can be excluded from the list. (see Fig 5.4)
Fig 5.4 Product Additional Image URL 360_Magic
Price
The price directive aims to match the price displayed on the product page, so it takes into account currency conversions, tax, promotions, MSRP and eco tax. Configurable, bundle and grouped items will have the minimal price of an item. Setting Add Tax option below to Yes will add tax to this price column, for US all prices should not include tax, the appropriate setting should be made here. The price output includes the currency information.
Msrp price is used in this directive when the product has msrp enabled and that value is bigger than the price itself, forcing Sale Price directive to display the regular price.
For products that have qty increments active, it will multiply the amount with the minimum number of items to purchase. (see Fig 5.5)
Fig 5.5 Price
Sale Price
This directive will output the lowest value for which the product can be purchased at. It computes the Special Price of the product, and any catalog promotion rules according to the Apply Catalog Price Rules setting from General Configuration section. Setting Add Tax option below to Yes will add tax to this price column, for US all prices should not include tax, the appropriate setting should be made here.
When Msrp is enabled, the value of regular price is used here if there are no running promotions at a lower value. Similar to Price directive it takes into account the qty_increments set for the product. (see fig 5.6)
Fig 5.6 Sale Price
Sale Price Date Range
The date interval is taken primarily from the product's Start / End dates of the special price. This interval will never output empty, so when no end date is specified for the product, the range will be set for a full year. If the start date is not specified on the product, the current processing date is considered.
This date range is mostly useful in the feed along with the Sale Price, specifying when this sale apply. (see Fig 5.7)
Fig 5.7 Sale Price Date Range
Availability
Uses regular magento stock information to compute whether a product is on stock or not. When the additional setting Use default Stock Statuses is set to No, a custom attribute specified under Alternate Stock/AvailabilityAttribute, will be used to specify the availability. See more settings under General Configuration section.
Accepted values for this directive are: 'in stock', 'out of stock', and 'preorder'. Other values will be replaced by 'out of stock'. (see Fig 5.8)
Fig 5.8 Availability
Inventory Count
Simply pulls the stock inventory qty information. The Count Mode defines how the qty count should be performed in case of complex products like bundle. (see Fig 5.9)
Fig 5.9 Inventory Count
Product Expiration in Feed
Computes an expiration date based on product creation and the "No. of Days" option below. Set "No. of Days" option to increase or decrease this date limit. (see Fig 6.0)
Fig 6.0 product Expiration in Feed
Shipping
This directive computes shipping information into accepted format, based on the shipping methods available for your products. To use this directive, Shipping section has to be configured on your feed. To specify which Shipping Methods and which regions will be considered please review Shipping section. (see Fig 6.1)
Fig 6.1 Shipping
Shipping Weight
Outputs the weight attribute of your products along with the unit of measure specified here under options. For bundle products, there's an extra setting called Combined weight found under the Bundle Products section. (see fig 6.2)
Fig 6.2 Shipping Weight
Variant Attributes (Apparels)
Allows for using multiple product attributes to specify a different value systems for the same property. It comes handy to map apparel specific properties.
Example of size property:
- shirts - shirt_size attribute, with values: Small, Large, X-Large, etc
- shoes - shoe_size attribute, with values: 8, 9, 10, etc
Using this directive you can select both attributes, and when processing the product, the appropriate value will be considered depending on whether a value is specified in one of the attributes. First attribute found having a value for the product is been used.
For configurable items, all values will be computed into a list of values delimited by comma, or a delimiter specified under Associated Product Attribute Value Separator setting under Configurable products section of the config. (see Fig 6.3)
Fig 6.3 variant Attributes (Apparels)
Product Options
This directive is used to output values of product custom options. This directive is used for apparel catalogs which hold the color and size variations as custom options instead of having those properties as configurable products items. It takes as argument the list of custom options names which should hold the values needed for the column you're setting up.
Each custom option in the argument has the number of products affected in the right (x). (see Fig 6.4)
The output of this directive also depends on how the Product Options section is configured, and it can be a list of possible values as comma separated, or it can be a single value in case the products is set to detail each options combination as separate row in the feed.
Fig 6.4 Product options
Adwords Price Buckets
This directive uses a set of rules defined under Adwords Price Buckets settings to output labels for different price ranges of your products.
A common usage is to add the google custom_label_0 column which is handy to group your products when running AdWords Shopping Campaigns. (see Fig 6.5)
Fig 6.5 Adwords Price buckets
To specify the upper limit of your prices, just use some big number like 99999999. See below example image.
Fig 6.6 Adwords Price buckets
Product Review Average
Output product's average rating in the interval 1 - 5. Returns 0 if no reviews have been approved on your product. (see Fig 6.7)
Fig 6.7 Product review Average
Product Review Count
Outputs the count of product reviews. Returns 0 if no reviews have been approved on your product. (see Fig 6.8)
Fig 6.8 Product Review Count
Product Type using Magento Category Path
This method is the default way of filling a categorised column of your products that can be used to fill product_type.
Your product category paths are converted into a string revealing the hierarchy like: Root > Categ A > Categ B. Product been assigned to Categ B. All product categories will be used to build a list of comma separated paths, and they are limited to the Paths limit value.
Categories are matched in order of priorities defined under category Map, if no priority values are defined, it will just match them the order found in the database. (see Fig 6.9)
Fig 6.9 Product Type using Magento Category Path
Taxonomy By Category
Uses a set of rules defined under the Map Taxonomy by Categories setting to output category taxonomies. (see Fig 7.0)
Fig 7.0 Map Taxonomy by Categories
Products will be matched through the set of rules using their assigned categories. The first category found with the most important category rules below will be considered. The rule importance is given by the Order rule column, lower values matching first.
Product categories do not necessarily need to have a direct correspondent rule to cover products deeper in the tree. High level categories set here would dictate inheritance for products deeper in the category tree. (see Fig 7.1)
Fig 7.1 Map Product Categories to Taxonomy
The more categories defied here, the granular your taxonomy definition becomes giving google a better and detailed view of your products.
We recommend that you set all rules with an order value. Setting higher Order values for high level categories, and lower Order value for deeper categories will make deeper categories will match first, dictating the output value.
It is advise to also set a Replace empty values rule to cover all missed categories from this set, and fill the values with a static default taxonomy or some product attribute holding the taxonomy.
Identifier Exists
This directive looks at your feed identification columns and checks for values. Default identification columns are: brand, mpn, gtin, and returns FALSE if brand or any of the mpn or gtin is missing, returns nothing otherwise. You you choose to customize the identification columns as a parameter, it will return FALSE if one of the columns is missing, otherwise returns nothing. (see Fig 7.2)
Fig 7.2 Identifier Exists
Concatenate
Allows you to compose a string using attributes of your products or other column values. (see Fig 7.3)
Fig 7.3 Concatenate
Use product attributes in this format: {{attribute_code}}. Attribute codes available for your products can be looked up under Catalog > Attributes > Manage Attributes. To use other column output in concatenation use the same format: {{column_name}}, and make sure the column is defined in the column map, and it is not mapped to another concatenation directive.
This method works like a replace in string function, and looks for the {{}} marker through the string template to replace it with the attribute or column value as specified.
The following placeholders will inherit values as defined in the 'Fetch ... from' settings from Configurable Products and Grouped Products configuration sections:
- {{name}}
- {{description}}
- {{url}}
- {{image}}
If all placeholders bring an empty value when computed, the column output itself will be empty. For example if the template is:
Concatenate of {{name}} and {{size}}
and {{name}} and {{size}} values in product are empty, the Directive will return empty string. Those values can be caught using Product Filters - Replace.
Is Bundle
Outputs TRUE if the item is a bundle item and FALSE otherwise. (see Fig 7.4)
Fig 7.4 Is Bundle
Categories Map
This map works as a product filter by categories, also taxonomies defined here output through Taxonomy By Category under Columns Map.
Feed Localization
Set the Feed Localization to match target country locale. Your product titles and descriptions should also be in this language.
Changing the language here affects the language of taxonomies, and autocomplete under Map Product Categories to Taxonomies depends on choosing the language first.
Note, this setting does not affect price formatting. Price formatting depends on what is set for your store under System > Configuration > Locale Options > Locale. (see 7.5)
Include Products w/o category
This setting aims to filter products that are missing categories in your catalog. It's complementary to category filter checks from Map Product Categories to Taxonomies.
If you do include products without categories, note that they will be missing taxonomies, so to set a default taxonomy for those, set a Replace Empty rule. (see 7.5)
Categories priority mode
Defines how the Priority values defined for each category in the widget are used when matching them. Priorities are used in certain directives to differentiate which categories matter most for products assigned to multiple categories. For instance priorities are been used with directives like Taxonomy by Magento Category, Type by Magento Category or Type by Magento Category Path.
Higher priority values are matched last.
Fig 7.5 Categories Map
Map Product Categories to Taxonomy
Taxonomies defined here output using the Taxonomy By Category directive in the Columns Map.
Use the checkboxes and deselect categories you do not want to include in the feed. Use the input reading "Type at least 3 characters" to fill in taxonomies using an autocomplete list. (see Fig 7.6)
Fig 7.6 Map Product Categories to Taxonomy
Use the arrows to expand the category tree, and try to find deeper taxonomy path for each category.
Save feed configuration !
Product Filters
Product filters section mostly allows you to filter out products you don't want in the feed, but also replace values generated with Columns Map definition.
Allow Out of Stock
This filter is applied to standalone simple products or configurable products. Associated simple products have other rules defined in "Configurable products" and "Grouped products"
Submit only products of these types
You can specify by store what types of products should be included in the feed.
Adding configurable or bundle types will actually pull also associated simple products if it's specified in the Configurable products or Apparel sections. Custom product types like AheadWorks subscription types will do fine.
Submit only products that have these attribute sets
If you want to include All Attribute Sets, you can select only the first option; selecting the first option along with a few other sets won't include all sets.
Replace empty values
This set of rules has similar function as Columns Map, the only difference is that columns defined here have to exist. Make sure you save your column map first.
This setting gives the opportunity to stop the feed from delivering empty columns when products are lacking respective data. You can set your empty data to be replaced with Static Values or any other regular Directive or Attributes.
The rules defined here will be applied last in the catalog processing, right before the output, and they will be applied in the order defined by Order column in this grid.
You can actually define cascading rules for the same column to minimize the risk of having empty values in the feed. (see Fig 7.7)
Fig 7.7 Replace empty values
Find and replace
The find & replace will apply at column output, similarly how replace empty values does. The more rules you apply the slower your feed will be, not recommended for large catalogs. (see Fig 7.8)
Save your columns before adding rules here!
Fig 7.8 Find and Replace
Skip product with empty
If you want to avoid entries in the feed with empty values, you can skip them here.
This filter comes predefined with required columns for a google shopping feed: id, image_link, link and price. Any product, having any of the columns defined here empty, would be skipped.
This filter will apply at the end of Replace empty values rules, so that products with values from replace empty rules would still be in the feed.
If you can't find your column in the dropdown, it's because you haven't saved the new feed columns after the column has been added. A Save should solve it. (see Fig 7.9)
Fig 7.9 Skip product with empty
Adwords Price Buckets
This section allows you to define a set of rules to label your products based on price intervals, which will be mapped using Adwords price Buckets directive.
To specify the upper limit of your prices, just use some big number like 99999999. See below example image. (see Fig 8.0)
Fig 8.0 Adwords Price Buckets
A common usage is to add a custom_label_0 column which is handy for running campaigns. (see Fig 8.1)
Fig 8.1 Adding a new column
Product Options
Current version of the feed extension supports Custom Options for Simple products, and not for complex products like configurable or grouped.
This section is handy when your catalog has apparels that hold size or color properties as product Custom Options, which may have different pricing or different SKUs. (see Fig 8.2)
In order for your custom options to be added in the feed, you'll have to use the Custom Option directive in your Columns Map definition.
Fig 8.2 Example of custom options product
In case the catalog contains both apparels as simple products with custom options, and configurable products, the recommended setup is to have size and color columns set in the Columns Map as Product Options directive. This will process custom options.
Then under Product Filters, set a Replace Empty rule for size and color columns to map on Variant Attributes directive. This will process configurable attributes. (see Fig 8.3)
Fig 8.3 Example of using the Product Options directive in the Columns Map.
How to add product options
There are two ways you can process those products into the feed:
- One row, having options concatenated into the column output.
- Multiple rows, one for each option combination
In case the One row option is selected, the output is one row having all option values as comma separated. I/e/:
- color = red, blue
- size = S, M
If the multiple rows is set, the output is a row for each options combination. I.e.
- color = red, size = S
- color = red, size = M
- color = blue, size = S
- color = blue, size = M
Multiple rows only for products in those categories
This option lets you select which of the product categories should be treated as apparels, so those will be added as multiple rows in the feed with respect to custom options. The rest of the products will simply have comma separated option values. (see Fig 8.4)
Fig 8.4 Adding product options
Configurable Products
How to add associated products (see Fig 8.5)
This option specifies how configurable associated items will be processed. It has three options:
- Only parent / No associated products
- No parent product / Only associated products
- Both types - parent product and associated products
The recommended option for a google shopping feed is to use the option No parent product / Only associated products, which would list all associated items of the products but miss the configurable itself.
In order for this option to work, configurable type has to be selected under the Submit only products of these types under the Product Filters section, regardless of the option you choose here.
Fig 8.5 Configurable Products Tab
Allow out of stock
This option can filter out associated items that are out of stock, regardless of what's been set under Allow Out of Stock setting from Product Filters section. The goal is to allow you to remove out of stock associated items even if you want to include regular out of stock products.
Inherit parent Out of Stock Status
Dictates how the parent configurable item will behave when all associated items of a configurable are out of stock, the configurable itself will become out of stock. It will not do the same for in stock items.
Unique URLs for associated products not visible
When associated products are not visible in catalog on their own, they are accessed through the configurable item URL, making it hard to tell which products we're targeting. Activating this option will append extra parameters to the URL, making it unique.
Ex: http://example.com/configuable.html?color=123&size=99
When accessing this kind of URL, there's a special JavaScript logic on products page automatically selecting drop-downs or radio buttons to reveal the intended product details: image, price, etc.
Associated Product Attribute Value Separator
When parent products are added to the feed, the variant information like color and size is been composed using all possible values that their associated items could take. To list all of them, a separator is been used, and it can be specified here.
Ex: color = blue, yellow, brown
This option only works for columns using the Variant Attributes directive in the Column Map.
Fetch title from
Tells where to grab product name of associated items when they are included in the feed. Has the following options:
- Parent only
- Associated only
- Associated if exists, otherwise from parent
- Parent if exists, otherwise from associated
The recommended option Associated if exists, otherwise from parent should cover most cases of configurable product setup, doing a failover to configurable parent when no value is found on the associated item itself.
Fetch description from
Tells where to grab description of associated items when they are included in the feed. Same options and conditions apply as for the Fetch title from setting.
Fetch URL from
This allows you to dictate which URL to present to associated item with depending on it's status in the catalog. Has the following options:
- Parent only
- Associated if visible in catalog, otherwise from parent
In most cases grabbing the parent URL is enough, but when the associated items are also visible in catalog on their own it's probably best to use their own URL so that the appropriate product information is displayed on the page when accessed.
Fetch image from
Tells what images should be used when associated items are included in the feed.
Has the following options:
- Parent only
- Associated only
- Associated if exists, otherwise from parent
- Parent if exists, otherwise from associated
Most of the times the images are set directly to the configurable item and those are sufficient, but sometimes when you want to feature out some variant characteristics, you would set individual images on the variant items.
Some stores are using extensions to bypass default Magento behavior when it comes to Configurable Product Price (CP Price). It shows Associated Simple Configurable Product Price (Associated SCP Price) instead of Configurable Product Price.
Grouped Products
How to add associated products (see Fig 8.6)
This option specifies how items of grouped products will be processed. It has three options:
- Only parent / No sub-items
- No parent product / Only sub-items
- Both types - parent and sub-items
In order for this option to work, grouped type has to be selected under the Submit only products of these types under the Product Filters section, regardless of the option you choose here.
Fig 8.6 Grouped Products Tab
Allow Out of Stock (see Fig 8.6)
This option can filter out sub-items that are out of stock, regardless of what's been set under Allow Out of Stock setting from Product Filters section.
Price Type (see Fig 8.6)
Defines how the price of the grouped product will be computed. It can be:
- Minimal price
- Sum of associated product prices
Minimal price is the lowest associated product price.
Sum of associated products prices is the default quantity of each associated product multiplied with the price of the associated product and then summed together.
Fetch title from (see Fig 8.6)
Tells where to grab product name of associated items when they are included in the feed. Has the following options:
- Parent only
- Associated only
- Associated if exists, otherwise from parent
- Parent if exists, otherwise from associated
The recommended option Associated if exists, otherwise from parent should cover most cases of grouped product setup.
Fetch description from (see Fig 8.6)
Tells where to grab description of associated items when they are included in the feed. Same options and conditions apply as for the Fetch title from setting.
Fetch URL from
This allows you to dictate which URL to present to associated item, depending on it's status in the catalog. Has the following options:
- Parent only
- Associated if visible in catalog, otherwise from parent
In most cases grabbing the parent URL is enough, but when the associated items are also visible in catalog on their own, it's probably best to use their own URL so that the appropriate product information is displayed on the page when accessed.
Fetch image from (See Fig 8.6)
Tells what images should be used when associated items are included in the feed.
Has the following options:
- Parent only
- Associated only
- Associated if exists, otherwise from parent
- Parent if exists, otherwise from associated
Most of the times the images are set directly to the grouped item itself, but sometimes when you want to feature out some variant characteristics, you would set individual images on the sub-items.
Unique URLs for associated products not visible (See Fig 8.6)
Activating this option will append extra parameters to the URL, making it unique and indicating the product we want to point out.
Ex: http://example.com/grouped.html?prod_id=123
When accessing this kind of URL, there's a special JavaScript logic on product page automatically, selecting drop-downs or radio buttons to reveal the intended product details: image, price, etc.
Bundle Products
How to add option products (see Fig 8.7)
This setting dictates how items that make up the bundle will be processed into the feed. Has the following options:
- Only parent / no sub-item
- No parent / only sub-item
- Both types / parent and all sub-items
Most of the times you would want to output all the items making the bundle, but there are some cases when you may want to output them as a single product.
Fig 8.7 Bundle Products
Combine weight (see Fig 8.7)
Bundle items can be defined as Dynamic or Fixed weight. This feature overwrites the bundle definition and goes for Dynamic weight by computing weight as sum of all sub-items.
This option applies to the output of Shipping Weight directive from Columns Map.
Shipping
The configuration section fine tunes the output of Shipping directive from Columns Map. Make sure you add a column called "shipping" and map it to the Shipping directive.
The options here help on constructing the output format required by marketplace provider.
The address used in rates computations is being pulled from Shipping Origin under System > Configuration > Sales > Shipping Settings > Origin. Make sure that address is set correctly.
Methods (see Fig 8.8)
Lets you choose which of the shipping methods you would want to apply on your products in the feed. Only table rates and static shipping methods are available for use here.
Fig 8.8 Shipping Tab
Countries (see Fig 8.8)
This option should correspond to the feed's target country. Though you are free to choose multiple countries here, usually only one country per feed is used.
Only Minimum Price (see Fig 8.8)
If more than one method applies, you can output only the smallest rate from those that apply.
Only Free Shipping (see Fig 8.8)
When more than one rate applies to the same product, and one of them sets free shipping, you can output Free Shipping alone by having this option turned on.
Add Tax to Shipping Price (see Fig 8.8)
Will include tax rate calculation if it applies to the shipping rate. Most of the times - and especially for US feeds - this should be off.
Run Schedule
Run schedule helps you generate your feed daily to keep your products up to date with the marketplace provider.
In order for the schedule to work, your server needs to have the cron.php set. Check Installation & upgrades for details.
You may generate the feed more than one time per day, by adding multiple schedule rows, use Add Schedule button to create a schedule. (see Fig 8.9)
- Start At
Schedules are processed daily and will start generating the feed at the hour defined in start at dropdown. - Batch Mode
Specifies whether all products will be processed at once, or in several batches. The number of batches required to complete processing all products is determined by dividing total number of products by Batch Limit. - Batch Limit
Sets the number of products which will be processed in one batch.
The batch mode should only be turned on for large catalogs (>10.000 products), and only if the memory limit is not enough to process all your feeds in one go. Batches are processed one after another till all products are processed, with a small delay between batches given by the cron.php frequencies.
If by any chance the memory limit is reached for a schedule, the batch mode will automatically be set and batch limit calculated based on the number of products processed so far.
If you define FTP uploads for your feed, whenever the feed processes, it will also upload the resulting file on all FTP accounts defined. In case of batch processing, the file will only be uploaded when the feed file completes.
Don't forget to Save Config !
Fig 8.9 Run Schedule
FTP Uploads
FTP accounts defined here are used to upload the feed file whenever it completes to an account created with a marketplace provider. Uploads happen based on the Run Schedule or whenever you generate the feed manually. (see Fig 9.0)
In order for the uploads to work, your server needs to have the cron.php set. Check Installation & upgrades for details.
Check with the marketplace provider if FTP account is available for uploading the feed file, and if it's not available you can still hand them the file which is web accessible.
To create a schedule use the Add Account button and fill in the fields:
- Mode
It is recommended to use SFTP whenever is available. - Host
Do not put in the protocol prefix, i.e. ftp:// - Port
For ftp the regular port is 21, if not specified otherwise. - Username & Password
Is the login for the ftp account. - Upload Path
This field is only visible for generic feeds, and usually, it is not required. It is the relative path to the directory where the file should be uploaded.
Click the Validate button for each account you add, and once the account validates, don't forget to Save Config.
Fig 9.0 FTP Uploads
Generating the feed
Feeds will generate automatically based on their Run Schedule, but if you need to manually generate a feed you could use the Run Now button in the feeds grid.
Manual run
Go to feeds management screen and click on Run Now in the actions column, and the feed will be scheduled for the next cron run (usually in 5 min).
During this time the status of the feed will read PENDING. (see Fig 3.7)
Fig 3.7 Run feed manually
Scheduled run
In the feeds management screen, the Run Schedule column shows the time(s) when the feed will start processing. When the scheduled time comes, feed will automatically go into PENDING status, and will start processing with the next cron run.
If you wish to change the schedule, click on the schedule link, or follow Run Schedule guide. (see Fig 3.8)
Fig 3.8 Schedule feed to run
No heartbeat detected. Feeds won't generate, please check magento cron is running. See possible solution on how to detach feed generation from magento cron.
If you see this warning, check step #5 Set cron script from Installation & upgrades. Once cron is installed it could take several minutes for this warning to clear.
Once the next cron runs (5 min), the feeds will start processing one by one, showing their progress with a percentage status. I.e. 10%, and under the Feed File, information about how many products where processed is displayed along with a link to download the feed file.
When the feed completes processing, the status will display COMPLETED.
If there where errors in processing the feed, status will display ERROR, and a detailed messages list about the errors can be found by clicking View Logs.
Check Testing and Troubleshooting for more information on how to solve issues.
Testing and Troubleshooting
Troubleshooting by product is the fastest way to correct output:
- Test output of a product
- Correct configuration and start over.
To track down issues through your full feed:
- Generate the feed
- Check feed logs and feed output by accessing the feed file URL.
- Submit the feed file to marketplace and check feedback.
- Correct configuration and start over.
Testing output of a product
In the feeds management screen look for the Test feed button on a feed row. A similar button is found in the feed configuration screen. (see Fig 3.9)
Fig 3.9 Test feed button
Using the Test Feed button, a dialogue will open, asking you to input the product's SKU or ID. Fill in the SKU and hit the Test Feed Now (see Fig 4.0)
Fig 4.0 Test feed dialog
The feed output will be displayed in a table where each row will represent a feed column and the value for the tested product.
If the value of the product for a column is not what you were expecting, check the following:
- You are using a correct attribute / directive in Columns Map.
- You are not using Product Filters the wrong way.
- The Product has the correct data saved.
At the bottom of the product output there's also a snippet of the logs generated for this product, there will be logged any skipped products in case of complex products like configurable, bundle, etc. (see Fig 4.1)
Fig 4.1 Feed output
Check Logs
Logs are created by default, make sure the [magento_root]/var/log directory is writable.
Checking logs is useful to spot unintentional skipped products, or to see the reason why the feed failed processing
In the feeds management screen, click on View Logs link for feed. This will open a new window where you can see logs of today's processing.
If you need to see previous process logs you'll have to download the full log, use the Download Log button.
For a clean test, you should use the Clear Log button before processing the feed. This way only entries from last processing will be shown. (see Fig 4.2)
Fig 4.2 Feed log
How to read logs lines
- Each log line starts with date & time, and they are ordered chronologically.
- Batch ID XXX, acquired lock. Offset 0, Limit 50
Your feed is being processed in batch mode (in packs of products, 50 products per generation, from given offset) - product id 399 product sku hde012, skipped - REASON
The product is skipped because one of the product rules/limitations. Check Product Filters {{Skip Products with empty}} section - Items: 88 added, 0 skipped | in file /path/to/magento/root/media/feeds/feed_ID.txt
The info line which gives you information about how many products were added/skipped.
Cloning a feed setup
Cloning a feed would help to create a copy of one of your feeds which you can then modify. This would save time in creating similar feeds in terms of feed configuration.
The type of the feed cannot be modified on a clone.
Cloning can be a handy tool in the following situations:
- Set same feed for multiple stores
If you have multiple stores, each with it's own language, you would want to create a feed for each of them. After cloning a feed, change the Store View and Feed Currency under General Configuration, and if appropriate, adjust Feed Localization under Categories Map. - Try out different feed configs for same store
After cloning the feed, you can change the configuration of the clone and Generating the feed or Test the feed by a representative SKU, then compare it to the original feed.
Step-by-step guide
Clone existing feed
From Rocket Shopping Feeds grid, select the checkbox at the beginning of the row for the feed you want to clone and select action clone in the dropdown of grid Actions. Click on submit button to complete the action. (see Fig 9.1)
Fig 9.1 Clone existing feed
Modify and generate the new feed
After cloning, a new row will appear in the grid. The new feed has the same name but suffixed with the word
(cloned). The clone's schedule will be moved to+1hour from the original feed so that they do not overlap when processing.You can now modify the clone configuration by using the configure button on it's row, or you can Run the feed. (see Fig 9.2)
Fig 9.2 Feed table
Migration to another magento
Easy migration is useful to push live feeds that where tested on a staging magento instance.
- Destination magento instance should have the same feed extension version installed.
To check hte extension version navigate to Admin > System > Configuration > Rocket Web Extension > General > Installed Extensions. Export feed configs.
This needs to be carried out on staging (source) where your feeds have been configured.
Navigate to feeds management screen and select the feeds you want to migrate from the grid, then click the Export button at the top of the grid.An xml file containing feed configuration is prompted for download. (see Fig 9.3)Fig 9.3 Export feed configs
Import the XML.
On the target magento (live), click the Import button at the top of feeds management screen. A screen will come up asking you to Select File to Import, where you will upload the file previously downloaded from staging.
Next, click the Import Data button to complete the action. (see Fig 9.4)
Fig 9.4 Import XML
To validate the migration, generate the feeds you just imported and compare the output with the one on staging.
General Configuration
Store View
Product information may vary by store view, and setting the store view here will make the feed to pull product information in corresponding store context.
If you have multiple stores targeting different countries and languages, you may want to create a feed for each of those stores.
When you change the store view, Feed Currency should be set to the default displayed currency for that store. (see Fig 4.3)
Feed Currency
Allows you to choose which of the allowed currencies should be used when calculating prices. If Feed Currency is different from the Display Currency of that store, prices will be converted to the appropriate currency.
We recommend setting the Feed currency to match the display currency, so the feed and the product pages will display the same price.(see Fig 4.3)
Feed Path
"Feed path" is relative to the web root like: [magento_root]/media/feeds/ but you can set an alternate save path. Make sure the feed path has enough write permissions for both web server’s user and cron user if they are different. Ask your web hosting company for help if needed.
File will have the following file name format: feed_[id].txt and it will be displayed in the feed grid once the file is generated. (see Fig 4.3)
Apply Catalog Price Rules
Whether to include Magento catalog rules when computing prices on products. This has direct influence on how the Sale Price is being computed, in addition to product Special Price attribute, when this option is set to yes, promotions will affect whether Sale Price gets populated or not. (see Fig 4.3)
Use default Stock Statuses
By default, it is set to yes, using regular Magento stock information to compute whether a product is out of stock or in stock. When it is set to No, it will allow you to specify a custom attribute which has to hold valid values for stock status, this can be found under Alternate Stock/Availability Attribute setting.
The attribute's values can be: 'in stock', 'out of stock' and 'preorder'. Other values will be replaced by 'out of stock'. (see Fig 4.3)
Max Length of Title and Description
Title and Description max length for the products are limited in Google Data to 70 and respectively 1000 characters. Those settings allow you to change the values if needed. (see Fig 4.3)
Fig 4.3 General Configuration
How-to articles
How-to articles
| Title | Creator | Modified | |
|---|---|---|---|
| Setting up products with Minimum Advertised Pricing | Dorin Mirulescu | Jan 29, 2016 | |
| Use pricing from simple child products | Dorin Mirulescu | Jan 29, 2016 | |
| Set up stores and feeds for multiple countries | Dorin Mirulescu | Jan 29, 2016 | |
| Migration to another magento | Dorin Mirulescu | Jan 29, 2016 | |
| Testing and Troubleshooting | Dorin Mirulescu | Jan 29, 2016 | |
| Optimizing feed output | Dorin Mirulescu | Jan 21, 2016 |
Use pricing from simple child products
If you use configurable products and have different pricing for each option, then you might want to set prices on the Simple products associated with your configurables.
By default, Magento will use the price you set on the configurable product, for all pricing: normal, special price, tier price etc. If you want to set different prices for more expensive product options, you have to go to the "Associated Products" tab of the configurable product, and set extra pricing for the options, that will get added to the configurable price - see more details in the Magento documentation.
Supported extensions
To use this feature, your store needs to have one of the following extensions:
Step-by-step guide
The default Magento setup described above may prove tedious if you have many different prices. Instead, you can choose to disregard the price of the configurable product, and use "price" and "special price" from the simple children.
- You need to install one of these two extensions:
- SCP http://www.magentocommerce.com/magento-connect/simple-configurable-products.html
Simple Product Pricing http://www.magentocommerce.com/magento-connect/simple-product-pricing.html
Installing these extensions will affect your live site - all prices for configurable products in catalog and checkout will be changed to use prices set on the simple children only!
- All configurable pricing in the website and shopping feed will now be meaningless; you need to set price (and special price if needed) on each simple product
- You don't need to configure anything else; just re-generate the feed and the new pricing will be in place
- simple children will have their own separate prices
- if you include the configurable in the feed, it will have the minimum price from its children, but it's own special price
Setting up products with Minimum Advertised Pricing
It's recommended that MSR price display is set in magento to the real price aside msrp on the pages.
The most appropriate option to do that is by setting Display Actual Price to gestures on your products.
Step-by-step guide
- In Columns Map, set the price column to map on msrp attribute.
- Under Replace empty values from Product Filters, add a rule to replace column price with the directive called Price - gives you the normal price.
This has the following consequences:
- For simple products, it will use MSRP if it exists, if not, it will use the normal price.
- For configurable, it will use the configurable MSRP. If empty, it will use the configurable normal price.
- For children of configurable, it uses MSRP if it exists. If empty, it will get the price from the configurable + options. If you're using SCP (simple configurable products), it will in fact use simple pricing.
The sale_price will not take MSRP into consideration as promos won't be ever applied to msrp. You could output MSRP in lieu of sale_price if you'd like, just do the same 2 steps outlined above.
You shouldn't overwrite msrp or price attributes in the Configurable attribute overwrite section. This may lead to unwanted behavior. Set MSRP on configurable products and all their children.
Set up stores and feeds for multiple countries
Magento supports the very useful feature of creating multiple stores that target different countries. You can setup storeviews that have a different language or currency, while re-using the same product catalog, categories and promotions, even the same customer base.
There are many ways to achieve this setup: some are easier to configure, but more restrictive, while others are a bit more involved, but offer more flexibility.
However, to make sure you adhere to the Google Shopping policies, there's one particular way to setup Magento that has proven to be the most efficient.
Conditions for product pages
A shopping feed must be submitted to a specific Country. Every feed will naturally contain links to the products on your website, links that will apply to the feed's Country.
Google requires all Product pages to adhere to some standard rules. The most important are:
- The Page must show the exact product as in the feed, with the same name, image and description
- this information must be visible at all times, and must not require a login
- The price and currency must match exactly the values submitted in the feed
- Specifically, JavaScript or cookies cannot be used to change the currency on page load
The page language must match the country of the feed
Magento setup
Let's take an example: we have a clothing store that sells the same products in the U.S. and Canada, and wants to also launch in the UK and France.
The best way to set this up is to have 2 Magento websites, and 5 store views.
- one Magento website for the US and Canada, since they are already an established business there
- US has one store view
- Canada has two store views - one for English, and one for French
- and another website for the UK and France, to allow for different products and special promotions targeting this new Market
- the UK has one store view
- and France has another
- (if you don't need special treatment for the EU stores, a good alternative is to have just one website for all storeviews)
Each country must have their own store view, so you can safely and easily do these settings required by Google Shopping:
- Languages - France will require product pages in French; for Canada, you can choose between French and English, or better yet have both, one in each store view
- Currency - every country needs a different currency
a. Go to the Store View level to set this up for each of the store views
b. For example, For US, set USD as the Default Display currency, and the only Allowed currency. (see Fig 9.4)
Fig 9.4 Set currency
Tax Settings
- US and Canada pages must not include taxes in the price
- UK and French however, do need to display prices including tax (you can choose to display both)
remember to do this for the feed settings as well, for the price and sale_price columns
- US and Canada pages must not include taxes in the price
Frequently asked questions
- Can I submit the same feed to more than one country?
- We do not recommend it, and that's because of the differences in pricing (tax/no tax), currency and language. Any mismatch in any one of the 3 will not work.
- Even if you do convert prices manually, after the feed is generated, you still need to have Product pages that use that currency / language
- Switching the currency with JavaScript / ajax / cookies (default currency switcher) will probably not work.
- Can I have multi-currency on one store view?
- No - Magento uses cookies to switch currencies. While this is acceptable for users, the marketplace crawler may not understand it.
Detaching feed generation from magento cron
Reasons to detach:
- No heartbeat detected message on feeds grid. This is a sign that magento cron fails to schedule the cronjob, as result feed is not generated.
- Large catalogs with other backend cron tasks. It may take hours for the cron to generate and this would freeze all other backend tasks for that time.
Steps to detach:
Go to System > Configuration > Rocket Shopping Feeds > General > Enable Magento cron and set it to Off.
< v2.1.2
If you are running an older version than v2.1.2, the admin config is missing, so this needs to be done manually by editing module's configuration file and remove or comment out the following lines:
app/code/community/RocketWeb/ShoppingFeeds/etc/config.xml<crontab> <jobs> <rw_feeds_schedule> <schedule><cron_expr>* * * * *</cron_expr></schedule> <run><model>rocketshoppingfeeds/observer::processSchedule</model></run> </rw_feeds_schedule> <rw_feeds_queue> <schedule><cron_expr>* * * * *</cron_expr></schedule> <run><model>rocketshoppingfeeds/observer::processQueue</model></run> </rw_feeds_queue> </jobs> </crontab>Than, clear cache.
Set a dedicated crontab, just for feed generation using the included shell script:
*/3 * * * * php /<magento_root>/shell/gsf_generate.php
Make sure to replace the <magento_root> with the actual path on the server.
Debugging
If you need to check on the output of feed processing, you could run the script over ssh like this:
php /<magento_root>/shell/gsf_generate.php --verbose
Before you launch this script make sure you set a feed pending for processing. Use the Run Now button in the admin.
Set up Bing Catalog
Set up Bing Catalog
Microsoft will review your store, process takes around 24 hrs, and You will receive an email with the results.
Prepare your store in Bing Merchant Center
If you don't already have an Bing Ads account, set up one: https://bingads.microsoft.com/customer/Signup.aspx
Setup a store by logging into your Bing Ads account and going to Tools > Bing Merchant Center > Create store.
After you are done creating your store we suggest you configure the store's FTP settings:
- Bing Merchant Center > Select store > FTP Settings tab - create an FTP account within the Merchant Center and take of the server address, user name and password as we will need it later. (see Fig 3.1)
Fig 3.1 SFTP and FTP settings
Configure the feed
- Follow the steps on adding a feed section and use Bing Catalog under Feed Type.
Set the target Store View.
If you have different store views for each target country, you may want to create a feed for each of those stores.
When you change the store view, Feed Currency should be set on the default displayed currency for that store. (see Fig 3.2)
Fig 3.2 Store view
Review Columns Map tab.
Basic columns are preconfigured to match most catalogs. If the default value does not match your catalog, then you should change it to one that suits your catalog setup. It is recommended you study the Bing Catalog Fields if you want to customize your columns map.
If your store sells Apparels, you'll have to add in the apparel required columns: color, size, gender and age_group. Since apparels are mostly configurable products, use the Variant Attribute directive to map size and color columns onto configurable attributes. If your apparels are simple products with custom options instead of configurable products, you should use Custom Options in the mappings instead of Variant Attribute. Custom Options directive allow you to choose which options hold that particular column information. (see Fig 3.3)
Fig 3.3 Columns Map
For the US, exclude tax in the price. For Canada and India, exclude any value added tax (VAT) in the price. For all other countries, be sure to include VAT in the price. You can turn taxes off under the price and sale_price columns (see Fig 3.4)
More options on how to set your feed columns, can be seen at Columns Map page.
Save feed configuration !
Fig 3.4 Product prices
Categorize products under Categories Map tab.
First choose the right Feed Localization, which corresponds to target country and language of your store.
Use the autocomplete boxes for each of your categories to find a matching Bing taxonomy. You should always pick something from the autocomplete list, otherwise Bing will not validate them.
Here you have a chance to exclude products from certain categories, by unchecking the related green box from the right side. (see Fig 3.5)
If you have products that are not assigned to a category, you could use the Include products w/o category to exclude them.
Save feed configuration !
Fig 3.5 Categories Map
Set the FTP Uploads
Use the Add Account button and fill in the FTP account details created in preparation of your Merchant Center. (see Fig 3.6)
See more information on FTP Uploads.
Validate and Save feed configuration !
Fig 3.6. FTPUploads
Submit the feed to Bing
Register the feed with Merchant Center
Navigate to Catalog Management in the selected store in the Merchant Center and click on the Create Catalog button, then follow the steps to register it:
Location - should correspond to the Feed Localization and Feed Currency set earlier at step 2. from feed configuration in Magento.
Catalog name - can be anything, but for consistency, name it the same way as you did in Magento. (see Fig 3.7)
You can opt for Bing to automatically retrieve the feed from a specified URL (Source URL), upload file using FTP or manually upload it.
File name = feed_<id>.txt (for FTP upload) (see Fig 3.7)
Replace the <id> with the feed ID in Magento, as it can be seen in the feed management screen.
Fig 3.7 Create a new catalog
Generate the feed
Click the Run Now button in the feed feed management screen, and wait for the feed to complete. This will generate the feed file and also upload it to your Merchant Center. (see Fig 3.8)
Feed will process daily, so at this step you may also adjust the Run Schedule if you need to. Check our guide on Generating the feed for more details.
Fig 3.8 Generate Feed
Analyze results
Once the feed has completed, go into the Merchant Center and select the feed you just registered.
Check the number of item processed and see if there are any errors with processing. If there are errors, follow our Testing and Troubleshooting section to help solve them.
Bing Catalog Tax
Tax setup
For the U.S., do not include tax in the price. For the U.K., the prices submitted in the catalog feed must not include any value added tax (VAT). Item prices (the price field) for all other countries provided in the catalog feed must include applicable taxes.
For most of the countries, value added tax needs to be included in the price. This is needed on product pages as well as in the price field in the feed. Exception to this rule applies to US, Canada and India stores.
Including tax in the price (non-US feeds)
First make sure your products pages display the price including tax. You should check the setting under Admin > System > Configuration > Sales > Tax > Price Display Settings, should be set to Including Tax.
The feed has to be configured to follow it by setting the price and sale_price columns in the Columns Map to the appropriate Price and Sale Price directives, having the option Add Tax = Yes. (see Fig 3.9)
Fig 3.9 Include tax in the price
Set up ShareASale
You are required to have an active Shareasale.com merchnat account. Create an account and follow the merchant setup wizard, than come back to this page.
Configure and generate the feed.
- Follow the steps on adding a feed section and use Google Shopping Feed under Feed Type.
Set the target Store View.
If you have more than one store view, you may want to create a feed for each of them.
When you change the store view, Feed Currency should be set on the default displayed currency for that store. (see Fig 4.1)Save feed configuration !
Fig. 4.1 Store View selection
Categorize products under Categories Map tab.
ShareAsale uses a list of product categories used to better target affiliate adds. Go through all categories and fill in the corresponding ShareASale taxonomy. Use the autocomplete, type something like "Bed" to pull the list of available values, and select appropriate ones. (See Fig 4.2)
The full list of categories you can choose from can be found at https://account.shareasale.com/m-productmassupload.cfm
In this screen you can also disable any of the categories holding products you don't want in the feed.
Save feed configuration !
Fig. 4.2 Product Categories
Adjust Columns Map tab.
Most of the feed columns should already be mapped to the correct output, but there are a few which need adjusting to your business:
Required:
Find the column named "merchantid", it should be mapped by default to a StaticValue, so go ahead and fill in the value. (See FIg. 4.3) You can find your Merchant ID by logging in into the merchant account and look it up next to the shareasale logo. (See Fig. 4.4)
Save feed configuration !
Optionals:
Few optional fields need to be mapped to custom magento attributes. Create attributes in your magento catalog for each of the entries below, than edit the Columns Map, find the column with the same name, and change the mapping to the correspondent attribute.
Fig. 4.3 Fill in merchantid in the feed's Columns Map
Fig. 4.4 Merchant Id under ShareASale
commission Float dollar amount of ShareASale commission as a quick reference for the affiliate. Ex: 14.50 partnumber Text manufacturer provided value that uniquely identifies this product. Ex: 6E086 isbn Text ISBN for this product, if applicable. Ex: 978-3-16-148410-0 upc Text UPC for this product, if applicable. Ex: 036000291450 compatiblewith Text Comma separated list of manufacturer partnumbers. Ex: 4E046, 5E033. compareto Text Comma separated list of manufacturer partnumbers. Ex: 4E046, 5E033. custom1 .. custom5 Text Any existing product attribute you would like to share with your affiliates. For products holding magento custom options, you could set up a maximum of 5, for which you'll have to edit the correspondent columns under Columns Map and select which of the options to output:
option1 ... option5 Text Any existing product custom option you would like to share with your affiliates. There's also a possibility to specify custom commission for your products, but once again you'll have to create product custom attributes for those and map those attributes under the next columns:
customcommissions Text Custom commission rate for this product. Can be a comma delimited list which indicates commission rate at each tier, starting with the base rate. For example, to specify a 10% base rate with a 12% rate at the first tier, use "10,12". customcommissionisflatrate Bit Populate with a 1 to indicate that the custom commission is a flat rate instead of a percentage. Populate with 0 or leave blank for a percentage value. customcommissionnewcustomermultiplier Float Multiplier for custom commission if the purchase is from a new customer. Those 3 commission fields require product level reporting in your ShareASale tracking code. You should contact ShareASale support to enable them.
Submit the feed to ShareAsale
- Generate the feed
Click the Run Now button in the feed feed management screen, and wait for the feed to complete. This will generate the feed file and also upload it to your Merchant Center. (see Fig 4.2)
Once the feed file has completed, download the file from feeds management screen, than compress the file to zip or gz as a preparation for feed activation. Upload the feed file to Merchnat Center
Login to ShareAsale merchant account, navigate to My Creatives > Datafeed > Product Management Center > UPLOAD A NEW DATAFEED. (see Fig 4.3).
Use the upload form to send the first feed file to ShareASale.
Fig. 4.2 Generate File
Fig. 4.3 Upload File
3. Set FTP uploads
Once the first feed file is uploaded to merchnat center, you may request FTP account details for uploading the file automatically each day.
Use the Submit Ticket button at the bottom of your merchnat center, or email share a sale support. (See Fig. 4.4).
We have uploaded our fist datafeed, and we would like to receive instructions on uploading the file via FTP. Our server IP address uploading the file is xxx.xxx.xxx.xxx.
Ask your store hosting provider what the server IP is, and use it instead of xxx.xxx.xxx.xxx when sending the request. Once you get the FTP account details, go ahead and fill them in in your feed configuration under FTP Uploads tab (See Fig. 4.5).
Save feed configuration !
Feed will generate and upload a file update each day, so at this step you may also adjust the Run Schedule if you need to. Check our guide on Generating the feed for more details.
Fig. 4.4 Requesting FTP details
Fig. 4.5 FTP automatic upload account
Developing custom feeds
This feature is available from version 2.1.1 - contact us for upgrades