Der er flere versioner af strukturerede data og flere muligheder for en webshop. Her er bl.a. produkter, butikkens adresse m.m. og produktanmeldelser. Her er eksempel på kode, du kan sætte ind i din skabelon. Den giver dig de mest gængse strukturerede data. Når det er implementeret, kan du teste din implementering her.

Produkter

Den nok vigtigste strukturerede data er på dine produkter. Denne kode kan du indsætte på product.html eller i global.html. Sætter du den ind i global.html skal du sørge for, at pakke den ind i en <{if $product}> <{/if}> så det ikke bliver afviklet på kategorier.

<{assign var="reviews" value=$product->getProductReviews()}>
<{if $reviews}>
<{assign var="antalreviews" value=0}>
<{assign var="totalscore" value=0}>
<{section name="p" loop=$reviews}>
<{math assign="antalreviews" equation=x+1 x=$antalreviews}>
<{math assign="totalscore" equation=x+y x=$totalscore y=$reviews[p]->getRating()}>
<{/section}>

<{math assign="gennemsnit" equation=x/y x=$totalscore y=$antalreviews}>
<{/if}>
<{assign var="tempdato" value=$smarty.now}>
<{math assign="nextyear" equation=x+1 x=$tempdato|date_format:"%Y"}>
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
<{if $reviews}>
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "<{$gennemsnit|number_format:2:",":"."}>",
"reviewCount": "<{$antalreviews}>"
},
<{/if}>
"name": "<{$product->getName()}>",
"url": "<{$product->getRemoteUrl()}>",
<{if $product->getGtin()}>
"gtin8": "<{$product->getGtin()}>",
<{else}>
<{* Loop varianter for at finde gtin *}>
<{/if}>
<{if $images}>
<{section name="j" loop=$images start=0 max=1}>
"image": "<{$webshop->getUrl()}><{$images[j]->getSrc(400 , 400, 'box')}>",
<{/section}>
<{/if}>
"description": "<{$product->getParsedDescription()|strip_tags:true|replace:'"':'\''}>",
"sku": "<{$product->getOwnId()}>",
"brand": {
"@type": "Thing"
<{if $supplier}>
, "name": "<{$supplier->getName()}>"
<{/if}>
},
"offers": {
"@type": "Offer",
"priceCurrency": "<{$webshop->getCurrency()}>",
"price": "<{$product->getRealPrice(1)|number_format:2:".":""}>",
"itemCondition": "NewCondition",
"priceValidUntil": "<{$nextyear}>-<{$tempdato|date_format:"%m"}>-<{$tempdato|date_format:"%d"}>",
"url": "<{$product->getRemoteUrl()}>",
<{if $product->getIsInStock()}>
"availability": "InStock"
<{else}>
"availability": "OutOfStock"
<{/if}>
}<{if $reviews}>,



"review": [
<{assign var="tempcounter" value=0}>
<{section name="p" loop=$reviews}>
<{math assign="tempcounter" equation=x+1 x=$tempcounter}>
<{assign var="order" value=$reviews[p]->getOrder()}>

{
"@type": "Review",
"author": "<{$order->getDelName()|replace:'Lotte liv':'Lotte'}>",
"datePublished": "<{$reviews[p]->getCreated()|escape|truncate:10:""}>",
"name": "Anmeldelse af <{$product->getName()}>",
"reviewBody": "<{$reviews[p]->getDescription()|escape}>",
"reviewRating": {
"@type": "Rating",
"bestRating": "5",
"ratingValue": "<{$reviews[p]->getRating()}>",
"worstRating": "1"
}

}<{if $antalreviews>$tempcounter}>,<{/if}>

<{/section}>
]
<{/if}>



}
</script>

Selve din forretning

Man kan også angive dét, der hedder LocalBusiness. Den er forholdsvis simpel og ser sådan ud. Eksemplet her har udfyldt data for shoppen Faktorfobi. Der skal du naturligvis ændres til dine egne data.

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "LocalBusiness",
"address": {
"@type": "PostalAddress",
"addressLocality": "Aalborg",
"addressRegion": "DK",
"streetAddress": "Birkevej 5"
},
"description": "Faktorfobi sælger UV badetøj til børn, baby, teenagere og voksne. Der udover finder du også et hav af solhatte og svømmeudstyr såsom snorkelsæt, dykkerbriller m.m.",
"name": "Faktorfobi",
"openingHours": [
"Mo-Th 08:00-16:00",
"Fr 08:00-15:00"
],
"telephone": "+45-28288676",
"priceRange": "$",
"image": "https://www.faktorfobi.dk/img/faktorfobi-logo.png"
}
</script>
Fandt du dit svar?