|
@@ -31,7 +31,7 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
|
|
|
|
|
// Language strings required by the view
|
|
// Language strings required by the view
|
|
|
$lang_keys = [
|
|
$lang_keys = [
|
|
|
- 'tab_settings', 'tab_categories', 'tab_log',
|
|
|
|
|
|
|
+ 'tab_settings', 'tab_categories', 'tab_reverb_cats', 'tab_log',
|
|
|
'text_api_settings', 'text_shipping_settings', 'text_sync_settings', 'text_manual_sync',
|
|
'text_api_settings', 'text_shipping_settings', 'text_sync_settings', 'text_manual_sync',
|
|
|
'entry_api_token', 'help_api_token',
|
|
'entry_api_token', 'help_api_token',
|
|
|
'entry_status', 'entry_sync_direction',
|
|
'entry_status', 'entry_sync_direction',
|
|
@@ -44,6 +44,8 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
'entry_default_qty', 'help_default_qty',
|
|
'entry_default_qty', 'help_default_qty',
|
|
|
'text_category_mapping_help', 'text_no_categories',
|
|
'text_category_mapping_help', 'text_no_categories',
|
|
|
'column_oc_category', 'column_reverb_category',
|
|
'column_oc_category', 'column_reverb_category',
|
|
|
|
|
+ 'text_reverb_cats_help', 'button_refresh_cats', 'text_filter_cats',
|
|
|
|
|
+ 'column_cat_name', 'column_cat_uuid',
|
|
|
'column_date', 'column_product', 'column_direction', 'column_status', 'column_message',
|
|
'column_date', 'column_product', 'column_direction', 'column_status', 'column_message',
|
|
|
'text_push', 'text_pull', 'text_error', 'text_no_log', 'button_clear_log',
|
|
'text_push', 'text_pull', 'text_error', 'text_no_log', 'button_clear_log',
|
|
|
'text_success', 'text_log_success',
|
|
'text_success', 'text_log_success',
|
|
@@ -108,7 +110,9 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
$data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true);
|
|
$data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true);
|
|
|
$data['sync_url'] = $this->url->link('extension/module/reverb/sync', 'user_token=' . $this->session->data['user_token'], true);
|
|
$data['sync_url'] = $this->url->link('extension/module/reverb/sync', 'user_token=' . $this->session->data['user_token'], true);
|
|
|
$data['import_url'] = $this->url->link('extension/module/reverb/importOrders', 'user_token=' . $this->session->data['user_token'], true);
|
|
$data['import_url'] = $this->url->link('extension/module/reverb/importOrders', 'user_token=' . $this->session->data['user_token'], true);
|
|
|
- $data['clear_log_url'] = $this->url->link('extension/module/reverb/clearLog', 'user_token=' . $this->session->data['user_token'], true);
|
|
|
|
|
|
|
+ $data['clear_log_url'] = $this->url->link('extension/module/reverb/clearLog', 'user_token=' . $this->session->data['user_token'], true);
|
|
|
|
|
+ $data['refresh_cats_url'] = $this->url->link('extension/module/reverb/refreshCategories', 'user_token=' . $this->session->data['user_token'], true);
|
|
|
|
|
+ $data['reverb_categories_flat'] = $this->model_extension_module_reverb->getReverbCategories();
|
|
|
$data['categories_url'] = $this->url->link('extension/module/reverb/reverbCategories', 'user_token=' . $this->session->data['user_token'], true);
|
|
$data['categories_url'] = $this->url->link('extension/module/reverb/reverbCategories', 'user_token=' . $this->session->data['user_token'], true);
|
|
|
|
|
|
|
|
$data['header'] = $this->load->controller('common/header');
|
|
$data['header'] = $this->load->controller('common/header');
|
|
@@ -358,6 +362,27 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
$this->response->setOutput(json_encode(['success' => true, 'message' => $this->language->get('text_log_cleared')]));
|
|
$this->response->setOutput(json_encode(['success' => true, 'message' => $this->language->get('text_log_cleared')]));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // -------------------------------------------------------------------------
|
|
|
|
|
+ // Refresh Reverb category list (AJAX — bypasses 24 h cache)
|
|
|
|
|
+ // -------------------------------------------------------------------------
|
|
|
|
|
+
|
|
|
|
|
+ public function refreshCategories() {
|
|
|
|
|
+ $this->load->language('extension/module/reverb');
|
|
|
|
|
+ $this->load->model('extension/module/reverb');
|
|
|
|
|
+ $this->response->addHeader('Content-Type: application/json');
|
|
|
|
|
+ if (!$this->user->hasPermission('modify', 'extension/module/reverb')) {
|
|
|
|
|
+ $this->response->setOutput(json_encode(['success' => false, 'error' => $this->language->get('error_permission')]));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ $categories = $this->model_extension_module_reverb->refreshReverbCategories();
|
|
|
|
|
+ $this->response->setOutput(json_encode([
|
|
|
|
|
+ 'success' => true,
|
|
|
|
|
+ 'count' => count($categories),
|
|
|
|
|
+ 'message' => sprintf($this->language->get('text_cats_refreshed'), count($categories)),
|
|
|
|
|
+ 'categories' => $categories,
|
|
|
|
|
+ ]));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// -------------------------------------------------------------------------
|
|
// -------------------------------------------------------------------------
|
|
|
// Reverb categories (AJAX — for category mapping dropdowns)
|
|
// Reverb categories (AJAX — for category mapping dropdowns)
|
|
|
// -------------------------------------------------------------------------
|
|
// -------------------------------------------------------------------------
|