Integrations Hub — Operational Control Through System Connectivity

Stock "in the system" is meaningless if it doesn't exist on the shelf. And an integration isn't helpful if it turns every incident into a special case. This page covers how 3PL SPAIN connects operationally with eCommerce platforms, ERPs, OMS systems, and marketplaces to keep order sync, inventory sync, and shipment status consistent — so fulfillment stays predictable in the Valencia region, Spain.

  • Defined inputs
  • Controlled checks
  • Clear handoffs
Integrations Hub — Operational Control Through System Connectivity

OVERVIEW

OVERVIEW

Integrations as operational control, not automation for its own sake.

Most stable integrations depend more on definitions than on "automation." The places where integrations fail are almost never in the API speed or the webhook latency. They fail because ownership is unclear — does the eCommerce system or the ERP own the inventory? When does an order move from "received" to "ready to pick"? What happens if the system says an order is shipped but the proof never arrives?

An integration that works is one where:

  • Objects have clear ownership. Each critical entity — order, SKU, inventory, shipment, return — has one authoritative source and well-defined transition rules. When multiple systems claim ownership, control disappears.
  • Status transitions are explicit, not inferred. "Paid" is not the same as "ready to pick." "Shipped" is not the same as "closed with proof." Status names are defined; the rules that trigger state changes are documented; and systems don't push work downstream without validation.
  • Stable identifiers remain stable across the chain. When a SKU code changes, when a barcode is updated, or when a bundle/kit structure is redefined, those changes are managed — not allowed to contaminate the operation with ambiguity.
  • Failure has a safe path. When a critical piece of data is missing or conflicting information arrives, there's a manual control, an exception queue, or a fallback mode. The system doesn't guess; it stops and waits for clarity.
OVERVIEW

INTEGRATION PHILOSOPHY

INTEGRATION PHILOSOPHY

How 3PL Spain approaches system connectivity and control.

The foundation of stable integrations is object ownership and status clarity. Without these, systems become noise generators.

An order starts as an idea in the eCommerce system or marketplace. The question is: when does it move into the warehouse for execution, and who controls edits after that point? If the eCommerce system allows order edits (address changes, quantity adjustments) even after the order has been released to pick, the warehouse needs explicit rules: accept edits up to X point, then block them and escalate. Without this clarity, edits cause re-picks, reversed picks, or shipments with incomplete information.

The eCommerce system may have one SKU identifier (e.g., product-id-123), the ERP may have another (e.g., sku-456), and the warehouse may track it a third way (e.g., bin-location-code). The integration must define: which one is the operational source of truth? If variants exist (size, color), are they represented as separate line items or as a single item with attributes? If bundles or kits are sold, are they managed as a single unit in inventory or as separate components that get allocated at pick? Ambiguity here creates high pick error rates.

Inventory can live in the eCommerce system, the ERP, a dedicated WMS, or some hybrid. The critical question: which system is authoritative when they disagree? If the eCommerce system shows 100 units available but the warehouse system shows 50, what happens? If inventory is split across channels (D2C and B2B), how is it allocated? Is "available" the raw count, or is it adjusted for allocated orders, holds, and quarantine stock?

A shipment is "closed" when the carrier has it and proof of handoff exists — not when the order is marked "shipped" in the eCommerce system. If a carrier never shows up but the system marked the order as shipped, the shipment is stranded. The operational rule must be: a shipment closes when we have a carrier receipt, a tracking number, and a timestamp. Until then, it's still a warehouse responsibility.

A return flows backwards — from customer to warehouse to inventory. The question is: who decides what happens next? If a returned item is damaged, does it go back to sellable inventory, to rework, or to nonconforming quarantine? If the decision is made in a Returns Management System but the warehouse is the one executing it, the rules must be explicit: what system sends the disposition instruction, and what does the warehouse system do when that instruction arrives?

Status fields exist in every system. The problem is that the same status label means different things in different systems.

"Paid" ≠ "ready to pick" in an eCommerce system. An order can be paid but not yet validated for stock. If the warehouse assumes paid orders are stock-validated, it will pick against imaginary inventory and create shorts.

"Shipped" ≠ "closed with proof" in an order management system. An order can be marked shipped in the OMS, but if the carrier never took the shipment, it's still the warehouse's problem. Proof of carrier receipt is what closes it operationally.

"Returned" ≠ "back in live stock" in a returns system. A return can be received and logged, but until it's triaged and approved for restocking, it's in quarantine. If the inventory system assumes returned items immediately go back to available stock, overselling will occur.

The integration defines explicit transition rules:

Each transition is guarded. The system doesn't auto-advance; it waits for evidence.

  • Order received: Order exists in the source system (eCommerce, OMS) and has basic validation (address, contact info, quantities).
  • Order accepted: Stock validation is complete; inventory is allocated or reserved; the order is now valid to pick.
  • Order picking: Pick work is in progress; inventory is provisionally removed from available count.
  • Order packed: Goods are physically staged and ready for carrier pickup; inventory is committed.
  • Shipment handed to carrier: Carrier has proof of receipt, tracking number is assigned; warehouse responsibility closes.
  • Shipment delivered: Carrier has confirmed delivery at destination; fulfillment is complete.
  • Return received: Returned goods arrive at the warehouse and are logged into a returns queue.
  • Return triaged: Returned goods are inspected and assigned a disposition (sellable, rework, nonconforming).
  • Return completed: Goods are restocked, credited to customer, or disposed per disposition rule.
INTEGRATION PHILOSOPHY

OBJECT OWNERSHIP

OBJECT OWNERSHIP

For each critical object, clear ownership and state transitions.

Order

Owner: The eCommerce platform or OMS is the authoritative source until the order is released to the warehouse. State transitions: Received → Validated → Accepted → Picking → Picked → Packed → Dispatched → In Transit → Delivered. What happens when critical fields are missing: If an order arrives without a valid delivery address, contact phone, or required special handling notes, it goes into an exception queue until the missing data arrives or is manually provided. The warehouse doesn't ship "best guess" addresses.

SKU/Catalog

Owner: The ERP or product management system owns the master, but the warehouse system needs a synchronized copy. State transitions: Product defined → Variants assigned → Pack configuration locked → Barcode assigned → Ready for receiving. What happens when codes change: If a supplier changes a SKU code or barcode, the integration captures the equivalence (old code = new code). Both codes remain recognizable for a transition period so existing inbound doesn't break. After the transition window, the old code is retired.

Inventory

Owner: The warehouse WMS or inventory system is the source of truth for physical reality. The eCommerce system and ERP read from the warehouse system, not the other way around. State transitions: On-hand (physical count) → Available (on-hand minus allocated) → Allocated (reserved for a specific order) → In-pick (physically being picked) → Shipped (gone). What happens when count is wrong: When the warehouse count doesn't match what the eCommerce system thinks is available, a reconciliation flag is raised. The reconciliation is manual: a physical count wins, the system is corrected, and the variance is traced. Until reconciliation, the warehouse count is published as available (conservative approach).

Shipment

Owner: The warehouse operates the shipment until the carrier accepts it. The carrier owns it in transit. The destination confirms receipt. State transitions: Staged (goods are ready) → Handed to carrier (proof of receipt) → In transit (carrier responsibility) → Delivered (destination confirms). What happens when proof never arrives: If a shipment is marked as "handed to carrier" but the carrier never acknowledges receipt or a tracking number is not issued within 24 hours, an alert is triggered and the shipment is manually reviewed. It's possible the goods are still at the warehouse; the system record is ahead of reality.

Return

Owner: The returns authorization system is the source of truth until the return is triaged; after triage, the warehouse execution system owns the disposition. State transitions: Initiated (customer requests return) → Authorized (return is approved) → Shipped back → Received at warehouse → Triaged (grade assigned) → Restocked/Reworked/Disposed. What happens when triage is incomplete: If a return arrives without a clear triage decision, it stays in a quarantine hold until a decision comes from the Returns system or a manager manually assigns a grade. Nothing restocks until triage is complete.

STATUS TRANSITIONS

STATUS TRANSITIONS

Why status labels are not enough.

Order Status Transitions

  • Received → Accepted: Triggers on stock validation complete. Action: inventory is allocated; order is released to pick queue.
  • Picking → Picked: Triggers on final pick confirmation (last line picked). Action: goods are physically moved to pack station; picker accountability closes.
  • Packed → Dispatched: Triggers on carrier confirmation of pickup. Action: order is marked shipped in eCommerce system; customer receives tracking number.
  • Dispatched → Delivered: Triggers on carrier delivery confirmation. Action: customer is notified; fulfillment closes. Control point: If an order is in "Picking" state but no pick activity occurs for 4 hours, an alert is raised. A stuck order indicates either a system failure (the order isn't in the pick system) or a operational failure (the order wasn't actually released to pick).

Inventory Status Transitions

  • On-hand → Available: Triggered by cycle count or reconciliation confirmation. Action: the count is published to eCommerce system.
  • Available → Allocated: Triggered by order acceptance. Action: quantity is reserved; eCommerce inventory is decremented.
  • Allocated → In-pick: Triggered by pick line start. Action: warehouse acknowledges the allocation and begins execution.
  • In-pick → Shipped: Triggered by carrier hand-off. Action: inventory movement is final; no edits are possible. Control point: If inventory shows 100 units available but a stock audit finds 80, the warehouse count (80) is published as true. The 20-unit variance is logged and investigated (damage, theft, miscounts, system error). eCommerce inventory is corrected immediately.

Shipment Status Transitions

  • Staged → Handed to carrier: Requires carrier receipt confirmation. Action: tracking number is issued; warehouse closes responsibility.
  • Handed to carrier → In transit: Carrier confirms pickup and provides tracking. Action: customer is notified with tracking number; fulfillment status is updated.
  • In transit → Delivered: Carrier confirms delivery at destination address. Action: fulfillment is marked complete; customer receives delivery confirmation. Control point: If a shipment is marked "handed to carrier" but no carrier confirms receipt within 24 hours, the warehouse retrieves the goods and investigates. The shipment may still be physically at the dock; the system record is fiction.

STABLE IDENTIFIERS

STABLE IDENTIFIERS

How SKUs, barcodes, bundles, and codes remain stable across the operation.

SKU Code Changes

When a supplier changes a SKU code: - Equivalence is documented: old-sku-123 = new-sku-456. - Both codes are active during a transition window (typically 30 days). - Inbound is received under both codes and routed to the same physical inventory. - Pick algorithms prefer the new code but accept the old code. - After the transition window, the old code is retired.

Barcode / EAN Changes

When a supplier changes a product's barcode or EAN: - The integration maps: barcode-old = barcode-new. - The pick system accepts both codes and routes to the same physical unit. - Any system receiving a barcode scan validates it against both the active and legacy mapping. - After the transition window, legacy barcodes generate a warning, not a failure.

Bundle / Kit Logic

When multiple SKUs are combined into a single sellable unit (a bundle): - The bundle is defined as a separate entity with its own SKU in the eCommerce system. - The warehouse system tracks the bundle as a "kit" with component-level allocation rules. - Inventory for the bundle is calculated as: MIN(stock of component A, stock of component B, ...). - When a bundle order is picked, components are allocated from their respective inventory locations, not from a phantom "bundle inventory."** This prevents bundle logic from contaminating component inventory counts or creating phantom allocations.

Mandatory Fields and Minimum Identifiers

For any order to pick cleanly, these fields must be present and valid: - Order ID: unique, immutable identifier. - SKU: maps to a valid master catalog entry. - Quantity: positive integer matching the sellable unit definition. - Delivery address: complete street address, ZIP, country. - Contact phone: valid number for delivery coordination. - Special handling: any lane, delivery window, or packing requirement. If any of these fields are missing or ambiguous, the order is held until the data is provided or a manager makes an explicit decision.

SUPPORTED PATTERNS

SUPPORTED PATTERNS

Tool-agnostic: API/webhooks, structured files, email-based handoffs for constrained B2B workflows.

API and Webhooks

For real-time or near-real-time synchronization: - eCommerce → Warehouse: Orders are pushed via API or webhook as they're placed or validated. The warehouse system acknowledges receipt and stores the order in a picking queue. - Warehouse → eCommerce: Shipment status (packed, dispatched, delivered) is pushed back via API. Inventory levels are published on a defined schedule (typically every 15–60 minutes) to keep availability accurate. - Inventory → ERP: Physical counts and reconciliation results are published so the ERP's inventory matches warehouse reality. Contracts: API endpoints must be versioned; webhook payloads must include a timestamp and a unique event ID (to detect duplicates); failed deliveries must be retried with exponential backoff; and critical data (order ID, SKU, quantity) must be validated on receipt.

Structured Files (CSV / Templates)

For scheduled, batch synchronization: - Purchase orders arrive as a CSV file with columns: order-id, sku, quantity, delivery-date, special-notes. - Inventory snapshots are exported as a CSV file daily: sku, on-hand, allocated, available. - Returns data is sent as a CSV with columns: return-id, original-order-id, reason, disposition. Contracts: Files are delivered to a defined SFTP location on a schedule; file naming includes a timestamp; headers are validated before processing; and failed records are logged separately for manual review.

Email-Based Handoffs

For constrained B2B / retail workflows where API isn't available: - Routing guides and labeling specs arrive as an email attachment (PDF or CSV). The warehouse team reviews, confirms understanding, and loads the spec into the operation. - Purchase orders arrive as structured email text or attachment, typically from a retail buyer's ERP. - Shipment confirmations are sent back to the buyer as an email with packing list, carton counts, and expected delivery time. Contracts: Email is dated and versioned (routing guide v2 replaces v1, with a cutover date); responses are logged; and version control is maintained manually but rigorously.

PLATFORM EXAMPLES

PLATFORM EXAMPLES

Common integrations we operate with (eCommerce, Marketplaces, ERP/OMS).

eCommerce Platforms

Shopify: Orders are synced via the Shopify API; inventory is published via a Shopify app that reads from the warehouse WMS; fulfillment status is updated through the Shopify fulfillment API so customers see real tracking. WooCommerce: Orders are pulled via the WooCommerce REST API on a defined interval (typically every 5–15 minutes); inventory is synchronized using a custom integration or a third-party plugin (like TrackStock); fulfillment updates are pushed back to WooCommerce via the API. PrestaShop: Orders are fetched via the PrestaShop Web Service API; inventory levels are synchronized on a schedule; order status updates are pushed back to trigger customer notifications. Magento: Orders are synced via the Magento REST API; inventory is managed through a WMS-to-Magento integration; fulfillment events are published back to trigger shipment notifications.

Marketplaces

Amazon: Order data is pulled via the Amazon Seller Central API (Selling Partner API). Inventory is fed from the warehouse WMS to Amazon MWS (Marketplace Web Service) to prevent overselling. Shipments are closed through the SP-API by uploading carrier tracking numbers. Returns flow back via Amazon's returns API and are triaged in the warehouse. Mirakl: Orders are received via Mirakl's API and consolidated with direct orders. Inventory is published to Mirakl's platform so all sellers have accurate stock. Shipment and return data flow bidirectionally through the Mirakl platform API. eBay: Orders are synced via the eBay Trading API or REST API; inventory is managed to prevent double-selling; shipment confirmation and tracking are uploaded to trigger buyer notifications. Etsy: Orders are pulled via the Etsy API v3; order-level notes and customizations are captured; fulfillment status is updated back to Etsy so customers see delivery progress.

ERP/OMS Systems

Odoo: The Odoo database is the ERP; inventory is stored in the Odoo module, but the warehouse WMS is the physical source of truth. Bidirectional sync is maintained: Odoo creates purchase orders that flow to the warehouse; the warehouse inventory positions flow back to Odoo so financial reporting is accurate. SAP Business One (B1): B1 is often the master for product master data and customer orders; the warehouse system receives orders from B1 and returns inventory positions back so B1's available-to-promise (ATP) is accurate. Microsoft Dynamics 365: D365 handles financials and customer data; orders are created in D365 and flow to the warehouse; fulfillment data is returned to D365 so revenue is recognized accurately. NetSuite: NetSuite is the master ERP; orders are created in NetSuite, fulfillment data returns from the warehouse, and NetSuite's inventory is updated for accounting purposes.

Shipping Layer

Shipping integrations are kept intentionally tool-agnostic. We support: - Label generation: Carrier APIs (DHL, UPS, DPD, Correos) are used to generate labels based on shipment weight and destination. - Service selection: Based on delivery requirements (next-day, ground, economy), the system selects the appropriate carrier service. - Tracking events: Carrier webhooks push tracking updates back to the warehouse system so shipment status stays current. - Shipment closure: Once a carrier provides proof of pickup and a tracking number, the shipment is marked as dispatched.

DESIGN FOR FAILURE

DESIGN FOR FAILURE

Duplicate protection, exception queues, acceptance tests, manual fallback controls, and monitoring signals.

Duplicate Protection

When a webhook is retried or a batch file is processed twice, duplicates can be created. We prevent this through: - Idempotent keys: Each order or shipment event includes a unique key (order-id + timestamp, or uuid). The warehouse system checks: has this key already been processed? If yes, the duplicate is logged and discarded. - Database constraints: Orders with the same ID cannot be inserted twice. If a duplicate arrives, the database rejects it, an alert is raised, and the duplicate is logged.

Exception Queues

When data is invalid or missing, it doesn't disappear. It goes to an exception queue where it waits for clarification or manual intervention: - Invalid orders (missing address, invalid SKU) are held in an "On Hold" queue. - Inventory mismatches (system says 100 but warehouse counts 80) are logged and reconciliation is triggered. - Incomplete shipments (packed but no carrier assigned) are flagged and held until closure is complete. A manager reviews exceptions daily, decides what to do (correct the data, cancel the order, escalate), and documents the decision. Exceptions don't auto-resolve.

Acceptance Tests

Before an integration goes live, we run acceptance tests: - Order flow: A test order is placed in the eCommerce system. We verify it arrives in the warehouse WMS, can be picked and packed, and successfully syncs back as shipped with tracking. - Inventory sync: We change inventory in the warehouse system and verify the eCommerce platform reflects the change within the expected sync window. - Variant handling: We test a variant order (e.g., size M, color blue) to ensure the right component is picked. - Bundle/kit order: A bundled order is placed and we verify the correct components are allocated and picked. - Partial order: We intentionally short an order, cancel a line, and verify the system handles the partial correctly. - Return flow: A completed order is returned; we verify it arrives in the returns system, is triaged, and is restocked correctly.

Manual Fallback Controls

When systems are down or data is unreliable, there's always a manual fallback: - Orders arriving via email: If the eCommerce API is down, orders can arrive via email. The warehouse team processes them manually into the picking system, with a flag marking them as manual entry. - Inventory via spreadsheet: If the WMS is down, inventory can be updated via a CSV file and manually imported. - Shipment tracking via email: If the carrier API is unavailable, tracking numbers can be entered manually into the system. Manual fallbacks are slower and riskier, but they preserve operational continuity. They're logged as exceptions and reviewed after the system is restored.

Monitoring Signals

We track integration health through: - Order lag: How long between order placement and arrival in the warehouse system? If the average lag is 15 minutes but it suddenly jumps to 2 hours, that's a signal something is wrong. - Inventory divergence: Does the warehouse count match the published count? If they diverge beyond a threshold (e.g., ±5%), an alert is raised. - Failed webhooks: Are webhooks being rejected or timing out? Each failure is logged and if the failure rate exceeds a threshold, the integration is manually reviewed. - Exception queue depth: How many orders are on hold? A growing queue indicates a problem (bad data, system failure). These signals drive proactive investigation before customers see problems.

ONBOARDING CHECKLIST

ONBOARDING CHECKLIST

Minimum inputs we need to build stable integrations.

1. Technology Stack

  • Which eCommerce platforms are you using? (Shopify, WooCommerce, custom?)
  • Which ERP or OMS? (Odoo, SAP B1, custom?)
  • Do you have an existing WMS or inventory system?
  • Which carriers do you use? (DHL, UPS, DPD, Correos, other?)

2. SKU and Catalog Structure

  • How are SKUs identified? (Internal code, GTIN, supplier code?)
  • Do you have variants? (Size, color, weight?) How are they represented?
  • Do you sell bundles or kits? How are they managed?
  • Are there SKU changes planned (migrations, supplier changes)?

3. Order Rules

  • When is an order "valid to pick"? (At payment, at address validation, at stock check?)
  • Can orders be edited after they're released to pick?
  • How do you handle partial orders, cancellations, and substitutions?
  • Are there channel-specific rules? (D2C vs. B2B, different carriers or delivery windows?)

4. Inventory Rules

  • Where does inventory truth live (eCommerce system, ERP, WMS)?
  • How is inventory allocated? (By order, by channel, by location?)
  • What does "available" mean? (Raw count, minus allocated, minus reserved?)
  • How often do you reconcile inventory?

5. Shipment Rules

  • When does a shipment close? (When the warehouse hands it to the carrier, when the carrier confirms pickup, when it's delivered?)
  • What proof is required? (Carrier receipt, tracking number, both?)
  • How are returns initiated? (Customer portal, email, reverse label?)
  • Are there channel-specific delivery windows or requirements?

6. Mandatory Fields

  • What fields must be present on every order? (Address, phone, delivery notes, special handling?)
  • Are there country-specific requirements? (VAT ID, customs info?)
  • What's the minimum address detail required? (Street, ZIP, city, country?)

SECURITY AND ACCESS

SECURITY AND ACCESS

Role-based access, auditability, and control over who can force state changes.

Role-Based Access

  • Operations staff: Can view orders, inventory, and shipment status. Cannot force state changes.
  • Warehouse managers: Can override exceptions, force inventory corrections, and manually close shipments.
  • System administrators: Can create new integrations, change field mappings, and manage API credentials.
  • Finance/reporting: Can view inventory and order data for reporting, but have no edit access.

Auditability

Every critical action is logged: - SKU master changes: Who changed what, when, and why (routing guide update, supplier migration, etc.). - Inventory corrections: Physical count, variance, who approved the correction, why. - Forced state changes: Order manually marked as shipped, return manually triaged, etc. Logged with the manager's name and reason.

Access Control

  • API credentials are rotated regularly and never stored in code or email.
  • Passwords are complex and not shared; API keys are used for system-to-system communication.
  • IP whitelisting is used when available to restrict access to known networks.
  • Sensitive data (customer addresses, phone numbers) is encrypted and access is logged.

RELATED PAGES

RELATED PAGES

Detailed integration guides are planned for specific platforms. Until those routes are materialized, this hub is the canonical integration page:

  • Shopify integration guide (planned)
  • WooCommerce integration guide (planned)
  • Amazon logistics integration (planned)
  • API documentation (planned)
RELATED PAGES

NEXT STEP

NEXT STEP

Tell us what stack you run today (eCommerce, ERP/OMS, how shipments are created) and where control breaks (inventory, statuses, returns, catalog). If you can, add a small sample: one SKU, one typical order, and one return scenario. We'll come back with a first reading of which object lacks an owner and which dependency to close before accelerating growth.

Map your flow

FAQ

Frequently Asked Questions

Do you support real-time inventory sync?
It depends on your system architecture. If your eCommerce platform has an API, we can push inventory updates every 15–60 minutes. For constrained workflows (B2B, email-based), updates happen on a daily or per-shipment schedule. Real-time is only meaningful if the data is accurate and validated; we prioritize truth over speed.
What happens if the eCommerce platform goes down?
Orders can be received via email or a fallback spreadsheet and manually loaded into the warehouse system. It's slower, but it preserves continuity. Once the platform is restored, we reconcile to ensure no orders were duplicated or lost.
Can you integrate with our custom ERP?
Yes, if your custom system has an API, database access, or can export/import structured files (CSV, XML). We'll need to understand the data model and the integration points. Some custom systems require custom development; we'll scope that in a conversation.
How do we handle SKU changes when a supplier migrates?
We map old SKU = new SKU and keep both active for a transition period (typically 30 days). Inbound and picks can use either code; the warehouse routes them to the same physical inventory. After the transition window, the old code is retired and any remaining mappings are audited.
What if an order has a critical field missing (e.g., no delivery address)?
The order is held in an exception queue. A manager is notified and must either provide the missing data or manually cancel the order. The warehouse doesn't ship "best guess" addresses or ship without required fields.
How do we know if an integration is working?
We monitor lag (time from order placement to warehouse receipt), inventory divergence (system vs. physical count), failed API calls, and exception queue depth. Alerts are raised if these metrics exceed thresholds. Integration health is reviewed weekly, and issues are investigated and corrected immediately.

Ready to outsource your fulfillment?

Share your flow and we will map it. Quotes within one business day.