mirror of
https://github.com/Karaka-Management/oms-Shop.git
synced 2026-02-14 08:58:40 +00:00
update schema support
This commit is contained in:
parent
e5d7f887ec
commit
2cba0d945e
|
|
@ -18,10 +18,14 @@ use Modules\Billing\Models\Attribute\BillAttributeTypeMapper;
|
||||||
use Modules\Billing\Models\Bill;
|
use Modules\Billing\Models\Bill;
|
||||||
use Modules\ClientManagement\Models\ClientMapper;
|
use Modules\ClientManagement\Models\ClientMapper;
|
||||||
use Modules\ClientManagement\Models\NullClient;
|
use Modules\ClientManagement\Models\NullClient;
|
||||||
|
use Modules\ItemManagement\Models\Item;
|
||||||
use Modules\ItemManagement\Models\ItemMapper;
|
use Modules\ItemManagement\Models\ItemMapper;
|
||||||
|
use Modules\ItemManagement\Models\NullItem;
|
||||||
use Modules\Payment\Models\PaymentMapper;
|
use Modules\Payment\Models\PaymentMapper;
|
||||||
use Modules\Payment\Models\PaymentStatus;
|
use Modules\Payment\Models\PaymentStatus;
|
||||||
use phpOMS\Autoloader;
|
use phpOMS\Autoloader;
|
||||||
|
use phpOMS\Localization\ISO4217CharEnum;
|
||||||
|
use phpOMS\Localization\ISO4217SymbolEnum;
|
||||||
use phpOMS\Message\Http\HttpRequest;
|
use phpOMS\Message\Http\HttpRequest;
|
||||||
use phpOMS\Message\Http\HttpResponse;
|
use phpOMS\Message\Http\HttpResponse;
|
||||||
use phpOMS\Message\RequestAbstract;
|
use phpOMS\Message\RequestAbstract;
|
||||||
|
|
@ -54,26 +58,38 @@ final class ApiController extends Controller
|
||||||
*/
|
*/
|
||||||
public function apiSchemaCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
public function apiSchemaCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
{
|
{
|
||||||
|
$schema = $this->buildSchema(new NullItem());
|
||||||
|
|
||||||
|
$response->header->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
|
||||||
|
$response->set($request->uri->__toString(), $schema);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function buildSchema(Item $item) : array
|
||||||
|
{
|
||||||
|
$images = $item->getFilesByTypeName('shop_primary_image');
|
||||||
|
|
||||||
// @todo: implement https://schema.org/Product
|
// @todo: implement https://schema.org/Product
|
||||||
$schema = [
|
$schema = [
|
||||||
'@context' => 'https://schema.org/',
|
'@context' => 'https://schema.org/',
|
||||||
'@type' => 'Product',
|
'@type' => 'Product',
|
||||||
'name' => '...',
|
'name' => $item->getL11n('name1')->description,
|
||||||
|
'description' => $item->getL11n('description_short')->description,
|
||||||
'image' => [
|
'image' => [
|
||||||
|
|
||||||
],
|
],
|
||||||
'description' => '...',
|
|
||||||
'offers' => [
|
'offers' => [
|
||||||
'@type' => 'Offer',
|
'@type' => 'Offer',
|
||||||
'priceCurrency' => '...',
|
'priceCurrency' => ISO4217CharEnum::_EUR,
|
||||||
'price' => '...',
|
'price' => $item->salesPrice->getAmount(),
|
||||||
'availability' => '...',
|
'availability' => 'http://schema.org/InStock',
|
||||||
],
|
],
|
||||||
'isVariantOf' => '...',
|
//'isVariantOf' => '...',
|
||||||
];
|
];
|
||||||
|
|
||||||
$response->header->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
|
foreach ($images as $image) {
|
||||||
$response->set($request->uri->__toString(), $schema);
|
$schema['image'][] = $image->getPath();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $schema;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
0
Theme/Backend/Lang/en.lang.php
Normal file → Executable file
0
Theme/Backend/Lang/en.lang.php
Normal file → Executable file
Loading…
Reference in New Issue
Block a user