Epox Connector for WooCommerce

Description

This plugin is the store-side half of the Epox integration. Install it on your WooCommerce
store and Epox can publish generated images and video straight into your products, reusing
the WooCommerce API key you have already issued — there is nothing extra to configure.

It exists because the generic WooCommerce product endpoint cannot express what the
integration needs. Without this plugin, publishing one image takes three round trips
(upload, attach, verify) and WooCommerce re-downloads the file itself, which fails on some
hosting stacks and can leave duplicates behind on a retry. With it, the whole operation
happens once, on your server, in a single transaction.

What it adds:

  • One call per sync. Download, media-library registration, gallery placement and
    metadata all happen server-side in one request.
  • Safe retries. Every media item carries an idempotency key. If Epox retries a sync,
    the plugin returns the attachment it already created instead of importing a second copy.
  • All-or-nothing. If any part of a sync fails, attachments created during that request
    are removed. A failed sync leaves no orphans in your media library.
  • Video support. Product video can be imported and linked to your gallery plugin’s
    metadata, which the standard WooCommerce product API has no way to express. The video file
    itself can be imported into your media library — not just referenced by URL — verified
    against “WooCommerce Gallery Slider” (gallery-slider-for-woocommerce, formerly WooGallery).
  • Variation images. One generated image can be assigned across several variations
    without importing it more than once.

Endpoints

All routes live under epox/v1 and authenticate with your existing WooCommerce
Read/Write API key.

  • GET /wp-json/epox/v1/status — reports the plugin version and capabilities.
  • POST /wp-json/epox/v1/media-sync — import media and attach it to a product or its variations.
  • POST /wp-json/epox/v1/media-detach — remove synced media from a product.

Installation

  1. Upload the plugin zip via Plugins Add New Upload Plugin, or extract it into
    wp-content/plugins/.
  2. Activate Epox Connector for WooCommerce. WooCommerce must already be active — WordPress
    will tell you so and block activation otherwise.
  3. In Epox, connect the store as usual using a WooCommerce API key with Read/Write
    permissions. Epox detects the connector automatically.

There are no settings screens. If the plugin is deactivated, Epox falls back to the
standard WooCommerce API and keeps working. Deleting the plugin removes only its own
settings — media it has already imported into your library is never touched.

FAQ

Do I need a separate API key or password?

No. The plugin registers its routes with WooCommerce’s own authentication, so the
consumer key and secret you already gave Epox authorise these endpoints too.

What permissions does it require?

The API key’s user must be able to edit products (shop manager or administrator, with a
Read/Write key). Every request is also checked against the specific product being changed.

My gallery plugin shows videos from a custom field. Will this work?

Probably, and if not it is one filter away. The plugin writes the video URL to its own
_epox_video_url field plus a configurable list of third-party keys — wcgs_video and
_product_video_url by default. To target a different key, add to the
epox_video_meta_keys filter or set the epox_video_meta_keys option.

wcgs_video is not a guess: it is the exact key "WooCommerce Gallery Slider" reads off the

gallery image’s own attachment (get_post_meta( $image_id, 'wcgs_video', true )), confirmed
against that plugin’s real source.

Does the video need to already be hosted somewhere, or can Epox upload it here?

Either. Send video_url (a string) to point at an already-hosted video — nothing is
downloaded, the URL is written to your gallery plugin’s meta as-is. Send video (an object
with a url) to have this plugin import the video file itself into your media library, the
same way it imports images, then write that attachment’s own URL as the meta value. The
two are mutually exclusive on one media item.

Will it delete my own product photos?

No. Removal only ever deletes files this plugin imported; anything you uploaded yourself
is detached from the product but left in your media library.

Can it fetch media from anywhere on the internet?

Only over HTTPS, and only from public hosts — WordPress’s own URL safety checks apply. To
restrict it further to specific hostnames, use the epox_allowed_media_hosts filter.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Epox Connector for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.1

  • media-detach with delete_files now also removes the video file an imported thumbnail
    points at. Previously only the thumbnail itself was deleted, orphaning the raw video
    attachment in the media library on every video removal.

1.1.0

  • media-sync items accept a video object (in addition to the existing video_url
    string) to import the video file itself into the media library — not just reference an
    already-hosted URL — then write the imported attachment’s own URL as the video meta.
    Idempotent and rolled back atomically along with its thumbnail, same as everything else.
    New video_upload capability reported by status.

1.0.0

  • Initial release: status, media-sync and media-detach endpoints, idempotent media
    import, atomic rollback, video metadata bridging and variation image assignment.