Ingrid Shopify app · 20 October 2026
Overview
Advanced Checkout reuses an Ingrid delivery session carried on Shopify cart lines and adds checkout context. Non-advanced mode creates a new session when calculating rates. Enable and test the change in a separate store before moving the live store.
Advanced Checkout and the Headless API are separate upgrades. Advanced mode does not automatically switch APIs, add a pickup selector or change shipping codes. The feature list below shows which setup enables each benefit.
What Advanced Checkout enables
Session reuse and the Apple Pay integration path. The checkout extension writes a session reference to cart lines. The intended Apple Pay setup also needs the cart-page Apple Pay Widget; wallet entry points require testing.
More context for delivery rules. Share customer email for customer-tag lookup when app tag sync is enabled, and optionally share checkout cart value. Choose whether gift cards and digital items count toward that value. Sharing cart value is off by default.
Timezone and split delivery context. Share the browser timezone for delivery-time presentation and identify multiple delivery groups. Headless still creates separate sessions for split rate requests.
Optional external shipping codes. Use a carrier external method ID instead of an Ingrid code. This is a separate setting and requires downstream compatibility checks.
Breaking changes to check
Cart properties. Custom cart, bundle and reorder integrations must preserve the session reference during checkout and avoid reusing a completed order’s session for a new purchase.
Pickup selector when enabled. The code ends in [pickup] instead of a pickup-point ID. Read Ingrid External ID (Pickup Point ID) from the completed order. These fields are added after order creation, so fulfillment must wait for them.
External method IDs when enabled. The bare shipping code contains no session, price or pickup ID. Update any parser or routing rule that expects bracketed values. Headless carrier bundling is disabled with bare codes.
Headless API when migrating separately. Update session API calls and completed-session JSON readers. Bracketed method codes gain a category|carrier-product identifier and Headless session IDs use VM2-. Keep this API migration separate from the advanced toggle.
Shipping line code examples
Shopify saves the selected shipping code in shipping_lines[].code. Enabling Advanced Checkout alone does not change its format. The examples below show the separate changes merchants may adopt alongside it. IDs are illustrative; the ingrid prefix may differ in your store. In this SEK example, 500 means SEK 5.00.
Before — legacy API with a separate rate for each pickup point
ingrid[b5e65651-b429-41f1-ad8f-6db1298c6ae1][dhl-svp][500][SE12345]
The brackets contain the session ID, shipping method, price in minor units, and pickup-point ID.
After enabling Advanced Checkout only — the same format
ingrid[b5e65651-b429-41f1-ad8f-6db1298c6ae1][dhl-svp][500][SE12345]
The format stays the same; actual session IDs depend on the checkout.
After also enabling the pickup selector — the last bracket becomes pickup
ingrid[b5e65651-b429-41f1-ad8f-6db1298c6ae1][dhl-svp][500][pickup]
The chosen point is now saved separately on the order. pickup is a marker, not a pickup-point ID.
After also migrating to Headless — the session and method identifiers change
ingrid[VM2-511da702662a4c2b92a2674bdcea3089][dhl-pickup-5857dc86a5a84b6d80018d74c7314ea6|dhl-svp][500][pickup]
The method bracket combines the delivery category and carrier product, separated by |. This example keeps the pickup selector enabled.
If Use external method id as shipping code is enabled, the entire value becomes a bare carrier code, for example dhl-svp when configured as that external method ID. The bracketed information is no longer included. Migrating to Headless does not add category or session information to this bare-code format.
Ingrid data in the order additional details
Ingrid saves delivery information as named fields in the Shopify order’s Additional details, sometimes referred to as additional notes. These are order attributes (note_attributes in REST or customAttributes in GraphQL), separate from the free-text order note.
Field | What it contains |
| The completed delivery’s transport order reference in Ingrid. |
| The selected carrier product or shipping method. |
| The configured external carrier method ID, when available. |
| The chosen pickup point’s external ID. Use this for pickup routing instead of extracting the point from the shipping code. |
| Pickup selection details: point reference, display name and address stored as JSON, when a pickup selection is saved. |
| The start and end of a selected absolute delivery slot, when applicable. |
| The customer number collected for an applicable pickup service, such as DHL Packstation. |
| Completed-session JSON, unless the merchant has disabled storing it on orders. Its structure differs between legacy and Headless APIs. |
Fields depend on the delivery service and selection; a home-delivery order will not need a pickup-point ID. Additional completed shipments can have prefixed fields such as (Split 2) Ingrid Transport Order ID. Some services also save service-specific data, such as an Instabox availability token on the legacy integration.
Allow time for Ingrid to update the order
There may be a delay between checkout completion and Ingrid adding the final data to Shopify. Ingrid completes the delivery session and then updates the order separately. The original order-created event can therefore arrive before the transport reference, selected method or pickup data is available. This also applies when payment has already succeeded.
Do not treat missing fields immediately after checkout as a failed migration, or assume that a fixed delay guarantees completion. Import the order when the fields your fulfillment process needs are present. For pickup orders, this normally includes a valid transport order reference, shipping method and pickup-point ID. Check every relevant shipment on split orders.
Use Shopify Flow to delay the ERP or fulfillment handoff
If your ERP, WMS or 3PL imports orders too early, consider a Shopify Flow workflow that releases orders only after the required Ingrid data is available:
Start with Order created, restricted to orders using Ingrid shipping.
Add a Wait step, for example one minute as an initial setting to validate in the test store. This is an example, not a guaranteed Ingrid processing time.
Check the refreshed order attributes. Require a populated
Ingrid Transport Order IDthat is notunknown, anIngrid Shipping Method, and the pickup-point ID or other fields required for that shipment. Match each attribute’s name and value together.When ready, add a tag such as
ingrid-ready-for-export. Configure the receiving connector to import only tagged orders, or use its supported Flow action to start the handoff.If data is still missing, keep the order pending. Add another Wait and condition step. If the fields remain missing after your agreed retry window, flag the order for review instead of exporting incomplete delivery data.
Shopify refreshes workflow data after a Wait step. See Shopify Flow Wait and Add order tags.
The receiving integration must respect this release step. A Flow delay does not stop a separate connector from importing directly on order creation. Agree the tag filter or handoff mechanism with the ERP/WMS/3PL provider before activation, and prevent duplicate imports. Also retain any existing payment and fulfillment eligibility checks.
Features available with the full checkout setup
These are the related capabilities in the current app. Enable only the features you need. Headless and checkout UI features are not all unlocked by the Advanced Checkout toggle.
Feature | Merchant benefit and requirements |
Delivery estimates | Headless supports localized dates and relative estimates in days, business days, weeks, months, hours and minutes; date ranges, timespans and custom text can replace the default estimate. |
Delivery days and time slots | Shoppers can choose available delivery days and time slots where the carrier and Ingrid configuration support them. Requires Headless and the Pickup Points Location extension. |
Pickup maps and lists | Choose a point in a map or list, show distance and point-specific estimates where available, and preselect the closest point. Add Thank You to show the chosen pickup address and map after purchase. Requires the pickup UI setting and extensions. |
Delivery labels and icons | Show Express, sustainability, Nordic Swan or custom labels, with supported Phosphor icons and configured colors. Requires Headless and Delivery Labels or Delivery Details. Shopify maps label text colors to supported tones. |
Carrier logos and delivery details | Show carrier branding. Delivery Details combines estimates, logos and available labels in one row. Add the matching extension before enabling its setting; requires the new checkout UI setting. |
Bundled carrier options | Headless can group same-price carrier products into one choice, with a shared pickup map or carrier and day choices. Separate product rates can include carrier product names. Bundling requires external method IDs to be off. |
DHL Packstation customer number | Collect the required customer number for configured DHL pickup products and save it on the order. Requires Headless and the pickup extension. Express and wallet collection has a documented limitation. |
Other settings available in the current app
Merchants can use a b2b delivery-rule attribute when a company name is supplied, keep completed-session JSON off Shopify orders, choose whether pickup orders retain the customer’s shipping address, and merge a house number from address line 2 when sending an address to Ingrid. These settings are separate from advanced mode, and several also work on the legacy API.
The app also contains logging and order-completion safeguards. These are app-version improvements, rather than benefits that require the advanced toggle. Future planned features should be checked in Ingrid’s product roadmap.
Test separately and migrate
Use a separate Shopify staging or development store as the default. Keep the production store unchanged while preparing and testing the migration. Checkout extensions at the shipping step require Shopify Plus; choose an appropriate test-store plan. Shopify checkout extension requirements.
Arrange a test environment. Use an existing staging store or create a dev store using Shopify’s dev-store guide. Install Ingrid and ask your CSM or support to confirm access, the backend API and test credentials. Include both test and production .myshopify.com URLs. Use test payment and carrier setups; dev stores cannot process real transactions.
Match the relevant live setup. Copy representative products, shipping markets, discounts, theme customizations and fulfillment mappings. Connect test versions of the ERP or WMS where possible. Record the current app settings for rollback.
Enable Advanced Checkout in the test store. Enable the Advanced Checkout extension in Shopify’s checkout editor and Enable Advanced Checkout Integration in Ingrid’s Additional settings. For Apple Pay, also add the Apple Pay Widget to the cart template. Initially keep the current pickup UI, shipping-code format and cart-value settings.
Enable optional features one at a time. For pickup selection, add Pickup Points Location and Thank You before enabling the new checkout UI setting. Update affected code parsers first. Add Delivery Details before switching its setting on. Ask Ingrid to enable Headless separately if needed for the selected features.
Complete the acceptance checks. Test home delivery and pickup through to an Ingrid transport order and label booking in the test environment. Check the chosen carrier, pickup point, charge and ERP or WMS result. Also test discounts, currencies, mixed physical and digital carts, address changes, split shipping and your actual wallet entry points where supported. Verify the before-and-after shipping codes, the additional order fields, and that any Flow-based release waits for Ingrid data before the receiving system imports the order.
Schedule production activation with Ingrid. After the test store passes, apply the verified settings and compatible downstream changes to the live store in an agreed window. Monitor the first orders. If a wallet flow cannot be reproduced in the test store, agree a narrowly scoped final verification with Ingrid after the other tests pass.
Essential checks before sign off
Verify that cart quantities, custom properties and subscriptions remain correct after the Apple Pay Widget loads. Do not assume regular checkout pickup selection or DHL customer-number collection works inside every wallet.
Confirm that fulfillment waits for the required Ingrid order fields. If issues occur, pause activation and restore the recorded app, checkout, theme and downstream settings together. Reconcile orders already placed before retrying or rebooking.
