d
Topic
Posts:
113
Last edited October 17, 2010
g
1
upvotes

'Feedify' Your Shop for FREE using page templates

I've been playing around with creating an app that I've really needed. But I don't have time to do it so I'm hoping we can work on it together. The idea is to take your shop products and repackage them to create feeds for use elsewhere, like Google Base, Amazon, NextTag etc.

I'm hoping this will end up as an "open source" forum thread where you can share your own feed format you've created so we all can benefit.

Basic How To:
  1) Make an alternate version of [page] (for example called googlefeed)
  2) Create a new page
  3) Name whatever you'd like: google-base-product-feed
  4) Once the page is created change the Template to googlefeed

Step By Step How To:
  - http://forums.shopify.com/categories/2/posts/29008#comment-29549

Collaborators, Thanks:
  - Michael Larkin:   http://www.pixallent.com
  - Caroline Schnapp:   http://www.11heavens.com
  - Jamie:   http://www.charlestoncreative.com

 

Google Base Product Feed (RSS 2.0)      UPDATED Oct. 19 2009

Feed Specs:
  - http://base.google.com/support/bin/answer.py?answer=58085

Snippets Used:
 
- shopdesc: a short description of your shop

Important Notes:
  - If you're in the UK, you have to include VAT one way or another, by either putting "(including VAT)" or "(excluding VAT)" in the price field of your products (in Shopify, not the feed) and making the appropriate tax setup in your Google Base Settings.

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>{{shop.name | escape }} Products</title>
<description>{% include 'shopdesc' %}</description>
<link>{{shop.url}}</link>
{% paginate collections.all-products.products by 1000 %}{% for product in collections.all-products.products %}
<!-- Item #{{ forloop.index }} -->
<item>
<title><![CDATA[{{ product.title | strip_html | strip_newlines | escape | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "é", "e" | replace: "à ", "a" }}]]></title>
<g:brand>{{product.vendor | escape }}</g:brand>
<g:product_type>{{product.type | escape }}</g:product_type>
<g:id>{{product.id}}</g:id>
<g:condition>New</g:condition>
<description><![CDATA[{{ product.description | strip_html | strip_newlines | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "..", ". " | replace: " ", " " | replace: "‘", "&#39;" | replace: "’", "&#39;" | replace: "&#8216;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "’", "&#39;" | replace: "“", "&#39;" | replace: "‘", "&#39;" | replace: "´", "&#39;" | replace: "“", "&#34;" | replace: "”", "&#34;" | replace: "&#8211;", "-" | replace: "–", "-" | replace: "—", "-" | replace: "–", "&mdash;" | replace: "—", "&mdash;" | replace: "%", "&#37;" | replace: "©", "&copy;" | replace: "®", "&reg;" | replace: "â„¢", "&trade;" | replace: "£", "&pound;" | replace: "ï¿­", "&#42;" | replace: "•", "&#42;" | replace: "”", "&#39;" | replace: "&#233;", "e" | replace: "é", "e" | replace: "à ", "a" | replace: "ó", "o" | replace: "ê", "e" | replace: "Ø", "O" | replace: "&#8482;", "" | replace: "&#174;", "" }}]]></description>
<g:image_link>{{product.featured_image | product_img_url: 'large'}}</g:image_link>
<link>{{shop.url}}{{product.url}}</link>
<g:price>{{product.price | money_without_currency}}</g:price>
<g:quantity>1</g:quantity>
<g:payment_accepted>Visa</g:payment_accepted>
<g:payment_accepted>MasterCard</g:payment_accepted>
<g:payment_accepted>AmericanExpress</g:payment_accepted>
<g:payment_accepted>Discover</g:payment_accepted>
<g:payment_notes>We also accept Paypal and Google Checkout</g:payment_notes>
</item>
{% endfor %}{% endpaginate %}
</channel>
</rss>

See it in action:
  - http://www.fortunecookiesoap.com/pages/google-base-product-feed


For tab delimited formats like the yahoo product feed, each product must be on only one (1) line. The problem is that if the any product descriptions have line breaks in them that will break the formatting.

Solution!

{{ product.description | strip_newlines | strip_html }}
Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
i
Replies
Posts:
113
Last edited August 28, 2009

Yahoo Product Feed
—feed specs: http://searchmarketing.yahoo.com/shopsb/shpsb_specs.php

Snippets This Feed Uses:
—yahoocat: map your products to a yahoo category (can extend this to support multiple)

{% layout none %}code    name    description    price    product-url    merchant-site-category    medium    image-url    upc    isbn    brand    manufacturer    manufacturer-part-no    model-no    ean    classification    condition    gender    age-group    age-range    size    nrf-size    color    nrf-color    msrp    in-stock    availability    promo-text    shipping-price    shipping-weight    shipping-surcharge    shipping-class{% paginate collections.all-products.products by 200 %}{% for product in collections.all-products.products %}{% if product.type != 'Sample' %}
{{product.id}}    {{product.title | strip_html | replace: '&#8211;', '' | replace: '&#8212;', '' | replace: '&#8216;', '' | replace: '&#8217;', '' | replace: '&#8220;', '' | replace: '&#8221;', '' | replace: '&#8230;', '' }}    {{ product.description | strip_html | replace: '&#8211;', '' | replace: '&#8212;', '' | replace: '&#8216;', '' | replace: '&#8217;', '' | replace: '&#8220;', '' | replace: '&#8221;', '' | replace: '&#8230;', '' }}    {{ product.price | money_without_currency }}    {{shop.url}}{{product.url}}    {% include 'yahoocat' %}        {{product.featured_image | product_img_url: 'large'}}                {{product.vendor}}                New    New                                    Yes    1    Free shipping for orders over $49                {% endif %}{% endfor %}{% endpaginate %}

See it in action: http://www.fortunecookiesoap.com/pages/yahoo-product-feed

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
113
Last edited August 28, 2009

RSS Feed (2.0)
—feed specs: http://en.wikipedia.org/wiki/RSS

Snippets This Feed Uses:
—shopdesc: a short description of your shop

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
    <?xml-stylesheet type="text/css" href="rss.css" ?>
    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>{{ shop.name }}</title>
        <link>{{ shop.url }}</link>
        <description>{% include 'shopdesc' %}</description>
         <image>
            <link>{{ shop.url }}</link>
            <url>{{ shop.url }}/feedlogo.jpg</url>
            <title>{{ shop.name }}</title>
        </image>
        <language>en-us</language>
        <copyright>Copyright {{ "now" | date: "%Y" }} {{ shop.name }}</copyright>
        <atom:link href="{{shop.url}}/pages/rss" rel="self" type="application/rss+xml" />
        {% paginate collections.all-products.products by 200 %}{% for product in collections.all-products.products %}{% if product.type != 'Sample' %}<item>
            <title><![CDATA[{{ product.title | strip_html }}]]></title>
            <guid>{{ shop.url }}{{ product.url }}</guid>
            <description><![CDATA[{% for image in product.images limit: 1 %}<p><img src="{{ image | product_img_url: 'medium' }}" 
            alt="{{ product.title | strip_html }}" /></p>{% endfor %}<p><a href="{{ shop.url }}{{ product.url }}">
            {{ product.title | strip_html }}</a></p>
            <p><strong>{{ product.price_min | money }}{% if product.price_varies %} - 
            {{ product.price_max | money }}{% endif %}</strong></p>
            <p>{{product.description | strip_html | truncatewords: 150}}</p>]]></description>
        </item>
        {% endif %}{% endfor %}{% endpaginate %}
    </channel>
</rss>

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
113
Last edited August 28, 2009

JSON Feed
—feed specs: http://www.json.org

FYI I wrapped the JSON in a ”.d” property to protect against a particularly nasty XSS vulnerability:
http://haacked.com/archive/2009/06/25/json-hijacking.aspx
(don’t really need to but it’s a good habit for js arrays)

Snippets This Feed Uses:
—none

{% layout none %}{d:[{% paginate collections.all-products.products by 200 %}{% for product in collections.all-products.products %}{% if product.type != 'Sample' %}{{ product | json }}{% unless forloop.last %},{% endunless %}{% endif %}{% endfor %}{% endpaginate %}]}

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jared Burns Shopify Advisor get.sy
Posts:
496
August 28, 2009

We will be releasing a completely revamped version of http://www.synctobase.com soon that will address syncing with many product directories in the very near future, and will continually add new directories after the initial relaunch.

Jared Burns, CEO at Getsy (http://get.sy)
Posts:
113
Last edited August 28, 2009

That’s fantastic! I use synctobase already, and I very happily to donate to keep it running. I use these ‘hacks’ to supply feeds to 14 different services. One thing I’d love you to support with synctobase is a way to filter/control what products get synced. It’s an awesome service you have created keep up the good work.

Glad I didn’t waste my time writing a “Feedify” app! :)

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jared Burns Shopify Advisor get.sy
Posts:
496
August 28, 2009

Awesome!

Your request for product control is actually part of the next release, so I’m glad that will be of help to you. We also will be allowing you to control what product attributes are sent as well.

There are many other features as well, so stay tuned!

Jared Burns, CEO at Getsy (http://get.sy)
Posts:
113
August 28, 2009

I had planned for my app that users could supply their own feed format and share it with others… crowdsourcing that work would ramp up list of supported directories very quickly (any plans for something like that?)

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jared Burns Shopify Advisor get.sy
Posts:
496
August 28, 2009

Hadn’t thought of doing it that way primarily because our system has to be able to communicate with the directory service via their API first. So even with a provided feed format, there’s no way for us to validate and sync it yet.

We will be requesting what services you’d like integration for and we’ll handle the feed format on our end. Any in particular you’re looking for?

Make sense?

Jared Burns, CEO at Getsy (http://get.sy)
Posts:
113
Last edited August 28, 2009

Synctobase was created as an automated process that uses the shopify api to distribute product information to a third party via their api. That is totally awesome, and needed – but there are many more services that while they do allow bulk updates they (for whatever reason) are not set up to automate the process in that way. For example Amazon, NextTag, Pronto and Yahoo allow for bulk uploads/changes but you have to manually login and upload them or FTP them to a server they maintain. So while you may need to manually upload it still saves you a lot of work. You can simply open Excel click on Data > Import External Data > New Web Query and navigate to your “feed” for that service and save the file. No cut-n-pasting hundreds of data points into the right columns – no mistakes.

With other services like Shopzilla.com, Become.com or Smarter.com all you need is to supply them with the url of the feed and they will take care of syncing it for you.

I think it’s very useful just to be able to format the data in a shopify store as needed.

It can even be useful for the shop owner… I know for me I use a “tag feed” where I get all the tags for each product so I can dynamically calculate what products to recommend for cross-selling (what products have the most matching tags to the product the customer is currently looking at).

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jared Burns Shopify Advisor get.sy
Posts:
496
August 28, 2009

With that workflow how do we (basesync) validate a feed when (not if) errors are returned. Simply passing a user defined feed seems like a surefire way for our system to be overwhelmed with rejected feeds, you know?

As we’ve learned over the past years, directory services require very specific formats and are anything from arbitrary. If we don’t supply exactly what they want, they deny it. The majority of our clients would have no idea how to supply a feed anyways.

Perhaps there’s still a way to provide the control you’re seeking, though I think in needs more thought. Would you mind dropping me an email at hello [at] pixallent [com]? Would love to explore your ideas further!

Jared Burns, CEO at Getsy (http://get.sy)
Posts:
130
September 15, 2009

We’re in the process of creating a step-by-step guide to setup the feed in Shopify as described above. I”ll post a link as soon as it’s ready!

Mike Larkin | http://www.pixellent.com | http://www.fetchapp.com | mikelarkin [at] pixellent [dot] com
Mike B Shopify Expert www.sunrisedesign.com
Posts:
84
September 18, 2009

I’m sorry – I was hoping to come here and read a simple tutorial on how create a data feed for Google base. Anyone?

Mike B. http://SunriseDesign.com
Posts:
5840
Last edited September 20, 2009

@Fortune Cookie Soap

Tell me about it! Why is this not working?

{{ product.description | newlines_to_br | strip_html }}

Argh….

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
5840
September 20, 2009

Solution:

{{ product.description | strip_newlines | strip_html }}
Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
25
September 21, 2009

Hi all,
I put together this tutorial as I set up the process for a client. There are lots of screenshots along with these instructions at http://vidaliconsulting.com/2009/09/21/how-to-feedify-your-shopify/

Here’s a quick guide to setting it up…

1. In the Shopify admin, go to Assets > Theme Editor. Under the Templates heading, click “Add a new template.”

2. A form will appear that says “Make an alternate version of Blog called alternate.” Change ‘blog’ to ‘page’ and ‘alternate’ to ‘googlefeed’ and click Create template.

3. You will now see an item called “page.googlefeed” listed under Templates. Click on it to edit it, and paste in Fortune Cookie Soap’s code for Google base, replacing all of the existing content for the template. Note that you will want to change the expiration date to 30 days from the present date. (Anything more and Base will give you a feed warning due to Google’s limits on expiration dates.)

4. Save page.googlefeed and close the code window. Click on the Blogs & Pages tab and click ‘Create a new page.’ For the title, type Google Base Product Feed and leave the ‘write your page’ section blank. Click Create page.

5. Once it has saved, click the Edit link, and on the right side under Template, change ‘page’ to ‘page.googlefeed’ and then click Update page.

6. Go back to Assets > Theme Editor, and under Snippets click ‘Add a new snippet’. In the box that appears, type in ‘shopdesc’ (after Make a snippet called…) and click Create snippet.

7. Now that the shopdesc snippet has been created, click on its icon under Snippets to edit. Type in a line or two describing your store, as this is the store description for your feed, and click Save.

8. You also need to make sure that you have a Collection called ‘All Products’ so that your Base feed will have all of your products in the one feed. To make a collection with all of your products, go to the Collections tab and click ‘Create Smart Collection.’ Type ‘All Products’ for the title and under Set your conditions, select ‘Product price’ ‘is greater than’ and type in .10 (for ten cents). If you have another criteria which works better for you, by all means use that. Click Create collection, and the page will refresh with a listing of all of your products A-Z.

9. Now in another browser tab, you should be able to view yoursite.com/pages/google-base-product-feed . Note that Firefox will automatically try and subscribe this page (since it is an RSS feed) to your default blog reader, so I recommend Safari, which will display the feed right in the browser window.

*Note* I removed

{% if product.type != 'Sample' %} and {% endif %}
from the page.googlefeed code because I did not need to differentiate the sample. I also removed the line
<g:payment_notes>We also except Paypal and Google Checkout</g:payment_notes>
because I do not accept Paypal or Google Checkout either.

Finally, once you have confirmed your feed is working, you can go to http://base.google.com (whiled logged into a Google/Gmail account you want to associate with this feed), click Sign in to Google base, accept the terms of service, and fill out the Account settings, like store name, description, site URL, business address, and contact info.

Once those fields have been completed, you will want to add a New Data Feed. Select your target country, your item type will be ‘Products’ and for the ‘Specify the data feed filename’ put google-base-product-feed without any file extension. Click Register data feed.

On the following page, under ‘Upload schedule’ click Create. Schedule the feed to update daily or weekly, depending on how often you add new or change your existing products. For ‘Url of file’ put the full address of your feed, e.g. http://www.yoursite.com/pages/google-base-product-feed and click Schedule. You will receive an email update when the feed is submitted, with any errors or warnings once it has been completed.

Your odyssey into the world of product feeds should now be over for now! Enjoy your Google Base.

Picture 1 thumb
Hidden Gears: Web Design, Development + Digital Marketing
Mike B Shopify Expert www.sunrisedesign.com
Posts:
84
September 22, 2009

Great tutorial! Thanks guys!

Mike B. http://SunriseDesign.com
Posts:
4
September 25, 2009

Thanks both Vidali and Fortune Cookie Soap.
The way my site is designed is so that the initial image uploaded is for the select a product page within a category.

It is the second uploaded image for a product that I need to apply to my feed. Can you advise what i need to replace the following text with to ensure it is the second image that appears within my google-base-product-feed.

<g:image_link>{{product.featured_image | product_img_url: ’large’}}</g:image_link>

I also use a lot of <div> code within my item descriptions which has a tendancy to make the decriptions on Google products look odd. Is there any way to resolve this or is this just something that we have to accept?

Many Thanks in advance for your response

Phil Scott
Vida Homes
www.vidahomes.co.uk

Posts:
5840
Last edited September 25, 2009

Hi Phil,

Nice website you have…

Can you advise what i need to replace the following text with to ensure it is the second image that appears within my google-base-product-feed

You will use this code then:

<g:image_link>{{product.images[1] | product_img_url: 'large'}}</g:image_link>

I also use a lot of <div> code within my item descriptions which has a tendency to make the descriptions on Google products look odd.

Fortune Cookie Soap’s code strips the HTML so you’ll be fine.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
4
September 26, 2009

Many Thanks for your help!

Its much appreciated

Posts:
10
September 27, 2009

Thanks for the help on the Google feed. I seem to be getting more hits through Google products now than I did with base-sync, but I am not sure if that is statistically significant yet…

I was wondering if there are any other locations to syndicate products that will be able to read the Google feed without major modification. I tried to feed a few of them the yahoo and RSS feeds and it didn’t go so well…

www.GoldenDwarf.com
Posts:
43
September 29, 2009

still having big problems regarding this program working.
all been imputed as per above,but google rejects it-nothing uploaded and with errors…
anyone else?

any help?

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
62
September 29, 2009

I’m having the same program as johnny goggles.

Here’s the latest email from google:

Google Merchant Center data feed file status on “google-base-product-feed”: 0 of 1 items inserted

0 of 1 items inserted
Uploaded at: September 28, 2009 6:00:00 PM EDT
Processed at: September 28, 2009 6:09:46 PM EDT

For more details on the status of your data feed, go to http://www.google.com/merchants/showfeedsummary?fid=1621832

These are the details given at that link:

Feed status summary for google-base-product-feed
0 of 1 items inserted – Processed on Sep 28, 2009 6:09 pm EDT

Detected file format: XML
Feed Level Messages
Error: XML formatting error – Error

Our system encountered an error when processing your data feed.
Learn more

Error: Mismatched XML tag. – Error

Your data feed contains a pair of opening/closing XML tags that don’t match. Examples:
Learn more

Examples:
Item Nr. Line Nr.
20

Any help would be much appreciated!

Thanks,
Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
62
Last edited September 29, 2009

I hope I’m posting this code properly …

I followed the tutorials and the notes that followed it, made a few changes to the payment methods, et voila, here’s my page.googlefeed.liquid :

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0"&gt;
<channel>
    <title>{{shop.name}} Products</title>
    <description>{% include 'shopdesc' %}</description>
    <link>{{shop.url}}</link>
{% paginate collections.all-products.products by 1000 %}{% for product in collections.all-products.products %}{% if product.type != 'Sample' %}
 <item>
   <title><![CDATA[{{product.title | strip_html}}]]></title>
   <g:brand>{{product.vendor}}</g:brand>
   <g:product_type>{{product.type}}</g:product_type>
   <g:id>{{product.id}}</g:id>
   <g:description><![CDATA[{{product.description | strip_html | replace: '■', '*' | replace: '•', '*' | replace: "©", "&copy;" | replace: "£", "&pound;" | replace: "&quot;","'" | replace: "”", "'" | replace: "&#8221;", "'" | replace: "&#8482;", "" | replace: "&#233;", 'e' | replace: "&#174;", "" | replace: "&#177;", "+-" | replace: "®", "&reg;"| replace: "&#8217;","'" | replace: "™", "&trade;" | replace: "’", "'" | replace: "“", "'" | replace: "‘", "'" | replace: "–", "-" | replace: "—", "-" | replace: "Ø", "O" | replace: "´", "'" | truncatewords: 50, ""}}]]></description>
   <g:expiration_date>2008-11-11</g:expiration_date>
   <g:image_link>{{product.featured_image | product_img_url: 'large'}}</g:image_link>
   <link>{{shop.url}}{{product.url}}</link>
   <guid>{{shop.url}}{{product.url}}</guid>
   <g:payment_accepted>Visa</g:payment_accepted>
   <g:payment_accepted>MasterCard</g:payment_accepted>
   <g:payment_accepted>PayPal</g:payment_accepted>
   <g:price>{{product.price | money_without_currency}}</g:price>
   <g:quantity>1</g:quantity>
 </item>
{% endif %}{% endfor %}{% endpaginate %}
</channel>
</rss>

Thanks,
Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
Last edited September 29, 2009

Hey Lisa you’re not :)

Can you edit your post and wrap the code in

< pre >< /pre >
tags? Without the extra spaces I put in there for it to post. That’s the only way anyone will be able to read it/use it.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
62
September 29, 2009

doh!

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
25
September 29, 2009

Hey Lisa,

It looks like your ending description tag should be

</g:description>

instead of

... truncatewords: 50, ""}}]]></description>

HTH!

Hidden Gears: Web Design, Development + Digital Marketing
Posts:
113
September 29, 2009

@The Dwarf what issues were you having with your other feed formats? The RSS feed worked for me, but I was in rush when I put it together it could be I missed something.

http://www.fortunecookiesoap.com/pages/all-products-rss

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
113
September 29, 2009

Lisa, you shouldn’t need to use g:description – looking at the feed specs they only add the “g” prefix if the tag is not part of a standard RSS format. But Vidali is right you do have a mismatched tag but you need to remove the “g:” prefix from the starting tag not the ending tag:

<description>

vs. what you have now:

<g:description>

http://base.google.com/support/bin/answer.py?answer=58085

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
113
Last edited September 30, 2009

For a quick check to see if your RSS feeds is valid:

http://validator.w3.org/feed/

just paste in the address of your feed and click check.
This helpful tool will try to validate your feed as an RSS feed.


________________________________________________________________________________________________________________________________________________________________

If you see this error you can ignore it:
Missing atom:link with rel=“self”

Google base doesn’t need the atom:link included to work, but here’s some information in case you’re interested.


Explanation

According to the RSS Advisory Board’s Best Practices Profile, identifying a feed’s URL within the feed makes it more portable, self-contained, and easier to cache. For these reasons, a feed should contain an atom:link used for this purpose.

Source: http://validator.w3.org/feed/docs/warning/MissingAtomSelfLink.html

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
62
Last edited September 29, 2009

Thanks guys!

Validation only gave me the following error(s), so hopefully the feed will work this time …


This feed does not validate.

    *

      line 1985, column 36: XML parsing error: <unknown>:1985:36: not well-formed (invalid token) [help]

             <g:product_type>Plaques, Stands & Displays</g:product_type>
                                              ^

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendation.

    *

      Feeds should not be served with the "text/html" media type [help]

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
113
Last edited September 29, 2009

The “&” will be a problem XML does not like the & character.

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
5840
September 29, 2009

The “&” will be a problem

The product type should have been escaped. Weird.

<g:product_type>{{product.type | escape }}</g:product_type>

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
5840
September 29, 2009

Two things glaringly wrong:

1.

<g:product_type>{{ product.type | escape(including VAT)}}</g:product_type>

2.

Fact that you do not provide link to your feed.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
113
Last edited September 29, 2009

values for <g:payment_accepted>

payment_accepted

Acceptable values are: Cash, Check, Visa, MasterCard, AmericanExpress, Discover, and WireTransfer. You may include as many methods as you accept. For tab-delimited, separate each payment method by a comma. For XML, include each payment method as a separate <payment_accepted> attribute.

XML example:
<g:payment_accepted>Cash</g:payment_accepted>
<g:payment_accepted>Discover</g:payment_accepted>
<g:payment_accepted>Visa</g:payment_accepted>

payment_notes

If you are accepting Google Checkout on your website, you may include that information here.

XML example:
<g:payment_notes>Cash only for local orders.</g:payment_notes>

<g:payment_notes>We also except Paypal and Google Checkout</g:payment_notes>

Source: http://base.google.com/support/bin/answer.py?hl=en&amp;answer=78170

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
62
Last edited September 29, 2009

Thanks Fortune Cookie Soap and Caroline!

I tried both versions of the product type code.

I still get this:

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

*Feeds should not be served with the “text/html” media type [help]

Fortune Cookie Soap’s code gave me a valid feed but still html errors:

line 2096, column 61: g:product_type should not contain HTML: &amp; (28 occurrences) [help]

       <g:product_type><![CDATA[Plaques, Stands &amp; Displays]]></g:product_type>
                                                              
line 5195, column 0: Missing atom:link with rel="self" [help]

    </channel>

Caroline’s version, however, solved the &amp problem, just leaving the Missing atom:link with rel=“self” [help] error

Caroline, you rock, grrl!

Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
62
September 29, 2009

I spoke too soon … Google is not happy :(

But at least the error is 0 of 279 items, not 0 of 1 item, so that’s progress …

Feed status summary for google-base-product-feed
0 of 279 items inserted - Processed on Sep 29, 2009 3:07 pm EDT

Detected file format: XML
Feed Level Messages
Warning: Missing recommended attribute: weight - Warning

While items missing recommended attributes will process successfully, we recommend including relevant attributes if they are available.


Item Errors - 279 items with errors 279 items affected
271
Missing required attribute: condition (271 errors)

Please make sure you include all required attributes in your data feed. Examples:

Examples:
Item Nr. 	Line Nr.
14 	241
26 	453
83 	1,463
145 	2,550
241 	4,249
29


Missing required attribute: description (29 errors)

Please make sure you include all required attributes in your data feed. Examples:

Examples:
Item Nr. 	Line Nr.
241 	4,249
247 	4,351
248 	4,368
250 	4,402
252 	4,436
8


Invalid encoding (8 errors)

Some of the characters in your data feed seem to be invalid. Please verify all the characters in your feed are valid for your selected encoding. Examples:
Learn more

Examples:
Item Nr. 	Line Nr.
127 	2,247
155 	2,736
186 	3,284
190 	3,356
271 	4,765
Item Warnings - 271 items with warnings 271 items affected
271
Too many attribute values for attribute: id (271 warnings)

I may have a problem with item condition, as some are new and some are not.

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
62
September 29, 2009

We would also like to thank all of you for your help. We’re using http://validator.w3.org/feed/ and it validates.

We are only getting the error below:

line 15, column 32: Implausible date: 2009-10-29 (244 occurrences) [help]
   <g:expiration_date>2009-10-29</g:expiration_date>
                                ^
line 4927, column 0: Missing atom:link with rel="self" [help]
</channel>
Nes &amp; Lulu http://seductiondepot.com
Posts:
113
Last edited September 30, 2009

@nes & lulu: do you need to include the expiration date? I know there are some rules as to what is considered valid.

http://www.google.com/support/forum/p/base/thread?tid=193fd25f00c7adb7&amp;hl=en

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
62
September 30, 2009

I was just following the tutorial word for word :-) I guess I don’t need it after all.

So what’s the deal with the 2nd error (Missing atom…)

Nes &amp; Lulu http://seductiondepot.com
Posts:
62
September 30, 2009

I just checked my inbox and I got an email stating “235 of 244 items inserted” so I guess everything works.

Thanks again to everyone who assisted.

Nes &amp; Lulu http://seductiondepot.com
Posts:
10
September 30, 2009

I am down to just the missing atom error on my feed as well. Thanks all for the help.

www.GoldenDwarf.com
Posts:
62
Last edited September 30, 2009

My feed validates just fine.

But Google is stuck on the item condition … I’m still getting 0 items inserted.

The condition attribute is a required attribute for products.

Some of my products are new.

Some of my products are used.

So I don’t want to say that all are new or all are used.

Help ????

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
5840
September 30, 2009

Lisa, do you have a tag in Shopify applied to used items?

You could use something like this:

<g:condition>{% if product.tags contains 'used' %}Used{% else %}New{% endif %}</g:condition>
Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
113
Last edited September 30, 2009

The tool is trying to validate your feed as an RSS feed — Google base doesn’t need the atom:link included to work, but here’s some information in case you’re interested.


Message

Missing atom:link with rel=“self”

Explanation

According to the RSS Advisory Board’s Best Practices Profile, identifying a feed’s URL within the feed makes it more portable, self-contained, and easier to cache. For these reasons, a feed should contain an atom:link used for this purpose.

Source: http://validator.w3.org/feed/docs/warning/MissingAtomSelfLink.html

PS: Brilliant idea on checking tags for the condition type Caroline :)

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
43
September 30, 2009

is there a basic version that anyone can use here,because frankly now i’ve given up ,not being as technically gifted as others.
please? :)

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
113
September 30, 2009

@johnny what errors are you getting? We’ve tried to make the process as simple as it can be, we’ve given you the source code to create a google base feed. My guess is there is a typo some where in your page or your products have information that is not being encoded correctly to create a valid feed. Can you post the errors you are getting from google or a link to the feed url?

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
5840
Last edited September 30, 2009

I just wanted to say… kudos to Fortune Cookie Soap. It is that easy to follow your instructions. Provided in the 1st post in this thread. I suppose—and I will only be ever slightly sarcastic here—tutorials like these should come with a disclaimer: don’t try this at home if you’re not computer-savvy. Hire someone. Hire the tutorial’s author, contact your designer, contact a designer.

It’s saddening. It’s like these designers who sell themes for 6 bucks on Theme Forest and have to answer dumb questions and provide free support on top of it. Some french fries with that? The difference here is that Fortune Cookie Soap is not getting paid a dime to share his brains power yet again.

End of rant.

Now I am going to see a movie :-)

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
43
Last edited October 01, 2009

.

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
62
Last edited October 01, 2009

@Caroline,

Is there another way to specify the condition within Shopify without using tags so it’s less visible to buyers?

I would prefer not to have a tag for item condition, just so the used products don’t stand out so much.

My products don’t really fit into the New or Used categories as much as they do Mint or Not Mint. In either of those cases tho they could be new or used products.

And I’m also curious how Synctobase was able to upload my products … did they just indicate everything as new?

Thanks,
Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
5840
October 01, 2009

Is there another way to specify the condition within Shopify without using tags so it’s less visible to buyers?
My products don’t really fit into the New or Used categories as much as they do Mint or Not Mint. In either of those cases tho they could be new or used products.

The condition attribute is optional. Don’t set it and it won’t be used. Remove that line from your template:

   <g:condition>New</g:condition>
Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
62
October 01, 2009

@Caroline,

I’ve been trying it without that line.

While the feed validator doesn’t have a problem with missing conditions, it seems that Google does:

http://www.google.com/support/merchants/bin/answer.py?hl=en&amp;answer=160606

Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
5840
October 01, 2009

Ah I see. It’s a required attribute. I thought it was only required for Cars.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
5840
Last edited October 01, 2009

@Lisa, to be fair, your products are used, so I would use Used. They may be mint or not-so-mint but they do not qualify as brand new sealed in original box items.

Read this:

Used: The product has been used, worn, or opened. This includes sealed items with blemishes, open box items, or unsealed collectible items for resale.

Speaking of condition…

@Johnny

<g:condition>New_Used</g:condition>

You either pick New, Used or Refurbished, not New_Used.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 01, 2009

@Lisa – Can I stick my big nose in :)

Lisa I think for what you are selling I would just put new and call it a day. It’s not like you are selling durable goods here ie. cars, computers, washers/dryers etc. I think the whole point here is to get a user to your site and in your case I don’t think a potential buyer will be turned off by this. You’re not selling junk and most are collector’s pieces unless I am mistaken….

http://shopifyplus.com ::: http://twitter.com/bacchus
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 01, 2009

Ha! Caroline beat me with the same but opposite response. I honestly don’t think it will matter in your specific case either way for reasons I stated already. You are selling collectibles. Your potential customer will already come on board knowing this.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
62
October 01, 2009

@Caroline,

Actually, only about half of my products are used.

Many of them are brand new in original box.

So I can’t choose New or Used as a global condition for Google because neither would be true.

Hence the problem.

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 01, 2009

@Lisa, then your only option I see is the first solution that Caroline posted and use tags to filter.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
5840
October 01, 2009

@Lisa, it’s very easy to skip certain Tags when you output them, Tags you wish to keep for internal use only.

Don’t you have any way already to categorize items that are sealed in their original box <del>vs</del> unsealed collectibles, like product type, collection, or vendor ? Any clue at all?

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
62
Last edited October 01, 2009

@Jamie,

Thanks, I’m thinking the same thing.

Besides, I think I make it pretty clear on my About Us page:

Our products come from many different sources. Many of our items are previously loved and have been consigned to us to sell, generally from long-time collectors who are downsizing. Many of our items are brand new from dealer overstock or store display, while some are brand new and still in their original packaging, only removed for inspection and photos.

@Caroline,

My products are all manufactured by Swarovski and I’ve used their product categories for my navigation and tags.

Very few items were ever sealed, so new vs used would be a better description than sealed vs unsealed. The few sealed items I have, I’ve included that info in the product’s description. Same with items that are not mint, details are given on the product page.

I didn’t realize I could hide certain tags. In that case, yes, that is probably the best solution to this problem. And using tags also gives me an easier way to track items by consignor as well.

I’ll give that a shot …

Thanks!

Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
43
October 01, 2009

@lisa..
not sure if this is right for you,but i’m in the same boat as regards to condition on products being different, so i’ve changed mine to:

<g:condition>See Description</g:condition>

seems ok if you have your goods already graded individually on each page.

(i bet this is something completely different now! :S )

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
Last edited October 01, 2009

@Johnny that will not work. Read Caroline’s post above.

This is from google:

<g:condition>Format: Text. Supported values are: new, used, and refurbished.

Those are your only choices. “See Description” should not work.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
43
Last edited October 01, 2009

@jamie..not sure why..see here for a link of one i’ve managed to upload..

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 01, 2009

I’m just going to stick this here for everyone’s reference.

Google Base Attribute List

http://shopifyplus.com ::: http://twitter.com/bacchus
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
Last edited October 01, 2009

@johnny
Your Link Returns:

Oops…
We didn’t understand that.
You have tried to access a non-existent page.
Google Homepage

You can do see description if you like, but it is not within the parameters set by Google base. you may have some squeak through, but why not just do it as Google instructs in the first place? Like I said what you are trying to use is, according to their specs, an “inappropriate value”

condition
Appropriate values include: new, used, and refurbished.
Format:
Text.
Tab-delimited example:
new
XML example:
<g:condition>new</g:condition>

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
5840
October 01, 2009

Johnny, following your link leads me to this.

10 1 2009 12 12 37 pm thumb
Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
43
October 01, 2009

ok…but on the page is says..

Details
Price: £ 8.99
Quantity: 1
brand: album cd
product type: cd
condition: See Description
payment notes: We also except Paypal, Google Checkout, UK Banking Cheques and UK Postal Orders

Description
£8.99
DOUBLE ALBUM AND DVD PACKAGE IN NEW CONDITION
IN DOUBLE FOLDOUT DIG….

i’ll change it back to “used”…
at the moment,i’m still only on 43 out of 1000,though i still can’t account for the other 600+.
will report with a new error message after if help is at hand.

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
43
Last edited October 01, 2009

same errors as all day :(

Encoding problem in attribute: description
Some of the characters in your items seem to be invalid. Please verify that all the characters in your feed are valid for your selected encoding.

Examples:
Item Nr. Line No. Value
49 1,084 £1.99 2 TRACK PROMO CD IN EX++ CONDITION IN CARD SLIP SLEEVE 1/FASTER AND FASTER 2/UNKNOWN SEE FAQs SECTION FOR ALL SHIPPING COSTS & PAYMENT METHODS
214 5,019 £2.99 3 TRACK PROMO CD IN EX++ CONDITION IN JEWEL CASE 1/WISH I NEVER LOVED YOU 2/DON’T MATTER WHAT YOU SAY 3/ORION SEE FAQs SECTION FOR ALL SHIPPING COSTS & PAYMENT METHODS
472 11,101 £1.99 2 TRACK PROMO CD IN EX++ CONDITIONIN CARD SLIP SLEEVE 1/I FEEL BETTER2/THE TWIST SEE FAQs SECTION FOR ALL SHIPPING COSTS & PAYMENT METHODS
686 16,006 £1.00 2 TRACK CD IN EX+ CONDITION IN CARD SLIP SLEEVE 1/ORIGIN OF ILLNESS 2/FRAGILE SEE FAQs SECTION FOR ALL SHIPPING COSTS & PAYMENT METHODS
770 17,977 £1.00 1 TRACK PROMO CD IN EX++ CONDITION IN PVC SLIP SLEEVE 1/DNA SEE FAQs SECTION FOR ALL SHIPPING COSTS & PAYMENT METHODS
7
Invalid encoding
Some of the characters in your data feed seem to be invalid. Please verify that all the characters in your feed are valid for your selected encoding.
Learn more

Examples:
Item Nr. Line No.
99 2,237
100 2,259
223 5,234
674 15,733
952 22,413

>>>>>>>>

{% layout none }<?xml version=“1.0” encoding=“UTF-8” ?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>{{shop.name | escape }} Products</title>
<description>{
include ‘shopdesc’ }</description>
<link>{{shop.url}}</link>
{
paginate collections.all-products.products by 3000 }{ for product in collections.all-products.products %}
<item>
<title><![CDATA[{{product.title | escape }}]]></title>
<g:brand>{{product.vendor | escape }}</g:brand>
<g:product_type>{{product.type | escape }}</g:product_type>
<g:id>{{product.id}}</g:id>
<g:condition>Used</g:condition>
<description><![CDATA[{{product.description | strip_html | replace: ‘ï¿­’, ‘*’ | replace: ‘•’, ‘*’ | replace: “©”, “©” | replace: “£”, “£” | replace: “"”,“’” | replace: “””, “’” | replace: “””, “’” | replace: “™”, "" | replace: “é”, ‘e’ | replace: “®”, "" | replace: “±”, “+-” | replace: “®”, “®”| replace: “’”,“’” | replace: “â„¢”, “™” | replace: “’”, “’” | replace: ““”, “’” | replace: “‘”, “’” | replace: “–”, “-” | replace: “—”, “-” | replace: “Ø”, “O” | replace: “´”, “’” | truncate: 10000 }}]]></description>
<g:image_link>{{product.featured_image | product_img_url: ’large’}}</g:image_link>
<link>{{shop.url}}{{product.url}}</link>
<g:price>{{product.price | money_without_currency}}</g:price>
<g:quantity>1</g:quantity>
<g:payment_accepted>Visa</g:payment_accepted>
<g:payment_accepted>MasterCard</g:payment_accepted>
<g:payment_notes>We also except Paypal, Google Checkout, UK Banking Cheques and UK Postal Orders</g:payment_notes>

</item>

{% endfor }{ endpaginate %}

</channel> </rss>

need to walk away from this for 30 mins…

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
62
Last edited October 01, 2009

expletive deleted

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
5840
October 01, 2009

@Jared @Michael … you couldn’t wait til after the holidays to cancel synctobase? …

Lisa,

They offered the service for free for a very long time.

1. Free
2. Long Time

Would you pay to get this service?

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 01, 2009

Twould be nice if they opened the source and someone else could take the ball, but I know it’s business.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
62
October 01, 2009

Caroline, if I could afford it, I would hire you to do that and a lot more … but for now I don’t have the budget so I have to figure things out on my own

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 01, 2009

I don’t think that’s what she was referring too. The point is that we all enjoyed sync to base Pro bono publico for a long time. I never sent them a donation, never really thought about it, and I am sure that was the rule rather than the exception. You never miss someone till there gone :_(

Isn’t that a song? if it is it’s probably a country song and that’s just not my cup’a.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
5840
October 01, 2009

Jamie is correct.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
62
October 01, 2009

So ummm Caroline, how was your movie last night? :-)

Nes &amp; Lulu http://seductiondepot.com
Posts:
5840
October 01, 2009

It was very funny! :-) I like the Trailer Park boys…

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
43
October 02, 2009

so, do i have any solutions to the above ?

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
62
Last edited October 02, 2009

@johnnygoggles,

I’m going to add (hidden) tags for item condition (new or used) and try this code suggested by Caroline

<g:condition>{% if product.tags contains 'used' %}Used{% else %}New{% endif %}</g:condition>

I believe this will solve the problem we are both having.

Fingers crossed …

Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
43
Last edited October 04, 2009

@lisa,i’ll give that a go,but swap them..

:)

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
43
October 02, 2009

@ lisa…
google didn’t like that-nothing uploaded :(

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
5840
October 02, 2009

Johnny, Johnny, Johnny…

Look at what you’re using:

<g:condition>{% if product.tags contains 'new' }New{ else }Used{ endif %}</g:condition>

You should be using:

<g:condition>{% if product.tags contains 'new' %}New{% else %}Used{% endif %}</g:condition>

I am surprised you’ve been able to save that Liquid template of yours.

Regarding unacceptable characters, I’m afraid that you need to pull up your sleeves and do a View Source in your browser to look at your feed and the items that are problematic. You’ll be able to determine (sometimes guess) what characters have wronged you, then you will need to add Liquid filters to your template to remove or replace these buggers.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
113
Last edited October 02, 2009

@Johnny I looked at your feed and you should try removing the “&” character as much as possible, you have it in over 100 of your product titles and most of your product descriptions.

Encoding of the characters & and < are especially problematic in places like RSS 2.0 titles.

It would be better to replace “&” with “and” but, if you really must keep them try using of the hexadecimal character reference to represent &:

&amp_#x26;   (change the _ to a ; I had to change it so you could see the correct formating)


Something like this for your titles (to replace & with and):

<title><![CDATA[{{product.title | escape | replace: 'amp;', 'and' | replace: '&#38;', 'and' }}]]></title>

and something like this for your descriptions (to replace & with and):

<description><![CDATA[{{product.description | strip_html | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: '■', '*' | replace: '•', '*' | replace: "©", "&copy;" | replace: "£", "&pound;" | replace: "&quot;","'" | replace: "”", "'" | replace: "&#8221;", "'" | replace: "&#8482;", "" | replace: "&#233;", 'e' | replace: "&#174;", "" | replace: "&#177;", "+-" | replace: "®", "&reg;"| replace: "&#8217;","'" | replace: "™", "&trade;" | replace: "’", "'" | replace: "“", "'" | replace: "‘", "'" | replace: "–", "-" | replace: "—", "-" | replace: "Ø", "O" | replace: "´", "'" | truncate: 10000 }}]]></description>

Disclaimer: I didn’t try any of this code so if there is a typo sorry about that

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
43
October 02, 2009

@fortune..thanks very much for that…is the general rule not to try using any type of symbol ?
i’m going to change a few in the descriptions now and run a feed again later..

@caroline..jeez lass…i’m giving it my best shot!!! :)
what i know i try to keep in(i am getting on a bit!),what i learn i try to remember.
like i say..“&” goes first and any others that need removing.

thanks again!

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
113
October 02, 2009

@Johnny most symbols are ok, XML is picky about a few of them & and < are the ones you really have to watch out for.

If you update the feed to remove/change out the symbols you can keep your products the same and the feed will just clean them up for you.

Don’t give up you’ll get it! And we all can learn along the way! I know I’ve learned a lot from this project.

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
43
Last edited October 02, 2009

@fortune..cheers!
i’m removing “&” from each listing manually, cause there are other bits i want to alter along the way…bit of a spring clean (in autumn).
results already!
only another 1450 to go! :)

i only started using a computer about 7 years ago (i’m 44 now),so i’m ultra jealous of you ‘uns! to most of a younger age,it was in school or always in your job(i used to be a chef/manager-until a motorbike accident-,so i can show you some tricks in the kitchen sometime!)..i’ve just learnt from bugging people like caroline! ;)

thanks again!

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
Last edited October 02, 2009

@johnny

You don’t need to do this manually! You will miss some on accident anyway or add one by accident in the future.

Just add a new “replace” filter look at the previous post:

<description><![CDATA[{{product.description | strip_html | replace: 'amp;', 'and' 

This will make it more future proof. :)

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
113
October 02, 2009

@johnny if you still want to do your spring cleaning on each product you can export all your products from shopify and (after you save a back up just in case) use “find replace” to make your changes. Then upload them back to shopify all at once.

I’ve done this when I wanted to update the tags on lots of products at once (such as changing “Custom” to “Personalized”). It will save you a lot of time.

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
43
Last edited October 02, 2009

@fortune..lol,now you don’t want to be confusing me anymore eh..baby steps…just baby steps!

no,to be honest,i’m finding little things that i obviously missed last time,as well as some nasty / lazy abbreviations i don’t think help.so its best i do it this way.

@jamie..as above mate,but relating to your “by accident” comment,it will make me remember next time i add new stock-which is about 120 every 2 weeks.the google feed results in my mail will pick up any that sneak through i suppose.

one thing i’m still noticing,is the feed is only (still)picking up the first 1000 items…will i have to do 2 sections/feeds of 1000 / 1000 etc ?

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
62
October 04, 2009

Can the product condition be picked up from a collection?

If I create a collection called “New”, for example, would this work to differentiate the product condition for Google?

Instead of this (using tags):

<g:condition>{% if product.tags contains 'used' %}Used{% else %}New{% endif %}</g:condition>

Something like this (using condition):

<g:condition>{% if collections.new.products %}New{% else %}Used{% endif %}</g:condition>

Thanks,
Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
5840
Last edited October 04, 2009

Yeah, collection will work but not with your code.

What your code is doing is:

if the New collection has products in it make all my products ‘new’

The code that you need is:

<g:condition>{% for collection in product.collections %}{% if collection.handle == 'new' %}{% assign is_new = true %}{% endif %}{% endfor %}{% if is_new == true %}New{% else %}Used{% endif %}</g:condition>
Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
62
October 04, 2009

Well, I tried … :)

Thanks Caroline!

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
43
October 04, 2009

nearly there :)-993 out of 1000 up.
still unsure of why i’m only getting 1000 uploaded items when i’ve 1600+ items in stock..is that the maximum google base allows per feed or am i missing something?

the stress is finally waning! :)

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
62
Last edited October 04, 2009

@johnny,

I think this might be the problem:

{% paginate collections.all-products.products by 1000 %}

If you change the 1000 to a higher number (maybe 2000, higher than the number of products that you have), that might work to upload all of your products instead of just 1000.

Lisa

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
Posts:
43
October 04, 2009

@lisa…its already been changed to 20000 ..must be something else :S

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
43
October 05, 2009

1000/1000 -no errors!!!! :)

can anyone help with adding the rest of my stock on, or is it a limit as to how many google base allows per feed?

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 05, 2009

My guess *only a guess* is that it's not Google limiting this feed but Shopify's software. I would put in a tickket with support. Please report back to this thread when you find anything out.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
43
October 05, 2009

thanks jamie.

i've done about 12 new feeds over the last few days, but it just stops at 1000. added new stock today and then put a new feed in. its taken the first 1000 in alphabetical order from the "all products" file, so any new stock in A-R are included, pushing out others already included.

thanks again!

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
113
Last edited October 05, 2009

@johnny Do you know for sure all 1600 are showing up in your feed? Could be a limit from shopify that the "page size" can't be more than 1000? I seem to remember something like that.

Try this:

{% paginate collections.all-products.all_products by 2000 %}

instead of using simply ".products" try using ".all_products"

according to the wiki it returns a collection of all products that are associated with this collection.

Source: http://wiki.shopify.com/Collection#collection.all_products

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
43
Last edited October 05, 2009

@fortune...there are only 999 showing in the feed (not 1000 as stated on the data feeds account page.it stops at 999. all my products (1637) are in the "all products" collection  on shopify account, on one page.

i've  set a new feed to start soon so i'll keep you updated..

cheers!

 

update...same result as above -no change.

 

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 05, 2009

This sounds like a Shopify limit for sure then. I would post something in the bugs area in the support area.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
43
October 05, 2009

just posted as you suggested jamie..cheers!

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
113
Last edited October 05, 2009

@johnny I know you have the products in the "all products" collection but just to make sure, I was suggesting that you update how you are looping through that collection:

Current Version:

{% paginate collections.all-products.products by 2000 %}

Suggested Change

{% paginate collections.all-products.all_products by 2000 %}
Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
43
October 05, 2009

apologies there fortune, i did change that when i saw your post, hence why  i ran another data feed to see if it worked.

sorry for the confusion :)

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Dennis Theisen Shopify
Posts:
49
October 06, 2009

Sorry guys, I had to break this interesting approach for some of you, but the problem is that Shopify only allows a maximum of 1000 products at a time to be fetched from the database.

So the only way for customers with a lot products to export all of them is to split the feed, by appending

?page=2

to the url. But I guess most (all?) services don't support importing from multiple feeds...

Developer
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 06, 2009

Hey Dennis,

How will this work? You can't paginate across pages right?

http://shopifyplus.com ::: http://twitter.com/bacchus
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
Last edited October 06, 2009
to the url. But I guess most (all?) services don't support importing from multiple feeds...

Yahoo pipes to the rescue?

Pipes thumb
http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
43
October 06, 2009

just got in a noticed the reply from dennis..

is there a solution to this, by splitting my stock into 2 sections..

eg: A-M  N-Z ?

or price eg: under than 3.00 ,over 3.00 ?

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
Last edited October 07, 2009

I am surprised the other feeds would work with this, you may want to look at them again.

 

You have no closing ">" on your second line, instead you have the entity (&gt;) for it. looks like a borked copy/paste job to me.

 

HTH!

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
113
October 07, 2009

@Inspira you have an & in the feed

<description>At Discount Sports Online the home of discount sports equipment & sportswear. We have a passion for all sports, Football, Cricket, Rugby, Athletics, Tennis to name but a few.</description>

you should update your feed to remove them for you like this:

<description><![CDATA[{{product.description | strip_html | replace: 'amp;', 'and' | replace: '&#38;', 'and' |    ... etc ...   
Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
113
Last edited October 07, 2009

@Jamie cool idea using yahoo pipes, did it work? Seems like it should...

@Dennis is this syntax right? I tried adding page=2 to the url but it's blank...

WORKS GET FIRST 1,000 products:
http://www.johnnygogglesmusic.co.uk/pages/google-base-product-feed

No products:
http://www.johnnygogglesmusic.co.uk/pages/google-base-product-feed?page=2

I tried the feed from Johnny because I don't have 1,000+ products to test this solution with :-)

EDIT: Maybe it's because the page size set too high?... Johnny can you set the paging down to 1000 could be that's the issue.

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 07, 2009

I got nothing on his feed either yesterday using ?page=2.

Too busy to hit the pipes ATM ;)

Was just throwing it out there. I think it should work though....

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
5840
October 07, 2009

I am surprised the paginate tag even as much as works on a 'page' page.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
43
October 07, 2009

@fortune...thanks for this-just set to 1000 as requested.

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Posts:
113
October 07, 2009

@johnny yep that fixed it I see your products on page 2 now!

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 07, 2009

@johnny yep that fixed it I see your products on page 2 now!

Sweet. If I have time I'll look at a pipe for this in the next few days....In the meanwhile if someone wants to beat me to the punch, I am a bit overbooked atm.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
43
Last edited October 07, 2009

@fortune ..you are a superstar..!! :)

so...is there anything i have to do on my side?

 

also, by christmas, i'll be needed a page 3 ! ;)

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 07, 2009

You will have to string these together and join them into one feed. I don't think the big G will take multiple feeds for base. not sure, but don't think so. They will have to be joined somehow and the only way to not have to manually do this without a custom app is with Yahoo pipes.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
43
October 07, 2009

@jamie...as you know, i'm uber novice on here, so what you are saying there is a wooosh to me!:)

but..i've now got 2 different feeds going on google base -feed 1 and 2-..the second uploaded with a couple of errors, which have now been corrected, and they are "published and searchable soon".

not sure if thats what you are meaning ?

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 07, 2009

SaWeet. Problem solved. Post back when everything goes through. So nice to not have to join them.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
113
October 07, 2009

Yeah I think Google will take more than one feed so you should just need to add both pages...

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
43
Last edited October 08, 2009

everything looks ok!

thank you very very much again for your help and patience.

(now on to something else to add ..i hear the groans from caroline in the background! ;) )

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Mike Harding Member
Posts:
9
October 08, 2009

Hi Guys that pesky & removed from my feed sorted the feed being posted however the feed only seems to contain 1000 items even though the collection contains over 2000 items i set the code to 3000

{% paginate collections.all-products.products by 3000 %}{% for product in collections.all-products.products %}

and re synced to ggoel base still only see 1000 products. I have checked the collection all-products reports more than 2000 products 

Any Ideas?

Posts:
43
October 08, 2009

@ mike..

as outlined above, the solution is to set it back to 1000 and do the following new feeds on google base:

http://www.yourwebsitename/pages/google-base-product-feed?page=2

http://www.yourwebsitename/pages/google-base-product-feed?page=3
thats what i did and after a bit,all is up there...:)

for promos,rare,not so rare and deleted cds,vinyl etc. rock to folk,alternative to indie,electro to whatever your taste! www.johnnygogglesmusic.co.uk
Mike Harding Member
Posts:
9
October 09, 2009

@johnny goggles

Thanks fella not using my eyes there, just another note is any one finding the new merchant centre a little temperamental?

 

Mike 

Posts:
4
October 13, 2009

Anyone understand why I'm getting the following error with my <description>?

Liquid error: wrong number of arguments (35 for 3)

See my feed: http://www.minuihandysitt.com/pages/google-base-product-feed

I don't get it. Thx in advance.

Modern European high chairs and accessories for kids 6 months - 5 years old.
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
October 13, 2009

Hey Adam,

 

Can you post your code? That's the only way anyone will be able to tell you much. Use the last icon in the reply field and paste it in there.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
8
Last edited October 13, 2009

I'm getting the same problem with the description

http://www.comfortsleepwear.com/pages/google-products-feed

 

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
    <title>{{shop.name | escape }} Products</title>
    <description>{% include 'shopdesc' | escape %}</description>
    <link>{{shop.url}}</link>
{% paginate collections.all-products.products by 1000 %}{% for product in collections.all-products.products %} <item>
   <title><![CDATA[{{product.title | escape }}]]></title>
   <g:brand>{{product.vendor | escape }}</g:brand>
   <g:product_type>{{product.type | escape }}</g:product_type>
   <g:id>{{product.id}}</g:id>
   <g:condition>New</g:condition>
   <description><![CDATA[{{product.description | strip_html | replace: 'ï¿­', '*' | replace: '•', '*' | replace: "©", "©" | replace: "£", "£" | replace: ""","'" | replace: "”", "'" | replace: "”", "'" | replace: "™", "" | replace: "é", 'e' | replace: "®", "" | replace: "±", "+-" | replace: "®", "®"| replace: "’","'" | replace: "â„¢", "™" | replace: "’", "'" | replace: "“", "'" | replace: "‘", "'" | replace: "–", "-" | replace: "—", "-" | replace: "Ø", "O" | replace: "´", "'" | truncate: 10000 }}]]></description>
   <g:image_link>{{product.featured_image | product_img_url: 'large'}}</g:image_link>
   <link>{{shop.url}}{{product.url}}</link>
   <g:price>{{product.price | money_without_currency}}</g:price>
   <g:quantity>1</g:quantity>
   <g:weight>{{product.weight| weight_with_unit}}</g:weight>
   <g:payment_accepted>Visa</g:payment_accepted>
   <g:payment_accepted>MasterCard</g:payment_accepted>
   <g:payment_accepted>AmericanExpress</g:payment_accepted>
   <g:payment_notes>Comfortsleepwear.com is a verified Authorize.Net merchant.</g:payment_notes>
 </item>{% endfor %}{% endpaginate %}
</channel>
</rss>

 

http://www.ComfortSleepwear.com - High Quality Sleepwear and Underwear
Posts:
113
October 13, 2009

@AdamNeilson & @fgsleep:

Try copying the liquid template in the first post again for the google feed. I updated that post and I think the new forum styles reformated some stuff wrong and broke it. I just finished cleaning it up and tried it - so try getting a fresh copy and let me know how you do.

 

I have included it here as well:

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
    <title>{{shop.name | escape }} Products</title>
    <description>{% include 'shopdesc' %}</description>
    <link>{{shop.url}}</link>
{% paginate collections.all-products.products by 1000 %}{% for product in collections.all-products.products %}
 <item>
   <title><![CDATA[{{ product.title | strip_html | strip_newlines | escape | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "é", "e" | replace: "à ", "a" }}]]></title>
   <g:brand>{{product.vendor | escape }}</g:brand>
   <g:product_type>{{product.type | escape }}</g:product_type>
   <g:id>{{product.id}}</g:id>
   <g:condition>New</g:condition>
   <description><![CDATA[{{ product.description | strip_html | strip_newlines | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "..", ". " | replace: "  ", " " | replace: "‘", "&#39;" | replace: "’", "&#39;" | replace: "&#8216;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "’", "&#39;" | replace: "“", "&#39;" | replace: "‘", "&#39;"  | replace: "´", "&#39;" | replace: "“", "&#34;" | replace: "”", "&#34;" | replace: "&#8211;", "-" | replace: "–", "-" | replace: "—", "-" | replace: "–", "&mdash;" | replace: "—", "&mdash;" | replace: "%", "&#37;" | replace: "©", "&copy;" | replace: "®", "&reg;" | replace: "â„¢", "&trade;" | replace: "£", "&pound;" | replace: "ï¿­", "&#42;" | replace: "•", "&#42;" | replace: "”", "&#39;" | replace: "&#233;", "e" | replace: "é", "e" | replace: "à ", "a" | replace: "ó", "o" | replace: "ê", "e" | replace: "Ø", "O" | replace: "&#8482;", "" | replace: "&#174;", "" }}]]></description>
   <g:image_link>{{product.featured_image | product_img_url: 'large'}}</g:image_link>
   <link>{{shop.url}}{{product.url}}</link>
   <g:price>{{product.price | money_without_currency}}</g:price>
   <g:quantity>1</g:quantity>
   <g:payment_accepted>Visa</g:payment_accepted>
   <g:payment_accepted>MasterCard</g:payment_accepted>
   <g:payment_accepted>AmericanExpress</g:payment_accepted>
   <g:payment_accepted>Discover</g:payment_accepted>
   <g:payment_notes>We also except Paypal and Google Checkout</g:payment_notes>
 </item>
{% endfor %}{% endpaginate %}
</channel>
</rss>

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
8
Last edited October 13, 2009

The forums are acting buggy as hell

http://www.ComfortSleepwear.com - High Quality Sleepwear and Underwear
Posts:
8
October 13, 2009

It works!

I did add a statement to replace & with and for the product.title. I'd also love to get the weight in there, but it just returns 0 (I assume it's because I have variants?).

It validates (some warnings) so lets see if google likes it. I think they're sick of reprocessing my "file" so I'll let you know when their system gets around to it.

UPDATE

ok google didn't like it.

 

Some of the characters in your data feed seem to be invalid. Please verify all the characters in your feed are valid for your selected encoding. 

Item Nr. Line Nr.

1 13

2 31

3 49

5 85

10 175

http://www.comfortsleepwear.com/pages/google-products-feed

is the the 's?

http://www.ComfortSleepwear.com - High Quality Sleepwear and Underwear
Posts:
113
Last edited October 14, 2009

I think it's the &: "Available in size 2X & 3X"

&and;

the quotes should be fine...

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Posts:
176
Last edited October 18, 2009

Here's a quick tip that might save you some time when hunting for encoding errors.

Google base gives pretty useless error messages with just an item and line number.

It's easy to temporarily add item numbers to your feed to help find the errors.

Just edit your page.googlefeed template and replace this...

{% for product in collections.all-products.products %}
 <item>

with this...

{% for product in collections.all-products.products %}
 <item {{forloop.index}}>

Then view your feed in Firefox. View source and you'll see the item numbers in your feed.

Don't forget to remove the code once you've identified the errors.

John --- http://experts.shopify.com/patternhead --- www.rawsterne.co.uk --- http://twitter.com/patternhead --- A few Shopify sites that I've worked on... http://oreedesign.com/ ::: www.carstache.com ::: www.waltzingmousestamps.com ::: http://shoprustyknuckles.com ::: www.papermash.co.uk ::: http://shop.mulberryroad.com
Posts:
5840
October 18, 2009

Don't forget to remove the code once you've identified the errors.

You can also use an XML comment and leave it in.

<!-- Item no {{ forloop.index }} --> 

Thanks, Rawsterne!

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
113
October 19, 2009

nice ideas you two, I updated the sample feed to include item # comments

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
November 06, 2009

I wanted to update this thread. Looks like this can now be handled in the back of Shopify:

http://blog.jadedpixel.com/2009/11/5/promote-your-products-with-google-base-and-shopzilla-integration

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
113
November 16, 2009

Very cool! I'm going to opt into that for sure... I guess I'll have to keep using this technique for promoting products in other marketing venues like NextTag, Amazon, Yahoo etc (until Shopify includes more services?)

Unique Bath Gifts by Fortune Cookie Soap ~ http://www.FortuneCookieSoap.com ~ @fortunefreak
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
November 16, 2009

Justin, Do you have a formula for Amazon and Yahoo?

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
11
Last edited November 25, 2009

What about the constantly changing Expiration Date on the Data Feed?

Is it possible to write like this:

 

<g:expiration_date>%Y-%m-%d</g:expiration_date>

So that it never expires? I get errors when I put it in that way?

 

@Jamie - also when I check the Shopzilla and GBase checkboxes how do I know my products have been added? I continue to check Shopzilla and don't see my shop listed anywhere...please help.

 

Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
November 25, 2009

To be honest rj this is a really new feature and I have been too busy to fully explore it. If you are seeing a bug with being added to shopzilla you should really report it in the bug section of the Support Area. Until I have time to dig into it I can't say much on the matter.

http://shopifyplus.com ::: http://twitter.com/bacchus
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
November 25, 2009

I'll add to this as well. Some indexes gbase included take a little while to start posting. I've seen this with both base sync, the method outlined in this thread, and I would assume with the new back-end functionality as well. So you may just want to give it a bit of time to percolate.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
11
Last edited November 27, 2009

@Fortune Cookie Soap and Caroline - bump Expiration Date inquiry

What about the constantly changing Expiration Date on the Data Feed?

Is it possible to write like this:

<g:expiration_date>%Y-%m-%d</g:expiration_date>

Is it okay to write it like this?

 

Posts:
6
January 07, 2010

I have this page: http://tinybowtique.com/pages/google-base-product-feed

but I get homepage invalid when trying to schedule the sync on google base. What am i doing wrong.

Posts:
6
January 07, 2010

i just opted in on the backend for google base... should I not have to worry about the feed now?

Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
January 07, 2010

Yep! You should not have to worry about the feed now.

http://shopifyplus.com ::: http://twitter.com/bacchus
gtcaz Member gtcaz.com
Posts:
7
Last edited January 23, 2010

I have a client telling me that Google Products (Base) is not accepting Shopify marketing feeds at the moment. Something about Google cutting Shopify off. Can you confirm?

Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
January 23, 2010

I would like to see where your client saw that. This would be news to me. I am unaware and have not had any like reports from anyone.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
17
January 27, 2010

I created my feed and trying to be patient, but I still haven't received any type of confirmation if my data feed went through.  Currently, the status says, "none".  It's been a few days already. 

The google instructions say that the data feed needs to have a specific extension.  Do you think this is the problem since the Fortune Cookie Soap data feed file has no extension?

 

bert | http://www.grumpybert.com
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
January 27, 2010

Hi Bert! This is all handled in the back end of your Shopify account now. This thread was a short term solution until Shopify could bring Google base into the admin feature set. If you go to the marketing area of your store you will see a checkbox for google base.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
5840
January 27, 2010

Actually, Jamie, this feature (as far as I know) as temporarily been removed. We've been having too many problems with it, and must re-consider how to re-integrate it in some other way. I will find out more today, and will get back to you.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
January 27, 2010

Please do! I have been de-activating these installs in lieu of the checkbox to reduce the chances or duplication issues. Ick.

http://shopifyplus.com ::: http://twitter.com/bacchus
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
January 27, 2010

Crap. I just looked. The checkbox was there several days ago and it is gone now. Ug. What the cuss. I have been taking these down over the last few weeks.

http://shopifyplus.com ::: http://twitter.com/bacchus
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
January 27, 2010

OK. I just checked a few more. It looks like it's just not present in new test shops. So I am still quite curious. I don't want to have to go back and re-wire everything I've been taking down.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
17
Last edited January 28, 2010

looks like it accepted my feed.  just waiting for it submit.

 

bert | http://www.grumpybert.com
brian Member
Posts:
26
January 30, 2010

Can anyone clarify what is going on here?  Can this be done automatically through the store or do I have to follow all these tutorials?  Will the feature be reimplemented anytime soon?  I see http://www.synctobase.com/ has been discontinued which is really unfortunate because it sounded great.  I would like to submit not just to base but to as many similar services as possible.  Is there anything else like synctobase still available that will let you submit to lots of services quickly and easily?

Can I just submit this feed: http://shop.healthbasics.net/collections/product-list.atom to base without modification?  If not why not?

As you perhaps can tell I'm not a web designer or programmer and I don't really understand this stuff very well but I'm trying to DIY.

Thanks.

dockane Shopify Partner
Posts:
200
March 06, 2010

Bump to @Brian's question ... this seems like something that most store users could utilize, is there an automated, or more simple way to do this at least? Perhaps someone has chopped all the "what ifs" in the suggestions above to create a full-proof solution that will work for all comparison-shopping directories?

I've been checking out a few and they ask for a feed file and/or link URL  ...

Thanks all!

d

Persistence alone is omnipotent. www.thebaker.com www.roscommon.com www.twitter.com/dockane
Posts:
5840
March 06, 2010

Hi Doc,

This works now. Shopify submits the feed for you, if you haved enabled this feature under your Marketing tab.

Our wiki on Google Product Search:

http://wiki.shopify.com/Google_product_search


Google chrome thumb
Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
5840
Last edited March 06, 2010

Perhaps someone has chopped all the "what ifs" in the suggestions above to create a full-proof solution that will work for all comparison-shopping directories?

Unfortunately, each service has its own requirements. There's no such thing as a universally-accepted product feed (like a universal donor).

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
dockane Shopify Partner
Posts:
200
March 06, 2010

Thanks Caroline, I appreciate it.  I've been using the Google Feed for awhile now ... seems like it works fine. I wanted to use some of the other sites though as well ... things like MySimon, etc.


Do you know of a simple tutorial without all the back'n'forth that would show us how to create such a feed?

I've searched a lot for XML stuff and various feed tutorials, and find them all to be a bit of a bear to understand.


Any suggestions?

Thanks,
D

Persistence alone is omnipotent. www.thebaker.com www.roscommon.com www.twitter.com/dockane
Posts:
5840
March 06, 2010

Justin's 1st post in this thread is exemplary in my opinion. I have not found anything better than that.

There are old wiki articles and blog posts that do not take advantage of alternate templates and {% layout none %} and are defunkt (and to be avoided), for example: http://wiki.shopify.com/How_to_export_Products_For_Google_Base

 

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
5840
March 06, 2010

Justin is a developer by the way (self-taught I believe but not certain). Sometimes you need to hire a specialist. When it comes to creating custom feeds, whether in XML or as csv, I believe that you are better off going to a professional who will be able to do create a custom feed for you often under 1 hour.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
dockane Shopify Partner
Posts:
200
March 06, 2010

Excellent.  I'll use that one as my example, then.

Cheers,
D

Persistence alone is omnipotent. www.thebaker.com www.roscommon.com www.twitter.com/dockane
Posts:
5840
March 06, 2010

You're welcome! :)

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Mike B Shopify Expert www.sunrisedesign.com
Posts:
84
Last edited July 01, 2010

Hi All,

I've recently been getting some errors with some of my stores.  I wanted to post my working version of page.googlefeed.  Fortune Cookie's post at the top doesn't contain the discussed "replace"ers for the product titles, which was giving me errors.

 

 

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0"&gt;
<channel>
<title>{{shop.name | escape }} Products</title>
<description>{% include 'shopdesc' %}</description>
<link>{{shop.url}}</link>
{% paginate collections.all.products by 200 %}{% for product in collections.all.products %}
<item>
<title><![CDATA[{{ product.title | strip_html | strip_newlines | escape | replace: '&amp;', 'and' | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "é", "e" | replace: '&quot;', '' | replace: "à ", "a" }}]]></title>
<g:brand>{{product.vendor | escape }}</g:brand>
<g:product_type>{{product.type | escape }}</g:product_type>
<g:id>{{product.id}}</g:id>
<g:condition>New</g:condition>
<description><![CDATA[{{ product.description | strip_html | strip_newlines | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "..", ". " | replace: " ", " " | replace: "‘", "&#39;" | replace: "’", "&#39;" | replace: "&#8216;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "’", "&#39;" | replace: "“", "&#39;" | replace: "‘", "&#39;" | replace: "´", "&#39;" | replace: "“", "&#34;" | replace: "”", "&#34;" | replace: "&#8211;", "-" | replace: "–", "-" | replace: "—", "-" | replace: "–", "&mdash;" | replace: "—", "&mdash;" | replace: "%", "&#37;" | replace: "©", "&copy;" | replace: "®", "&reg;" | replace: "â„¢", "&trade;" | replace: "£", "&pound;" | replace: "ï¿­", "&#42;" | replace: "•", "&#42;" | replace: "”", "&#39;" | replace: "&#233;", "e" | replace: "é", "e" | replace: "à ", "a" | replace: "ó", "o" | replace: "ê", "e" | replace: "Ø", "O" | replace: "&#8482;", "" | replace: "&#174;", "" }}]]></description>
<g:image_link>{{product.featured_image | product_img_url: 'large'}}</g:image_link>
<link>{{shop.url}}{{product.url}}</link>
<g:price>{{product.price | money_without_currency}}</g:price>
<g:quantity>1</g:quantity>
<g:weight>{{ product.variants.first.weight | weight_with_unit }}</g:weight>
</item>
{% endfor %}{% endpaginate %}
</channel>
</rss>

 

 

Mike B. http://SunriseDesign.com
Jamie Chief Officer of Funness shopify.com/plus
Posts:
5853
June 29, 2010

Thanks for updating this thread Mike! I am going through this today myself to replace the Shopify feed on two stores.

http://shopifyplus.com ::: http://twitter.com/bacchus
Posts:
12
October 17, 2010

Hey everybody. . .  Awesome thread!!! . . .  One note.  The code for the fortune cookie soap has a spelling issue where 'except' should read 'accept':

<g:payment_notes>We also except Paypal and Google Checkout</g:payment_notes>
This should read:
<g:payment_notes>We also accept Paypal and Google Checkout</g:payment_notes>

Posts:
5840
October 17, 2010

Thanks, Kev. I fixed that typo now in their post.

Caroline from http://11heavens.com ∴ mllegeorgesand AT gmail DOT com
Posts:
3
November 07, 2010

Why did it just send me an email saying 0 of 77 items inserted. What did I do wrong?

http://www.themilitarymegastore.com/pages/google-base-product-feed

is the feed.

http://wwww.themilitarymegastore.com
Posts:
30
February 08, 2011

If you cannot upload more than two product feed urls how can you link from one feed to page2? Would be really handy to get all our products up. 

Thanks in advance

http://www.37percentpolyester.com
Posts:
4
September 03, 2011

Any updates for this now that google is changing the policies on Sept. 22?

Posts:
62
Last edited December 12, 2011

How would I add the new meta fields and values - MPN, Google product type, Age group, and Gender - to my "Feedify" file?

Lisa http://www.PurpleUnicornCollectibles.com Your Canadian source for rare &amp; retired Swarovski crystal figurines and collectibles Shopify-ers: Get $10 off your order of $100 or more (enter code “shopify10” at checkout)
otreva Shopify Partner www.otreva.com
Posts:
6
Last edited March 12, 2012

I have been having trouble with my Shopify Google Search connection and haven't been receiving any help from Shopify support so I have used the above so I can control my feeds. I added in the MPN & google_product_category so I can comply with Google's specs. However I had a variant SKU which = MPNs making this a bit easier for me.

It seems many other people are also. My problem is now I have over 12,800 products. Google only allows for feeds of 10 so I'm currently at a max of 10,000. Hopefully Shopify can find out what is wrong with my store and why I can't publish to Google.

 

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
    <title>{{shop.name | escape }} Products</title>
    <description>{% include 'shopdesc' %}</description>
    <link>{{shop.url}}</link>
{% paginate collections.all-products.products by 20000 %}{% for product in collections.all-products.products %}
   <!-- Item #{{ forloop.index }} -->
   <item>
   <title><![CDATA[{{ product.title | strip_html | strip_newlines | escape | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "é", "e" | replace: "à ", "a" }}]]></title>
   <g:brand>{{product.vendor | escape }}</g:brand>
    {% for variant in product.variants %}
        <g:mpn>{{variant.sku}}</g:mpn>
    {% endfor %}
   <g:product_type>{{product.type | escape }}</g:product_type>
   <g:id>{{product.id}}</g:id>
   <g:condition>New</g:condition>
   <description><![CDATA[{{ product.description | strip_html | strip_newlines | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "..", ". " | replace: "  ", " " | replace: "‘", "&#39;" | replace: "’", "&#39;" | replace: "&#8216;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "’", "&#39;" | replace: "“", "&#39;" | replace: "‘", "&#39;"  | replace: "´", "&#39;" | replace: "“", "&#34;" | replace: "”", "&#34;" | replace: "&#8211;", "-" | replace: "–", "-" | replace: "—", "-" | replace: "–", "&mdash;" | replace: "—", "&mdash;" | replace: "%", "&#37;" | replace: "©", "&copy;" | replace: "®", "&reg;" | replace: "â„¢", "&trade;" | replace: "£", "&pound;" | replace: "ï¿­", "&#42;" | replace: "•", "&#42;" | replace: "”", "&#39;" | replace: "&#233;", "e" | replace: "é", "e" | replace: "à ", "a" | replace: "ó", "o" | replace: "ê", "e" | replace: "Ø", "O" | replace: "&#8482;", "" | replace: "&#174;", "" }}]]></description>
   <g:image_link>{{product.featured_image | product_img_url: 'large'}}</g:image_link>
   <link>{{shop.url}}{{product.url}}</link>
   <g:price>{{product.price | money_without_currency}}</g:price>
   <g:quantity>1000</g:quantity>
   <g:payment_accepted>Visa</g:payment_accepted>
   <g:payment_accepted>MasterCard</g:payment_accepted>
   <g:payment_accepted>Discover</g:payment_accepted>
   <g:payment_notes>We also accept Paypal and Google Checkout</g:payment_notes>
   <g:google_product_category>Health &amp; Beauty &gt; Health Care &gt; Fitness &amp; Nutrition</g:google_product_category>
   <g:availability>in stock</g:availability>
   
 </item>
{% endfor %}{% endpaginate %}
</channel>
</rss>

 

 

PA Web Developer - http://www.otreva.com
Posts:
1
Last edited May 03, 2013

I have been trying to creat a data feed.

{% layout none %}<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:g="http://base.google.com/ns/1.0"; version="2.0">
<channel>
    <title>{{shop.name | escape }} Products</title>
    <description>{% include 'shopdesc' %}</description>
    <link>{{shop.url}}</link>
{% paginate collections.all-products.products by 1000 %}{% for product in collections.all-products.products %}
   <!-- Item #{{ forloop.index }} -->
   <item>
   <title><![CDATA[{{ product.title | strip_html | strip_newlines | escape | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "é", "e" | replace: "à ", "a" }}]]></title>
   <g:brand>{{product.vendor | escape }}</g:brand>
   <g:product_type>{{product.type | escape }}</g:product_type>
   <g:id>{{product.id}}</g:id>
   <g:condition>New</g:condition>
   <description><![CDATA[{{ product.description | strip_html | strip_newlines | replace: 'amp;', 'and' | replace: '&#38;', 'and' | replace: "..", ". " | replace: "  ", " " | replace: "‘", "&#39;" | replace: "’", "&#39;" | replace: "&#8216;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "&#8217;", "&#39;" | replace: "’", "&#39;" | replace: "“", "&#39;" | replace: "‘", "&#39;"  | replace: "´", "&#39;" | replace: "“", "&#34;" | replace: "”", "&#34;" | replace: "&#8211;", "-" | replace: "–", "-" | replace: "—", "-" | replace: "–", "&mdash;" | replace: "—", "&mdash;" | replace: "%", "&#37;" | replace: "©", "&copy;" | replace: "®", "&reg;" | replace: "â„¢", "&trade;" | replace: "£", "&pound;" | replace: "ï¿­", "&#42;" | replace: "•", "&#42;" | replace: "”", "&#39;" | replace: "&#233;", "e" | replace: "é", "e" | replace: "à ", "a" | replace: "ó", "o" | replace: "ê", "e" | replace: "Ø", "O" | replace: "&#8482;", "" | replace: "&#174;", "" }}]]></description>
   <g:image_link>{{product.featured_image | product_img_url: 'large'}}</g:image_link>
   <link>{{shop.url}}{{product.url}}</link>
   <g:price>{{product.price | money_without_currency}}</g:price>
   <g:quantity>1</g:quantity>
   <g:payment_accepted>Visa</g:payment_accepted>
   <g:payment_accepted>MasterCard</g:payment_accepted>
   <g:payment_accepted>AmericanExpress</g:payment_accepted>
   <g:payment_accepted>Discover</g:payment_accepted>
   <g:payment_notes>We also accept Paypal and Google Checkout</g:payment_notes>
 </item>
{% endfor %}{% endpaginate %}
</channel>
</rss>

I got problem with my item named " HTC One X / XL"; also i only accept with PayPal, do not accept credit card currently.

Could anyone tell me how to fix it.

Thank you very much.

PK Member
Posts:
22
October 23, 2014

Does this still work? If not, is there a FREE alternative?

Alex Czarto Shopify Merchant business.czarto.com
Posts:
38
Last edited June 18, 2016

Resurecting an old feed, but here is an updated solution for generating an xml Google Shopping feed using a custom collection template. This is working "in the wild" as of this post, and supports deep linked product variants, and uses the same product Id format as Shopify's free Google Shopping App, meaning you can have both running at the same time, and have the custom feed enhance the Shopify feed with new attributes.

However, this is NOT based on the feeds in this thread, so there may be bugs / issues that were previously solved here, so would be very interested in any feedback / recommendations.

Here is the writeup:

https://business.czarto.com/2016/06/14/shopify-google-shopping-feed/

Code is available on Github here:

https://github.com/Czarto/ShopifyShoppingFeed/blob/master/collection.xml-product-feed.liquid

And here is the code as of today's date: (June 18, 2016):

{% layout none %}<?xml version="1.0"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
{% assign GoogleProductCategory = collection.description %}
{% assign CountryCode = 'CA' %}
{% assign Gender = "unisex" %}
{% assign AgeGroup = "adult" %}
{% assign Color = "" %}
{% assign Size = "" %}
<channel>
<title>{{ shop.name }} {{ collection.title | replace: '&', '&amp;' }}</title>
<link>{{ shop.url }}</link>
<description>{{ collection.description | strip_html }}</description>
{% for product in collection.products %}
  {% capture Gender %}{% if product.title contains "Ladies" %}female{% elsif product.title contains "Men" %}male{% else %}unisex{% endif %}{% endcapture %} 
  {% capture AgeGroup %}{% if product.title contains "Baby" %}infant{% elsif product.title contains "Girl" %}kids{% elsif  product.title contains "Boy" %}kids{% elsif product.title contains "Kid" %}kids{% elsif product.title contains "Youth" %}kids{% else %}adult{% endif %}{% endcapture %}

  {% for variant in product.variants %}

    {% for option in product.options %}
  	{% if option == 'Color' %}{% capture Color %}{{ variant.options[forloop.index0] }}{% endcapture %}
  	{% elsif option == 'Size' %}{% capture Size %}{{ variant.options[forloop.index0]  }}{% endcapture %}
  	{% endif %}
  	{% endfor %}
<item>
<title>{{ product.vendor }} {{ product.title | replace: '&', '&amp;' }} {{ Color }}</title>
<link>{{ shop.url }}{{ variant.url }}</link>
<description>{{ product.description | strip_html | strip_newlines | replace: '&', '&amp;' }}</description>
<g:google_product_category>{{ GoogleProductCategory | strip_html }}</g:google_product_category>
<g:item_group_id>shopify_{{ CountryCode }}_{{ product.id }}</g:item_group_id>
<g:id>shopify_{{ CountryCode }}_{{ product.id }}_{{ variant.id }}</g:id>
<g:condition>new</g:condition>
<g:price>{{ variant.price | money_without_currency }} {{ shop.currency }}</g:price>
<g:availability>{% if variant.available %}in stock{% else %}out of stock{% endif %}</g:availability>
<g:image_link>{{ variant.image.src | product_img_url: 'grande' }}</g:image_link>
<g:gtin/>
<g:brand>{{ product.vendor }}</g:brand>
<g:mpn>{{ variant.sku }}</g:mpn>
<g:product_type>{{ product.type }}</g:product_type>
<g:age_group>{{ AgeGroup }}</g:age_group>
{% unless Color == "" %}<g:color>{{ Color }}</g:color>{% endunless %}
{% unless Size == "" %}<g:size>{{ Size }}</g:size><g:size_system>US</g:size_system>{% endunless %}
<g:gender>{{ Gender }}</g:gender>
</item>

{% endfor %}
{% endfor %}
</channel>
</rss>

Hope this is valuable to someone.

Best,

Alex

http://www.manitobah.ca/ - http://www.canadianicons.ca/ - http://www.pendleton.ca
Posts:
2
9 months ago

Very helpful indeed. THe problem I am having is the limit of 1,000 products due to pagination limit of 1,000. Any other ways of creating an xml feed with more than 1,000 products?

Alex Czarto Shopify Merchant business.czarto.com
Posts:
38
Last edited 9 months ago

Hi Ben

I *think* all you have to do is submit multiple feeds with ?page=x included in the feed url.

(Make sure you use the latest code available at the github link - it's been updated since I made the post in this thread: https://github.com/Czarto/ShopifyShoppingFeed/blob/master/collection.xml-product-feed.liquid )

eg:

store.myshopify.com/collections/xml-product-feed?page=1

store.myshopify.com/collections/xml-product-feed?page=2

store.myshopify.com/collections/xml-product-feed?page=3

Not super automated, but even if you have 10,000 products that's 10 feeds, which is still manageable. (Clearly not ideal, but it's a workaround for now).

 

Alternatively, you can create smaller topical collections (per brand, or per product type) and submit those separately.

Those are the only solutions I have right now.

Best,

Alex

http://www.manitobah.ca/ - http://www.canadianicons.ca/ - http://www.pendleton.ca
Posts:
4
8 months ago

Hello -

I just created a xml feed for my shopify site, however I am running into an issue whereas my store with over 2,500 items is being limited to 1,000 items. I understand the concept around pagination, however I am running into an issue when I use ?page=2 etc

Shopify responds with: Liquid error: 'collections.product-feed' cannot be paginated because it does not exist. 

My xml is under a /pages/ without a collection. Would you happen to know how I might be able to resolve this?

 

Posts:
1
about 2 months ago

Did anyone found any solution, how to create xml feed in a one file for more than 1000 products? I need it very much and it is really frustrating for me… Thanks for help!