How to set up the returns portal
The returns portal is a self-service page on your storefront where customers look up their order and request a return themselves. You publish it by pasting a portal token generated in OrderKrab into your store — a theme app block on Shopify, a block or a shortcode on WooCommerce. No code either way.
- 1
Before you start: the returns portal is a PRO feature — on the LABELS plan the sidebar entry opens an upgrade screen instead. Your store has to be connected to OrderKrab and you need at least one shipping carrier connected. On Shopify your theme has to support app blocks — any Online Store 2.0 theme does; on WooCommerce you need the OrderKrab plugin on 1.4.0 or newer. You also need a return carrier for every country you accept returns from, which is step 4 below.
- 2
In the sidebar, click Returns Portal and open the Settings tab. Set the return eligibility window — how many days after the order a customer may still start a return (default 14). It saves as soon as you click outside the field.
- 3
In the Instant return approval card, decide whether to switch on Auto-approve return requests. On, the buyer gets a return label and a confirmation email the moment they submit, EU-withdrawal style; off, every request waits for you on the Requests tab. The setting saves immediately, with a Returns settings have been saved. confirmation.
- 4
Set up return shipping for every country you accept returns from. The map lives under Shipping → Returns, and the same Shipping configuration card is repeated here on the Settings tab — either one edits the same setting. Click a country, pick a Return carrier and Return method, then Save. A country you skip cannot produce a return label at all — see how to set up return shipping for each country.
- 5
In the Returns portal tokens card, find your shop's row and click Generate token — the token is created and copied to your clipboard automatically. Use Copy if you need it again later.
Select your store platform
- 6
Switch to your Shopify admin and go to Online Store → Pages → Add page. Name it something customers will recognise, like Returns, and save it.
- 7
Go to Online Store → Themes → Customize, then use the template dropdown at the top of the editor to open the page you just created.
- 8
Click Add section (or Add block inside an existing section) → Apps → Return portal.
- 9
Under Connection, paste your token into Portal token. Leave Return portal URL as https://returns.orderkrab.com unless OrderKrab has given you a different address. The setup placeholder in the preview is replaced by the live portal.
- 10
Under Display, set the Max width (default 1200 px), the Iframe height (default 900 px — pick a height tall enough that the portal doesn't scroll inside itself) and the Default language: Match storefront language follows each customer's locale, or pick one of the 10 fixed languages. Under Colors, match the portal to your brand — leave any color empty to keep the portal's own default.
- 11
Click Save, then add the page to your storefront menu in Content → Menus. Test it on your live storefront with a real fulfilled order number and that customer's email — you should reach Select items to return, and the request then appears on the Requests tab in OrderKrab.
- 6
Switch to your WordPress admin and go to OrderKrab → Returns. Paste your token into Portal token. Leave Return portal URL as https://returns.orderkrab.com — it is read-only by default, the same protection the API base URL has.
- 7
Still on that tab, set the Max width (default 1200 px), the Iframe height (default 900 px — pick a height tall enough that the portal doesn't scroll inside itself) and the Default language: Match site language follows the visitor's locale and is WPML/Polylang-aware, or pick one of the 10 fixed languages.
- 8
Under Return Portal Colors, match the portal to your brand — leave any color empty to keep the portal's own default. Click Save changes.
- 9
Create the page customers will use: Pages → Add New, name it something recognisable like Returns, and add the OrderKrab Return Portal block. On the classic editor or a page builder, paste the shortcode [orderkrab_return_portal] instead — both render the same portal from the settings you just saved.
- 10
Publish the page, then add it to your storefront menu under Appearance → Menus or the site editor's navigation block. Test it on your live storefront with a real fulfilled order number and that customer's email — you should reach Select items to return, and the request then appears on the Requests tab in OrderKrab.
Good to know
- When the return label is created, OrderKrab creates a Return on the Shopify order with the label attached as a reverse delivery, and Shopify emails the customer the label and tracking. OrderKrab then marks the request Customer notified.
- That Shopify email needs the returns permission on the OrderKrab app. Stores connected before that permission existed keep fulfilling normally but cannot push returns back to Shopify — the dashboard then shows A connected store is missing Shopify permissions. Open Settings → Apps and sales channels → OrderKrab in your Shopify admin, accept the updated permissions, and the warning clears after the next nightly check.
- A dashed Set the Return portal URL and Portal token placeholder means one of the two Connection settings is still empty — and on Shopify that placeholder is public, so finish the setup before you link the page from your menu.
- The portal itself — the Returns Portal page, its Requests tab and its settings — is a PRO feature. Return shipping per country is not: that map also sits under Shipping → Returns, which every plan has, so a LABELS store can still issue return labels from an order.
- The portal only works when it is opened from your storefront — the app block, block or shortcode is what passes the token into the iframe. Opening returns.orderkrab.com directly shows "This return portal isn't authorized".
- A customer can only start a return when the order is fulfilled, falls within the return window, has no return request yet, and contains at least one item that still accepts returns — products can be excluded individually.
- Regenerating the token breaks the old one immediately — paste the new value into your store straight away, or the portal stops finding orders.
- The token never expires, and its value is never shown on screen; it only goes to your clipboard.
- Instant approval still needs a return carrier for the buyer's country. Without one the request is created but the label is not: it stays Pending with a Label problem badge, so configure the countries you sell to before switching it on.
- Refunds are never issued automatically. Instant approval covers the return label and the confirmation email, nothing more.
