Your IP : 216.73.216.240
<?php
/*
* @package Tech Fry Library
* @license https://www.gnu.org/licenses/gpl-3.0.en.html
*/
namespace TechFry\Library\View\Sd;
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;
// https://developers.google.com/search/docs/appearance/structured-data/product
class SdProduct
{
public static function get_output($data = array())
{
// Required: name and one of review, aggregateRating, offers
$json = array(
"@context" => "https://schema.org",
"@type" => "Product",
"name" => $data['name'] ?? $data['title'],
"description" => $data['description'],
"sku" => $data['sku'] ?? '',
);
// Brand
$brand = $data['brand'] ?? '';
if ($brand)
{
$json["brand"] = array(
"@type" => "Brand",
"name" => $brand,
);
}
if (isset($data['image']) && $data['image'])
{
$json['image'] = Sd::add_image($data['image']);
}
if (isset($data['mpn']) && $data['mpn'])
{
$json['mpn'] = $data['mpn'];
}
if (isset($data['isbn']) && $data['isbn'])
{
$json['isbn'] = $data['isbn'];
}
if (isset($data['gtin']) && $data['gtin'])
{
$json['gtin'] = $data['gtin'];
}
if (isset($data['gtin8']) && $data['gtin8'])
{
$json['gtin8'] = $data['gtin8'];
}
if (isset($data['gtin13']) && $data['gtin13'])
{
$json['gtin13'] = $data['gtin13'];
}
if (isset($data['gtin14']) && $data['gtin14'])
{
$json['gtin14'] = $data['gtin14'];
}
if (isset($data['rating_count']) && $data['rating_count'])
{
$json["aggregateRating"] = array(
"ratingCount" => $data['rating_count'] ?? $data["ratingCount"],
"ratingValue" => $data['rating_value'] ?? $data["ratingValue"],
);
}
// Offer
$price_valid_until = $data["price_valid_until"] ?? '';
$pricevaliduntil = $price_valid_until ? Factory::getDate($price_valid_until) : Factory::getDate()->modify('+1 year');
$json["offers"] = array(
"@type" => "Offer",
"price" => $data['price'] ?? '',
"priceValidUntil" => $pricevaliduntil->toISO8601(),
"priceCurrency" => $data['currency'],
"url" => $data['offer_url'] ?? '',
);
if (isset($data['availability']) && $data['availability'])
{
$json["offers"]["availability"] = "https://schema.org/" . $data['availability'];
}
if (isset($data['condition']) && $data['condition'])
{
$json["offers"]["itemCondition"] = "https://schema.org/" . $data['condition'];
}
Sd::display_sd($json);
}
}