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.
Kształt JSON
Dział zatytułowany „Kształt JSON”{ "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:
embedVideo—url,source,translationmediaVideo—mediaId,videoSources,translation,translationSources,videoResolutionspanorama360—mediaId,projection,sources(dlacubemap)modelViewer—mediaIdmediaHotspots—hotspots,imageWidth,imageHeightmediaSplide—slides
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.