Skildring
OrderKrab for WooCommerce is a thin integration between WooCommerce and the OrderKrab fulfillment platform. It lets a WooCommerce store offer carrier-driven shipping rates and parcel locker selection at checkout, then keeps order state in sync with OrderKrab as the order moves through fulfillment.
What it does
- Adds a shipping method that returns rates from the OrderKrab API, including parcel locker pricing per carrier.
- Renders a parcel locker search field at checkout (native or Shopify-style block).
- Syncs newly created and updated WooCommerce orders to OrderKrab.
- Provides an hourly batch reconciliation for any orders that didn’t sync in real time.
- Receives webhooks from OrderKrab for order, product, and connection status updates.
- Embeds the hosted OrderKrab return portal on any page — via a Gutenberg block or the
[orderkrab_return_portal]shortcode — so customers can register returns without leaving the store. - Emails customers their return shipping label as a real WooCommerce email when a return is approved in OrderKrab, and records the return on the order.
Who it’s for
Stores that already use (or plan to use) the OrderKrab fulfillment platform to manage shipping with carriers like DPD, LP Express, Omniva, InPost, FedEx, DHL, and others.
External services
This plugin connects to the OrderKrab API (https://api.orderkrab.com) — the configured base URL is shown in the plugin’s Connection settings and can be overridden by store administrators.
What is sent and when:
- When a customer reaches checkout, the plugin sends the shipping destination (country, postcode, city) and cart contents to OrderKrab to retrieve available shipping methods and prices.
- When a customer searches for a parcel locker, the plugin sends the search query plus destination country/city to OrderKrab to retrieve matching locker locations.
- When an order is created or updated in WooCommerce, the plugin sends the order details (line items, shipping address, totals, selected shipping method) to OrderKrab so fulfillment can be coordinated.
- The plugin authenticates each request using an access token that the store administrator pastes into the plugin’s Connection tab.
- When a visitor opens a page containing the return portal block or shortcode, their browser loads the hosted OrderKrab return portal (
https://returns.orderkrab.com) in an iframe. The store’s portal token, the display language, and any theme colors configured under OrderKrab Returns are passed as URL parameters so the portal can identify the store and match its styling.
Why an external service is required: carrier rate calculation, parcel locker availability lookups, and label/tracking generation depend on real-time data from carriers, which is aggregated by OrderKrab and cannot be performed locally by the plugin.
Provider links:
- OrderKrab website: https://orderkrab.com
- Terms of Service: https://orderkrab.com/terms
- Privacy Policy: https://orderkrab.com/privacy
Skjermbilete




Blokker
Denne utvidinga gjev 1 blokk.
- OrderKrab Return Portal
Installasjon
- Upload the plugin ZIP via Plugins Add New Upload Plugin, or extract the folder into
wp-content/plugins/. - Activate the plugin through the Plugins screen in WordPress.
- Make sure WooCommerce is installed and active (the plugin requires it).
- Go to OrderKrab Connection in the WordPress admin, paste your OrderKrab access token, and click Connect to OrderKrab.
- Configure shipping methods and display options under OrderKrab Display.
Vanlege spm.
-
Do I need an OrderKrab account?
-
Yes. The plugin is a client for the OrderKrab fulfillment service; you’ll need an account and an access token to use it.
-
Does the plugin work without WooCommerce?
-
No. WooCommerce is a hard requirement; the plugin will not bootstrap if WooCommerce isn’t active.
-
What WordPress and PHP versions are supported?
-
WordPress 6.0 or higher and PHP 7.4 or higher.
-
How do I add the return portal to my store?
-
Generate a portal token in OrderKrab admin Returns Settings, paste it under OrderKrab Returns in WordPress, then add the «OrderKrab Return Portal» block (or the
[orderkrab_return_portal]shortcode) to any page. -
Where can I get help?
-
Reach the OrderKrab team via https://orderkrab.com.
Omtalar
There are no reviews for this plugin.
Bidragsytarar og utviklarar
“OrderKrab for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsOmset “OrderKrab for WooCommerce” til ditt eige språk.
Interested in development?
Les kjeldekoden, sjekk SVN-lageret eller abonner på utviklingsloggen med RSS.
Endringslogg
1.5.0
- Added inventory sync endpoints for OrderKrab warehouse customers.
GET /wp-json/orderkrab/v1/inventory/levelsreturns a paginated feed of products and variations with their stock fields (includingglobal_unique_idon WooCommerce 9.2+), andPOST /wp-json/orderkrab/v1/inventory/adjustmentsapplies batched relative stock adjustments atomically, with per-adjustment idempotency keys so a retried request can never move stock twice. Both endpoints use the same HMAC signature as the existing OrderKrab endpoints. - Stock changes (including order-driven reductions) are now reported to OrderKrab as debounced, batched events via Action Scheduler. Delivery is best-effort by design: failures are retried once per cycle and anything missed is corrected by OrderKrab’s nightly reconciliation. Can be disabled with the
orderkrab_wc_stock_events_enabledfilter. - Added a small database table (
orderkrab_inventory_adjustments) that records applied adjustment idempotency keys; it is created on update and removed on uninstall.
1.4.0
- Added a return portal embed, the WooCommerce counterpart of the OrderKrab Shopify return portal block. A new OrderKrab Returns tab holds the portal token (generated in OrderKrab admin Returns Settings), max width, iframe height, default language (auto = match site language, WPML/Polylang aware), and seven optional portal theme colors.
- The portal can be placed on any page with the «OrderKrab Return Portal» Gutenberg block or the
[orderkrab_return_portal]shortcode; both share one renderer, and height, max width, and language can be overridden per placement (e.g.[orderkrab_return_portal height="1100" lang="lt"]). - The embed reproduces the Shopify block’s behavior: same iframe URL contract (
shop_jwt,lang, color query parameters), forgiving URL handling (missing scheme, trailing slash), and a fit script that centers the iframe in the viewport at max width regardless of the theme’s content column. Front-end assets load only on pages that actually render the portal. - When no portal token is configured, the page shows a setup notice to store managers only — visitors see nothing.
- The OrderKrab admin menu now uses the OrderKrab logo mark as its icon instead of a generic dashicon (recolored automatically by WordPress to match the admin color scheme). The return portal block uses the same mark in the editor.
- The Return portal URL field is read-only by default, matching the API Base URL field’s protection against accidental edits.
- Added a return-creation endpoint (
POST /wp-json/orderkrab/v1/orders/{id}/return, HMAC-signed like the other OrderKrab endpoints). When a return is approved in OrderKrab, the plugin records it on the order (meta + order note) and emails the customer the return shipping label with a download button and tracking link. - The label email is a real WooCommerce email — «Return label (OrderKrab)» under WooCommerce Settings Emails — so it uses the store’s email branding and from-address, the subject/heading/additional content are editable, it can be disabled, and its templates can be overridden in the theme like any WooCommerce email.
- The return endpoint is idempotent per return request, so OrderKrab-side retries never email the customer the same label twice; if the email is disabled or fails, the order note says so and includes the label URL for manual handling, and OrderKrab admin shows the request as not customer-notified.
1.3.0
- Added a bulk order status endpoint (
POST /wp-json/orderkrab/v1/orders/status/batch) so OrderKrab can update up to 50 orders per request instead of one request per order. Batches are processed within a time budget and any orders not reached are returned asunprocessedfor the caller to re-send; item updates are idempotent, so re-sending is safe and produces no duplicate order notes. - The bulk endpoint reports per-order results and leaves orders that are already cancelled, refunded, or trashed untouched (
skipped_final_status). - Outgoing requests to the OrderKrab API now include an
X-Orderkrab-Plugin-Versionheader so the platform can detect per-store plugin capabilities.
1.2.6
- The API Base URL field on the Connection tab is now read-only by default. The default production endpoint (https://api.orderkrab.com) is shown but cannot be edited through the normal UI, protecting store owners from accidentally pointing the plugin at a different host.
1.2.5
- Added an orientation card and prominent «Open OrderKrab admin» button at the top of the Connection tab so store owners can reach the OrderKrab dashboard (admin.orderkrab.com) where fulfillment is actually managed.
1.2.4
- Fixed: «Connect to OrderKrab» still failed in 1.2.3 because
wc_rest_generate_keys()is not actually a public WooCommerce function in all installations. The plugin now falls back to inserting the WooCommerce REST API key row directly when WooCommerce’s helper is unavailable, mirroring how WC’s own admin UI generates keys internally. - The fallback no longer introspects the WooCommerce API keys table with
SHOW COLUMNS— it writes only the core columns and lets the database default any optional fields.
1.2.3
- Fixed: «WooCommerce REST helper unavailable» error when clicking Connect to OrderKrab. The plugin now loads
wc-rest-functions.phpon demand via WooCommerce’s ownWC()->plugin_path()getter (orWC_ABSPATHas a fallback). WooCommerce only auto-includes this file during REST API requests, not on every admin request, so a manualrequire_onceis needed before callingwc_rest_generate_keys()from an admin context.
1.2.2
- Removed code that filtered another plugin’s admin notices, per WordPress.org Guideline 11.
- Added an
uninstall.phphandler that removes the integration user, the WooCommerce REST API key row, and all plugin options when the plugin is deleted. - Added a per-IP transient rate limit to the public
/orderkrab/v1/shipping-pointsREST endpoint to protect against abuse of the merchant’s upstream API. - Replaced inline
file_get_contents()SVG output in the parcel locker search with<img>tags pointing at the bundled asset URLs, in line with WordPress’s escape-on-output rule. - Wrapper, style, and method-id attributes in the parcel locker search are now built and escaped at the point of output rather than passed through pre-baked attribute strings.
- Removed the manual WooCommerce REST API key fallback (and its
SHOW COLUMNSintrospection queries). With WooCommerce now declared as a hard dependency,wc_rest_generate_keys()is always available. - Removed the diagnostic
error_log()call that ran when WooCommerce REST helpers were unavailable. - Excluded screenshots from the production ZIP; they live in the WordPress.org
/assets/SVN folder instead.
1.2.1
- Declared WooCommerce as a formal plugin dependency via the
Requires Pluginsheader. - Removed an unreliable hardcoded fallback to
WP_PLUGIN_DIR . 'woocommerce/'when locating WooCommerce REST helper files; the plugin now relies on WooCommerce’s own getters andWC_ABSPATHconstant. - Renamed the main plugin file to match the plugin slug (
orderkrab-for-woocommerce.php). - Excluded the development-only
wp-stubs.phpshim from the published build.
1.2.0
- Activated the batch order sync (hourly reconciliation of pending/on-hold/processing orders).
- Refactored admin assets to use
wp_enqueue_style/wp_enqueue_script/wp_add_inline_style/wp_localize_scriptinstead of inline<style>and<script>blocks. - Fixed: API access tokens are now preserved verbatim instead of being passed through
sanitize_text_field(), which could silently corrupt valid tokens. - Modernized
register_setting()registration with explicittypeandsanitize_callbackkeys. - Removed the call to
load_plugin_textdomain(). WordPress automatically loads translations for plugins hosted in the directory since WordPress 4.6. - Added
defined( 'ABSPATH' )guard to template files that execute code on inclusion. - Removed the self-hosted plugin updater. Updates are now delivered through the WordPress.org plugin directory.
- Removed the
test-weight-logic.phpdevelopment test harness from the published plugin.
1.1.5
- Previous internally distributed release.