diff --git a/plop-templates/ADempiere/component/index.hbs b/plop-templates/ADempiere/component/index.hbs
new file mode 100644
index 00000000..252395dc
--- /dev/null
+++ b/plop-templates/ADempiere/component/index.hbs
@@ -0,0 +1,25 @@
+{{#if template}}
+
+
+
+{{/if}}
+
+{{#if script}}
+
+{{/if}}
+
+{{#if style}}
+
+{{/if}}
diff --git a/plop-templates/ADempiere/component/prompt.js b/plop-templates/ADempiere/component/prompt.js
new file mode 100644
index 00000000..1155700f
--- /dev/null
+++ b/plop-templates/ADempiere/component/prompt.js
@@ -0,0 +1,55 @@
+const { notEmpty } = require('../../utils.js')
+
+module.exports = {
+ description: 'Generate ADempiere .vue component',
+ prompts: [{
+ type: 'input',
+ name: 'name',
+ message: 'ADempiere Component name: ',
+ validate: notEmpty('name')
+ },
+ {
+ type: 'checkbox',
+ name: 'blocks',
+ message: 'Blocks:',
+ choices: [{
+ name: '',
+ value: 'template',
+ checked: true
+ },
+ {
+ name: '
+{{/if}}
+
+{{#if style}}
+
+{{/if}}
diff --git a/plop-templates/ADempiere/view/prompt.js b/plop-templates/ADempiere/view/prompt.js
new file mode 100644
index 00000000..6125575f
--- /dev/null
+++ b/plop-templates/ADempiere/view/prompt.js
@@ -0,0 +1,55 @@
+const { notEmpty } = require('../../utils.js')
+
+module.exports = {
+ description: 'Generate a ADempiere View',
+ prompts: [{
+ type: 'input',
+ name: 'name',
+ message: 'ADempiere View name: ',
+ validate: notEmpty('name')
+ },
+ {
+ type: 'checkbox',
+ name: 'blocks',
+ message: 'Blocks:',
+ choices: [{
+ name: '',
+ value: 'template',
+ checked: true
+ },
+ {
+ name: '