Przejdź do głównej zawartości

Niestandardowe pola product media

Mediaverse przechowuje swoją konfigurację per wpis medium w kolumnie JSON custom_fields standardowej tabeli product_media Shopware. Nie ma dedykowanej tabeli DAL dla ustawień wideo / hotspot / panorama / model — kształt poniżej jest źródłem prawdy.

{
"p2labProductVideo": {
"mediaType": "embedVideo | mediaVideo | panorama360 | modelViewer | mediaSplide | mediaHotspots",
"url": "https://...",
"source": "youtube | vimeo | facebook | tiktok | dailymotion | gcore",
"mediaId": "uuid",
"videoSources": ["uuid-720p", "uuid-1080p"],
"translation": {
"de-DE": "uuid-or-url"
},
"translationSources": {
"de-DE": ["uuid-720p", "uuid-1080p"]
},
"projection": "equirect | cubemap | cubestrip | equiangular | cylindrical | stereoEqui | littlePlanet",
"hotspots": [
{ "x": 0.5, "y": 0.3, "action": "link | product | category", "target": "..." }
],
"slides": [],
"productConfig": {},
"coverConfig": {},
"cmsConfig": {},
"productSettings": {},
"coverSettings": {},
"cmsSettings": {}
}
}

Dostępność pól zależy od mediaType:

  • embedVideourl, source, translation
  • mediaVideomediaId, videoSources, translation, translationSources, videoResolutions
  • panorama360mediaId, projection, sources (dla cubemap)
  • modelViewermediaId
  • mediaHotspotshotspots, imageWidth, imageHeight
  • mediaSplideslides

Podobiekty *Config / *Settings przechowują overrides odtwarzania per kontekst (autoplay, muted, loop, controls, theme itd.) dla kontekstu szczegółów produktu (productSettings), cover/listing (coverSettings) i CMS (cmsSettings). Storefrontowe szablony Twig rozgałęziają się po mediaType i source, żeby wybrać odpowiedni embed iframe, element HTML5 <video>, przeglądarkę 360° albo element model-viewer 3D.