Product Requirements Plock PRD, AI features, integrations (Fortnox, PostNord, DHL, Shopify), user personas AI Features (Priority Order) AI Features (Priority Order) Overview Plock is AI-native — not AI-bolted-on. Every data model is designed with AI querying in mind. The AI layer runs continuously; warehouse workers are alerted, not asked to check. Target user for AI: A warehouse worker with dirty gloves asking var finns SKU-X on a cracked phone screen — not an analyst building pivot tables. Language: Swedish first. Short, direct responses. Action-oriented. Mobile-friendly. Priority 1 — Plock AI Chat (Launch) Type: LLM natural language interface Model: Claude API (claude-sonnet-4-5) Language: Swedish What it does Answer warehouse questions in natural language Swedish Execute actions with single confirmation (move stock, reserve, assign pick) Access real-time inventory, orders, performance data Multi-turn conversation with warehouse context injected Example queries Hur manga enheter av SKU-1234 har vi? — live stock count + trend Vilka ordrar ar forsenade idag? — list with root cause Flytta 50 enheter fran A-01-01 till B-02-03 — confirmation + action Architecture System prompt includes: warehouse schema snapshot, org context, user role, current time Function calling for write operations (move, reserve, assign) Organization data never sent raw to Claude — only sanitised context Response target: less than 3 seconds Priority 2 — Smart Picking (Launch) Type: Route optimisation Engine: OR-Tools (Google) — VRP/TSP solver Reduction target: 30-70% travel time What it does Automatically generates optimal pick routes when orders are released Groups orders into picking waves based on zone, carrier cutoff, priority Outputs sequential bin list on mobile scanner No configuration required — runs on every order release How it works Order released — ML microservice receives order + bin locations OR-Tools VRP solver computes shortest path across warehouse zones Optimised pick list returned to mobile app in under 2 seconds Worker follows sequence — no backtracking ROI Industry data: 30-70% of warehouse time is walking (not picking) Conservative 20% efficiency gain = 8,800 SEK/month per worker saved Priority 3 — Anomaly Detection (Launch) Type: Statistical detection on inventory transactions Algorithms: Z-score + isolation forest (scikit-learn) Trigger: Real-time, on every transaction What it detects Sudden stock drops (theft, mispick, data error) Unusual pick rates (demand spike or data entry error) Inventory discrepancy after goods receipt Carrier label printed but no scan out (lost shipment risk) Alert flow Transaction recorded — Python microservice analyses against rolling baseline Z-score above 3 sigma or isolation forest flags as outlier — alert created Warehouse manager receives push notification + AI chat message Manager confirms or dismisses — feedback improves model Priority 4 — Demand Forecasting (Month 6) Type: Time-series forecasting Models: XGBoost + Prophet (Facebook) Input: Order history (minimum 90 days) What it does Predicts demand per SKU for next 7/14/30 days Generates reorder recommendations with suggested quantity and timing Adjusts for seasonality (Swedish calendar events, e-commerce peaks) Accessible in AI Chat: Vad ska vi bestalla hem nasta vecka? Priority 5 — Smart Slotting (Month 6) Type: ML-based placement recommendations Input: Pick frequency, order affinity, SKU dimensions What it does Recommends optimal bin locations for each SKU based on pick frequency Groups frequently co-picked SKUs near each other (affinity slotting) Identifies slow-movers in prime locations and suggests moves Presented as actionable task list, not a forced migration Priority 6 — Labor Planning (Month 12) Type: Shift optimisation Constraints: Swedish labour law (Arbetstidslagen) What it does Predicts staffing needs based on demand forecasts Generates compliant shift schedules (max hours, breaks, rest periods) Suggests overtime or temp worker needs 1-2 weeks in advance Integrates with order volume forecasts from Demand Forecasting module AI Cost Model (per customer) Feature Est. cost/month (Growth plan) Plock AI Chat (1,000 queries/month) ~45 SEK (Claude Sonnet pricing) Smart Picking (10,000 optimisations) ~5 SEK (OR-Tools compute) Anomaly Detection (100K transactions) ~10 SEK (Python microservice) Total AI cost per Growth customer ~60 SEK/month Growth plan revenue 2,990 SEK/month AI cost as % of revenue ~2% Key Integrations Key Integrations Integration Priority Table Integration Type Priority Launch Date Fortnox REST v3, OAuth2 P0 Launch PostNord REST, OAuth2 P0 Launch DHL Sweden REST P1 Month 2 Instabee / Budbee REST JSON P1 Month 3 Shopify REST + GraphQL P1 Month 3 WooCommerce REST P2 Month 6 Visma REST P2 Month 6 P0 — Fortnox (Launch Critical) Why P0: 598,000 Swedish companies use Fortnox. Fortnox Marketplace is the primary distribution channel. Deep integration = instant value for every new customer. API: Fortnox REST API v3 (api.fortnox.se) Auth: OAuth2 (authorisation code flow) Sync scope Data Direction Frequency Products (artiklar) Fortnox to Plock On demand + webhook Suppliers (leverantorer) Fortnox to Plock On demand Purchase orders Bidirectional Real-time Sales orders Fortnox to Plock Real-time (webhook) Stock levels Plock to Fortnox On every transaction Invoices Plock to Fortnox On order completion Fortnox Marketplace listing Plock listed as official Fortnox Marketplace integration Customers connect via OAuth flow directly from Fortnox UI Integration reviewed and certified by Fortnox team P0 — PostNord (Launch Critical) Why P0: PostNord is the dominant carrier for Swedish e-commerce (primary for ~70% of SMBs). API: PostNord REST API (developer.postnord.com) Auth: OAuth2 Features Generate shipping labels (PDF + ZPL for Zebra printers) Book pickup Track shipments (webhook updates) Print manifests at end of day Support for: PostNord MyPack, Varubrev, DHL Parcel (via PostNord reseller) P1 — DHL Sweden (Month 2) API: DHL Express REST (developer.dhl.com) Features: Label generation, booking, tracking, rate quotes Auth: API key P1 — Instabee / Budbee (Month 3) API: Instabee REST JSON (developer.budbee.com) Features: Label generation, booking, real-time tracking, consumer notifications Note: Instabee acquired Budbee — same API, two brands P1 — Shopify (Month 3) API: Shopify REST Admin API + GraphQL Auth: OAuth2 (Shopify Partner app) Sync scope Orders to Plock outbound queue Inventory levels bidirectional (Plock as source of truth) Product catalogue to Plock (read-only) Fulfilment events to Shopify order tracking P2 — WooCommerce (Month 6) API: WooCommerce REST API Auth: API key Sync scope: Orders, products, inventory levels (similar to Shopify) P2 — Visma (Month 6) API: Visma eAccounting REST API Auth: OAuth2 Sync scope: Similar to Fortnox — products, orders, invoices, stock levels Integration Architecture All integrations run through the Integration Layer in the Kotlin backend: File structure: integrations/fortnox/ — FortnoxClient.kt, FortnoxSyncService.kt, FortnoxWebhookHandler.kt integrations/carriers/ — PostNordClient.kt, DhlClient.kt, InstabeeClient.kt integrations/ecommerce/ — ShopifyClient.kt, WooCommerceClient.kt Queue: Redis + Kotlin coroutines for async integration jobs (label generation, carrier calls, sync tasks) Error handling: Retry with exponential backoff, dead-letter queue, alert on persistent failure