Employment Hero Malaysia
Adds EPF, SOCSO and MyKad to Odoo employees and registers the Malaysia profile for the Employment Hero sync.
Store price is USD 175 all-in: installing this also pulls the 4 paid ERP Heritage modules it depends on.
Why this module
Employment Hero Malaysia
The three identifiers Malaysia needs
EPF Number, SOCSO Number and MyKad land directly on the employee form, so the statutory fields a Malaysian payroll integration relies on live in standard Odoo HR, not in a spreadsheet or a custom patch.
MyKad is kept to HR users
The MyKad national identity field is group-restricted to HR users at the field level, so the national id is not exposed to every internal user who can open an employee record.
Tunable mapping, no code
Three mapping lines wire the new fields into the shared employee mapping with default source paths you adjust from the user interface to fit your own Employment Hero payload, no deployment required to change them.
Day in the life
Where it sits on an ordinary sync
Install the pack and a Malaysia profile registers and the three fields appear on the employee form. When the Employment Hero sync engine runs its employee job, the mapper reads the EPF, SOCSO and MyKad values from the inbound payload using the shipped source paths and writes them onto the matched employee. The engine matches by external id cross reference, so a record is updated rather than duplicated on the next run, and a value that is absent is skipped rather than blanked. You review or correct the field on the employee form like any other HR field, with MyKad visible only to HR users.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
The engine matches each employee through a unique external id cross reference, so re-running the employee job updates the same record instead of creating a duplicate Malaysian profile.
When the payload omits an EPF, SOCSO or MyKad value, the mapping skip-if-empty behaviour leaves the existing field untouched rather than overwriting it with a blank.
The sync engine isolates each record in its own savepoint, so an employee that fails to write does not roll back the rest of the batch and the run ends in a partial state with the failure logged.
The shipped source paths epf_number, socso_number and mykad_number are tunable defaults marked no-update, so you remap them from the user interface if your organisation's payload uses different keys, with no upgrade overwriting your change.
The underlying transport honours Retry-After and applies exponential backoff with jitter on 429 and transient errors, so a busy window slows the Malaysian field sync rather than failing it.
The connector refreshes the OAuth token lazily during a run, so a long Malaysia sync does not abort when the access token expires mid-batch.
What is inside
Built to do the job, end to end.
- Employee fields. Three Char fields added to hr.employee: eh_epf_number, eh_socso_number and eh_mykad. MyKad carries a group restriction to hr.group_hr_user. All three render in an Employment Hero (Malaysia) group on the HR Settings tab of the employee form.
- Country profile. One eh.country.profile record for Malaysia (country base.my, code MY), loaded no-update so a deployment can adjust or archive it without an upgrade reverting the change.
- Mapping lines. Three eh.mapping.line records extending the shared HR Employee mapping, pointing the source paths epf_number, socso_number and mykad_number at the three new target fields. Loaded no-update so your tuning survives upgrades.
- View extension. A single inherited form view that injects the Malaysia field group into the existing employee settings page, so the fields appear without replacing the stock form.
- Tests. A small automated test suite asserts the Malaysia profile exists with the correct country and code and that the MyKad field is present on hr.employee.
Honest about the edges
What this does not do, so nothing surprises you.
- This pack adds fields, a profile and mapping lines only. It contains no sync logic of its own; the fetch, upsert, conflict resolution, queue and audit are provided by the Employment Hero sync engine modules it depends on.
- The fields are plain text. This module does not validate the format of an EPF, SOCSO or MyKad number, and does not perform a checksum or length check.
- The mapping source paths are reasonable defaults, not values confirmed against a specific live Employment Hero organisation. Confirm and tune them against your own payload before relying on the sync.
- It depends on eh_hero_country_base and eh_hero_hr, which in turn require the connector and sync engine. The pack does nothing on its own without those modules installed and a connection configured.
- The pack does not compute Malaysian statutory contributions or generate any payroll output. It carries the identifiers; calculation and filing remain with your payroll platform.
- No webhook or real-time push is added by this module. Synchronisation runs through the engine's scheduled or manually triggered jobs.
employment hero malaysia odoo, odoo EPF SOCSO field, MyKad employee odoo, malaysia payroll integration odoo, employment hero connector country pack, odoo 16 community HR localisation, hr employee statutory identifiers, employment hero employee sync odoo, malaysia HR mapping odoo, ERP Heritage employment hero suite
Need this fitted to the way you work?
ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.
We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
Show the Hijri (Umm al-Qura) date alongside Gregorian dates across Odoo 16
Connect Odoo partner records to the Saudi SPL National Address service and the Wathq commercial registry
One click install of the full Employment Hero integration for Odoo Community, covering the connector, two way syn...
The New Zealand country pack for the ERP Heritage Employment Hero integration
A reusable two way synchronisation engine that keeps Odoo in step with the people and payroll platform, idempoten...
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 4121 |
| Technical Name |
eh_hero_country_my |
| License | OPL-1 |
| Website | https://www.erpheritage.com.au/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module