What is the correct high level schema.org microdata itemtype for a retail brand/company homepage? - microdata

I'd like to hear which schema.org itemtype others would recommend using or have used in the case of completing a retail brand's company homepage microdata. Take for example TOMS's shoes:
Example #1 - Using /Corporation as the high-level itemtype one can include a lot of great /Organization microdata, but nothing about the retail store.
<html itemscope='itemscope' itemtype="http://schema.org/Website>
<head></head>
<body itemscope='itemscope' itemtype="http://schema.org/Corporation>
various microdata here probably including Product microdata
</body>
</html>
NOTE: the only schema.org property specific to /Corporation is tickerSymbol & TOMS doesn't have one.
Example #2 - This code would work if TOMS started their own channel of physical retail stores & each location had it's own homepage. However, for TOMS's.com, although accurate schematically & more descriptive at the face, this is incorrect microdata markup for TOMS.com, because /ShoeStore derives from /LocalBusiness - which must represent a physical place.
<html itemscope='itemscope' itemtype='http://schema.org/Website'>
<head></head>
<body itemscope='itemscope' itemtype='http://schema.org/ShoeStore'>
a whole bunch of jabber here
</body>
</html>
NOTE: Since TOMS is virtual & thus can't be a /Store this means you lose really cool properties like 'currenciesAccepted', 'paymentAccepted' & 'priceRange'.
Is this just a 'sit and wait' situation until more schemas are approved for 'virtual places' or is there a validation-passing way to get the best of both worlds?

Assuming you're looking at this more or less from an SEO point of view, remember that the major search engines are currently making only very limited use of microdata, and the schemas you're talking about (Corporation and Shoe Store) are not, to my knowledge, used for anything (yet). So, to an extent, I think the whole thing is largely hypothetical for now.
However, I think it's important to remember that you could use very different microdata depending on the page function. You're asking about the homepage, for which it could be completely valid to add only enough microdata to describe the name and category of the entity concerned. Detailed product data would appear on product pages, more detailed organisational data on the about or contact page, etc. In other words, use the schema that best allows you to encapsulate the main purpose of the page.
Incidentally, they've recently added GoodRelations vocabulary to Schema.org, so the scope for describing products and other business-related data just grew considerably.

Related

Kademi - how to set canonicals on a product page

I am trying to set a canonical on a product detail page to prevent duplicate pages of the same URL.
Our client's website has 1375 however search engines are picking up 2890 because the overwhelming majority of pages are being rendered as duplicate such as the below several examples.
Same product example 1:
https://www.waterware.co.nz/store/1-function-hand-shower
https://www.waterware.co.nz/store/FW556
Same product example 2:
https://www.waterware.co.nz/store/1-function-hand-shower-black
https://www.waterware.co.nz/store/FW550BL
Same product example 3:
https://www.waterware.co.nz/store/1-2m-shower-hose-metal-wound
https://www.waterware.co.nz/store/FH112SS
And repeat 1375x.
I have since discovered where the 2nd version of the URL is coming from - its the favourites icon on product detail page - and will begin removing / adjusting these.
However in order to maintain best SEO practices I need to find a way to set a canonical.
I am aware that this could be done MasterTemplate.html. However there does not seem to be a way to discover the correct scope when in the master template file.
Any suggestions?
Thanks
SEO integration was commented out in KCommerce2, but it will be re-enabled in the next release later this week
This uses the webname property in the canonical href.
It also inserts the meta description field using the brief if its available, otherwise the product body.
And it also generates a meta keywords tag, using the product code, categories and brand.
To use this once available, you will just need to update to KCommerce 3.1.3 or later.

How can I get a list of all CSGO items including skin name, quality and rarity?

I'm not looking for details of a specific player inventory, but a list of all items for CSGO. What I want is details of the weapons in particular, but including skin name information and rarity.
To make it easier to explain this site has the information I need, except rarity.
http://csgo.steamanalyst.com/list.php
By using the following api url I can get weapon model names but not skin names (ie. "Zirka")
http://api.steampowered.com/IEconItems_730/GetSchema/v0002/?key={YOUR_API_KEY}
I haven't found anything regarding skins in Steam Web Api.
Lists of all skins as well as rarity and corresponding weapons are in "paint_kits", "paint_kits_rarity" and "item_sets" sections of /csgo/scripts/items/items_game.txt file.
As for their correct names, those are in /csgo/resource/csgo_YOUR_LANGUAGE.txt. Looking like that
"PaintKit_so_red_Tag" "Candy Apple"
Won't be hard to make php or python script to get all of it and put it in a database for ease of use.
For skins images you could get weapon and skin name from the above, and do a foreach curl loop to get content from div with "market_listing_largeimage" class using for example simple_html_dom.php, from url http://steamcommunity.com/market/listings/730/{ITEM_NAME}%20%7C%20{SKIN_NAME}%20%28{USAGE_THINGY Ex. Well-Worn}%29
Just remember to replace all spaces going to the url with %20 but that depends on what you use to get the page. You could do a foreach on the usage thingy since some weapons don't have some variants on the market, curl could return wrong page. Nothing that a simple if+foreach couldn't fix.
Also do it only after skins update if overused you could get blocked from valve website for spamming. You could also use SteamWebApi and game news to check for new versions and update it automatically then. Just use your imagination and google.

Using Schema.org Review with copyrightHolder?

I'm trying to implement correct properties of Schema.org, in video game reviews. It's not hard to understand the basics http://schema.org/Review, but some properties are a bit confuse (to me).
For example, a review about "Gran Turismo", of "Sony PlayStation", released in "1996", is correct to use properties of "Creative Work", this way:
<meta itemprop="copyrightHolder" content="Sony" />
<meta itemprop="copyrightYear" content="1996" />
Or do this is it related to the review itself, so I should use the review's author name and publication date? If yes, what's the right properties to those info (if needed)?
When reviewing a video game, there are two CreativeWorks (resp. more specific types) involved:
the video game
the review
The properties copyrightYear and copyrightHolder refer to the nearest parent CreativeWork. You have to make sure not to mix them: it’s all about the correct nesting.
<div itemscope itemtype="http://schema.org/CreativeWork">
<!-- this is *your* CreativeWork, i.e., the review -->
<div itemprop="itemReviewed" itemscope itemtype="http://schema.org/CreativeWork">
<!-- this is *not your* CreativeWork, i.e., the video game -->
</div>
<!-- this is, again, *your* CreativeWork -->
</div>
(Note that I’ve used the general CreativeWork type in this example; you should of course use more specific types if available, e.g., http://schema.org/Review for the review).
Daniel, you should use the review schema as your primary schema, then nest the others such as creative work within it. The review schema should include the item, the author's name, date of the review, and of course the actual review body and rating markups. But it really is not necessary to use the copyright item properties. You can simply leave those tags out if you wish.

Parsing Jekyll's Categories

I have created a simple blog based on the Jekyll engine but I need one more function to make the thing really complete.
In Jekyll, parent directories of posts are implicitly 'labels' or 'categories'. So, if I were to create a post under the directory structure
/computers/scm/git
it would end up having 3 labels (computers, scm, git)
In my blog, I have created a few pages:
/computers/index.html
/computers/scm/index.html
/computers/scm/git/index.html
and these pages explicitly list posts in their respective categories such that /computers/index.html displays links to every post in /computers, /computers/sc and /computers/scm/git ... and likewise on down the road. Unfortunately, categories are not compound in Jekyll and so, "/computers/scm/index.html" iterates over the same set of posts as "/sandwiches/scm/index.html" …
Now, I'd like to automatically generate a sitemap listing all the categories, providing links to all of the pages I've created. Jekyll includes a construct "site.categories" that I can iterate over which works just great for all the top level categories. The problem is that when "scm" comes up, there is no "/scm/index.html" - it needs to be "/computers/scm/index.html".
I'm not sure I can fix this behavior - what type of extensions can I write to get both hierarchical categories and automatically generate a site map to my listing pages?
In my wildest dreams, I'd like to be able to tag a post as /a/b/c and have it associated with labels /a, /a/b and /a/b/c and then be able to generate pages that iterate over exactly these sets of posts. I need the site's organization to drill down from general to specific.
Do I need to try a different static generation engine?
You need to use Jekyll's plugins. For categories support in my blog I use one of this.
If you are Github Pages user, you must note that GP does not support plugins because of security reasons. To avoid this, you may use ideas from this blog post.
As an alternative, you can use Octopress, which is Jekyll-based.

Magento, add a custom attribute to a customer address

I'm looking for a way to add a drop down for a customer's address (during registration, editing, checkout, etc..) that indicates whether or not it is a Residential or Business address. I have spent hours going through tutorials but they are all out of date or poorly written. I have read 6 different ones telling me how to do the same thing 6 different ways. Can someone outline a simple process that you need to do in order to add a custom attribute to an address? I'm on Magento 1.6
Try something like this tutorial at Fontis: Know More About Your Customers - Adding Custom Signup Attributes
Whilst this was written for 1.3.2.4, most (if not all) is still relevant for 1.6. I've done a very similar thing by allowing a customer to choose the customer group they wish to belong to, by following these directions.
Oh, and there are some great comments on the post as well.
These tutorials should give you a good idea how to do what you want:
http://www.unexpectedit.com/magento/add-new-customer-attribute-onepage-magento-checkout
http://www.excellencemagentoblog.com/magento-adding-custom-field-to-customer-address
Best regards

Resources