This are the hooks:
hookActionRegisterKronaAction
hookActionExecuteKronaAction
Every external Module is registering the actions they want. You could register for example:
$post_review = array(
'module_name' => 'revw',
'action_name' => 'post_review',
);
Hook::exec('ActionRegisterKronaAction', $post_review);
Now the merchant makes the settings in my module: Defining how many points this action will get. If it can be executed limited times or only once or only 5 times a month.
If an user posts a review you call the hookActionExecuteKronaAction:
```
$hook = array(
'modulename' => 'revw',
'actionname' => 'postreview',
'idcustomer' => $this->context->customer->id,
'actionmessage' => '',
'actionurl' => ''
);
Hook::exec('ActionExecuteKronaAction', $hook);
```
You only have to deliver 'modulename', 'actionname' and 'idcustomer'. The others are optional, to give an even better user experience. In 'actionurl' you could give the url to the review for example.
Is the concept clear to you? I am not super experienced developer, since I am actually more a merchant... But I am getting better from day to day. I hope the concept makes sense to you!?