Official XMPie Widgets - XMPieLab/uStore-NG GitHub Wiki

Official XMPie Widgets

Welcome to the official collection of widgets developed and maintained by XMPie for use with uStore. These widgets are designed to enhance the store experience for both administrators and end users, and are fully supported in production environments.

Widgets listed here are:

  • Developed or approved by XMPie
  • Compatible with current uStore versions
  • Provided with documentation and SDKs for customization

Adobe Express Widget

Status: Production-ready
Compatible with: uStore 26.2 and above
Purpose: Enables customers to create or edit designs using Adobe Express directly from the store interface, in Easy Upload products.

uStore 26.3 (React 19): the widget package you upload in uStore admin contains no React of its own — it binds to the storefront's React at load time. Widgets installed on 26.2 keep working on 26.3 without being re-uploaded. Only the SDK, which is a source project with its own dependencies, has a separate 26.3 download.

Alt

Setup Instructions

  1. Download the Widget ZIP and upload to uStore

  2. Enable in Store Theme

    • Go to Customize Theme for the relevant store
    • Under Widgets, click Add Widget, select Adobe Express and assign it to the available slot
  3. Configure settings

    • The settings are in JSON format, and the full documentation is available below.
    • You should leave the "Adobe API key" field empty.

Downloads:

  • Adobe Express Widget - upload to uStore Widget Preset to install and use. Works on uStore 26.2 and above.

  • Adobe Express SDK - download, unzip and refer to readme.md file to customize or develop:

    uStore version SDK Node.js
    26.3 and above AdobeExpress_sdk_26.3.zip 24
    26.2 and below AdobeExpress_sdk.zip 16 and above

    The 26.3 SDK is a separate download because both the Node floor and the React version changed. See Develop your own widget for what differs.

Developer Notes

  • The widget supports customization of button labels and descriptions
  • Only one slot is supported per store
  • Mobile browsers are not supported due to Adobe Express limitations
  • The widget uses the shopper's Adobe Express account for authentication

Documentation

Official Adobe Express uStore widget documentation, for store set up and for hiding in specific products.

Requirements

  • HTTPS on the uStore server is required. The Adobe Express widget is served from https://ustore-express.xmpie.net. Because that page runs over HTTPS, the browser will not let it call your uStore server over plain HTTP (mixed content). The widget therefore upgrades the uStore API address from http:// to https:// automatically, and the call fails if your server does not answer over HTTPS.
  • The shopper's browser reaches the uStore server directly. The login and redirect calls are made client-side, from the browser, not server-to-server from ustore-express back to uStore. Your uStore server does not need to be exposed to the public internet, but it does need a working HTTPS endpoint that the browser can reach.
  • Use a hostname that matches the SSL certificate. A single-label machine name such as win2022 will not match a certificate and will fail validation. Use a fully qualified domain name (for example store.example.com) bound to a certificate that covers that name.
  • Self-signed certificates must be trusted on the client machine (added to Trusted Root Certification Authorities), otherwise the browser rejects the call.

This most often affects internal development and staging servers, which are commonly set up with HTTP only. The widget will not initialize on an HTTP-only server.

Troubleshooting

Symptom: The widget shows Initialization failed / Failed to fetch, and the browser console shows:

  • [AdobeHandler] Upgraded apiBaseURL from HTTP to HTTPS: http://<server> -> https://<server>
  • Failed to load resource: net::ERR_CONNECTION_REFUSED on a /store/sso/login request
  • Initialization failed: TypeError: Failed to fetch at loginBySsoToken

Cause: Your uStore server is not answering over HTTPS, so the upgraded request is refused.

Fix:

  1. Add an HTTPS binding (port 443) to the uStore site in IIS with a valid SSL certificate.
  2. Make sure the certificate matches the hostname used to reach the store (use an FQDN, not a single-label name).
  3. If the certificate is self-signed, import it into Trusted Root Certification Authorities on the client machine.
  4. Access the storefront over HTTPS using that FQDN, so the widget receives an HTTPS API address.
  5. Reload the storefront and open the Easy Upload product again.

The 403 on favicon.ico seen in the console is unrelated and can be ignored. If, after enabling HTTPS, you get a CORS error instead of connection-refused, that is a separate cross-origin configuration step on the uStore REST API.

Coming Soon

  • Custom HTML & CSS Widget (Pending approval)
⚠️ **GitHub.com Fallback** ⚠️