Connect ZKTeco fingerprint/face devices to Odoo HR Attendance with automatic employee sync and real-time punch download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $299.00 USD; request a quote for a scoped proposal.
应用清单
围绕您的工作流程构建
Connect ZKTeco fingerprint/face devices to Odoo HR Attendance with automatic employee sync and real-time punch download.
无需自行搭建——由 ECOSIRE 构建、安装并提供支持的可用应用。
以一次性构建价格开始。我们在启动时与您共同确定范围。
ECOSIRE 在您的 Odoo 上构建、配置并安装。
约 2–4 周内上线,并提供上线后的支持期。
Your ZKTeco fingerprint and face-recognition terminals already capture every clock-in and clock-out at the door — but that data is stranded on the device while your team re-keys hours into Odoo or reconciles a CSV export at month-end. This build-to-order module closes that gap. ECOSIRE designs, builds, installs and supports a custom Odoo add-on that talks directly to your ZKTeco hardware over TCP/IP (using the proven pyzk protocol), syncs your Odoo employees onto the devices, and pulls raw punches into Odoo HR Attendance automatically — no manual export, no spreadsheet, no double entry.
This is not a generic apps.odoo.com download. We build the connector around your exact device models, network topology, employee-numbering scheme and shift rules, then install it on your Odoo 17, 18 or 19 instance and hand it over with documentation, training and a support window. Punches land as native hr.attendance records, so every downstream feature you already rely on — attendance dashboards, worked-hours reports, and Timesheets or Payroll integration on Enterprise — keeps working exactly as designed.
Under the hood the module follows Odoo conventions end to end: device connections are modelled as models.Model records with encrypted credential fields; a scheduled automated action (ir.cron) polls each terminal on the interval you choose and downloads new attendance logs; check-in/check-out pairing is computed with @api.depends-driven logic that respects each site's time zone so a punch at a device in Dubai and one in Karachi both map to the correct UTC instant in Odoo. Access is locked down through ir.model.access.csv and record rules so HR admins see device config while regular employees never do. Views are delivered in standard XML/OWL, and you get QWeb-based attendance and exception reports you can print or email.
Because we build it to order, the connector handles the real-world messiness that off-the-shelf modules ignore: multiple devices at one location, multiple locations across time zones, employees enrolled on more than one terminal, duplicate-punch de-duplication, offline-device retry, and mapping a device's internal user ID back to the right Odoo employee even when your badge numbers don't match Odoo's default IDs. Where you need to push data the other way — enrolling a new hire on every terminal the moment they're created in Odoo — we wire that through Odoo's ORM and, where the network requires it, XML-RPC/JSON-RPC. The result is a single source of truth: what the door records is what Odoo pays.
Already runs fingerprint/face terminals at the door and is tired of exporting CSVs and re-keying hours into Odoo each pay period. Wants punches to land in Odoo HR Attendance automatically so month-end payroll reconciliation is a review, not a re-entry job.
Oversees several branches or warehouses — often in different time zones — each with its own device. Needs one Odoo view of who clocked in where, with punches mapped to the correct local time and consolidated into a single attendance record set.
Owns the Odoo server and the office network. Cares about a clean, upgrade-safe module that follows Odoo conventions, stores device credentials securely, and won't break on the next Odoo version. Wants the connection modelled properly with cron scheduling and record-rule security rather than a fragile script.
| 标准 | 伊科西尔 | 定制建造 | 竞争对手 | 奥杜本机 |
|---|---|---|---|---|
| Direct pull from your specific ZKTeco device models | 包含 | 部分支持 | 部分支持 | |
| Automatic scheduled punch download (ir.cron), no CSV export | 包含 | 部分支持 | 部分支持 | |
| Multi-device, multi-location, time-zone-aware punch mapping | 包含 | 部分支持 | 不包括在内 | |
| Device-user-ID to Odoo employee mapping for mismatched badge numbers | 包含 | 部分支持 | 不包括在内 | |
| Two-way employee enrollment onto terminals from Odoo | 包含 | 部分支持 | 不包括在内 | |
| Built, installed and configured for you on Odoo 17/18/19 | 包含 | 不包括在内 | 不包括在内 | |
| Post-launch support window with SLA and documented upgrade path | 包含 | 不包括在内 | 部分支持 | |
| Source code in a Git repo you own (no lock-in) | 包含 | 包含 | 不包括在内 |
This is a build-to-order module, not an instant download. Typical lead time is 2 to 4 weeks from purchase, depending on how many device models, sites and time zones are involved. After you order, we schedule a short scoping call to confirm your ZKTeco models, network setup, employee numbering and target Odoo version (17, 18 or 19). We then build the module, install it on your instance, run a verified end-to-end sync from a live terminal, and hand over with docs and training. You'll get milestone updates throughout.
Every build includes a post-launch support window with an agreed SLA for bug fixes and adjustments after handover. You receive the full source in a Git repo you own, so there's no lock-in. When you later upgrade Odoo (for example 18 to 19), we provide a documented upgrade path and can quote a small migration pass if the ORM or device libraries change. Ongoing support and enhancement retainers are available if you'd like us to keep maintaining it.
We support ZKTeco terminals reachable over TCP/IP that speak the standard protocol used by the pyzk library — this covers most SpeedFace, MB, iClock, F-series and K-series fingerprint and face devices (default port 4370). During scoping we confirm your exact models and firmware. The Odoo server needs network reachability to each device; for remote sites we'll advise on VPN or a local relay so punches sync reliably.
Yes. Downloaded punches are written as native hr.attendance records, so the standard Odoo Attendances app, worked-hours computations and dashboards work unchanged. On Odoo Enterprise we can wire the attendance data into Timesheets and Payroll so approved hours flow through to pay. The module depends only on the standard hr and hr_attendance apps, keeping it upgrade-friendly.
Each device is its own configuration record with its own IP, port and time zone. A scheduled automated action polls every device on your chosen interval and imports only new punches. A device punch is interpreted in that device's local time zone and stored at the correct UTC instant in Odoo, so a terminal in Dubai and one in Karachi reconcile cleanly. Employees enrolled on more than one terminal are de-duplicated so you never get double check-ins.
No. The module keeps an explicit mapping between each device's internal user ID and the corresponding Odoo employee, which we configure against your real numbering scheme during setup. Punches from an unmapped device user are logged as exceptions in a QWeb report rather than silently dropped, so you can spot and fix enrollment gaps quickly.
Connect ZKTeco fingerprint/face devices to Odoo HR Attendance with automatic employee sync and real-time punch download.