|
|
@@ -40,6 +40,8 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
'entry_shipping_international', 'help_shipping_international',
|
|
|
'help_sync_categories', 'button_sync_now',
|
|
|
'text_order_import', 'button_import_orders',
|
|
|
+ 'entry_order_stores', 'help_order_stores', 'text_select_all', 'text_unselect_all',
|
|
|
+ 'entry_default_qty', 'help_default_qty',
|
|
|
'text_category_mapping_help', 'text_no_categories',
|
|
|
'column_oc_category', 'column_reverb_category',
|
|
|
'column_date', 'column_product', 'column_direction', 'column_status', 'column_message',
|
|
|
@@ -64,6 +66,8 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
'module_reverb_sync_categories',
|
|
|
'module_reverb_shipping_domestic',
|
|
|
'module_reverb_shipping_international',
|
|
|
+ 'module_reverb_order_stores',
|
|
|
+ 'module_reverb_default_qty',
|
|
|
];
|
|
|
foreach ($fields as $key) {
|
|
|
$data[$key] = $this->request->post[$key] ?? $this->config->get($key);
|
|
|
@@ -74,6 +78,14 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
$data['module_reverb_sync_categories'] = $data['module_reverb_sync_categories'] ?? [];
|
|
|
$data['module_reverb_shipping_domestic'] = $data['module_reverb_shipping_domestic'] ?? '0.00';
|
|
|
$data['module_reverb_shipping_international'] = $data['module_reverb_shipping_international'] ?? '0.00';
|
|
|
+ $data['module_reverb_order_stores'] = $data['module_reverb_order_stores'] ?? [0];
|
|
|
+ $data['module_reverb_default_qty'] = $data['module_reverb_default_qty'] ?? 1;
|
|
|
+
|
|
|
+ // Stores list for the checkbox UI
|
|
|
+ $this->load->model('setting/store');
|
|
|
+ $stores = $this->model_setting_store->getStores();
|
|
|
+ array_unshift($stores, ['store_id' => 0, 'name' => 'Default']);
|
|
|
+ $data['stores'] = $stores;
|
|
|
|
|
|
// All OC categories for the multi-select
|
|
|
$data['categories'] = $this->getCategoryTree();
|
|
|
@@ -294,6 +306,7 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
$reverb_row = $this->model_extension_module_reverb->getProductMap($product_id);
|
|
|
|
|
|
$data = [
|
|
|
+ 'product_id' => $product_id,
|
|
|
'reverb_sync_enabled' => $reverb_row ? (int)$reverb_row['sync_enabled'] : 0,
|
|
|
'reverb_condition_uuid' => $reverb_row ? $reverb_row['condition_uuid'] : '',
|
|
|
'reverb_category_uuid' => $reverb_row ? $reverb_row['reverb_category_uuid'] : '',
|
|
|
@@ -302,11 +315,33 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
'reverb_upc_does_not_apply' => $reverb_row ? (int)$reverb_row['upc_does_not_apply'] : 1,
|
|
|
'reverb_conditions' => $this->model_extension_module_reverb->getListingConditions(),
|
|
|
'reverb_categories_grouped' => $this->model_extension_module_reverb->getReverbCategoriesGrouped(),
|
|
|
+ 'clear_listing_url' => $this->url->link('extension/module/reverb/clearListingId', 'user_token=' . $this->session->data['user_token'], true),
|
|
|
];
|
|
|
|
|
|
$this->response->setOutput($this->load->view('extension/module/reverb_product', $data));
|
|
|
}
|
|
|
|
|
|
+ // -------------------------------------------------------------------------
|
|
|
+ // Clear Reverb listing ID from a product (AJAX)
|
|
|
+ // -------------------------------------------------------------------------
|
|
|
+
|
|
|
+ public function clearListingId() {
|
|
|
+ $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;
|
|
|
+ }
|
|
|
+ $product_id = (int)($this->request->get['product_id'] ?? 0);
|
|
|
+ if (!$product_id) {
|
|
|
+ $this->response->setOutput(json_encode(['success' => false, 'error' => 'Invalid product ID.']));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ $this->model_extension_module_reverb->clearListingId($product_id);
|
|
|
+ $this->response->setOutput(json_encode(['success' => true]));
|
|
|
+ }
|
|
|
+
|
|
|
// -------------------------------------------------------------------------
|
|
|
// Clear sync log (AJAX)
|
|
|
// -------------------------------------------------------------------------
|
|
|
@@ -389,6 +424,11 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $order_stores = $this->config->get('module_reverb_order_stores');
|
|
|
+ if (!is_array($order_stores) || empty($order_stores)) {
|
|
|
+ $order_stores = [0];
|
|
|
+ }
|
|
|
+
|
|
|
return [
|
|
|
'api_token' => $this->config->get('module_reverb_api_token'),
|
|
|
'sync_direction' => $this->config->get('module_reverb_sync_direction') ?? 'push',
|
|
|
@@ -396,6 +436,8 @@ class ControllerExtensionModuleReverb extends Controller {
|
|
|
'shipping_international' => $this->config->get('module_reverb_shipping_international') ?? '0',
|
|
|
'currency' => $this->config->get('config_currency') ?? 'AUD',
|
|
|
'store_url' => $store_url ?? '',
|
|
|
+ 'order_stores' => $order_stores,
|
|
|
+ 'default_qty' => max(1, (int)($this->config->get('module_reverb_default_qty') ?? 1)),
|
|
|
];
|
|
|
}
|
|
|
|