WordPress + WooCommerce plugin that connects your store to OctavaWMS. It already includes shipping label generation and download, one-click connect to provision credentials on the OctavaWMS cloud, and is structured so we can add more features over time.
- WordPress 6.0+
- WooCommerce 7.1+ (recommended: enables HPOS compatibility for order edit links)
- PHP 8.1+
- HTTPS in production (required for the one-click connect flow, except on localhost)
- (Optional) Composer, to use the PSR-4 autoloader: run
composer installin the plugin directory.
- Copy this folder to
wp-content/plugins/octavawms-woocommerce(or your chosen slug). - (Optional) From the plugin directory:
composer installto generatevendor/autoload.php. If you skip this, the plugin still loads a built-inrequirelist of classes. - In WordPress, activate OctavaWMS Connector under Plugins.
- Go to WooCommerce → Settings → Integrations → OctavaWMS Connector.
- Click Connect to OctavaWMS. The plugin will POST to the connect URL (default:
https://pro.oawms.com/apps/woocommerce/connect— override in Connect service URL or via theoctavawms_connect_urlfilter). - On success, the Label endpoint URL and API key are stored; click Save changes on the form if the fields are open.
If you are self-hosted or were given values by your operator:
| Setting | Description |
|---|---|
| Connect service URL | Optional. Overrides the default one-click POST target. |
| Label endpoint URL | Full URL that accepts the label request (POST JSON {"externalOrderId":"…"}) and returns PDF, a JSON labelUrl / labelBase64 payload, or a binary stream. |
| API key | Optional Bearer token sent as Authorization: Bearer … to the label endpoint. |
| Meta key | Purpose |
|---|---|
_octavawms_external_order_id |
If set, sent as externalOrderId to the label API. If empty, the WooCommerce order key is used. |
_octavawms_label_url / _octavawms_label_file |
Written when a label is generated: remote URL and/or a local file path in uploads/octavawms-labels/. Do not set these manually. |
On activation, the plugin creates (if possible) a .htaccess in wp-content/uploads/octavawms-labels/ to block direct web access. On Nginx, deny direct access to that directory yourself (e.g. location ~* /octavawms-labels/ → return 404 or deny all as appropriate for your config).
- Bulk label actions on the order list
- In-admin service point and parcel/place management blocks
- Storefront or checkout customisation, post-thank-you rate pickers, or theme popups
- Shopify Functions (delivery “hide / rename” rules) — not applicable to Woo
- Per-request OAuth refresh — you get a long-lived API key; no rotating refresh token in the plugin
octavawms_default_connect_url— default one-clickPOSTbase URL.octavawms_connect_url— full connect URL, receives( $url, $home_url ).octavawms_require_https_for_connect—bool(defaulttrueexcept localhost) to require HTTPS for connect.
In the integration-woocommerce package:
POST /apps/woocommerce/connect— registers the store, creates/updates a source, issuesauth.pluginApiKeyin protected settings, returnslabelEndpointpointing to.../api/label.POST /apps/woocommerce/api/label—Authorization: Bearer <pluginApiKey>; forwards the body to the URL in application configoctavawms_woocommerce.label_proxy_urlwhen the label backend is on another host. Configure that in the host application.
Proprietary (OctavaWMS).