Acesso de Administrador
Palavra-passe incorreta. Tente novamente.
cycleWASHADMINMade in Germany

Administração cycleWASH®

CRM · Leads e pipeline
O2C · CRM

Leads & Pipeline

Every lead, opportunity and customer in one place — unified inbox, visual pipeline, Gmail and lead scrapers.

🚀 Setup status

One-time configuration to unlock Gmail, AI drafting and lead scrapers. Everything below already works with what's available.

OutreachPro · Executive view

Pipeline at a glance

Revenue
€0
paid invoices · 0
Open pipeline
€0
active offers · 0
Conversion
offer → invoice
Avg cycle
offer → paid · days
Campaign emails
0
sent · 0 campaigns
Replies
0
reply rate —

Funnel · Suspect → Customer

Source attribution

OutreachPro · Inbox

Gmail integration

Send docs as email · search threads per customer · auto-log every send and receive on the customer timeline. Uses the OAuth + send/history library ported from op-v2.

Not connected
Setup needed (one-time):
  1. In Google Cloud Console → new project → enable Gmail API.
  2. Create OAuth 2.0 client → application type Web.
  3. Add authorised redirect URI: https://cw-contact-spam-guard.vvlars.workers.dev/proxy/gmail/callback
  4. Copy the Client ID + Client Secret, paste them as worker secrets — locally run:
    cd cyclewash-theme-v3/scripts
    wrangler secret put GMAIL_CLIENT_ID
    wrangler secret put GMAIL_CLIENT_SECRET
  5. Then click Connect Gmail above. Popup opens, you approve, done.

Send via Gmail

Sent from your connected Gmail account (). The doc number is auto-included as a reference at the bottom.
ERP / Leads · Unified pipeline

One desk for every lead.

Master CSV (quoted customers, distributors, warm inbound) merged with the Exact Online snapshot and OutreachPro captures, deduped by email and sorted warm-first. NDA 3D unlocks stream in from the access log.

Unified leads
Quoted customers
Distributors
Warm inbound
NDA unlocks
Pipeline value
NameCompanyEmailCountryTierSourceStage
Activate this tab to load the unified lead list.

NDA 3D Leads

Verified OTP unlocks from the 3D configurator NDA gate — the warmest signal we get. Loads from the worker audit log (admin key required, stored locally).

Finance

Order revenue & invoice roll-up.

Dataset built offline by scripts/build-leads-unified.cjs — re-run it and push the asset to refresh. Row click or Enter expands the full record.

Lead scrapers

Pull prospects from any website. API keys stay in your browser — never sent to Shopify.

3 adapters · live

Get a key at scrapegraphai.com. Stored only in this browser.

Get a token in Apify Console → Integrations. Stored only in this browser.

Browse the full store at apify.com/store. Actor IDs use the username~actor-name format.

Preview the generated AI prompt Preview the generated Apify actor input

    

Extracted leads

No runs yet.

Nothing scraped yet. Configure an API key on the left, paste a URL and a prompt, then click Run.
OutreachPro · Outbound Engine

Email Campaigns

Compose with Gemini · send via Gmail in throttled batches · stats land in the dashboard above. Audience comes from any combination of Apify, ScrapeGraph, Gmail crawler, pipeline cards, or pasted email lists.

0Campaigns
0Emails sent
0Replies
📣

No campaigns yet

Launch your first outbound campaign — pick a lead source, draft a template with Gemini, send in batches via Gmail.

New Campaign

Step 1 of 4 · Pick audience

Pick where your recipients come from. You can combine multiple sources.

0 recipients matched.
Plataforma · IoT & Backend

SPIRIT — Ecossistema Digital

Hardware + Software + Economia de Moedas · 56+ Rotas da App · 24 Funcionalidades de Receita · 8 Idiomas

56+
Rotas da App
24
Funcionalidades de Receita
3
Portais
8
Idiomas
$89M
Meta FY5

Quatro Plataformas Integradas

Arquitetura V3
🛍️
Shopify Website
19 páginas · 8 idiomas · otimizado para SEO · design Bauhaus Industrial
SPIRIT Web App
56+ rotas · 3 portais · Análises em tempo real · moeda $CYCLE
📱
Apps Móveis
iOS + Android · PWA Capacitor · Notificações push · Leitura QR por câmara
🤖
Walter IoT
ESP32-S3 · MQTT sobre TLS · controlo PLC · atualizações OTA

Fluxo de Arquitetura de Ponta a Ponta

Ao Vivo
CLIENTE
Registar → Ler QR → Pagar $CYCLE → Lavar → Ganhar Tokens
OPERADOR
Painel → Gestão de Frota → Análise de Receitas → Admin de Tokens
TÉCNICO
Diagnóstico → Sensores em Tempo Real → Tickets de Serviço → Firmware
CAMADA DE TRANSPORTE
MQTT pub/sub · Stripe + $CYCLE · JWT Auth · Vercel + Shopify

3 Portais — Desagregação de Rotas

📊 Painel do Operador 21 páginas
Vista Geral da Frota · Detalhes da Máquina · Pagamentos · Análise de Receitas · Análise de Clientes · Scanner IA · Manutenção Preditiva · Previsão de Procura · Tecnologia Climática · Gerador QR · Preços Dinâmicos · Hub de Redes Sociais · Parceiros B2B · CRM de Leads · Inteligência da Cidade · White Label · API Marketplace · Economia de Moeda $CYCLE.
📱 App do Cliente 23 páginas
Início · Leitor QR · Fluxo de Lavagem · Subscrições · Saúde da Bicicleta · Carteira $CYCLE · Referências · Loja de Tokens · Pagamento por Minuto · Seguro · Strava Connect · Recibos Sociais · Lavagem em Grupo · Tempo e Lavagem · Marketplace · Reserva de Reparação · Carregamento de E-Bike · Primeira Lavagem Grátis
🔧 Portal do Técnico 6 páginas
Gestão de Tickets · Diagnóstico em Tempo Real · Telemetria de Sensores · Atualizações de Firmware · Histórico de Serviços · Comandos Remotos

Walter ESP32-S3 — Firmware IoT

Ponte de Hardware
Configuração GPIO
GPIO 4 — PLC Pulse Output
GPIO 5 — Door Sensor
GPIO 18 — WS2812 LED Strip
GPIO 21 — Water Flow Sensor
GPIO 22 — Emergency Stop
Comandos MQTT
START_WASH {type, duration}
STOP_WASH {reason}
TEST_PULSE {count}
STATUS {}
REBOOT {delay}
SET_MODE {mode}
Default: Mini 3min · Pro 5min · 5 pulses/cycle · 30s heartbeat · WiFi auto-reconnect · OTA updates

Stack Tecnológico

⚛️
Frontend
Next.js 14 · Tailwind CSS · Framer Motion · React Server Components
🔌
Backend
Next.js API Routes · Stripe SDK · $CYCLE Coin Engine · JWT Auth
📡
IoT Layer
ESP32-S3 · MQTT over TLS · PLC Pulse Control · WS2812 LED
🌐
Website
Shopify 2.0 Liquid · Bauhaus Theme · 8-lang i18n · SEO + Schema
🪙
Coin Economy
$CYCLE ERC-20 · Stripe Fiat On-ramp · Cashback Engine · Burn Controls
☁️
Hosting
Vercel (SPIRIT App) · Shopify (Website) · HiveMQ (MQTT) · GitHub CI/CD

Roadmap do Produto

Q2 2026
SPIRIT App v1 · Walter firmware v1 · Stripe payments live · 10 pilot stations · $CYCLE testnet
Q3 2026
iOS + Android apps · AI Scanner beta · Corporate programs · 50 stations · Token mainnet
Q4 2026
Predictive maintenance · White-label platform · API marketplace · 150 stations · Strava integration
2027
City Intelligence · Full franchise model · 500+ stations · International expansion · Series A funding
SPIRIT · ONLINE

Painel do Operador SPIRIT

Análise de frota, saúde da máquina, dados do cliente. Cada vista abre no tamanho de viewport correto.

https://cyclewash.com/pt/pages/spirit-dashboard

Backend SPIRIT — Configuração Docker

Auto-Hospedado

Full-stack SPIRIT platform: API (Node.js + Prisma + PostgreSQL), web dashboard (React + Vite), MQTT broker, Redis cache.

git clone https://github.com/vvlars-cmd/cyclewash-spirit-platform.git && cd cyclewash-spirit-platform

Copy environment and start:

cp .env.example .env && docker compose up -d --build

Seed database (first time):

docker compose run --rm api npm run db:migrate && docker compose run --rm api npm run db:seed

Default credentials: admin@cyclewash.io / Admin123! · API: localhost:3001 · Dashboard: localhost:3000

Confidencial · Série A

cycleWASH® — Proposta para Investidores

A Primeira Máquina de Lavagem Automatizada de Bicicletas do Mundo · Série A — €3M · Março 2026

Apresentação para Investidores cycleWASH® v2

Confidencial

Série A · €3M · 40% fabrico · 25% plataforma SPIRIT · 20% vendas · 15% operações

💼 Ver Apresentação Completa
31+
Patentes
250+
Máquinas Implementadas
19
Países
1M+
Bicicletas Lavadas
150M L
Água Poupada

Gama de Produtos — Três Linhas para Cada Caso de Uso

🚲 €5,990
cycleWASH® Mini
Euro-pallet footprint · Self-service kiosk · Solar option · Perfect for bike shops, campuses, residential
⚙️ €13,990
cycleWASH® Pro
Full-size automated wash · Hybrid brushes · Integrated drying · Connected diagnostics · High-throughput
🏙️ Custom
cycleWASH® OASIS
Complete bike service station · Wash + repair + charging + vending · For cities and transit hubs

Tecnologia e Propriedade Intelectual — 36 Patentes · 7 Anos de Vantagem

🔬
Hybrid Brush System
Patented dual-brush adapts pressure for carbon frames, e-bikes, fat tires
💧
3 L Per Wash
Closed-loop recycling. Up to 80% less water than manual washing
🤖
Walter IoT
ESP32-S3 · 12 sensors · MQTT telemetry · OTA · Predictive maintenance
DEKRA Certified
Only certified automated bike wash worldwide for unattended public operation
☀️
Solar Ready
Mini stations run 100% solar-powered. Zero grid dependency
💨
Gentle Dry System
Integrated blower drying protects bearings and electronics. No water spots

Projeções de Receita — Caminho para €10M ARR até 2028

€0.8M
2024
€1.2M
2025
€2.5M
2026E
€5.5M
2027E
€10M
2028E
Assumptions: 40% hardware margin · 80% SaaS margin · 500 new units/yr by 2028 · €99 avg SaaS ARPU

Série A — Utilização de €3M

Ronda Aberta
40%
Manufacturing Scale-up
Expand production to 500 units/year
25%
SPIRIT Platform
Payment integration, AI features, mobile apps
20%
Sales & Marketing
EU expansion, trade shows, channel partners
15%
Operations & Team
Key hires in engineering and business dev

O Que os Investidores Recebem

Equity in the only certified automated bike wash company
36 patents providing 7-year competitive moat
250+ machines already generating recurring revenue
58-route digital platform ready for scale
$CYCLE coin economy creating network effects
€10M ARR target by 2028
Path to €50M+ exit via strategic acquisition
ESG-aligned investment (UN SDG 11
12
13)

Go-to-Market — Conquistar e Expandir em 4 Segmentos

🏪
Bike Shops & Dealers
50K+ in Europe · Direct sales + demo program · Dealers become wash operators
🏙️
Cities & Transit
1,000+ cities · Municipal procurement · Bike-sharing fleet integration
🏢
Corporate Campuses
Fortune 500 · Employee bike programs · ESG reporting · Bulk fleet orders
🏨
Hospitality & Tourism
Hotels, Camping · Guest amenity upsell · OASIS installations at resorts

Vamos Limpar o Mundo do Ciclismo

Contactar Sachin Kumar — CEO e Fundador · CW Cleaning Solutions GmbH · Colónia, Alemanha

📧 sachin.kumar@cyclewash.de  ·  🌐 cyclewash.com
📬 Contactar a Equipa de RI
Pré-visualização da página

Pré-visualização da Página para Investidores

Veja exatamente o que os investidores veem. Shopify bloqueia o embed em iframe — abre em popup ou aba.

https://cyclewash.com/pt/pages/investors
↗ Abrir em Nova Aba
Porquê um popup em vez de iframe? A Shopify define X-Frame-Options: DENY em todas as páginas da storefront para evitar clickjacking. Isso é um cabeçalho HTTP — nenhuma configuração de tema o pode contornar. Os popups simulam o tamanho do viewport exatamente como os investidores veriam.
Live · IP Portfolio Tracker

Patent & trademark dashboard

Live mirror of Übersicht aller Schutzrechte. Filings grouped by family, annotated with fee due dates and renewal deadlines. Click a family card to expand or collapse its register entries.

Family
Status
Reading the dashboard. Fee due in < 90 days Fee due in < 180 days Fee due later Renewal / maintenance
Source: assets/cyclewash-ip-tracker.json — regenerated when the Übersicht aller Schutzrechte XLSX changes. To refresh, replace the XLSX and run scripts/build-ip-tracker-json.py.
Internal · AI Authoring

Content Generator

SEO- and AEO-optimised blog drafts, social captions and press copy for cycleWASH. Send to the blog-agent backlog and the next Mon/Thu run picks them up automatically.

New draft

Output

Nothing generated yet. Pick a content type, topic, audience and language on the left, then hit Generate Draft.
SEO metadata appears here. Title tag, meta description, slug, primary keyword and OpenGraph tags — one click to copy.
AEO JSON-LD appears here. Article + FAQPage schema, ready to paste between <script type="application/ld+json"> tags.
Social variants appear here. LinkedIn, Instagram, Facebook, TikTok — channel-fit length and tone.
Content · Blog

cycleWASH Journal

20 published articles. Read the live blog, or write & edit posts in Shopify's article editor — new drafts and edits publish straight to the storefront blog.

Journal Editor

Write and save drafts to Shopify — all from the admin. Drafts autosave to this browser.

Shopify editor ↗ Idle

Create

Publish to

Long-form writing saved as a draft in /blogs/news/.

Articles

View journal →
  • Loading…

Edit loads an entry into the form below. Save draft keeps it in this browser. Save draft to Shopify sends it as a draft (not yet published) via the Shopify Admin API.

Write a new article

Editing a new draft

Body

Site Background

Animated background shown behind page content. Applies in this browser across the whole site.

Brand & Visual System · v1 · June 2026

The cycleWASH visual system.

The canonical reference for anyone extending cycleWASH — designer, developer or partner studio. The language is Liquid Precision: German engineering clarity fused with the energy of water in motion. Precision is the aesthetic; restraint is the system.

01

Colour

Four named colours. Use the named tokens — never hard-code new hex values. The brand is light by default; Mist White is the daylight home, Midnight Ink is reserved for the 3D theatre and hero stages.

#1E82C8
Glacier Blue
PRIMARY
Interactive elements and focal points. Engineering trust, water, precision. Links, primary buttons, data accents.
#FFC300
Signal Gold
SECONDARY
The spark. CTA highlights and key signals only — the one action that matters per view. Never decoration.
#F0F4F8
Mist White
TERTIARY
The light — reading surfaces, product pages, sustained content. Bands alternate Mist ↔ pure white.
#1A1A2E
Midnight Ink
NEUTRAL
Typography and the dark stage. The 3D theatre, NDA posters and hero stages live one step deeper: #0B0F14.
Guardrail. Signal Gold is reserved for interaction and the single most important signal — never decoration. Don't add a fifth named colour. Depth comes from tonal layers (stepping Mist→Ink), not drop shadows; if a shadow is unavoidable, make it very large and ultra-soft.
02

Typography

Two families plus one editorial voice. Outfit carries the brand; Inter keeps it legible; Playfair Display speaks only in the Journal.

OUTFIT · DISPLAY & HEADLINES · 700–800tracking −0.02em
Engineered to keep
every bike rolling.
INTER · BODY, LABELS & UI · 400–700system fallback

Sentences are short and weighted. We name things by what they do — wash, dry, protect, recirculate — and we prove claims with numbers: 99% water recycled, 3 minutes per bike, 36 patent filings. Eyebrow labels are uppercase with .18em tracking.

Display 52H1 44H2 30H3 20Body large 16Body 14Eyebrow 11 · caps
PLAYFAIR DISPLAY · JOURNAL ONLY · 700editorial accent
Stories from the wash bay.

The serif appears exclusively in Journal heroes and headlines — the one place the brand slows down. Never in UI, never on product pages.

03

Logo & mark

The official 2016 mark: a water droplet carrying the rotating gold wash-cycle arrow. The wordmark pairs gold lowercase “cycle” with blue “WASH”.

cycleWASH official logo
  • Construction — Glacier Blue droplet outline (the water) around a Signal Gold rotating arrow (the wash cycle) with a blue hub. Wordmark: cycle in gold lowercase, WASH in blue caps.
  • Clearspace — one droplet-width on all sides; never crowd the mark.
  • Backgrounds — designed for white/light surfaces; on midnight, place it on a white chip. Never recolour, outline or rotate.
  • Source files — Dataroom › E. Marketing › cycleWASH Logo Datensatz 2016-04 (EPS/PDF, CMYK + RGB); web SVG ships with the theme.
04

Layout & depth

  • 8 px base unit; container max-width 1240 px, centred, 24 px side padding.
  • Section rhythm: 88 px band padding desktop / 56 px mobile; bands alternate Mist ↔ white ↔ midnight.
  • Cards: radius 16–20 px; buttons and inputs 10 px; pills 100 px.
  • Weight content toward the centre — negative space is engineering, not emptiness.
  • Depth = tonal layers; shadows only as 0 20px 48px -28px rgba(13,17,23,.45).
  • Hairlines: 1 px rgba-blue on light, #2E3140 on dark.
  • The 3D theatre is always full-bleed midnight with a single gold or blue accent.
  • Performance is part of the design: lazy-load below fold, content-visibility on long pages.
05

Motion

Water is the only thing allowed to move freely. Everything else moves like machinery — precise, damped, once.

  • Reveals: translateY 14 px → 0, .6 s ease-out, stagger 80 ms, play once.
  • Hovers: −2 px Y over 200 ms; buttons may deepen one ramp step.
  • 3D turntable: continuous, slow (≈12 s/rev), pointer-interruptible.
  • Bubbles & water effects: brand-coloured (blue/gold), physical, never looping ads.
  • No bounce, no parallax scroll-jacking. The brand does not jump.
  • Respect prefers-reduced-motion — reveals become fades.
06

Application

How the system behaves — light where functional, midnight where the machines perform.

LIGHT SURFACE
Mist White
Product pages & sustained reading. The brand's daylight home.
DARK SURFACE
Midnight Ink
3D theatre, hero stages, NDA posters. Where machines perform.
ACCENT
Primary Gold CTA
Glacier Blue interactive · Signal Gold for the one action that matters.
07

Reference sheet

The one-page palette & style sheet — drop it into decks, briefs and partner handoffs.

cycleWASH palette and style reference sheet
Download palette (SVG)
cycleWASH® — Bicycle washing systems. Made in Germany. Liquid Precision · pair with the Palette & Style Reference
Handbook · How this admin works

Every tab, in plain language.

This is the manual for the cycleWASH admin panel. One block per tab: what it is for, what you can actually do in it, and what to watch out for. Open a block by clicking its title. If you only read one thing, read Getting started and Where your data lives.

🚀Getting startedunlock, navigate, dark mode

Unlocking. The panel opens on an Admin Access card. Type the admin password and press Unlock Admin Area → (or just hit Enter). The eye icon next to the field shows what you typed. A wrong password shakes the card and clears the field — there is no lockout, just try again.

Session. You stay unlocked while you are working. After 5 minutes with no clicking, typing or scrolling the password card comes back. Anything that reloads the page (for example ImagePipe's Publish button) can also bring it back.

Navigating. The tabs run across the top: CRM, Documents, Deal Simulator, Finance, Automation, Content, ImagePipe, SPIRIT, Investors, Patents, Brand, Help, Keys. The left sidebar shows the same tabs grouped into three apps — cycleERP (O2C: CRM, Documents, Deal Simulator, plus Automation), Studio (Content Generator, ImagePipe) and More (SPIRIT, Investors, Gallery Manager, Patents, Brand). Top tabs and sidebar links do the same thing; use whichever you prefer.

Dark mode is the default across the whole site, admin included. The Brand tab also has a background-effect switch (Lava / Bubbles / Off) that applies to your browser everywhere on the site.

Leaving. ← Back to site in the top bar or the sidebar returns you to the storefront. Sign out shows the password card again.

Note. The password is checked in the browser, not on a server. Treat the admin page URL and the password as internal information — do not share the link with the password.
🗄️Where your data livesShopify, the Mac app, your browser
  1. Shopify is the single source of truth. Leads, quotes, invoices and closed accounting periods are stored on the shop as metaobjects (cw_lead, cw_quote, cw_invoice, cw_ledger_period), and this admin reads and writes them through the cyclewash-admin-proxy worker. Orders and customers stay native Shopify records — nothing is duplicated.
  2. The local cycleERP app on the Mac does the heavy work. It lives in ~/cycleERP (Docker, web UI on http://localhost:8765) and owns the raw ledger, the BWA / period close, the DATEV export and the bulk outreach sending; it pushes only the computed summaries up to Shopify. DATEV and tax data never leave the Mac.
  3. Your API keys stay in your browser. Gemini, fal.ai, ScrapeGraph, Apify and the Gmail connection are stored in this browser only — never in Shopify, never in the theme. A new laptop, a different browser or clearing your browsing data means entering them again.
  4. Drafts are not published. Everything the Content tab saves to Shopify is saved as a draft. Making something public is always a separate, deliberate step in the Shopify admin.
Rule of thumb. If a number looks wrong in the web admin, check the local app first — it computes, Shopify stores, this panel displays.

The tabs

📊CRMleads, pipeline, Gmail, scrapers, campaigns

What it is for. Your daily desk: every lead, the pipeline board, your mailbox and the tools that find new prospects.

  • Pipeline at a glance at the top: switch between Month, Quarter, Year and All-time for revenue, open pipeline, conversion, average cycle, campaign emails and replies, plus a funnel and source breakdown.
  • Leads desk. Switch between 📋 List and 📊 Board. In List you get search (name, company, email), tier chips (Quoted, Distributors, Warm inbound, OutreachPro, Exact only, NDA), a source filter, 50 rows per page, and Download CSV which exports exactly what the filter is currently showing. Click a row to expand the full record.
  • Board. Six columns — New, Contacted, Qualified, Opportunity, Won, Lost — with a lead count and a weighted euro value per column. Drag a card, or use the little stage dropdown on the card. Export stages JSON / Import stages JSON / Reset moves let you back up and restore your manual moves.
  • Gmail. Connect Gmail opens Google's consent screen. You then get your folders and labels on the left and threads on the right, a reader with ↩ Reply via Gmail, ✨ AI Summarize + Draft and + Add sender to pipeline, and a ✉ Compose window with attachments. The Folder Crawler below scans selected labels over a date range and pulls out every contact you have exchanged mail with, then offers Export CSV or + Push all to pipeline.
  • Lead scrapers. Three lanes: OpenStreetMap (free, no key), ScrapeGraph and Apify. Fill in keywords, industry, country, city and size, run it, review the results, keep what you want.
  • NDA 3D leads. Load NDA access log shows everyone who unlocked the 3D configurator behind the NDA gate; each row can be merged into the lead list.
  • Email campaigns. A four-step builder: 1 Audience → 2 Template → 3 AI Polish → 4 Review & Send, with merge tags, starter templates and a send rate in seconds between mails.
Scrapers: only OpenStreetMap is free. ScrapeGraph and Apify are paid outside services — you need your own account and API key (enter them here or in the Keys tab), and every run costs money on their side.
Board moves are saved in this browser first. The push up to Shopify happens quietly in the background with no success message, and Reset moves only clears the local copy. Export your stages before resetting if they matter.
Campaign test mode. The checkbox says "only send to me", but it actually sends one real email to the first matching recipient. Put your own address at the top of the list, or leave campaigns off until this is fixed. The "Replies" counter is never filled in and will always read 0.
Gmail AI draft needs the Gemini key (Keys tab). The price list and promotion wording it uses are written into the theme, so check numbers and dates in any AI draft before you send it.
📄Documentsoffer → invoice → delivery note, as real PDFs

What it is for. Turning a Shopify order or draft order into a proper German/English sales document as a PDF.

  • 1. Pick order. Start typing an order number or a customer name. Draft orders are listed first (amber Draft badge), live orders after (Live badge). ↻ Reload refetches the list.
  • Set the details on the left: reference number (leave blank and one is generated), document date, valid-until date, VAT handling (Auto by shipping country, 19% MwSt, 0% EU, 0% Export), payment terms (prepayment, on receipt, net 14, net 30) and document language (Deutsch or English).
  • 2. Generate. Six document types: Offer (Angebot), Sales Order (Auftragsbestätigung), Proforma Invoice, Invoice (Rechnung), Packing List (Packliste) and Delivery Note (Lieferschein). Click one and the PDF is built and shown in a preview window.
  • From the preview you can ⬇ Download PDF, ☁ Save to Shopify or open 📁 Saved documents. Saving happens automatically the moment the document is generated — the button is only a retry.
  • Saved documents keeps everything in folders (Offers, Sales Orders, Proforma Invoices, Invoices, Packing Lists, Delivery Notes). Per row you can download, archive (hide, reversible) or remove.
  • Document style sets the accent colour, logo on/off, company address, e-mail, web, VAT ID, bank, IBAN and BIC for all future documents.
Documents needs the admin proxy token. Order lists come from Shopify through the proxy worker. If the token is missing or wrong you get a red ✕ HTTP … line under the order box, no orders load, and all six document cards stay greyed out. Fix it with the small button at the top of the pick-order card: paste a Shopify custom-app token starting with shpat_ with the read_orders and read_draft_orders permissions, then Save & Reload Orders.
Reference numbers are not sequential. An auto-generated number like CW-RE-2026-4821 ends in random digits. If your bookkeeping needs a continuous invoice sequence, type the number yourself in the Reference # field.
Changing the document style does not update documents you already made. Regenerate them if the address or bank details changed.
💰Deal Simulatorwhat a discount really costs you

What it is for. Working out, before you promise anything, whether a discounted deal still makes money — and how far you can go.

  • Presets load a machine in one click: Mini Basic, Mini Platinum, Pro Black, Pro Platinum, OASIS. ⚡ Load Black Deals loads the promotion configuration.
  • Machines in this deal — add as many lines as you like with + Add machine, each with quantity, net unit price and its own margin percentage.
  • The discount slider is the main control. Under it you set the cost of the free cleaner and free commissioning per machine, the distributor/channel margin, your margin floor (the lowest margin you are willing to accept) and the deposit percentage.
  • Read the four numbers: Customer net, Gross profit, Gross margin % and Margin given away.
  • The verdict banner tells you where you stand: ✅ Healthy (above your floor, and how much more you could discount), ⚠️ Below floor (with the maximum discount that still holds the floor) or ⛔ Loss-making (you are selling below cost).
  • Turn this into a quote — enter the customer e-mail, optionally tick "also create Shopify draft order", press 💾 Save quote. The deal is stored on Shopify as a cw_quote record.
  • Deal content at the bottom generates ready-to-copy promotion text (campaign name, valid-from/until, order-by date, language), or hands the brief over to the Content Generator.
The preset prices belong to the simulator, not to your shop. They are written into the tool and do not update when you change a product price in Shopify. Check the unit price before you quote from it.
Saving a quote uses the admin proxy, the same connection as the Documents tab. If that is not working, the quote will not save.
📈FinanceBWA, P&L and open invoices — read only

What it is for. Looking at the books: period results computed by the local cycleERP app, and the list of invoices that are still unpaid.

  • Four headline numbers for the latest closed period: Revenue, Gross profit, Opex and Net result.
  • Periods · BWA / P&L — every closed period, newest first, with revenue, COGS, gross profit, opex, net, when it was computed, and a BWA link that opens the snapshot file the local app uploaded.
  • Open items (AR) — every invoice that is not marked paid, with amount, due date, days overdue in red, status and a link to the PDF, plus a Total open line.
  • DATEV exportOpen local cycleERP ↗ takes you to the local app where the export is generated; Re-check tests whether that app is currently running.
  • Reload refetches everything from Shopify.
Nothing is calculated here. If the tables are empty, no period has been closed yet. Start the local app (~/cycleERP, http://localhost:8765), run the period close there, let it sync, then come back and hit Reload.
Paid invoices are hidden on purpose. This card is the open-item (OPOS) view, not an invoice archive.
DATEV never leaves the Mac. This browser tab does not and will not compute or upload DATEV or tax data — only the computed period summaries you see above are ever synced to Shopify.
Automationevent → rule → action

What it is for. Making the system react on its own: when something happens, check some conditions, then do something.

  • How automation works is a short explainer you can fold open at the top. In one line: an event happens, a rule listening to that event checks its conditions, and if they all match its actions run.
  • State machines show the allowed paths. An entity only ever moves along the arrows — nothing can jump a stage.
  • Active rules lists what exists, each with an enable/disable toggle.
  • + New rule opens a builder with no JSON typing: give the rule a name, pick the WHEN event, add IF conditions (all must match; no conditions means it always fires) and THEN actions (they run in order). A live JSON preview shows exactly what will be saved. Then Save rule, Copy JSON or Cancel.
  • Recent activity shows rules that actually fired, plus a separate list of your own dry-runs from this browser.
  • Test is the dry-run console: pick an event, edit the little payload, press Run dry ▶ and see which rules would match — without anything actually happening.
Save mode: local draft. The rules service is not yet able to accept new rules, so Save rule currently keeps the rule in this browser. Use Copy JSON and paste it into the automation_rule record to make it real. The tab always tells you at the top which mode is live.
The enable/disable toggles are a local view flag for the same reason — they change what you see, not what the service does.
📝Contentdraft copy, pick images, write the Journal

What it is for. Producing blog posts, social captions and help articles — and saving them into Shopify as drafts.

  • Left: the brief. Choose content type (Blog Post, LinkedIn, Instagram Reel, Facebook, TikTok, Press Release, Newsletter), topic, target audience and language, add any extra context, then press ⚡ Generate Draft.
  • Five output tabs fill in at once: Content, SEO Meta, AEO Schema, Social and Internal links, with an SEO and AEO score above them.
  • Three buttons under the output: + Append FAQ, 📋 Copy active tab and ✉ Send to backlog →.
  • Right: media. Three sub-tabs — Library (everything already synced, filter by source and category), Generate (write a prompt, pick an aspect ratio, press ✦ Generate image) and Capture (text read out of your captured images; click a quote to drop it into the draft). Click several library tiles to select them in order, then use ↳ Insert into draft or ⚡ Queue + schedule.
  • Journal Editor at the bottom. The Publish to switch chooses 📓 Journal or 🛟 Help Center. Fill in title, slug, tags, author, lede and hero image, write the body, then Save draft (this browser) or Save draft to Shopify.
Articles save as DRAFTS. Nothing in this tab can publish. After Save draft to Shopify the article exists on the shop but is invisible to visitors — open it in the Shopify admin and publish it there.
The generator is a template, not an AI. It assembles pre-written scaffolding from your brief. Treat the result as a starting skeleton and rewrite it. If you pick a language other than English you get the English template with a note telling you to translate it.
Help Center articles are Journal drafts tagged help. There is no separate help blog. If that tag is removed, the article reappears in the public Journal list instead.
Image generation needs the fal.ai key (Keys tab). Without it, ✦ Generate image reports that the media service is not ready.
🌍Translationsthe storefront and blog in 9 languages, mostly automatic

The site runs in English plus 9 languages — German, French, Spanish, Italian, Dutch, Portuguese, Japanese, Korean and Chinese. There are two separate things that get translated, handled two different ways.

The interface (buttons, product specs, navigation, FAQs) is translated in the theme's own language files and is 100% complete in all 9. Nothing to do here; it is part of the theme.

Blog articles live in Shopify's database, not the theme, so they are translated by a machine translator (Gemini) and written back to Shopify as real translations. Two ways this happens:

  1. New articles translate themselves. In the Content tab's Journal editor there is an “Auto-translate to 9 languages on save” checkbox, on by default. Save an article and, a few seconds later, it exists in all 9 languages. A small toast counts them off (“Translating German… 1/9”) and ends with “Translations: 9 live”. You never touch it.
  2. The existing backlog was translated in one bulk pass with a script (scripts/blog-i18n-backfill.mjs). You would only re-run it if you imported a batch of old articles that pre-date the auto-translate checkbox — it skips anything already translated, so a re-run is safe and only fills gaps.

What is protected. Brand and product names — cycleWASH, LuftWASH, AntiGravity, ECO, STANDARD, Mini, Pro, OASIS — are kept in English in every language. Numbers, units and the HTML layout of an article are preserved exactly; only the readable text changes.

Seeing a translation. Add the language prefix to any blog URL: /de/blogs/news/… for German, /fr/… French, /pt/… Portuguese, /zh/… Chinese, and so on. The prefix is the short code even where the language is a regional one (Portugal, Simplified Chinese).

Requirements, already set up. Auto-translate needs two things that are in place: a Gemini key in the Keys tab, and the translations permission on the admin app. If either is ever missing, the article still saves and a toast tells you exactly which one to restore — it never fails silently.
📸ImagePipethe media library and where images appear on the site

What it is for. Browsing every photo and video in the media library, and deciding which image sits in which spot on the website.

  • Four views: Gallery (all media, filter by category, click for a full-size lightbox), Produced (text the pipeline generated, each with a Copy button), ⌂ Site and 🗂 Manage.
  • Search and category chips at the top narrow the grid; Full screen gives the gallery the whole window (Esc leaves).
  • Site view lists every page of the website — click one to open it in visual edit mode in a new tab. Below that, shop products can be opened with ◎ assign images to attach gallery images to a product carousel.
  • Manage points at the Gallery Manager for reordering, recaptioning, adding and deleting public gallery items.
  • With the local ImagePipe app running you also get a ● local pipe · edit mode badge and a gold Publish button, and each image in the lightbox gains Move (change category), + Tag, ◎ Place (put it in a named slot on the site) and ✦ Social (write a caption from the website copy).
Editing only works on the Mac that runs the pipeline. The tab talks to a local app on localhost:8787. On any other computer the tab is silently read-only — no error appears, the edit controls and the Publish button simply are not there. That is expected.
Publish reloads the page. If your 5-minute session has lapsed, the password card comes back afterwards. That is normal, just unlock again.
Use the sidebar entry for the Gallery Manager. The button inside the Manage view does nothing; the working link is 🖼️ Gallery Manager in the left sidebar under "More".
💬Testimonialscustomer quotes, shown above Proven Performance

What it does. Real quotes from real customers, rendered at the top of the Proven Performance block — so every product page closes with customers first, then the figures that back them up. Entries are stored on the shop, not in the theme, so one edit here updates every page at once.

Adding one. Press + Add testimonial, fill the card, then Save. Company, Person quoted and the Quote are required; an entry missing any of the three is skipped rather than rendered half-empty. Website URL must start https:// or it is ignored and the company shows as plain text. Role is optional.

The logo. Press Upload logo to Shopify and pick a file — it goes straight to the Shopify CDN and the link fills itself in. You can also paste a CDN link from Content → Files, or type the filename of an image already in the theme. Either way the preview under the field loads the real image, so a wrong path is obvious before you save rather than after it is live.

Ordering and removing. Each card has / to move it and Delete to drop it. Nothing takes effect until Save; dropping from several entries to fewer asks for confirmation first.

If Save fails. Copy JSON puts the whole list on your clipboard and Metafield editor ↗ opens the same field in Shopify admin, where you can paste it by hand. Same destination, manual route.

Only publish people who have agreed to be quoted. This section deliberately ships with no example entry — an invented testimonial is the one mistake here that costs real credibility. With no entries saved, the section renders nothing at all: no heading, no empty space.
🔧SPIRITthe IoT platform reference — read only

What it is for. A reference sheet for the SPIRIT platform: the app, the operator and technician portals, and the Walter controller in the machines. Nothing here is editable.

  • The four platforms and the end-to-end flow between customer, operator, technician and the transport layer.
  • Route breakdown for the three portals: Operator Dashboard, Customer App and Technician Portal.
  • Walter ESP32-S3 — the hardware pin layout and the commands the machine understands (start wash, stop wash, test pulse, status, reboot, set mode), plus the default cycle timings.
  • Technology stack and the product roadmap by quarter.
  • Four preview tiles open the live portals in correctly sized popup windows: Operator Dashboard (desktop), Customer App (mobile), Technician Portal (tablet) and Platform Overview. The 📋 button copies the dashboard link.
  • Docker setup with copy-ready commands for running the backend yourself.
Allow popups for this site, otherwise the four preview tiles are blocked. They all reuse one window, so opening a second tile replaces the first. Shopify does not allow these pages to be embedded, which is why they open as popups rather than inline.
Do not screen-share this tab. The Docker section prints the default backend login in plain text.
💼Investorsthe Series A story — read only

What it is for. The investor narrative in one place, so you can show it or send it without hunting for slides.

  • Key metrics, the product lineup with indicative prices, the technology and IP summary and the revenue projection chart.
  • Series A use of funds and what investors get.
  • Go-to-market by segment and the contact card for the IR enquiries.
  • 💼 View Full Deck opens the public investor page; 🔗 Copy Share Link copies its address.
  • Preview buttons show the live investor page at desktop, tablet and mobile size, or ↗ Open in new tab.
Everything on this tab is written into the theme, not pulled from live data. To change a figure, the page itself has to be edited — the numbers will not update on their own, and they do not always agree with the Patents tab.
Small display quirk. Both 🔗 Copy Share Link buttons are wired to the same label, so clicking the lower one makes the upper one flash "Copied". The link is still on your clipboard.
🛡️Patentsthe IP portfolio and fee deadlines — read only

What it is for. Keeping an eye on the whole protection portfolio — patents, utility models, registered designs and trademarks — and on which fees fall due next.

  • Four counters: active filings, granted, pending and fees due in the next 90 days.
  • Filter by family, by status (Granted / Pending / Abandoned), or tick Only entries with upcoming fees to see just what needs paying.
  • Family cards group the filings; click a card header to fold it open or closed. Each row shows country, reference, type, status and the next fee with a coloured dot.
  • The legend explains the dots: red for a fee due within 90 days, amber within 180 days, blue later.
  • PDF, XLSX and Register download the underlying overview files.
This tab is a mirror, not a live register. The data comes from a file inside the theme that is rebuilt from the DPMA overview spreadsheet. It only changes when someone regenerates and redeploys it — check the date in the legend before trusting a deadline.
Already-overdue fees show a red dot but are not counted in the "Fees due < 90d" number, which only counts fees still in the future. Scan the rows, not just the counter.
🎨Brandthe visual system, plus the background switch

What it is for. The canonical brand reference for anyone designing or building something cycleWASH — agency, developer or partner.

  • Site Background at the top: 🌋 Lava, 🫧 Bubbles or ✨ Off.
  • Colour — the four named colours (Glacier Blue, Signal Gold, Mist White, Midnight Ink), what each is for, and the rule that gold is reserved for the one action that matters.
  • Typography — Outfit for the brand, Inter for legibility, Playfair Display only in the Journal, with the size scale.
  • Logo & mark — construction, clearspace, background rules and where the original source files live.
  • Layout & depth and Motion — spacing rhythm, radii, hairlines, and how animation should behave.
  • Reference sheet — the one-page palette and style summary to drop into decks and partner handoffs.
The background switch is personal. It applies to the whole site in your browser only — it is not a shop-wide setting and visitors will not see your choice.
🔑Keysone place for every API key

What it is for. Entering and clearing the keys that the other tabs need, without hunting for the field that owns them.

  • Each key gets a card with a masked field, a show/hide eye, Save and Clear, and a status pill reading Set or Not set.
  • Gemini AI (free tier) — powers the AI e-mail drafting in Gmail and the campaign polish step. Get one from Google AI Studio.
  • FAL.ai Images (paid) — AI image generation in Content Studio → Generate.
  • ScrapeGraph (paid) and Apify (paid) — the two paid lead-scraper lanes.
  • Shopify Admin token — lets the CRM and the document generator read orders and products.
  • Admin proxy password — leave it blank unless you were told otherwise; blank means "use the default".
  • Gmail OAuth is shown here but connected from the Gmail panel in the CRM tab.
Keys live in this browser only. They are never stored in Shopify or in the theme. Clear your browsing data, switch browser or move to another computer and you will have to enter them all again. Nobody else can see them, and nobody else inherits them.
OpenStreetMap needs no key — it is the free scraper lane and always works.
Two keys are not in this vault. The NDA audit key is asked for by a popup in the CRM tab the first time you load the NDA log, and the Shopify token used for order documents is entered with the button in the Documents tab (that one is stored on the server, not in your browser).
📖Helpthis handbook, help articles, platform docs

What it is for. Everything explanatory in one tab: this handbook, the published help articles, and the SPIRIT platform documentation.

  • This handbook — the blocks you are reading now.
  • Help articles — the guides written for customers. They appear here and on the public help page.
  • SPIRIT Platform Documentation — the longer technical reference, available in every shop language.
To add a help article, go to Content → Journal Editor, set Publish to to 🛟 Help Center, write it and press Save draft to Shopify. Like every article it is saved as a draft — publish it in the Shopify admin before it appears here.

Glossary — the buttons with odd names

Queue + schedule
Content tab, media panel. Hands the images you have selected to the automation service so it can plan social posts from them. There is no queue list and no cancel button in this panel — once queued, it is out of your hands here.
Library / Generate / Capture
The three ways to get an image in the Content tab. Library = pictures already in the media pipeline. Generate = make a new one with AI from a text prompt (needs the fal.ai key). Capture = text that was read out of photos you captured, so you can quote a sign, label or slide.
Insert into draft
Drops the media you selected straight into the article you are writing, in the order you clicked them. Note it lands at the top of the output area rather than inside the text, so it is not included when you copy or send the draft — add the images again in the Journal Editor if the article needs them.
Append FAQ
Adds a ready-made block of questions and answers, matched to your topic, to the end of the generated text. Good for search engines and AI answer boxes. It refuses if the text already contains a FAQ block.
Copy active tab
Copies whichever output tab you are currently looking at (Content, SEO Meta, AEO Schema, Social or Internal links) to your clipboard. It does this silently — there is no confirmation message, so just paste to check.
Send to backlog
Hands the draft to the automated blog agent, which picks up its backlog on its next run (Monday and Thursday, 09:00). If the agent cannot be reached, the draft is downloaded as a small file instead, with instructions on where to drop it.
Dry-run
Automation tab. A rehearsal: you fire a pretend event and the system reports which rules would have matched and what they would have done — without sending anything, changing any stage or creating any document. Safe to press as often as you like.
BWA
Betriebswirtschaftliche Auswertung — the German monthly management report your accountant works from: revenue, cost of goods, gross profit, overheads and the result for the period. It is calculated by the local cycleERP app on the Mac; the Finance tab only displays it.
OPOS
Offene Posten — open items: invoices that have been issued but not yet paid. That is exactly what the Finance tab's "Open items (AR)" card lists. Paid invoices are deliberately left out.
O2C
Order-to-Cash — the whole chain from first contact to money in the bank: lead → quote → order → invoice → payment. It is the heading over the CRM, Documents and Deal Simulator group in the sidebar, because those three tabs are the steps of that chain.

This handbook describes the panel as it is built today. If a button behaves differently from what you read here, trust the button and tell whoever maintains the theme — the guide lives in snippets/cw-admin-guide.liquid and is meant to be corrected, not worked around.

Documentação da Plataforma SPIRIT

📊

Painel do Operador

Monitorização em tempo real, acompanhamento de receitas, gestão de frota em spirit.cyclewash.com

🔧

Portal do Técnico

Diagnóstico remoto, agendamento de manutenção, atualizações de firmware, gestão de alertas

📱

App do Cliente

Encontre estações, inicie lavagens, pagamento, histórico de lavagens, recompensas de fidelidade

Painel SPIRIT — Começar

Criar a Sua Conta

Visite spirit.cyclewash.com → Clique em "Registar" → Insira os detalhes da sua empresa e o número de série da máquina da placa de identificação (formato: CW-XXXX-XXXXXX).

Conectar a Sua Máquina

No LCD da sua máquina: Definições → WiFi → Insira as credenciais. A máquina aparecerá no seu painel em 5 minutos. O LED de estado fica azul sólido quando conectado.

Configurar Pagamento

Painel → Definições → Pagamentos → Ative os métodos desejados: Nayax (cartões sem contacto), código QR (app), Aceitador de moedas. Defina os preços por ciclo de lavagem (recomendado: €2-5).

Configurar Alertas

Painel → Alertas → Configure: Pouca água, pouco detergente, manutenção pendente, alerta de offline, marco de receita. Notificações por e-mail, SMS ou notificação push.

Referência da API SPIRIT

Base URL: https://api.spirit.cyclewash.com/v1
Autenticação: Token Bearer (obtido através do fluxo de credenciais de cliente OAuth2)

Endpoints

MétodoEndpointDescrição
GET/machinesListar todas as máquinas na sua frota
GET/machines/{id}/statusEstado da máquina em tempo real (água, bateria, última lavagem)
GET/machines/{id}/analyticsAnálises de utilização (lavagens, receita, consumo de água)
POST/machines/{id}/commandEnviar comando (start_wash, stop, diagnostic)
GET/revenueRelatório de receita por intervalo de datas
GET/alertsAlertas ativos de manutenção e sistema
WS/ws/machines/{id}WebSocket para fluxo de telemetria em tempo real

Exemplo: Obter Estado da Máquina

curl -X GET https://api.spirit.cyclewash.com/v1/machines/CW-2024-001234/status \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"

# Response:
{
  "machine_id": "CW-2024-001234",
  "model": "Pro Platinum",
  "status": "idle",
  "battery_level": 87,
  "water_level": 64,
  "detergent_level": 45,
  "total_washes": 12847,
  "today_washes": 23,
  "today_revenue": 92.00,
  "last_wash": "2026-04-06T14:32:00Z",
  "firmware": "3.2.1",
  "connectivity": "wifi",
  "solar_output_watts": 285,
  "location": { "lat": 50.9503, "lng": 6.9588 }
}

Tópicos MQTT

# Subscribe to machine telemetry
cyclewash/{machine_id}/telemetry    → { battery, water, solar, temp }
cyclewash/{machine_id}/status       → { state: idle|washing|error }
cyclewash/{machine_id}/wash         → { started_at, duration, water_used }
cyclewash/{machine_id}/alert        → { type, severity, message }

# Publish commands
cyclewash/{machine_id}/command      → { action: "start_wash" | "stop" | "diagnostic" }
cyclewash/{machine_id}/config       → { price, wash_duration, eco_mode }

# MQTT Broker: mqtt.spirit.cyclewash.com:8883 (TLS)
# Protocol: MQTT v5.0 over WSS

App iPhone cycleWASH

Download: Disponível na App Store — pesquise "cycleWASH" ou digitalize o código QR em qualquer estação cycleWASH.

Configuração da App — Passo a Passo

Descarregar e Instalar

Abra a App Store → Pesquise "cycleWASH SPIRIT" → Toque em "Obter" → A app instala automaticamente. Requer iOS 15.0 ou superior, iPhone 8 ou mais recente.

Criar a Sua Conta

Abra a app → Toque em "Registar" → Insira o e-mail e crie uma palavra-passe (ou inicie sessão com Apple ID / Google). Verifique o seu e-mail com o código de 6 dígitos enviado para a sua caixa de entrada.

Adicionar Método de Pagamento

Perfil → Métodos de Pagamento → Adicionar: Apple Pay (recomendado), cartão de crédito/débito ou PayPal. Também pode comprar créditos de lavagem em pacotes (pacote de 10, pacote de 20) com descontos.

Ativar Serviços de Localização

Permita o acesso à localização para encontrar estações próximas. O mapa mostra todas as estações cycleWASH com disponibilidade em tempo real, tempos de espera e direções a pé.

A Sua Primeira Lavagem

Encontre uma estação no mapa → Toque em "Iniciar Lavagem" → Digitalize o código QR na máquina (ou toque no NFC) → Coloque a sua bicicleta → A lavagem inicia automaticamente → O pagamento é cobrado após a conclusão.

Funcionalidades da App

FuncionalidadeDescriçãoNível
🗺️ Localizador de EstaçõesMapa com disponibilidade em tempo real, horários, preçosGratuito
📱 Início QR/NFCInicie uma lavagem ao digitalizar o código QR da estaçãoGratuito
📊 Histórico de LavagensRegisto completo de todas as lavagens com data, estação, custoGratuito
💳 Carteira DigitalGuarde métodos de pagamento, compre pacotes de créditosGratuito
⭐ Programa de FidelidadeGanhe pontos por lavagem → desbloqueie recompensas e descontosGratuito
🔔 NotificaçõesAlertas de lavagem concluída, alertas de estação próxima, promoçõesGratuito
🏆 ConquistasGanhe emblemas: Primeira Lavagem, 10 Lavagens, Eco Warrior, etc.Gratuito
📈 Impacto EcológicoAcompanhe a água poupada, CO₂ reduzido vs. lavagem manualGratuito
🔗 Modo FrotaGira várias bicicletas, adicione membros da equipa, créditos em volumePro
📊 Análises de FrotaRelatórios de utilização, discriminação de custos, alertas de manutençãoPro

Níveis de Fidelidade

NívelRequisitoBenefícios
🥉 Bronze0 lavagensPreço base, ganhe 1 ponto/lavagem
🥈 Prata10 lavagens5% de desconto, ganhe 1,5 pontos/lavagem, suporte prioritário
🥇 Ouro50 lavagens10% de desconto, ganhe 2 pontos/lavagem, amostra gratuita de produto de cuidado
💎 Platinum200 lavagens20% de desconto, ganhe 3 pontos/lavagem, acesso VIP, serviço anual gratuito

Resolução de Problemas

Código QR não digitaliza

1. Certifique-se de que as permissões da câmara estão ativadas (Definições → cycleWASH → Câmara → Permitir)
2. Limpe o código QR na máquina se estiver sujo
3. Tente segurar o telemóvel a 15-20cm do código
4. Se ainda não funcionar, toque em "Introduzir Código Manualmente" e digite o código de estação de 8 dígitos apresentado abaixo do QR

Pagamento falhou

1. Verifique se o seu método de pagamento é válido (Perfil → Métodos de Pagamento)
2. Certifique-se de que tem saldo suficiente no seu cartão ou conta de créditos de lavagem
3. Tente um método de pagamento diferente (Apple Pay, cartão, PayPal)
4. Se estiver a usar pacotes de créditos, verifique o seu saldo restante
5. Contacte o suporte: info@cyclewash.de

A app bloqueia ou congela

1. Force o fecho da app: deslize para cima a partir do fundo, deslize a app para fora
2. Verifique se há atualizações: App Store → Perfil → cycleWASH → Atualizar
3. Reinicie o seu iPhone
4. Elimine e reinstale a app (os dados da sua conta estão sincronizados na nuvem)
5. Requisito mínimo: iOS 15.0, iPhone 8 ou mais recente

Envio e Pagamentos

Zonas e Tarifas de Envio

ZonaPaísesTarifa de MáquinaProdutos de CuidadoEntrega
🇩🇪 AlemanhaAlemanhaGRÁTIS (>€10k)GRÁTIS2-5 dias
🇪🇺 UE PróximaAT, NL, BE, LU, FR, DK, CZ, PLdesde €149€195-8 dias
🇪🇺 UE DistanteES, IT, PT, GR, RO, SE, FI, NOdesde €249€297-12 dias
🇨🇭 SuíçaSuíçadesde €199€355-8 dias
🇬🇧 Reino UnidoReino Unidodesde €249€357-10 dias
🇺🇸 EUA LesteEstados do leste dos EUAdesde $499$4910-15 dias
🇺🇸 EUA OesteEstados do oeste dos EUAdesde $599$4912-18 dias
🇯🇵🇰🇷 ÁsiaJapão, Coreia do Suldesde €599€5910-15 dias
🇦🇪 Médio OrienteEAU, Arábia Sauditadesde €549€498-12 dias
🌍 Resto do MundoTodos os outros paísesOrçamento personalizado€6515-25 dias
Todos os envios de máquinas incluem caixotes de madeira profissionais, seguro completo de transporte e acompanhamento em tempo real. As estações OASIS requerem frete dedicado e instalação white-glove.

Métodos de Pagamento

MétodoTipoRegiõesEstado
Shopify PaymentsVisa, MC, AmexMundial✅ Ativo
Shop PayCheckout aceleradoMundial✅ Ativo
Apple PayNFC MóvelMundial✅ Ativo
Google PayNFC MóvelMundial✅ Ativo
PayPalCarteira digitalMundial✅ Ativo
SharpeiLeasing / AluguerUE, EUA✅ Integrado
Transferência BancáriaFatura B2BUEA pedido
KlarnaCompre Agora, Pague DepoisUE, EUARecomendado

Processo de Compra B2B

Pedir um Orçamento

Contacte-nos através do formulário em /pages/contact-us, por e-mail info@cyclewash.de ou use o widget de chat. Especifique modelo, quantidade e local de entrega.

Receber Proposta

Enviaremos uma proposta detalhada em 24 horas incluindo preços de produtos, custos de envio, plano de instalação e termos de pagamento (NET 30/60/90 disponíveis para compradores qualificados).

Pedido e Pagamento

Faça o seu pedido online (checkout Shopify) ou através de ordem de compra assinada. Opções de pagamento: total adiantado, divisão 50/50 ou leasing via Sharpei.

Entrega e Instalação

Fabrico: 2-4 semanas. Envio conforme a tabela de zonas acima. Para estações OASIS, a nossa equipa trata da instalação no local (2-3 dias).

Perguntas Frequentes

O Nico responde às perguntas mais frequentes em 10 segundos — a FAQ completa está abaixo.

Quanta água uma cycleWASH usa por lavagem?

Apenas 3-5 litros por ciclo de lavagem — 95% menos do que a lavagem manual de bicicletas (80+ litros). O nosso sistema de reciclagem de água recupera até 85% da água usada.

É seguro para e-bikes e quadros de carbono?

Sim! O nosso sistema de pulverização de baixa pressão calibrado foi concebido especificamente para e-bikes e quadros de carbono. Ao contrário das lavadoras de pressão, o nosso sistema nunca excede os níveis de pressão seguros para a eletrónica e materiais delicados.

Quanto tempo demora um ciclo de lavagem?

Mini: 45 segundos. Pro: 60 segundos. OASIS: 90 segundos (inclui pré-enxaguamento e secagem a ar). A máquina trata de tudo automaticamente — basta colocar a sua bicicleta e pressionar iniciar.

Funciona sem luz solar?

Sim. Os modelos solares incluem um banco de baterias LiFePO4 que armazena energia suficiente para 20-40 lavagens com uma carga completa. Os modelos a bateria funcionam independentemente da luz solar. O sistema alterna automaticamente entre solar, bateria e apoio opcional da rede elétrica.

Qual é o ROI / período de retorno?

ROI típico: 8-18 meses dependendo da localização e do preço. A €3/lavagem com 50 lavagens/dia, uma Mini gera ~€4.500/mês de receita. Use a nossa Calculadora ROI para uma estimativa personalizada.

Oferecem leasing ou financiamento?

Sim! Através do nosso parceiro Sharpei, oferecemos leasing flexível a partir de €199/mês (Mini) ou €299/mês (Pro). Modelos de partilha de receita também estão disponíveis — investimento inicial zero, paga por lavagem.

Que detergente/solução de limpeza é utilizada?

A nossa solução de limpeza exclusiva 100% biodegradável (cycleWASH EcoClean). É de pH neutro, segura para todas as superfícies de bicicletas incluindo carbono, pintura e borracha. Disponível em recipientes de 5L e 20L na nossa página de Produtos de Cuidado.

Posso integrar a cycleWASH com a minha frota de bike-sharing existente?

Absolutamente. A API SPIRIT integra-se com todos os principais sistemas de gestão de frotas. Fornecemos endpoints REST API + MQTT para monitorização em tempo real. Veja a documentação SPIRIT para detalhes da API.

Que garantia oferecem?

Garantia limitada nos termos das nossas Condições Gerais. Peças de desgaste (escovas, mangueiras, filtros, bombas, motores roller-drive, correias) não estão cobertas. Garantia alargada (1 a 5 anos, alinhada com a duração do contrato) disponível ao assinar um contrato de manutenção. Para suporte Premium ou Enterprise, contacte info@cyclewash.de.

Onde são fabricadas as máquinas cycleWASH?

Todas as máquinas são concebidas e fabricadas nas nossas instalações em Colónia, Alemanha (CW Cleaning Solutions GmbH, Belfortstraße 8, 50668 Colónia). Controlamos toda a cadeia de abastecimento para uma qualidade consistente. 36 patentes internacionais protegem a nossa tecnologia.

1. Pick order

Real Shopify orders + draft orders — type a name or number to filter.

Loading orders from Shopify…

VAT calculated on net (line items + shipping) and shown on its own line. §4 reference auto-switches based on shipping country.

2. Generate document

Click a card to open a preview, then save to Shopify or download.

Ready. Pick an order above, then click a document.

Saved documents 0

Every document you generate is stored here automatically. Click to preview, download as PDF, or save to Shopify.

No documents yet — pick an order and generate one above.

Document style

Adjust how every generated PDF looks — accent colour, logo, company & bank details. Saved to Shopify; applies to all new documents on every device.

Connect Shopify API Token

Paste a Custom App admin API token (scopes: read_orders, read_draft_orders). It starts with shpat_.

Document preview

📁 Saved documents

Generated PDFs are stored in this browser, grouped by type. Click any to preview, download, archive, or remove.
O2C · Pricing Strategy

Deal Simulator

Model discounts, free items & channel margins — see live impact on gross margin, P&L and cashflow. Decide how far you can discount before the deal stops paying.

Machines in this deal

25%Discount on list
Customer net (total)
Gross profit (total)
Gross margin %
Margin given away
Turn this into a quote Saves a cw_quote record and can open a Shopify draft order.

Deal P&L (all machines)

LineDeal total

Cashflow timeline (this deal)

Blue = cash in (deposit on order, balance on delivery ~6 weeks). Red = COGS cash out at production. Green = net cash by month.

📣 Deal content — ready to publish

Finance · BWA · P&L · open items

The books, computed locally.

Period results come out of the local cycleERP app — it owns the ledger, runs the BWA and holds every DATEV artefact — and are cached up to Shopify as cw_ledger_period metaobjects. This tab reads them, plus the cw_invoice open-item list. Nothing here recomputes accounting in the browser. Waiting for the Finance tab to open…

Revenue
Gross profit
Opex
Net result
Latest period — no data yet

Periods · BWA / P&L

Every cw_ledger_period record on the store, newest first. The BWA link opens the snapshot file the local app uploaded to Shopify Files.

Period Revenue COGS Gross profit Opex Net Computed BWA
Loading periods…

No periods have been synced yet

BWA and P&L figures are not calculated here. The local cycleERP app consolidates op.db, runs the period close and then pushes the result up as a cw_ledger_period metaobject — this tab is the read side of that pipe.

  1. Start the local app: ~/cycleERP (Docker), web UI on http://localhost:8765.
  2. Close a period there (BWA / P&L run).
  3. Let the sync module push the period up — it writes cw_ledger_period and uploads the BWA snapshot to Shopify Files.
  4. Come back and hit Reload. The KPI row and the table fill in.

Why the detour: Shopify is the system of record for what everyone may read; the Mac keeps the raw ledger, the tax data and the DATEV artefacts. Only the computed summary travels.

Open items (AR)

Every cw_invoice that is not marked paid. Overdue days are counted against due_date in red.

Invoice Customer Amount Due Overdue Status PDF
Loading open items…
Total open

No open invoices on the store

Either every invoice is settled, or the invoicing module has not synced yet. Invoice records (cw_invoice) are created by the local cycleERP app when it issues a document, and the PDF is uploaded to Shopify Files alongside it.

  1. Run the local app (~/cycleERP, http://localhost:8765).
  2. Issue or import invoices there — OPOS lives in cw-ar-ap.json.
  3. Let the sync module push them up as cw_invoice, then reload this tab.

Paid invoices are intentionally hidden here — this card is the open-item (OPOS) view, not the invoice archive.

DATEV export

Local-only. Always.

DATEV and tax data never leave the Mac. The export is generated by the local cycleERP app from op.db and written to disk there. This browser tab does not — and will not — compute, buffer or upload DATEV data. Only the computed period summaries you see above are ever synced to Shopify.

Checking whether the local app answers on localhost:8765

Source: Shopify metaobjects cw_ledger_period + cw_invoice, read through the cyclewash-admin-proxy worker. Write side and all heavy compute live in the local cycleERP app — see docs/ARCHITECTURE-CYCLEERP-ADMIN.md.

ImagePipecapture → produce
Source
imagepipe.sh ingest photos 10
🗂

Gallery Manager

Reorder, recaption, add or delete the 443 public gallery items. Opens in a focused window — Shopify blocks embedding pages inside pages.

Studio · Social proof

Customer Testimonials

Real quotes from real customers, shown at the bottom of the product pages. Only add people who have agreed to be quoted — never invent an example entry.

Entries 0 Metafield editor ↗

Company, person and quote are required. The website must start with https://. For the logo, upload the file in Shopify admin under Content → Files, copy the CDN link and paste it here (a theme-asset filename such as logo-acme.webp also works). Or press Upload logo to Shopify on the entry to send the file straight to the CDN. Nothing goes live until you press Save.

No testimonials yet. Add one once a customer has approved their quote.

Automation — cycleERP Rules Engine

Event → Rule → Action. Rules live in config (the automation_rule metaobject) — edit without a deploy.

How automation works
  1. Event — something happens (a lead replies, a quote is accepted, an image is generated).
  2. Rule — a rule listening on that event checks its conditions; if they all match, it fires.
  3. Action — the rule sets a stage, drafts an email, notifies sales, schedules a follow-up, creates a doc.
  4. Guarded transitions — an entity only ever moves along the arrows in the state machines below. Nothing can jump a stage.
  5. No deploy needed — rules are config, not code. Build one here, then test it with Dry-run: it reports which rules match and what they would do, without any side-effects.

State machines — entities advance only along guarded transitions (PLC interlock)

Active rules

loading…

Recent activity — rules that actually fired on the worker

checking the worker…

Dry-runs from this browser — local test log, no side-effects

No dry-runs yet in this browser.

Test — dry-run console: fire an event, see which rules match (no side-effects)


  
Admin · Integrations

Keys & Integrations

Every API key the admin panels use, in one place. Paste a key, hit Save, and the panel that needs it picks it up immediately.

Keys stay in this browser. They are saved in this browser’s localStorage only — never sent to Shopify, never stored in the theme, never written to a metaobject. A key is only passed on to the worker that needs it, at the moment you use that feature. Clearing your browser data, or opening the admin on another device, means entering them again.

Loading integrations…

Paid services bill you directly — cycleWASH never sees the usage or the key. The free lanes (OpenStreetMap / Overpass, Gemini’s free tier) cost nothing to run.

Desempenho Comprovado
1.000.000
Lavagens de bicicleta
(vida útil da escova)
Concebido para até
10.000
Horas de funcionamento
(serviço contínuo)
Energia Solar & Bateria
Sem ligação à rede elétrica
Made in Germany
Concebido em Colónia
IP
International Patents
36 Patentes Mundiais
ECO
100% Biodegradável
Circuito Fechado de Água
Testado pela DEKRA
Testado pela DEKRA
CE
Conforme CE