Skip to content

Install

ComponentSupported versions
Magento Open Source2.4.6, 2.4.7, 2.4.8, 2.4.9
Adobe Commerce2.4.6, 2.4.7, 2.4.8, 2.4.9
Mage-OS1.x, 2.x, 3.x (= Magento 2.4.6 → 2.4.9 codebase)
PHP8.2, 8.3, 8.4
DatabaseMariaDB 10.6+, MySQL 8.0+
SearchOpenSearch 2.x / 3.x, Elasticsearch 7.x / 8.x
ThemesLuma (full), Hyvä (full — companion package required)

You need:

  1. A license key (CDA-XXXX-XXXX-XXXX) and Composer token (cda_tok_…) — both arrive by email after purchase.
  2. SSH or terminal access to your Magento project root.
  3. PHP and Composer installed in that environment.

Add the CDA private repository and your bearer token. Composer reads bearer tokens from auth.json:

Terminal window
composer config repositories.cda composer https://magento.creativdigital.ro
composer config bearer.magento.creativdigital.ro YOUR_COMPOSER_TOKEN

Or paste the token into auth.json directly:

auth.json
{
"http-basic": {
"magento.creativdigital.ro": {
"username": "YOUR_COMPOSER_TOKEN",
"password": ""
}
}
}
Terminal window
composer require cda/magento2-custom-fields
bin/magento module:enable CDA_CustomFields CDA_CustomFieldsCheckout CDA_CustomFieldsGraphQl
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush

Add the Hyvä compatibility module — it ships separately because it hard-requires Magewire and Hyvä Checkout, and pulling those into a Luma-only project would break setup:di:compile.

Terminal window
composer require cda/magento2-custom-fields cda/module-custom-fields-hyva-compat
bin/magento module:enable CDA_CustomFields CDA_CustomFieldsCheckout CDA_CustomFieldsHyvaCompat CDA_CustomFieldsGraphQl
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
  1. Open Magento Admin → Stores → Configuration → CDA → Custom Fields → Licensing
  2. Paste your license key (CDA-XXXX-XXXX-XXXX) into License Key
  3. Click Save Config
  4. Click Verify Now — you should see “License verified — status: ACTIVE.”

If you don’t click Verify Now, the daily cron job will pick the key up on its next run (03:30 UTC by default).

After setup:upgrade, you should see:

  1. Admin menu — a new top-level CDA Custom Fields entry in the sidebar, with sub-items Fields / Layout Builder / Templates / Settings.
  2. Databasebin/magento setup:db:status reports isUpToDate: true. The following tables exist:
    • cda_custom_field (and its child binding tables)
    • cda_custom_field_quote_value and cda_custom_field_order_value
    • Six per-surface value tables: _customer_value, _address_value, _contact_value, _review_value, _subscriber_value, _wishlist_item_value
  3. Routes — hitting POST /cda_customfields_checkout/checkout/save returns {"success":false,"message":"No active cart."} rather than a 404. This is the side-channel persistence endpoint and confirms routing works.

The heartbeat cron retains your previous ACTIVE status on transient network failures — a single missed cron run, DNS hiccup, or our server outage will never flip a healthy install into a locked state. Only an explicit non-ACTIVE response from our licensing server (e.g. a refunded license) downgrades you. See License & updates → Heartbeat for the full policy.

Terminal window
bin/magento module:disable CDA_CustomFields CDA_CustomFieldsCheckout \
CDA_CustomFieldsHyvaCompat CDA_CustomFieldsGraphQl
bin/magento setup:upgrade
composer remove cda/magento2-custom-fields cda/module-custom-fields-hyva-compat

Class "Magewirephp\Magewire\Component" not found at setup:di:compile

Section titled “Class "Magewirephp\Magewire\Component" not found at setup:di:compile”

You installed cda/module-custom-fields-hyva-compat on a store without Hyvä Checkout. Either install Hyvä:

Terminal window
composer require hyva-themes/magento2-hyva-checkout

Or disable the compat module:

Terminal window
bin/magento module:disable CDA_CustomFieldsHyvaCompat
bin/magento setup:upgrade

401 Unauthorized when running composer require

Section titled “401 Unauthorized when running composer require”

Your Composer token isn’t being picked up. Check:

Terminal window
composer config -l | grep bearer

You should see [bearer.magento.creativdigital.ro] = <token>. If not, re-add with composer config bearer.magento.creativdigital.ro YOUR_TOKEN.

License is already bound to <other-domain>

Section titled “License is already bound to <other-domain>”

One license = one production domain. To transfer the license to a new domain, email office@creativdigital.ro with your license key — we reset the binding immediately. The next heartbeat from your new domain will re-bind automatically.

Loopback / private-network hosts (localhost, 127.*, 10.*, 192.168.*, 172.16-31.*) are exempt from binding and can be used freely for dev/staging.