Skip to content

1.11.7

⚙️ Patch 1.11.7 — Otto sold-out offers, n8n warm runners, Amazon/Plenty naive datetimes

🚀 Summary

  • Otto repricer — Offers marked leider ausverkauft are ignored; if every offer on the frame is sold out, treat as solo buybox → max_price (no undercut of dead prices).
  • n8n Code runners — Keep the JS runner warm (AUTO_SHUTDOWN_TIMEOUT=0) so Code nodes stop timing out after idle exit + cold start.
  • Omni Amazon / Plenty order import — Fix Datetime values must have timezone information on flush; optional Calculate fees & profits on Amazon import.

✨ Details

Otto — sold-out competitor offers

Area Behavior
Detect Text leider ausverkauft (optionally in .of_offers-delivery__soldout-message)
Pricing Sold-out rows are excluded from buybox / competitor price
Not skipped Fast ausverkauft = low stock, still buyable → normal repricing
All sold out Real rows present but only sold-out → solo buybox (raise toward max_price)
Empty shell Still not solo (blocked/incomplete HTML must not jump to max)
Example S0BFK0ON / S0BFK0ON8OVJ — one sold-out offer → no active competition

n8n — task request timeouts

Variable Where Default Purpose
N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT runners 0 Do not kill JS child after 15s idle
N8N_RUNNERS_MAX_CONCURRENCY runners 5 Concurrent Code tasks per runner
N8N_RUNNERS_TASK_REQUEST_TIMEOUT main n8n 600 Wait longer for a free runner offer

The localStorage is not available line in runner logs is harmless Node noise.

Omni — Amazon / Plenty timestamps + fees toggle

Area Behavior
Cause SQLModel timezone-aware datetime vs Postgres TIMESTAMP WITHOUT TIME ZONE
Fix NAIVE_DATETIME on amazon_orders / returns, plenty_orders / retours / pending, credentials
Amazon UI Profit tab switch Calculate fees & profits → calculate_fees on POST /amazon/orders/sync
Fees off Faster import; fee/profit columns left empty

📌 Notes

  • Redeploy service-multi-repricer (Otto sold-out).
  • Redeploy n8n + n8n-runner / n8n-runner-2 (warm runners).
  • Redeploy service-omni (Amazon/Plenty datetime + fees query param); refresh frontend for the Profit tab switch.
  • See n8n for runner idle / timeout guidelines.

📁 Files

  • backend/service_multi-repricer/app/services/otto/otto_service.py
  • backend/service_multi-repricer/app/tests/test_otto_offers_soldout.py
  • backend/service_multi-repricer/app/schemas/omni_sales.py
  • backend/service_omni/app/schemas/amazon_credentials.py
  • backend/service_omni/app/schemas/plenty.py
  • backend/service_omni/app/api/v1/endpoints/amazon.py
  • backend/service_omni/app/services/amazon/spapi_client.py
  • frontend/src/pages/Statistics/Tabs/ProfitTab.jsx
  • frontend/src/services/api/omni/statistics.js
  • docker-compose.yml / docker-compose-portainer.yml
  • docs/docs/infrastructure/n8n.md
  • docs/docs/patchnotes/1.11/1.11.7.md — this file