Skip to content

Integrate the Python Image Optimisation Engine into the Minicart Widget #63

Description

@digitalrisedorset

Summary

Enhance the Minicart widget to use the Python Image Optimisation Engine, allowing product images to be optimised transparently while maintaining the existing customer experience.

Motivation

The Minicart displays dynamic product images that may not have been optimised previously. By reusing the Python Image Optimisation Engine, the widget can benefit from the same optimisation pipeline as the Product Gallery, ensuring consistency across ReactEdge widgets.

Objectives

  • Integrate the Minicart with the Python Image Optimisation Engine.
  • Optimise product images asynchronously.
  • Preserve the current rendering behaviour and responsiveness.
  • Reuse the common optimisation pipeline without introducing widget-specific logic into the Python engine.

Functional Requirements

The Minicart shall:

  • Detect whether an optimised image is available.
  • Display the original image when no optimised version exists.
  • Trigger asynchronous optimisation through the Python engine.
  • Continue rendering without waiting for optimisation to complete.
  • Automatically use optimised images on subsequent requests once they become available.
  • Prevent duplicate optimisation requests for the same image.

Non-functional Requirements

  • No degradation of Minicart performance.
  • No interruption to the checkout experience.
  • Integration must rely solely on the public API exposed by the Python engine.
  • Optimisation failures must not affect the Minicart.

Out of Scope

  • Manual approval workflow.
  • Notification pipeline.
  • CDN integration.
  • Mage-OS integration.
  • Optimisation of additional widgets.

Acceptance Criteria

  • The Minicart successfully delegates image optimisation to the Python engine.
  • Original images are displayed immediately when no optimised version exists.
  • Image optimisation occurs asynchronously.
  • Optimised images are used automatically on future requests.
  • Duplicate optimisation jobs are avoided.
  • The Minicart remains fully functional if the Python engine is unavailable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    No fields configured for Task.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions