Aller au contenu principal

Bulk Video Management

Assign, update, or remove videos across hundreds of products at once using a filtered, preview-first workflow — no CSV required.

remarque

Available since v3.2.5

Overview

Bulk Video Management lets you perform three operations on any filtered set of products: Add a video to all matching products, Update properties of existing videos (title, position, visibility), or Remove videos from matching products. All three operations run in the browser using chunked AJAX requests, so large catalogs do not time out.

Before any change is written, you preview the exact list of products that will be affected. You can then select all matching products, pick individual ones from the list, or increase the preview limit to check more products. Operations report progress in real time with a percentage bar, ETA, and products-per-cycle indicator.

Settings you use regularly can be saved as named presets and reloaded in one click. If a browser tab is closed mid-operation, an automatic recovery prompt appears the next time you open the page.

Configuration

Go to Catalog > Videos: Bulk Update in the Back Office sidebar.

On PrestaShop 1.6, the tab appears under Catalog in the top navigation. On PrestaShop 1.7 and later, it appears in the Sell section of the sidebar.

The standard workflow is always the same, regardless of which action you choose:

  1. Set filters — narrow down which products to target.
  2. Choose an action and fill in the video fields for that action.
  3. Click Preview Affected Products — a product table loads below the form.
  4. Review the list; select individual products or use Select all matching to target the full filtered set.
  5. Click Execute Bulk Operation and confirm the modal.
  6. Watch the progress bar. When it reaches 100%, a success summary appears.

Product Filters

Filters are applied before the preview loads. You can combine any number of filters.

FilterOptionsBehavior
CategoryAll Categories / Select Specific"All Categories" requires at least one other filter to be set — a confirmation dialog appears if not. "Select Specific" allows multi-select of categories.
ManufacturerAll / specific brandLimits to products from the selected manufacturer.
Product StatusAll / Active only / Inactive onlyFilters by the product's enabled or disabled state.
Has VideosAll / Yes / No"Yes" targets products that already have at least one video. "No" targets products with no videos — useful for adding first-time videos to a set of products.
LanguageAll languages / specific languageVisible only when the store has more than one active language. Controls which language records are written or modified.
ShopAll shops / specific shopVisible only in multi-shop configurations. Controls which shop records are written or modified.

When Category is set to "All Categories" with no other filter active, a warning dialog asks you to confirm before running the preview. This prevents accidentally targeting the entire catalog.

Actions

Add — Assign a video to products

Adds a new video entry to every product in the filtered set.

FieldRequiredDescription
Video URLYesYouTube, Vimeo, HTML5 (.mp4/.webm/.ogg), or iframe embed code. The URL is validated in real time and a preview renders below the field.
Video TitleNoText displayed with the video. If left empty, the product name is used as the default title.
PositionNoWhere to insert the video in the product's video list. Options: First, Last (default), or a specific numeric position.
Registered customers onlyNoWhen enabled, the video is hidden from guests; only logged-in customers can see it.
If video already existsIgnore (default): skip products that already have this exact video URL. Update: overwrite the existing video's title, position, and visibility settings.

Update — Modify existing videos

Changes properties on videos that already exist for the filtered products. At least one field must be filled.

FieldDescription
Video URL (exact match)Optional. When provided, only videos with this exact URL are modified. Leave empty to update all videos on each matching product.
Video TitleNew title. Leave empty to leave existing titles unchanged.
PositionMove the matched video to a new position. Other videos shift accordingly.
Registered customers onlyToggle visibility.

Remove — Delete videos from products

Deletes video records from the filtered product set.

FieldDescription
Video URL (exact match)Optional. When provided, only the video with this exact URL is deleted. Leave empty to remove all videos from each matching product.

Remove operations are permanent and cannot be undone. A warning banner appears when this action is selected, and an additional confirmation modal is shown before execution.

How It Works

Preview Panel

After clicking Preview Affected Products, a table loads showing up to 100 matching products by default (ID, reference, cover image, name). Use the Show dropdown to increase the visible count to 250, 500, 1,000, or All.

When more products match the filters than are currently displayed, a yellow banner appears: "Select all X matching products." Clicking that link and confirming switches to "all matching" mode — the operation will process every product that matches the filters, not just those shown in the table.

You can also select individual products using their checkboxes, or use Select visible / Deselect to bulk-check the current page. Clicking a product thumbnail enlarges the image.

The Execute Bulk Operation button appears both above and below the product table once at least one product is selected (or all-matching mode is active).

Execution and Progress

The operation runs as a series of AJAX requests, each processing a chunk of products. The progress overlay shows:

  • A percentage bar filling in real time.
  • A details line: processed / total products — ~X seconds remaining (N products per cycle).

Adaptive chunk sizing: The chunk size starts at 100 products per request. After each successful chunk it grows by 5% so faster servers process more per round trip. If a request times out or fails, the chunk size is reduced by 10% and the failed chunk is retried automatically at the smaller size. The optimal size is persisted per shop so subsequent operations start from the last known good value.

When execution completes, the overlay closes and a success message shows a breakdown: how many videos were added, updated, skipped, or failed.

If Keep settings after execution is checked, the form remains filled so you can immediately run the same operation again. Otherwise the form resets.

Saved Presets

Any combination of filters and action settings can be saved as a named preset for reuse.

To save a preset:

  • Check Save as preset before executing in the form footer before clicking Execute. A modal appears asking for a name. If you loaded an existing preset, you can update it in place or save as a new one.

To load a preset:

  • Click Load Saved Configuration above the form. A panel lists all saved presets for the current shop, sorted by most recently used, with the creator's name and a short summary. Click Load to populate the form with those settings.

Ownership: Any admin employee can view and load all presets saved for the shop. Only the employee who created a preset can edit or delete it.

Auto-Recovery

Immediately before execution starts, the current settings are saved silently as a special auto-recovery entry. If the browser is closed or the page is navigated away mid-operation, the next time any employee opens Bulk Video Management they will see a yellow Incomplete operation detected banner showing the timestamp of the interrupted run.

  • Click Load & Retry to restore the settings and re-run. Because the "skip duplicates" mode is the default for Add operations, products already processed in the previous run are skipped automatically.
  • Click Dismiss to discard the recovery data and clear the banner.

The recovery entry is deleted automatically when an operation completes successfully.

Usage Examples

Example: Add a brand video to all active products in a category

Set Category to "Select Specific" and choose "Outdoor Gear". Set Product Status to "Active only". Set Has Videos to "No" to target only products without a video. Enter the YouTube URL in Video URL and set Position to "First". Preview, confirm all 47 matching products look correct, then execute. The video is added to all 47 products; any that already had this video are skipped.

Example: Remove a discontinued video from all products

Select the Remove action. Leave Category as "All Categories" and set no other filters — the confirmation dialog will appear. Enter the exact video URL in Video URL (exact match) so only that specific video is removed (not all videos). Preview and verify the count, then execute. Position numbers for remaining videos are automatically reordered after deletion.

Example: Reuse a configuration for weekly catalog updates

After configuring filters and video settings for a regular import workflow, check Save as preset before executing and name it "Weekly New Arrivals". On subsequent weeks, click Load Saved Configuration, load the preset, update the Video URL field to the new video, and execute. One reload instead of filling the full form each time.

Important Notes

  • Video provider must be registered. If a URL uses a provider not in the allowed list (Catalog > Video Providers), the video URL field shows a validation error and previewing is blocked. A link to the provider configuration page appears in the error message.
  • Iframe embed codes are accepted. The URL is automatically extracted from the src attribute of a pasted <iframe> tag before it is stored.
  • Position numbers are relative per product. Setting position to "3" on a product that only has 2 videos inserts at position 3 (last). The position is clamped to the actual video count.
  • Language and shop scope. Setting Language to "All languages" writes a separate video record for each language. The same applies to "All shops" in multi-shop mode. A single bulk Add on a 3-language, 2-shop store creates up to 6 database rows per product.
  • Chunk size is global per shop, not per employee. If one employee's operation establishes an optimal chunk size, all subsequent operations on that shop benefit from it.
  • Presets are shop-scoped. Presets saved on one shop are not visible when operating from a different shop context.

Troubleshooting

ProblemSolution
"No products match the specified filters"Verify the filter combination. Using "Has Videos: No" together with a specific video URL filter produces zero results by design — these two filters are mutually exclusive.
Video URL field shows "Provider Not Allowed"The video's domain is not in the allowed provider list. Go to Catalog > Video Providers and add the provider, then return and re-enter the URL.
Operation times out or stalls on large catalogsThe chunk size auto-reduces on timeout and retries. If it keeps failing, check the server's PHP max_execution_time and memory_limit settings. The minimum chunk size is 25 products.
Progress bar reaches 100% but "failed" count is highUsually means some products have a database constraint violation. If "Skip duplicates" is active, those are counted as "skipped" not "failed". "Failed" indicates a database write error — check PS error logs.
Recovery banner appears every time the page loadsA previous operation did not complete. Either load and retry, or dismiss to clear the recovery data. If the banner keeps returning, check that the AJAX request is not being blocked by a firewall or security plugin.
Preset loaded but video URL field is emptyThe preset was saved during an Update or Remove operation, which uses a filter URL rather than an Add URL. This is expected — fill in the new target URL before executing.

Frequently Asked Questions

How many products can I update in a single bulk operation?

There is no hard limit. The operation processes products in chunks and adapts its chunk size to your server's speed, so even catalogs with tens of thousands of products will complete — just over more requests. The minimum chunk size is 25 and the maximum is 2,000 products per request.

Will the operation skip products that already have the video I'm adding?

By default, yes. The **If video already exists** field is set to "Ignore", which skips any product that already has an identical video URL. You can change it to "Update" if you want to overwrite the existing video's title, position, or visibility settings instead of skipping.

What happens if I close the browser while the operation is running?

Your settings are saved automatically just before execution begins. The next time you (or any admin employee) opens the Bulk Video Management page, a yellow banner will appear offering to reload those settings and retry. Products that were already processed in the interrupted run will be skipped on retry because the default behavior ignores duplicate URLs.

Can I limit the operation to only one language?

Yes. When your store has more than one active language, a **Language** selector appears in the filter section. Choose a specific language to write only to that language's video records. Set it to "All languages" to write a record for every language simultaneously.

Can I undo a bulk remove operation?

No. Remove operations permanently delete the video records from the database and cannot be undone from the Back Office. Always use the preview step to verify the product list before confirming a remove operation.

Do saved presets carry over between shops in a multi-shop setup?

No. Presets are scoped to the shop they were created on. When you switch shop context, you will see only the presets saved for that shop.

  • Video Import / Export — CSV-based bulk import for adding videos with more per-video control (title, language, position per row)