Staging and preview

Staging changes

Staging captures your content changes and adds them to a release. Instead of saving to the live store, you make your edits in the Magento admin as usual and choose Save & Stage from the MageDrop button, which sends just the changed fields to MageDrop.

The MageDrop button

Once the MageDrop_Magento2 module is installed and configured, a MageDrop button appears on these Magento admin edit pages:

  • CMS pages: ContentPages, then edit a page
  • CMS blocks: ContentBlocks, then edit a block
  • Categories: CatalogCategories
  • Products: CatalogProducts, then edit a product

Third-party modules can register their own edit forms and form sections with MageDrop, so a client-specific tab (a fabric configurator, for example) can be staged the same way.

The button sits in the top button bar, after Save. Its menu has three actions:

  • Quick Preview: preview your unsaved edits on the storefront, without a release.
  • Load from Release: load the changes staged in a release into the form, including images, related products, configurable and grouped children, category products and the store view's "Use Default Value" boxes, ready to stage again or save.
  • Save & Stage: stage the current form to a release.

How to stage a change

  1. Open the CMS page, block, category or product you want to change. For categories and products, switch to the right store view first if the change should only apply to one store view.
  2. Make your changes in the form as you normally would: update the title, edit the content, swap an image, and so on.
  3. Don't click Save. Leave your changes unsaved in the form.
  4. Open the MageDrop menu and choose Save & Stage.
  5. Pick the release to stage to and click Save & Stage.

If changes are detected, the page reloads showing the staged values, with a notice saying how many fields were staged and to which release. If nothing changed, you'll see "No changes detected" and the page stays as it is. Nothing is saved to the live store: the real save is intercepted and only the delta goes to MageDrop.

Only releases in Draft or Scheduled status appear in the release picker. You can't stage to a release that is already live or rolled back.

How the diff works

When you click Save & Stage, the module submits the real admin form with a MageDrop flag and intercepts Magento's own save. Instead of writing to the database, it works out a field-level diff:

  1. Runs the form through Magento's own initialisation, exactly as a normal save would, so custom attributes, images uploaded in the form and third-party sections are all included.
  2. Loads the live entity at the same store view: the values that store view actually shows today.
  3. Compares them field by field. Structured data (a product gallery, custom options, the products in a category) is compared as a whole.
  4. Sends only the changed fields, each with its type (text, image, structured data or "use default value") and the store view it applies to.

This approach has several benefits:

  • Minimal data transfer. Only deltas are stored, not full copies of your entities.
  • No conflicts with other edits. If someone changes a field you didn't touch, your staged change won't overwrite it at deploy time.
  • Transparent. The release page shows exactly which fields changed and what the new values are.

Filtered fields

Some fields are never staged, to avoid noise and unintended changes:

Excluded fieldReason
created_at, updated_atTimestamps that change on every save
form_keySecurity token, not content
page_id / block_id / entity_idPrimary keys that never change
identifier (CMS URL key)Changing it would break the page's URL and any widgets that load the block
sku, url_path, path, levelIdentity and tree structure, not content
Custom layout updatesLayout XML is code, not content
Available / default sort by, layered navigation price stepCategory display settings that follow "Use Config Settings"

Store views and "Use Default Value"

Categories and products are store-view aware. Stage from the All Store Views scope to change the default value, or switch to a store view first to stage a value for that store view only. Each staged change records its scope, and the release page shows it as a badge.

Ticking Use Default Value on a store-view form is staged too: on deploy the store-view override is removed so the default shows through, and rollback puts the override back.

Empty values on a store view. Magento treats an empty store-view value the same as "Use Default Value": an empty text at store-view scope falls back to the default. The release page warns when a staged change would do that.

Images

Images you upload in the form are moved to their final media location when you stage, so they can be previewed straight away, but nothing references them until the release deploys. The image itself never leaves your server; MageDrop stores only the path.

Viewing staged changes

After staging, open the release in the MageDrop dashboard. Every staged entity has its own card, with a badge for its store view and one row per changed field. Click a row to see the full diff of the old and new values; long content can be opened full screen.

Updating a staged change

To adjust a change you've already staged:

  1. Open the entity in the Magento admin again. Use Load from Release to start from the staged values.
  2. Make your additional edits.
  3. Choose Save & Stage again, with the same release.

The new values replace the ones staged earlier for that entity, store view and release.

Removing a staged change

On the release page, click the remove icon on a field's row to take that one change out, or choose Remove from release in an entity card's menu to remove all of its changes. This only changes the release: nothing in Magento is touched.

What can be staged

Entity typeStageable fields
CMS pagesTitle, content, content heading, meta title, meta keywords, meta description, page layout, status (is_active)
CMS blocksTitle, content, status (is_active)
CategoriesEvery attribute including custom ones (name, description, display mode, landing page block, navigation colours and so on), image and thumbnail, design fields, and the "Products in Category" assignments and positions. Store-view scoped.
ProductsEvery attribute including custom ones; the media gallery as a whole (new and removed images, labels, positions, the hide-from-product-page flag and the base, small, thumbnail and swatch roles); customizable options and their values; tier prices; related, up-sell and cross-sell links; category and website assignments; the child products linked to a configurable product. Store-view scoped where Magento supports it.

Not staged: stock and source quantities, bundle options and selections, downloadable links and samples, the URL key of CMS pages and blocks, creating new products (including new configurable variations from the matrix), changing which attributes a configurable product uses, and Magento's own scheduled design updates. Child products edited inside a configurable's variation matrix should be staged on the child product itself.

See Categories and products for more on catalog staging, and Custom data and extensions to make your own data stageable.

Something missing or unclear? Tell us and we will fix the page.