Can a product's structured data be split into separate sections? - schema.org

I'm working on a site optimizing their structured data and noticed they use YotPo to pull in ratings and reviews. YotPo is defining the Product and only has a couple of values for AggregateRating that are being injected via JavaScript.
I have all of the other product data coming from the CMS, so I defined all the other information there, but when I run Google's testing tool on the page, it sees it as 2 products and says it's missing fields for the YotPo markup that are already defined in my markup.
Is there some way to let Google know that they're both chunks of data for the same product so it only sees it as a single product with the combined data?

You need to make sure both Yotpo and your CMS use the same format. e.g. json-ld or microdata.
You can then indicate that they relate to the same product by setting both up to use the same id.

Related

REST, getting additional information for an SPA

I'm trying to understand this from a REST theoretical perspective.
You have a book collection, it's an entity you can get, delete, etc.
You have an individual book, you get it with an id, delete it with an id, etc
You have an Angular app where you can add new books. So you get the book collection, add a book locally, haven't sent it to the server yet
You need additional info on the book before you add it, for example you need to know if there are any other books with the same title
Can you have multiple GET calls in a RESTful architecture for the same entity? i.e. one with id and another with a name? So you could try to GET the book with the name to see if it already exists
Where does 'get additional info for an as of yet uncreated entity' fit into this? Lets say you need an image for the book and you have stock images, I'm assuming that the images are entities in and of themselves so they have their own REST APIs
If I understand your question correctly, you basically want to do a search on some criteria (name, etc) to check that the book does not already exist. You can use GET for book which would not include id as a path variable but would include the criteria filter params as request parameters(query string). Something like this:
/book?name=bookname -- List book with name as bookname
/book/{id} -- List book with given id
Multiple GET calls for the same entity is not encouraged in a RESTful architecture.
Can you have multiple GET calls in a RESTful architecture for the same entity?
Jim Webber: You should expect to have many many more resources in your integration domain than you do business objects in your business domain.
So sure, why not? How could the client possibly know?
Where does 'get additional info for an as of yet uncreated entity' fit into this?
When in doubt, try to envision what you are doing as a web page. Would be be reasonable to send to ask the web server for a form to add a new book with a particular title, and have it return the form, a list of known books with similar titles, a set of stock images, etc? Of course. So it's going to be fine for your API to do the same thing.
Or perhaps the form should be a separate idea, and the search results should look like a link to the form, and a bunch of links to representations of existing books. That's also fine.
Using links from unstable things to stable things is often a good idea, because it affords caching.

Will Google accept combined JSON-LD and HTML meta/microdata?

I have a situation where I can put 99% of my structured data into JSON-LD in the of my product pages. But the only way I can get the UPC is to place it inline as microdata.
Will Google aggregate the product data from the JSON-LD and the inline microdata?
Most likely yes.
Google’s Structured Data Testing Tool works fine if you are using JSON-LD and Microdata (and RDFa).
Google does not say otherwise (they did in the past), see their Structured Data Policies:
The data may be embedded in your webpage using any of three supported formats: JSON-LD, RDFa, and microdata.
Some of Google’s structured data features are (currently) only documenting JSON-LD (for example, TV and Movie Watch Actions); for others, Google recommends using RDFa/Microdata, see for example their "About schema.org":
[…] Google recommends the use of JSON-LD for those features. For the remaining Rich Snippets types and breadcrumbs, Google recommends the use of microdata or RDFa.
It wouldn’t make sense for Google to restrict authors so that can’t make use of all the features (using different syntaxes) in the same document.
That said, you can never know for sure (their documentation is not always up-to-date, and their rules might change each day.)
One can use both in same page. But may not divide the info of one type of entity into parts ..example: some info about the product in JSON-LD format and some in microdata format does not work.
Also two separate things would mean two entities. Although one may use #id in JSON-LD and itemid in microdata to specify them as same entity but the Google’s Structured Data Testing Tool still shows them as two entities.
You can combine all three formats in a single page but Google gives more priority to JSON-LD and will take data from JSON-LD format shall the other one (or two) have different values than the former.

Structured data on product category pages?

I have added structured data to the product pages of my website. Would it also be beneficial to also add the structured data to the category pages? i.e. the pages that show all products within a certain product category group?
My thought is yes, as I'm describing what that page is displaying. The only doubt I have is that I'm only displaying a subset of the information that's on the full product page. E.g. I don't have a itemprop='description' entry on the category page. But I would assume/hope that because I have itemprop="url" for each product on the category page, that the search engines will be smart enough to tie the two together …?
Yes.
It can be beneficial to have the structured data also on category pages, in sidebars, on search result pages, etc., for various reasons. The more the merrier.
It’s no problem to specify only a subset of the content. Neither Microdata nor Schema.org require any properties.
And yes, by using Schema.org’s url property, you give consumers the chance to learn
that the two items are about the same thing, and
that they might find more properties about the item by following the URL.
(If, or which, consumers actually do this is another topic.)

Would it be Appropriate to use the Product Schema for Services?

I am interested in tagging the page that features all the services.
My particular industry Schema doesn't offer the span itemprop="itemOffered". Thus, should I make each the services page reflect the Product Schema rather than the industry specific itemtype, Or is it best to specify on the services page the product Schema and then on the individual product pages use the industry-specific itemtype and list the product using makesoffer?
Technically, Poe, a product can also be a service. So in your case (without knowing more info about what you offer), you can use the Product Schema for your service.
However, there is another way to mark up your service, which is by using a GoodRelations markup to augment the Schema.org/Offer markup. Here's a link to another stackoverflow post that perhaps can give a better example that I can: Using Schema.org and GoodRelations markups for services
Hope that helps.

Can I use multiple Schema.org itemscope on one page?

I have been looking around on Schema.org but I don't understand one thing.
Can a single HTML page be made up of multiple schemas? If so do they need to be nested?
We have a one page landing / selling page we are working on.
I would like to have the following Schemas in place on it:
Organization
Product
Product Reviews
I am guessing the product reviews need to be nested within a product? Or can they be in a totally different part of the page?
Looked over what little docs there are.
You can have multiple schemas as well as mix on other markup types.
Some schema types naturally nest other types, like a product may contain product reviews. It is possible to markup the reviews outside the product but you may find less systems pick up the association correctly.