mhinspeya/mhinspeya-hyva-videoshopping

The VideoShopping module for Magento 2 revolutionizes the online shopping experience by integrating video content directly into the product browsing journey. Users can watch both live and recorded videos that showcase products in detail, providing a rich, immersive experience. The module allows cust

Maintainers

Package info

git.modehaus.de/hyvae/inspeya-videoshopping

Homepage

Type:magento2-module

pkg:composer/mhinspeya/mhinspeya-hyva-videoshopping

Transparency log

Statistics

Installs: 14

Dependents: 0

Suggesters: 0

1.0.4 2026-07-27 12:26 UTC

This package is not auto-updated.

Last update: 2026-08-10 12:38:29 UTC


README

mhinspeya/mhinspeya-hyva-videoshopping — Magento 2 / Hyvä module for live and recorded video shopping.

Customers can watch live or recorded product videos, shop featured products from the video, add items to cart, chat during live streams, and add live events to their calendar.

Table of contents

Requirements

DependencyNotes
Magento 2.4.xTested with Magento 2.4.8
Hyvä ThemeFrontend templates use Hyvä ViewModels, Alpine.js, Splide
mhinspeya/backend-modRequired (composer.json) for admin menu / tab support

Features

Storefront (Frontend)

  • Video Shopping home — Live video hero blocks + recorded video Splide carousel
  • Live videos — Schedule display, “Watch Video”, “Remind me” (ICS calendar download)
  • Recorded video slider — Responsive carousel with Watch Video CTAs
  • Video detail page — Embedded video player with shoppable products
  • Timed product reveal — Products appear based on start/end timeframe (seconds in the video)
  • Add to cart — Single product or bulk add from the video page
  • Configurable options / swatches — Size/color selection on video products
  • Live chat — Save and fetch chat messages during live sessions
  • Complete the look — Similar products (optional Picalike integration)
  • Theme colors — Primary / button colors from admin config (CSS variables)
  • Store-scoped content — Videos filtered by store view
  • Module enable/disable — Storefront respects Module Enable config

Admin (Backend)

  • Manage Videos — Create, edit, enable/disable, mass delete
  • Assign products — Link catalog products with position and timeframes
  • Video image upload — Thumbnail / cover image
  • Live flag — Mark video as live; cron auto-disables after end date
  • Horizontal video — Orientation option for player layout
  • Influencer — Optional influencer assignment
  • Sort order & multi-store — Control display order and store visibility
  • Similar products grid — Manage Video Shopping Similar Products
  • System configuration — Labels, colors, Picalike settings
  • REST API — CRUD endpoints for videos

Installation

Option 1: App code (Zip / copy)

  1. Place the module in app/code/MHinspeya/VideoShopping
  2. Enable and upgrade:
php bin/magento module:enable MHinspeya_VideoShopping
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush

Option 2: Composer

composer require mhinspeya/mhinspeya-hyva-videoshopping
php bin/magento module:enable MHinspeya_VideoShopping
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush

In production, prefer setup:upgrade --keep-generated only when appropriate for your deploy flow.

Sample data

Data patch installs 10 demo videos into videoshopping_grid_videoshopping:

TypeCountFrontend
Live (live_check=1)4Live / hero section
Recorded (live_check=0)6Inspired slider
  • Patch: Setup/Patch/Data/AddVideoShoppingSampleData.php
  • Images: files/sample/images/vs_sample_01.jpgvs_sample_10.jpgpub/media/faq/tmp/logo/
  • Meaningful fashion titles + descriptions included

Runs automatically on setup:upgrade. Sample rows use logos named vs_sample_*.jpg for easy cleanup.

Configuration

Admin path:
Stores → Configuration → MHinspeya → VideoShopping Configuration
(or MHinspeya → VideoShopping → Configuration)

Section ID: videoShopping_tab

1. General

FieldPathDefaultDescription
Module EnablevideoShopping_tab/general/enableYes (1)Enables/disables Video Shopping on the storefront

2. Frontend Labels

FieldPathDefaultDescription
Inspired HeadingvideoShopping_tab/frontend_labels/inspired_headingGet inspired and shop right away!Heading above the recorded video slider on the home block
Complete the Look HeadingvideoShopping_tab/frontend_labels/complete_look_headingComplete the lookHeading above similar products on the video detail page

3. Colors

FieldPathDefaultDescription
Primary ColorvideoShopping_tab/colors/primary_color#76b729Active product highlight (sidebar / selected tile)
Button Primary ColorvideoShopping_tab/colors/button_color#000000Primary button background (Watch Video, Add to Cart, etc.)
Button Hover ColorvideoShopping_tab/colors/button_hover_color#76b729Button hover background
Button Text ColorvideoShopping_tab/colors/button_text_color#ffffffButton text color

Colors are applied via CSS variables:

--vs-primary
--vs-btn-bg
--vs-btn-hover
--vs-btn-text

4. Picalike-Configuration (similar products)

FieldPathDefaultDescription
Activate PicalikevideoShopping_tab/video_picalike_configuration/generalNo (0)Enable Picalike similar products
Picalike URL.../video_picalike_urlPicalike API URL
Picalike key.../video_picalike_keyPicalike API key
Product limit.../video_product_limit8Max similar products to show

Backend usage

Admin menu

MHinspeya → VideoShopping

Menu itemPurpose
Manage VideosCreate and manage live/recorded videos
Video Shopping Similar ProductsManage similar-product mappings
ConfigurationOpens system config section

Create / edit a video

  1. Go to MHinspeya → VideoShopping → Manage Videos
  2. Click Add New
  3. Fill General:
FieldRequiredNotes
TitleYesDisplay title
Enable VideoToggle status (enabled/disabled)
UrlYesVideo URL (stream / embed source)
InfluencerNoOptional influencer select
Start DateYesSchedule start (date + time)
End DateYesSchedule end (date + time); used by live cron
LiveNoMark as live shopping event
Horizontal VideoNoUse horizontal player layout
Video ImageYesCover / thumbnail image
DescriptionNoShown on home / slider cards
Select StoresYesStore view(s) where video is visible
Sort OrderYesNumeric display order
  1. Open Add products:
    • Select catalog products to feature in the video
    • Set position for display order
    • Set start timeframe / end timeframe (seconds) so products appear while the video plays
  2. Save

Manage Videos grid

Columns include: ID, Video Image, Title, Url, Start Date, End Date, Status, Store View, Actions.
Supports filters, inline edit (where enabled), and mass delete.

Live status automation

  • When Live is checked, the video appears in the live section on the home block (while within schedule).
  • Cron job mhinspeya_videoshopping_update_live_status runs every 5 minutes and turns off live_check when end_date has passed (using the video’s Magento store timezone).

Frontend usage

Pages & URLs

PageURLTemplate
Video listing/videoshopping/index/videoshoppingLayout: videoshopping_index_videoshopping.xml
Video detail/videoshopping/index/videoshop?videoshopping_id={id}video_view_page.phtml
Home / CMS blockCMS layout or custom blockvideo_home_page.phtml

Add home block to any CMS page

Option A — CMS content directive (recommended)

  1. Open Content → Pages (or Content → Blocks)
  2. Edit the page/block where you want Video Shopping
  3. In the content (HTML / Page Builder HTML), add:
{{block class="Magento\Framework\View\Element\Template" template="MHinspeya_VideoShopping::video_home_page.phtml"}}
  1. Save

The CMS block is an AJAX shell only. Live/recorded videos and system config (enable, headings, colors) load from videoshopping/index/homecontent with no-cache headers, so admin changes appear without flushing FPC/CMS cache.

Option B — Layout Update XML

CMS page → Design → Layout Update XML (or theme layout):

<referenceContainer name="content">
    <block class="Magento\Framework\View\Element\Template"
           name="mhinspeya.videoshopping.home"
           template="MHinspeya_VideoShopping::video_home_page.phtml"/>
</referenceContainer>

Do not use cacheable="false" — pages stay LiteMage/FPC cacheable. Fresh videos and system config always load via AJAX.

Home page behavior (video_home_page.phtml)

  1. If module is disabled → shows “Video Shopping is currently unavailable.”
  2. Live videos — Hero row with image, title, description, Watch Video, schedule, Remind me (ICS)
  3. Recorded videos — Splide slider under the Inspired Heading
  4. Theme CSS variables applied from Colors config

Video detail page behavior (video_view_page.phtml)

Rendered fully on the server (not AJAX). Hyvä product Alpine, swatches, and the Vimeo player need a normal page load.

  1. Loads video by videoshopping_id
  2. Plays video and shows assigned products
  3. Products can reveal by timeframe during playback
  4. Add to cart / get price via AJAX controllers
  5. Live chat (save/fetch) when applicable
  6. Similar products (“Complete the look”) when Picalike is enabled

With LiteMage, exclude /videoshopping/index/videoshop* if this page must always show the latest admin data without a cache purge. The home/CMS Video Shopping block stays AJAX-based and does not need that.

ICS reminder

“Remind me” posts to videoshopping/Index/Icsdownload and downloads a .ics calendar file for the live event.

Cron

Job nameClassSchedulePurpose
mhinspeya_videoshopping_update_live_statusMHinspeya\VideoShopping\Cron\UpdateLiveStatus*/5 * * * *Disable Live when end_date has passed (store timezone)

Ensure Magento cron is running:

php bin/magento cron:run

Frontend routes & APIs

Storefront controllers (frontName: videoshopping)

PathPurpose
videoshopping/index/videoshoppingVideo listing page
videoshopping/index/videoshopVideo detail page (full server render)
videoshopping/index/homecontentUncached AJAX HTML for home/CMS (videos + system config)
videoshopping/index/addtocartAdd product(s) to cart
videoshopping/index/getproductpriceResolve product price (options)
videoshopping/index/savechatSave live chat message
videoshopping/index/fetchchatFetch live chat messages
videoshopping/Index/IcsdownloadDownload ICS reminder
videoshopping/index/indexLike / interaction handler

REST API

MethodEndpointService
POST/V1/videoshopping-grid/videoshoppingSave
GET/V1/videoshopping-grid/videoshopping/searchList / search
GET/V1/videoshopping-grid/videoshopping/:videoshoppingIdGet by ID
PUT/V1/videoshopping-grid/videoshopping/:videoshoppingIdUpdate
DELETE/V1/videoshopping-grid/videoshopping/:videoshoppingIdDelete

Database tables

TablePurpose
videoshopping_grid_videoshoppingVideo entities (title, URL, schedule, live, products, stores, etc.)
Position_ProductGridProduct position & timeframe per video
mhinspeya_videoshopping_videoshoppingproductgridSimilar products grid data
videoshopping_grid_likeVideo likes / interactions
cs_chatLive chat messages

Slider breakpoints

Recorded video home slider (videoslider/recorded-video-slider-php.phtml) uses Splide (max-width breakpoints):

ViewportItems (perPage)
Default (> 991px)4
≤ 991px3
≤ 567px1

ACL

ResourceTitle
MHinspeya_VideoShopping::VideoShoppingVideoShopping menu
MHinspeya_VideoShopping::indexManage Videos
MHinspeya_VideoShopping::productgridVideo Shopping Similar Products
MHinspeya_VideoShopping::contentconfigVideoShopping Configuration (Stores → Config)

Post-install commands

After config or template changes:

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush

For Hyvä / Alpine template-only changes, cache:flush is often enough in developer mode.

Key files

AreaPath
System configetc/adminhtml/system.xml, etc/config.xml
Config helperHelper/Configdata.php
Home templateview/frontend/templates/video_home_page.phtml
Detail templateview/frontend/templates/video_view_page.phtml
Slider configview/frontend/templates/videoslider/recorded-video-slider-php.phtml
Slider itemview/frontend/templates/videoslider/recorded-video-slider-item.phtml
Admin formview/adminhtml/ui_component/videoshopping_grid_videoshopping_form.xml
Live status cronCron/UpdateLiveStatus.php
ViewModelViewModel/RecordedVideo.php

Support

  • Homepage: https://inspeya.com
  • Package: mhinspeya/mhinspeya-hyva-videoshopping
  • License: OSL-3.0