More configuration could be moved into the database. Things that are reasonably static could be cached client-side and a database notification sent by a trigger could be used to invalidate the cache.
The configuration can be a simple key->value store, although it might be useful to split keys into "section" and "name" to make it easier to group keys for any plugins that use this mechanism.
Core config this could be used for:
Till name
Telephone
Address
Currency symbol
checkdigit_print
checkdigit_on_usestock
Xero integration config this could be used for:
Organisation ID
Organisation shortcode
Sales contact ID
Tracking category name
Tracking category value
Discrepancy account
Start date
... most of the things passed to the XeroIntegration constructor
How would we make a nice user interface for this, to make keys discoverable and ensure they are set to appropriate things? Something like the permissions system, where missing keys and default values are added to the database when the till is started up?
More configuration could be moved into the database. Things that are reasonably static could be cached client-side and a database notification sent by a trigger could be used to invalidate the cache.
The configuration can be a simple key->value store, although it might be useful to split keys into "section" and "name" to make it easier to group keys for any plugins that use this mechanism.
Core config this could be used for:
checkdigit_print
checkdigit_on_usestock
Xero integration config this could be used for:
How would we make a nice user interface for this, to make keys discoverable and ensure they are set to appropriate things? Something like the permissions system, where missing keys and default values are added to the database when the till is started up?