# morvy/kybernaut-ic-dic architecture

> Architecture diagram of the GitHub repository morvy/kybernaut-ic-dic, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/morvy/kybernaut-ic-dic
- Repository: https://github.com/morvy/kybernaut-ic-dic

## Overview

Kybernaut IC DIC is a WooCommerce plugin for collecting Czech and Slovak company and tax identifiers, checking them, optionally autofilling company details, and retaining them with orders and customer billing data. The main path is checkout fields → browser-side ARES lookup and server-side validation → order metadata; settings, admin editing, tax exemption, and invoice integrations are separate capabilities. Edges are limited to relationships shown in excerpts or README; unsampled hooks and supporting modules are not inferred.

Main entry points: [`woolab-ic-dic.php`](https://github.com/morvy/kybernaut-ic-dic/blob/master/woolab-ic-dic.php) (Plugin bootstrap), [`includes/filters-actions.php`](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php) (Identifier checks), [`src/js/public.js`](https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/public.js) (Checkout behavior), [`src/js/admin-edit.js`](https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/admin-edit.js) (Order editing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_checkout["Checkout &amp; Validation"]
  node_plugin["Plugin bootstrap<br/>[woolab-ic-dic.php]"]
  node_checkoutfields["Billing fields"]
  node_publicjs["Checkout behavior<br/>[public.js]"]
  node_validation["Identifier checks"]
  node_arescompat["ARES request handler<br/>[woolab-ic-dic.php]"]
end

subgraph group_records["Orders &amp; Admin"]
  node_orders[("Order metadata")]
  node_customerdata[("Customer billing data")]
  node_adminedit["Order editing<br/>[admin-edit.js]"]
  node_adminjs["Settings interface<br/>[admin.js]"]
end

subgraph group_integrations["External Integrations"]
  node_ares["ARES lookup<br/>[ares.php]"]
  node_aresapi["ARES service"]
  node_vies["VIES validation"]
  node_vatlibrary["VAT validator"]
  node_pdfintegration["PDF invoice fields"]
  node_pdfservice["PDF invoices plugin"]
  node_sfdata["SuperFaktura fields<br/>[superfaktura.php]"]
  node_fluid["Fluid Checkout support<br/>[fluidcheckout.php]"]
end

subgraph group_configuration["Settings &amp; Compatibility"]
  node_settings["Plugin settings<br/>[settings.php]"]
  node_logger["Diagnostic logging<br/>[logger.php]"]
end

node_shopper(("Shopper"))
node_woocommerce["WooCommerce"]

node_shopper -->|"enters identifiers"| node_checkoutfields
node_plugin -->|"registers fields"| node_checkoutfields
node_plugin -->|"registers validation"| node_validation
node_plugin -->|"registers AJAX"| node_arescompat
node_plugin -->|"enqueues script"| node_publicjs
node_publicjs -->|"sends lookup"| node_arescompat
node_arescompat -->|"calls lookup"| node_ares
node_ares -->|"requests data"| node_aresapi
node_validation -->|"checks format"| node_vatlibrary
node_validation -->|"validates VAT"| node_vies
node_validation -->|"logs failures"| node_logger
node_validation -->|"adds checkout notices"| node_woocommerce
node_plugin -->|"registers order save"| node_orders
node_adminedit -->|"responds to country"| node_woocommerce
node_plugin -->|"enqueues editor script"| node_adminedit
node_plugin -.->|"loads settings hooks"| node_settings
node_plugin -->|"enqueues admin script"| node_adminjs
node_orders -->|"provides order fields"| node_pdfintegration
node_pdfintegration -->|"registers invoice filter"| node_pdfservice
node_orders -->|"reads order values"| node_sfdata
node_fluid -->|"extends checkout fields"| node_woocommerce
node_woocommerce -->|"reads billing metadata"| node_customerdata

click node_plugin "https://github.com/morvy/kybernaut-ic-dic/blob/master/woolab-ic-dic.php"
click node_checkoutfields "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php"
click node_publicjs "https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/public.js"
click node_validation "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php"
click node_ares "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/ares.php"
click node_orders "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php"
click node_customerdata "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php"
click node_adminedit "https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/admin-edit.js"
click node_adminjs "https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/admin.js"
click node_settings "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/settings.php"
click node_logger "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/logger.php"
click node_pdfintegration "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/compatibility/pdf-invoices-and-packing-slips-for-woocommerce.php"
click node_sfdata "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/compatibility/superfaktura.php"
click node_fluid "https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/compatibility/fluidcheckout.php"
click node_arescompat "https://github.com/morvy/kybernaut-ic-dic/blob/master/woolab-ic-dic.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_plugin,node_checkoutfields,node_publicjs,node_validation,node_arescompat toneBlue
class node_orders,node_customerdata,node_adminedit,node_adminjs toneAmber
class node_ares,node_aresapi,node_vies,node_vatlibrary,node_pdfintegration,node_pdfservice,node_sfdata,node_fluid toneMint
class node_settings,node_logger toneRose
class node_shopper,node_woocommerce toneIndigo
```

## Components

### Checkout & Validation

- [Plugin bootstrap](https://github.com/morvy/kybernaut-ic-dic/blob/master/woolab-ic-dic.php): `woolab-ic-dic.php`
- [Billing fields](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php): `includes/filters-actions.php`
- [Checkout behavior](https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/public.js): `src/js/public.js`
- [Identifier checks](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php): `includes/filters-actions.php`
- [ARES request handler](https://github.com/morvy/kybernaut-ic-dic/blob/master/woolab-ic-dic.php): `woolab-ic-dic.php`

### Orders & Admin

- [Order metadata](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php): `includes/filters-actions.php`
- [Customer billing data](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/filters-actions.php): `includes/filters-actions.php`
- [Order editing](https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/admin-edit.js): `src/js/admin-edit.js`
- [Settings interface](https://github.com/morvy/kybernaut-ic-dic/blob/master/src/js/admin.js): `src/js/admin.js`

### External Integrations

- [ARES lookup](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/ares.php): `includes/ares.php`
- **ARES service**
- **VIES validation**
- **VAT validator**
- [PDF invoice fields](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/compatibility/pdf-invoices-and-packing-slips-for-woocommerce.php): `includes/compatibility/pdf-invoices-and-packing-slips-for-woocommerce.php`
- **PDF invoices plugin**
- [SuperFaktura fields](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/compatibility/superfaktura.php): `includes/compatibility/superfaktura.php`
- [Fluid Checkout support](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/compatibility/fluidcheckout.php): `includes/compatibility/fluidcheckout.php`

### Settings & Compatibility

- [Plugin settings](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/settings.php): `includes/settings.php`
- [Diagnostic logging](https://github.com/morvy/kybernaut-ic-dic/blob/master/includes/logger.php): `includes/logger.php`

### Other components

- **Shopper**
- **WooCommerce**

## Connections

- Shopper → Billing fields: enters identifiers (evidence: `README.md`)
- Plugin bootstrap → Billing fields: registers fields (evidence: `woolab-ic-dic.php`)
- Plugin bootstrap → Identifier checks: registers validation (evidence: `woolab-ic-dic.php`)
- Plugin bootstrap → ARES request handler: registers AJAX (evidence: `woolab-ic-dic.php`)
- Plugin bootstrap → Checkout behavior: enqueues script (evidence: `woolab-ic-dic.php`)
- Checkout behavior → ARES request handler: sends lookup (evidence: `src/js/public.js`)
- ARES request handler → ARES lookup: calls lookup (evidence: `woolab-ic-dic.php`)
- ARES lookup → ARES service: requests data (evidence: `includes/ares.php`)
- Identifier checks → VAT validator: checks format (evidence: `includes/filters-actions.php`)
- Identifier checks → VIES validation: validates VAT (evidence: `includes/filters-actions.php`)
- Identifier checks → Diagnostic logging: logs failures (evidence: `includes/filters-actions.php`)
- Identifier checks → WooCommerce: adds checkout notices (evidence: `includes/filters-actions.php`)
- Plugin bootstrap → Order metadata: registers order save (evidence: `woolab-ic-dic.php`)
- Order editing → WooCommerce: responds to country (evidence: `src/js/admin-edit.js`)
- Plugin bootstrap → Order editing: enqueues editor script (evidence: `woolab-ic-dic.php`)
- Plugin bootstrap → Plugin settings: loads settings hooks
- Plugin bootstrap → Settings interface: enqueues admin script (evidence: `woolab-ic-dic.php`)
- Order metadata → PDF invoice fields: provides order fields (evidence: `includes/compatibility/pdf-invoices-and-packing-slips-for-woocommerce.php`)
- PDF invoice fields → PDF invoices plugin: registers invoice filter (evidence: `includes/compatibility/pdf-invoices-and-packing-slips-for-woocommerce.php`)
- Order metadata → SuperFaktura fields: reads order values (evidence: `includes/compatibility/superfaktura.php`)
- Fluid Checkout support → WooCommerce: extends checkout fields (evidence: `includes/compatibility/fluidcheckout.php`)
- WooCommerce → Customer billing data: reads billing metadata (evidence: `includes/filters-actions.php`)
