Non importa se si scrivono le regole in PHP, JavaScript o qualche altro, possibilmente lingua specifica del dominio. Se i requisiti sono sufficientemente complessi (i tuoi sembrano essere), richiederanno qualcosa con l'espressività del linguaggio di programmazione e richiederà abilità di programmazione da aggiornare. Dimentica gli uomini d'affari che li aggiornano, non hanno le competenze necessarie.
Ora, se il programmatore deve essere in giro per aggiornare le regole, è meglio scrivere nella lingua esistente per cui si può facilmente ottenere qualcuno che lo capisca. Ad esempio PHP.
Ora fino al punto di hard coding. PHP non è un linguaggio compilato. Non è nemmeno precompilato. L'interprete effettivamente lo riproduce su ogni richiesta. Pertanto, quando si modifica il file con la definizione delle regole aziendali, avrà immediatamente effetto. Volete eseguire la versione di quel file separatamente dal nucleo dell'applicazione o addirittura memorizzarla nel database, ma PHP è probabilmente la più semplice da implementare, abbastanza semplice da mantenere e anche più veloce come qualsiasi interprete di regole scritto in PHP sta per aggiungere notevole spese generali.
Potresti voler usare un po 'di sandbox (google veloce rivela almeno due implementazioni per PHP) per garantire che il file delle regole aziendali non possa toccare nulla al di fuori dell'oggetto della transazione. Questo può essere aggiunto in qualsiasi momento, puoi iniziare senza preoccuparti di questo. Puoi anche aggiungere un po 'di linguaggio grafico che genererà PHP nel database o qualcosa del genere, ma in pratica è stato ripetutamente mostrato che richiede un programmatore per essere modificato, quindi è uno sforzo con un ritorno discutibile (anche se potrebbe essere un punto di forza).
(Modifica) Mentre guardavo i tavoli delle decisioni, non sembravano molto flessibili. Hanno bisogno di una colonna per ogni possibile criterio, così come le regole crescono in complessità, la tabella avrà bisogno di un numero sempre maggiore di colonne e in ogni caso non sarà più facile capire di più.
Inoltre, non dimenticare che un pacchetto di e-commerce non vive nel vuoto, ma deve essere integrato con vari altri sistemi. La maggior parte dei negozi probabilmente dispone già di un sistema di contabilità in cui è necessario esportare i dati sulle transazioni finite e sul sistema di gestione dei negozi in cui è necessario esportare i dati sulle merci da spedire o nel caso in cui gli account dei negozi di software creino e le licenze da assegnare. diverso processore di pagamento a cui devi reindirizzare e ricevere conferma di pagamento, ecc. Per questi la logica sarà diversa, quindi le regole semplici non lo taglieranno. Devi assolutamente supportare la scrittura di questo in PHP, indipendentemente dal core principale, proprio come le regole aziendali che hai menzionato.