Generate and safely apply URibbon product content from Medusa v2 Admin.
URibbon Product Content integration for Medusa v2 Admin. Version 0.1.0 is validated with Medusa 2.19.0.
Register the plugin in your Medusa application's :
The plugin includes a persistent settings module. After installation and registration, run the normal Medusa migration command from your Medusa application:
npx medusa db:migrateOpen Settings → URibbon in Medusa Admin and configure:
The plugin validates the connection server-side and retrieves only the Brands available to the API-key tenant. Supported language options come from the Medusa Store's configured locales.
If Medusa image URLs are not reachable from URibbon, the optional server environment variable can specify the externally reachable Medusa or CDN origin.
On a product detail page:
Generation does not update the product automatically. Apply remains limited to the selected base-product title, subtitle, and description fields. If the product changed after generation, the atomic stale-product check rejects Apply with HTTP 409 and .
The API key is submitted to an authenticated Medusa Admin endpoint and stored server-side. Normal settings responses expose only whether a key is configured; the saved raw key is never returned to Medusa Admin or browser code.
Version 0.1.0 does not encrypt the API key at rest. Protect access to the Medusa database and backups accordingly.
The plugin declares the content that its current Medusa destination path actually consumes. Contract v1 covers only URibbon , , and , which Apply maps to the Medusa product title, subtitle, and description.
Localized content capability uses the existing Medusa Store locale discovery; runtime locale values are not embedded in the static contract. Medusa operational fields—including price, inventory, currency, sales channels, product status, categories, collections, internal IDs, variants, and fulfillment, tax, or location data—remain Plugin and Medusa responsibilities and are excluded from Contract v1.
A future Draft Product importer may expand the destination contract under a later contract version. Ready-product retrieval and Draft Product import are not implemented in this phase.
When valid connection settings and an authorized Brand are saved, the plugin registers the current contract through . Registration uses the server-side API key and is not performed on Admin page loads. A newly created registration and an idempotent same-version/same-hash registration are both successful. URibbon rejects the same contract version with a different hash; the plugin does not change the contract version automatically.
Creating a Draft Product from an approved publication re-fetches the exact publication server-side and uses its stable Product Workspace identity for duplicate protection. ImportReceipt is not implemented yet, so a successfully created Draft may remain in Ready from URibbon; repeated creation returns the existing product instead of creating a duplicate.
npm install @uribbon/medusa-plugin1import { defineConfig } from "@medusajs/framework/utils"2
3module.exports = defineConfig({4 plugins: [5 {6 resolve: "@uribbon/medusa-plugin",7 },8 ],9})