We have listing menu items for the restaurant and something wrong, it always shows "Sold Out" in Google's search results. The items given to Gooogle as ld+json schema with the availability property.
Snippet part (with liquid variables from backend):
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Restaurant",
"name": "{{ account.business_name | replace: '"', "'" }}",
"description": "{{ location_description | replace: '"', "'" }}",
"acceptsReservations": "{{ reservations_are_avalible }}",
"url": "{{ account.website_url | replace: '"', "'" }}",
"logo": "{{ account.logo_medium_url }}",
"image": "{{ account.logo_medium_url }}",
"hasMenu": [
{% for menu in account.visible_menus %}
{
"@type": "Menu",
"name": "{{ menu.name | replace: '"', "'" }}",
"url": "{{ menu.path }}",
"hasMenuSection": [
{% for menu_section in menu.sections %}
{
"@type":"MenuSection",
"name": "{{ menu_section.name | replace: '"', "'" }}",
"image": "{{ account.logo_medium_url }}",
"hasMenuItem": [
{% for item in menu_section.items %}
{
"@type":"MenuItem",
"name": "{{ item.name | replace: '"', "'" }}",
"description": "{{ item.description | replace: '"', "'" }}"
{% if item.pricepoints[0].price != blank %}
,"offers": {
"@type": "Offer",
"price": "{{ item.pricepoints[0].price }}",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
{% endif %}
}
{% if forloop.last == false %}
,
{% endif %}
{% endfor %}
]
}
{% if forloop.last == false %}
,
{% endif %}
{% endfor %}
]
}
{% if forloop.last == false %}
,
{% endif %}
{% endfor %}
]
}
</script>
When I search the "borealis grille menu kitchener" I see each item listed as "Sold out":
UPDATE (10.24.2020):
This is the ld+json code after the page loaded with all needed properties: Pastebin
This is a test results screenshot from Google rich results testing tool:
I have 2 warnings "Missing fileds (optional)" - servesCuisine and priceRange:
As you can see the item Buttermilk Fried Chicken Tenders has "InStock" availability. But on the search results of "graffitimarket menu kitchener" it shows "Sold out":