openbay.php (83634B)
1 <?php 2 class ControllerMarketplaceOpenbay extends Controller { 3 private $error = array(); 4 5 public function install() { 6 $this->load->language('marketplace/openbay'); 7 8 $this->load->model('setting/extension'); 9 10 if (!$this->user->hasPermission('modify', 'marketplace/openbay')) { 11 $this->session->data['error'] = $this->language->get('error_permission'); 12 13 $this->response->redirect($this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true)); 14 } else { 15 $this->model_setting_extension->install('openbay', $this->request->get['extension']); 16 17 $this->session->data['success'] = $this->language->get('text_install_success'); 18 19 $this->load->model('user/user_group'); 20 21 $this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', 'extension/openbay/' . $this->request->get['extension']); 22 $this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', 'extension/openbay/' . $this->request->get['extension']); 23 24 require_once(DIR_APPLICATION . 'controller/extension/openbay/' . $this->request->get['extension'] . '.php'); 25 26 $class = 'ControllerExtensionOpenbay' . str_replace('_', '', $this->request->get['extension']); 27 $class = new $class($this->registry); 28 29 if (method_exists($class, 'install')) { 30 $class->install(); 31 } 32 33 $this->response->redirect($this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true)); 34 } 35 } 36 37 public function uninstall() { 38 $this->load->language('marketplace/openbay'); 39 40 $this->load->model('setting/extension'); 41 42 if (!$this->user->hasPermission('modify', 'marketplace/openbay')) { 43 $this->session->data['error'] = $this->language->get('error_permission'); 44 45 $this->response->redirect($this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true)); 46 } else { 47 $this->session->data['success'] = $this->language->get('text_uninstall_success'); 48 49 require_once(DIR_APPLICATION . 'controller/extension/openbay/' . $this->request->get['extension'] . '.php'); 50 51 $this->load->model('setting/extension'); 52 $this->load->model('setting/setting'); 53 54 $this->model_setting_extension->uninstall('openbay', $this->request->get['extension']); 55 56 $this->model_setting_setting->deleteSetting($this->request->get['extension']); 57 58 $class = 'ControllerExtensionOpenbay' . str_replace('_', '', $this->request->get['extension']); 59 $class = new $class($this->registry); 60 61 if (method_exists($class, 'uninstall')) { 62 $class->uninstall(); 63 } 64 65 $this->response->redirect($this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true)); 66 } 67 } 68 69 public function index() { 70 $this->load->model('extension/openbay/openbay'); 71 $this->load->model('setting/extension'); 72 $this->load->model('setting/setting'); 73 $this->load->model('extension/openbay/version'); 74 $data = $this->load->language('marketplace/openbay'); 75 76 $this->document->setTitle($this->language->get('heading_title')); 77 $this->document->addScript('view/javascript/openbay/js/faq.js'); 78 79 $data['breadcrumbs'] = array(); 80 81 $data['breadcrumbs'][] = array( 82 'text' => $this->language->get('text_home'), 83 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true), 84 ); 85 86 $data['breadcrumbs'][] = array( 87 'text' => $this->language->get('heading_title'), 88 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 89 ); 90 91 $data['manage_link'] = $this->url->link('marketplace/openbay/manage', 'user_token=' . $this->session->data['user_token'], true); 92 $data['product_link'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true); 93 $data['order_link'] = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'], true); 94 95 $data['success'] = ''; 96 if (isset($this->session->data['success'])) { 97 $data['success'] = $this->session->data['success']; 98 unset($this->session->data['success']); 99 } 100 101 $data['error'] = $this->model_extension_openbay_openbay->requirementTest(); 102 103 if (isset($this->session->data['error'])) { 104 $data['error'][] = $this->session->data['error']; 105 unset($this->session->data['error']); 106 } 107 108 $extensions = $this->model_setting_extension->getInstalled('openbay'); 109 110 foreach ($extensions as $key => $value) { 111 if (!file_exists(DIR_APPLICATION . 'controller/extension/openbay/' . $value . '.php')) { 112 $this->model_setting_extension->uninstall('openbay', $value); 113 unset($extensions[$key]); 114 } 115 } 116 117 $data['extensions'] = array(); 118 119 $markets = array('ebay', 'etsy', 'amazon', 'amazonus', 'fba'); 120 121 foreach ($markets as $market) { 122 $extension = basename($market, '.php'); 123 124 $this->load->language('extension/openbay/' . $extension, 'extension'); 125 126 $data['extensions'][] = array( 127 'name' => $this->language->get('extension')->get('heading_title'), 128 'edit' => $this->url->link('extension/openbay/' . $extension . '', 'user_token=' . $this->session->data['user_token'], true), 129 'status' => ($this->config->get('openbay_' . $extension . '_status') || $this->config->get($extension . '_status')) ? $this->language->get('text_enabled') : $this->language->get('text_disabled'), 130 'install' => $this->url->link('marketplace/openbay/install', 'user_token=' . $this->session->data['user_token'] . '&extension=' . $extension, true), 131 'uninstall' => $this->url->link('marketplace/openbay/uninstall', 'user_token=' . $this->session->data['user_token'] . '&extension=' . $extension, true), 132 'installed' => in_array($extension, $extensions), 133 'code' => $extension 134 ); 135 } 136 137 $settings = $this->model_setting_setting->getSetting('feed_openbaypro'); 138 139 if (isset($settings['feed_openbaypro_version'])) { 140 $data['feed_openbaypro_version'] = $settings['feed_openbaypro_version']; 141 } else { 142 $data['feed_openbaypro_version'] = $this->model_extension_openbay_version->version(); 143 $settings['feed_openbaypro_version'] = $this->model_extension_openbay_version->version(); 144 $this->model_setting_setting->editSetting('feed_openbaypro', $settings); 145 } 146 147 $data['user_token'] = $this->session->data['user_token']; 148 149 $data['header'] = $this->load->controller('common/header'); 150 $data['column_left'] = $this->load->controller('common/column_left'); 151 $data['footer'] = $this->load->controller('common/footer'); 152 153 $this->response->setOutput($this->load->view('marketplace/openbay', $data)); 154 } 155 156 public function manage() { 157 $this->load->model('setting/setting'); 158 $data = $this->load->language('marketplace/openbay'); 159 160 $this->document->setTitle($this->language->get('text_manage')); 161 $this->document->addScript('view/javascript/openbay/js/faq.js'); 162 163 $data['breadcrumbs'] = array(); 164 165 $data['breadcrumbs'][] = array( 166 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true), 167 'text' => $this->language->get('text_home'), 168 ); 169 170 $data['breadcrumbs'][] = array( 171 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 172 'text' => $this->language->get('heading_title'), 173 ); 174 175 $data['breadcrumbs'][] = array( 176 'href' => $this->url->link('marketplace/openbay/manage', 'user_token=' . $this->session->data['user_token'], true), 177 'text' => $this->language->get('text_manage'), 178 ); 179 180 if ($this->request->server['REQUEST_METHOD'] == 'POST') { 181 $this->model_setting_setting->editSetting('feed_openbaypro', $this->request->post); 182 183 $this->session->data['success'] = $this->language->get('text_success'); 184 185 $this->response->redirect($this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true)); 186 } 187 188 if (isset($this->request->post['feed_openbaypro_version'])) { 189 $data['feed_openbaypro_version'] = $this->request->post['feed_openbaypro_version']; 190 } else { 191 $settings = $this->model_setting_setting->getSetting('feed_openbaypro'); 192 193 if (isset($settings['feed_openbaypro_version'])) { 194 $data['feed_openbaypro_version'] = $settings['feed_openbaypro_version']; 195 } else { 196 $this->load->model('extension/openbay/version'); 197 $settings['feed_openbaypro_version'] = $this->model_extension_openbay_version->version(); 198 $data['feed_openbaypro_version'] = $this->model_extension_openbay_version->version(); 199 $this->model_setting_setting->editSetting('feed_openbaypro', $settings); 200 } 201 } 202 203 if (isset($this->request->post['feed_openbaypro_language'])) { 204 $data['feed_openbaypro_language'] = $this->request->post['feed_openbaypro_language']; 205 } else { 206 $data['feed_openbaypro_language'] = $this->config->get('feed_openbaypro_language'); 207 } 208 209 $data['api_languages'] = array( 210 'en_GB' => 'English', 211 'de_DE' => 'German', 212 'es_ES' => 'Spanish', 213 'fr_FR' => 'French', 214 'it_IT' => 'Italian', 215 'nl_NL' => 'Dutch', 216 'zh_HK' => 'Simplified Chinese' 217 ); 218 219 $data['text_version'] = $this->config->get('feed_openbaypro_version'); 220 221 $data['action'] = $this->url->link('marketplace/openbay/manage', 'user_token=' . $this->session->data['user_token'], true); 222 $data['cancel'] = $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true); 223 224 $data['user_token'] = $this->session->data['user_token']; 225 226 $data['header'] = $this->load->controller('common/header'); 227 $data['column_left'] = $this->load->controller('common/column_left'); 228 $data['footer'] = $this->load->controller('common/footer'); 229 230 $this->response->setOutput($this->load->view('extension/openbay/openbay_manage', $data)); 231 } 232 233 public function update() { 234 $this->load->model('extension/openbay/openbay'); 235 $this->load->language('marketplace/openbay'); 236 237 if (!isset($this->request->get['stage'])) { 238 $stage = 'check_server'; 239 } else { 240 $stage = $this->request->get['stage']; 241 } 242 243 if (!isset($this->request->get['beta']) || $this->request->get['beta'] == 0) { 244 $beta = 0; 245 } else { 246 $beta = 1; 247 } 248 249 switch ($stage) { 250 case 'check_server': // step 1 251 $response = $this->model_extension_openbay_openbay->updateTest(); 252 253 sleep(1); 254 $this->response->addHeader('Content-Type: application/json'); 255 $this->response->setOutput(json_encode($response)); 256 break; 257 case 'check_version': // step 2 258 $response = $this->model_extension_openbay_openbay->updateCheckVersion($beta); 259 260 sleep(1); 261 $this->response->addHeader('Content-Type: application/json'); 262 $this->response->setOutput(json_encode($response)); 263 264 break; 265 case 'download': // step 3 266 $response = $this->model_extension_openbay_openbay->updateDownload($beta); 267 268 sleep(1); 269 $this->response->addHeader('Content-Type: application/json'); 270 $this->response->setOutput(json_encode($response)); 271 break; 272 case 'extract': // step 4 273 $response = $this->model_extension_openbay_openbay->updateExtract(); 274 275 sleep(1); 276 $this->response->addHeader('Content-Type: application/json'); 277 $this->response->setOutput(json_encode($response)); 278 break; 279 case 'remove': // step 5 - remove any files no longer needed 280 $response = $this->model_extension_openbay_openbay->updateRemove($beta); 281 282 $this->response->addHeader('Content-Type: application/json'); 283 $this->response->setOutput(json_encode($response)); 284 break; 285 case 'run_patch': // step 6 - run any db updates or other patch files 286 $this->model_extension_openbay_openbay->patch(); 287 288 $this->load->model('extension/openbay/ebay'); 289 $this->model_extension_openbay_ebay->patch(); 290 291 $this->load->model('extension/openbay/amazon'); 292 $this->model_extension_openbay_amazon->patch(); 293 294 $this->load->model('extension/openbay/amazonus'); 295 $this->model_extension_openbay_amazonus->patch(); 296 297 $this->load->model('extension/openbay/etsy'); 298 $this->model_extension_openbay_etsy->patch(); 299 300 $response = array('error' => 0, 'response' => '', 'percent_complete' => 90, 'status_message' => 'Running patch files'); 301 302 $this->response->addHeader('Content-Type: application/json'); 303 $this->response->setOutput(json_encode($response)); 304 break; 305 case 'update_version': // step 7 - update the version number 306 $this->load->model('setting/setting'); 307 308 $response = $this->model_extension_openbay_openbay->updateUpdateVersion($beta); 309 310 $this->response->addHeader('Content-Type: application/json'); 311 $this->response->setOutput(json_encode($response)); 312 break; 313 default; 314 } 315 } 316 317 public function patch() { 318 $this->load->model('extension/openbay/openbay'); 319 $this->load->model('extension/openbay/ebay'); 320 $this->load->model('extension/openbay/amazon'); 321 $this->load->model('extension/openbay/amazonus'); 322 $this->load->model('extension/openbay/etsy'); 323 $this->load->model('setting/extension'); 324 $this->load->model('setting/setting'); 325 $this->load->model('user/user_group'); 326 $this->load->model('extension/openbay/version'); 327 328 $this->model_extension_openbay_openbay->patch(); 329 $this->model_extension_openbay_ebay->patch(); 330 $this->model_extension_openbay_amazon->patch(); 331 $this->model_extension_openbay_amazonus->patch(); 332 $this->model_extension_openbay_etsy->patch(); 333 334 $openbay = $this->model_setting_setting->getSetting('feed_openbaypro'); 335 $openbay['feed_openbaypro_version'] = (int)$this->model_extension_openbay_version->version(); 336 $this->model_setting_setting->editSetting('feed_openbaypro', $openbay); 337 338 $installed_modules = $this->model_setting_extension->getInstalled('feed'); 339 340 if (!in_array('openbay', $installed_modules)) { 341 $this->model_setting_extension->install('feed', 'openbaypro'); 342 $this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', 'marketplace/openbay'); 343 $this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', 'marketplace/openbay'); 344 } 345 346 sleep(1); 347 348 $json = array('msg' => 'ok'); 349 350 $this->response->addHeader('Content-Type: application/json'); 351 $this->response->setOutput(json_encode($json)); 352 } 353 354 public function notifications() { 355 $this->load->model('extension/openbay/openbay'); 356 357 $json = $this->model_extension_openbay_openbay->getNotifications(); 358 359 $this->response->addHeader('Content-Type: application/json'); 360 $this->response->setOutput(json_encode($json)); 361 } 362 363 public function version() { 364 $this->load->model('extension/openbay/openbay'); 365 366 $json = $this->model_extension_openbay_openbay->version(); 367 368 $this->response->addHeader('Content-Type: application/json'); 369 $this->response->setOutput(json_encode($json)); 370 } 371 372 public function faq() { 373 $this->load->model('extension/openbay/openbay'); 374 375 $this->load->language('marketplace/openbay'); 376 377 $data = $this->model_extension_openbay_openbay->faqGet($this->request->get['qry_route']); 378 379 $data['button_faq'] = $this->language->get('button_faq'); 380 $data['button_close'] = $this->language->get('button_close'); 381 382 $this->response->addHeader('Content-Type: application/json'); 383 $this->response->setOutput(json_encode($data)); 384 } 385 386 public function faqDismiss() { 387 $this->load->model('extension/openbay/openbay'); 388 389 $this->model_extension_openbay_openbay->faqDismiss($this->request->get['qry_route']); 390 391 $json = array(); 392 393 $this->response->addHeader('Content-Type: application/json'); 394 $this->response->setOutput(json_encode($json)); 395 } 396 397 public function faqClear() { 398 $this->load->model('extension/openbay/openbay'); 399 $this->model_extension_openbay_openbay->faqClear(); 400 401 $json = array('msg' => 'ok'); 402 403 $this->response->addHeader('Content-Type: application/json'); 404 $this->response->setOutput(json_encode($json)); 405 } 406 407 public function getOrderInfo() { 408 $data = $this->load->language('marketplace/openbay'); 409 410 if ($this->config->get('ebay_status') == 1) { 411 if ($this->openbay->ebay->getOrder($this->request->get['order_id']) !== false) { 412 if ($this->config->get('ebay_status_shipped_id') == $this->request->get['status_id']) { 413 $data['carriers'] = $this->openbay->ebay->getCarriers(); 414 $data['order_info'] = $this->openbay->ebay->getOrder($this->request->get['order_id']); 415 $this->response->setOutput($this->load->view('extension/openbay/ebay_ajax_shippinginfo', $data)); 416 } 417 } 418 } 419 420 if ($this->config->get('openbay_amazon_status') == 1) { 421 $data['order_info'] = $this->openbay->amazon->getOrder($this->request->get['order_id']); 422 423 if ($data['order_info']) { 424 if ($this->request->get['status_id'] == $this->config->get('openbay_amazon_order_status_shipped')) { 425 $data['couriers'] = $this->openbay->amazon->getCarriers(); 426 $data['courier_default'] = $this->config->get('openbay_amazon_default_carrier'); 427 $this->response->setOutput($this->load->view('extension/openbay/amazon_ajax_shippinginfo', $data)); 428 } 429 } 430 } 431 432 if ($this->config->get('openbay_amazonus_status') == 1) { 433 $data['order_info'] = $this->openbay->amazonus->getOrder($this->request->get['order_id']); 434 435 if ($data['order_info']) { 436 if ($this->request->get['status_id'] == $this->config->get('openbay_amazonus_order_status_shipped')) { 437 $data['couriers'] = $this->openbay->amazonus->getCarriers(); 438 $data['courier_default'] = $this->config->get('openbay_amazon_default_carrier'); 439 $this->response->setOutput($this->load->view('extension/openbay/amazonus_ajax_shippinginfo', $data)); 440 } 441 } 442 } 443 444 if ($this->config->get('etsy_status') == 1) { 445 $data['order_info'] = $this->openbay->etsy->orderFind($this->request->get['order_id']); 446 447 if ($data['order_info']) { 448 if ($this->request->get['status_id'] == $this->config->get('etsy_order_status_shipped')) { 449 450 } 451 } 452 } 453 } 454 455 public function addOrderInfo() { 456 if ($this->config->get('ebay_status') == 1 && $this->openbay->ebay->getOrder($this->request->get['order_id']) !== false) { 457 if ($this->config->get('ebay_status_shipped_id') == $this->request->get['status_id']) { 458 $this->openbay->ebay->orderStatusListen($this->request->get['order_id'], $this->request->get['status_id'], array('tracking_no' => $this->request->post['tracking_no'], 'carrier_id' => $this->request->post['carrier_id'])); 459 } else { 460 $this->openbay->ebay->orderStatusListen($this->request->get['order_id'], $this->request->get['status_id']); 461 } 462 } 463 464 if ($this->config->get('openbay_amazon_status') == 1 && $this->openbay->amazon->getOrder($this->request->get['order_id']) !== false) { 465 if ($this->config->get('openbay_amazon_order_status_shipped') == $this->request->get['status_id']) { 466 if (!empty($this->request->post['courier_other'])) { 467 $this->openbay->amazon->updateOrder($this->request->get['order_id'], 'shipped', $this->request->post['courier_other'], false, $this->request->post['tracking_no']); 468 } else { 469 $this->openbay->amazon->updateOrder($this->request->get['order_id'], 'shipped', $this->request->post['courier_id'], true, $this->request->post['tracking_no']); 470 } 471 } 472 473 if ($this->config->get('openbay_amazon_order_status_canceled') == $this->request->get['status_id']) { 474 $this->openbay->amazon->updateOrder($this->request->get['order_id'], 'canceled'); 475 } 476 } 477 478 if ($this->config->get('openbay_amazonus_status') == 1 && $this->openbay->amazonus->getOrder($this->request->get['order_id']) !== false) { 479 if ($this->config->get('openbay_amazonus_order_status_shipped') == $this->request->get['status_id']) { 480 if (!empty($this->request->post['courier_other'])) { 481 $this->openbay->amazonus->updateOrder($this->request->get['order_id'], 'shipped', $this->request->post['courier_other'], false, $this->request->post['tracking_no']); 482 } else { 483 $this->openbay->amazonus->updateOrder($this->request->get['order_id'], 'shipped', $this->request->post['courier_id'], true, $this->request->post['tracking_no']); 484 } 485 } 486 if ($this->config->get('openbay_amazonus_order_status_canceled') == $this->request->get['status_id']) { 487 $this->openbay->amazonus->updateOrder($this->request->get['order_id'], 'canceled'); 488 } 489 } 490 491 if ($this->config->get('etsy_status') == 1) { 492 $linked_order = $this->openbay->etsy->orderFind($this->request->get['order_id']); 493 494 if ($linked_order != false) { 495 if ($this->config->get('etsy_order_status_paid') == $this->request->get['status_id']) { 496 $response = $this->openbay->etsy->orderUpdatePaid($linked_order['receipt_id'], "true"); 497 } 498 499 if ($this->config->get('etsy_order_status_shipped') == $this->request->get['status_id']) { 500 $response = $this->openbay->etsy->orderUpdateShipped($linked_order['receipt_id'], "true"); 501 } 502 } 503 } 504 } 505 506 public function orderList() { 507 $this->load->model('extension/openbay/order'); 508 $data = $this->load->language('sale/order'); 509 $data = $this->load->language('extension/openbay/openbay_order', $data); 510 511 $this->document->setTitle($this->language->get('heading_title')); 512 $this->document->addScript('view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js'); 513 $this->document->addStyle('view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css'); 514 515 if (isset($this->request->get['filter_order_id'])) { 516 $filter_order_id = $this->request->get['filter_order_id']; 517 } else { 518 $filter_order_id = ''; 519 } 520 521 if (isset($this->request->get['filter_customer'])) { 522 $filter_customer = $this->request->get['filter_customer']; 523 } else { 524 $filter_customer = ''; 525 } 526 527 if (isset($this->request->get['filter_order_status_id'])) { 528 $filter_order_status_id = $this->request->get['filter_order_status_id']; 529 } else { 530 $filter_order_status_id = ''; 531 } 532 533 if (isset($this->request->get['filter_date_added'])) { 534 $filter_date_added = $this->request->get['filter_date_added']; 535 } else { 536 $filter_date_added = ''; 537 } 538 539 if (isset($this->request->get['filter_channel'])) { 540 $filter_channel = $this->request->get['filter_channel']; 541 } else { 542 $filter_channel = ''; 543 } 544 545 if (isset($this->request->get['sort'])) { 546 $sort = $this->request->get['sort']; 547 } else { 548 $sort = 'o.order_id'; 549 } 550 551 if (isset($this->request->get['order'])) { 552 $order = $this->request->get['order']; 553 } else { 554 $order = 'DESC'; 555 } 556 557 if (isset($this->request->get['page'])) { 558 $page = $this->request->get['page']; 559 } else { 560 $page = 1; 561 } 562 563 $url = ''; 564 565 if (isset($this->request->get['filter_order_id'])) { 566 $url .= '&filter_order_id=' . $this->request->get['filter_order_id']; 567 } 568 569 if (isset($this->request->get['filter_customer'])) { 570 $url .= '&filter_customer=' . $this->request->get['filter_customer']; 571 } 572 573 if (isset($this->request->get['filter_order_status_id'])) { 574 $url .= '&filter_order_status_id=' . $this->request->get['filter_order_status_id']; 575 } 576 577 if (isset($this->request->get['filter_date_added'])) { 578 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 579 } 580 581 if (isset($this->request->get['filter_channel'])) { 582 $url .= '&filter_channel=' . $this->request->get['filter_channel']; 583 } 584 585 if (isset($this->request->get['sort'])) { 586 $url .= '&sort=' . $this->request->get['sort']; 587 } 588 589 if (isset($this->request->get['order'])) { 590 $url .= '&order=' . $this->request->get['order']; 591 } 592 593 if (isset($this->request->get['page'])) { 594 $url .= '&page=' . $this->request->get['page']; 595 } 596 597 $data['breadcrumbs'] = array(); 598 599 $data['breadcrumbs'][] = array( 600 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true), 601 'text' => $this->language->get('text_home'), 602 ); 603 604 $data['breadcrumbs'][] = array( 605 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 606 'text' => $this->language->get('text_openbay'), 607 ); 608 609 $data['breadcrumbs'][] = array( 610 'href' => $this->url->link('marketplace/openbay/manage', 'user_token=' . $this->session->data['user_token'], true), 611 'text' => $data['heading_title'], 612 ); 613 614 $data['orders'] = array(); 615 616 $filter = array( 617 'filter_order_id' => $filter_order_id, 618 'filter_customer' => $filter_customer, 619 'filter_order_status_id' => $filter_order_status_id, 620 'filter_date_added' => $filter_date_added, 621 'filter_channel' => $filter_channel, 622 'sort' => $sort, 623 'order' => $order, 624 'start' => ($page - 1) * $this->config->get('config_limit_admin'), 625 'limit' => $this->config->get('config_limit_admin') 626 ); 627 628 $order_total = $this->model_extension_openbay_order->getTotalOrders($filter); 629 $results = $this->model_extension_openbay_order->getOrders($filter); 630 631 foreach ($results as $result) { 632 $channel = $this->language->get('text_' . $result['channel']); 633 634 $data['orders'][] = array( 635 'order_id' => $result['order_id'], 636 'customer' => $result['customer'], 637 'status' => $result['status'], 638 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), 639 'selected' => isset($this->request->post['selected']) && in_array($result['order_id'], $this->request->post['selected']), 640 'view' => $this->url->link('sale/order/info', 'user_token=' . $this->session->data['user_token'] . '&order_id=' . $result['order_id'] . $url, true), 641 'channel' => $channel, 642 ); 643 } 644 645 $data['channels'] = array(); 646 647 $data['channels'][] = array( 648 'module' => 'web', 649 'title' => $this->language->get('text_web'), 650 ); 651 652 if ($this->config->get('ebay_status')) { 653 $data['channels'][] = array( 654 'module' => 'ebay', 655 'title' => $this->language->get('text_ebay'), 656 ); 657 } 658 659 if ($this->config->get('openbay_amazon_status')) { 660 $data['channels'][] = array( 661 'module' => 'amazon', 662 'title' => $this->language->get('text_amazon'), 663 ); 664 } 665 666 if ($this->config->get('openbay_amazonus_status')) { 667 $data['channels'][] = array( 668 'module' => 'amazonus', 669 'title' => $this->language->get('text_amazonus'), 670 ); 671 } 672 673 if ($this->config->get('etsy_status')) { 674 $data['channels'][] = array( 675 'module' => 'etsy', 676 'title' => $this->language->get('text_etsy'), 677 ); 678 } 679 680 $data['heading_title'] = $this->language->get('heading_title'); 681 $data['text_no_results'] = $this->language->get('text_no_results'); 682 $data['text_missing'] = $this->language->get('text_missing'); 683 $data['column_order_id'] = $this->language->get('column_order_id'); 684 $data['column_customer'] = $this->language->get('column_customer'); 685 $data['column_status'] = $this->language->get('column_status'); 686 $data['column_date_added'] = $this->language->get('column_date_added'); 687 $data['column_action'] = $this->language->get('column_action'); 688 $data['button_filter'] = $this->language->get('button_filter'); 689 690 $data['user_token'] = $this->session->data['user_token']; 691 692 if (isset($this->session->data['error'])) { 693 if (!is_array($this->session->data['error'])) { 694 $this->session->data['error'] = array($this->session->data['error']); 695 } 696 697 $data['error_warning'] = $this->session->data['error']; 698 unset($this->session->data['error']); 699 } else { 700 $data['error_warning'] = ''; 701 } 702 703 if (isset($this->session->data['error_orders'])) { 704 if (!is_array($this->session->data['error_orders'])) { 705 $this->session->data['error_orders'] = array($this->session->data['error']); 706 } 707 708 $data['error_orders'] = $this->session->data['error_orders']; 709 unset($this->session->data['error_orders']); 710 } else { 711 $data['error_orders'] = ''; 712 } 713 714 if (isset($this->session->data['success'])) { 715 $data['success'] = $this->session->data['success']; 716 717 unset($this->session->data['success']); 718 } else { 719 $data['success'] = ''; 720 } 721 722 $url = ''; 723 724 if (isset($this->request->get['filter_order_id'])) { 725 $url .= '&filter_order_id=' . $this->request->get['filter_order_id']; 726 } 727 728 if (isset($this->request->get['filter_customer'])) { 729 $url .= '&filter_customer=' . $this->request->get['filter_customer']; 730 } 731 732 if (isset($this->request->get['filter_order_status_id'])) { 733 $url .= '&filter_order_status_id=' . $this->request->get['filter_order_status_id']; 734 } 735 736 if (isset($this->request->get['filter_date_added'])) { 737 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 738 } 739 740 if (isset($this->request->get['filter_channel'])) { 741 $url .= '&filter_channel=' . $this->request->get['filter_channel']; 742 } 743 744 if ($order == 'ASC') { 745 $url .= '&order=DESC'; 746 } else { 747 $url .= '&order=ASC'; 748 } 749 750 if (isset($this->request->get['page'])) { 751 $url .= '&page=' . $this->request->get['page']; 752 } 753 754 $data['sort_order'] = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'] . '&sort=o.order_id' . $url, true); 755 $data['sort_customer'] = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'] . '&sort=customer' . $url, true); 756 $data['sort_status'] = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'] . '&sort=status' . $url, true); 757 $data['sort_date_added'] = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'] . '&sort=o.date_added' . $url, true); 758 $data['sort_channel'] = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'] . '&sort=channel' . $url, true); 759 $data['link_update'] = $this->url->link('marketplace/openbay/orderlistupdate', 'user_token=' . $this->session->data['user_token'] . $url, true); 760 $data['cancel'] = $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true); 761 762 $url = ''; 763 764 if (isset($this->request->get['filter_order_id'])) { 765 $url .= '&filter_order_id=' . $this->request->get['filter_order_id']; 766 } 767 768 if (isset($this->request->get['filter_customer'])) { 769 $url .= '&filter_customer=' . $this->request->get['filter_customer']; 770 } 771 772 if (isset($this->request->get['filter_order_status_id'])) { 773 $url .= '&filter_order_status_id=' . $this->request->get['filter_order_status_id']; 774 } 775 776 if (isset($this->request->get['filter_date_added'])) { 777 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 778 } 779 780 if (isset($this->request->get['filter_channel'])) { 781 $url .= '&filter_channel=' . $this->request->get['filter_channel']; 782 } 783 784 if (isset($this->request->get['sort'])) { 785 $url .= '&sort=' . $this->request->get['sort']; 786 } 787 788 if (isset($this->request->get['order'])) { 789 $url .= '&order=' . $this->request->get['order']; 790 } 791 792 $pagination = new Pagination(); 793 $pagination->total = $order_total; 794 $pagination->page = $page; 795 $pagination->limit = $this->config->get('config_limit_admin'); 796 $pagination->text = $this->language->get('text_pagination'); 797 $pagination->url = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'] . $url . '&page={page}', true); 798 799 $data['pagination'] = $pagination->render(); 800 801 $data['results'] = sprintf($this->language->get('text_pagination'), ($order_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($order_total - $this->config->get('config_limit_admin'))) ? $order_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $order_total, ceil($order_total / $this->config->get('config_limit_admin'))); 802 803 $data['filter_order_id'] = $filter_order_id; 804 $data['filter_customer'] = $filter_customer; 805 $data['filter_order_status_id'] = $filter_order_status_id; 806 $data['filter_date_added'] = $filter_date_added; 807 $data['filter_channel'] = $filter_channel; 808 809 $this->load->model('localisation/order_status'); 810 811 $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses(); 812 813 $data['sort'] = $sort; 814 $data['order'] = $order; 815 816 $data['header'] = $this->load->controller('common/header'); 817 $data['column_left'] = $this->load->controller('common/column_left'); 818 $data['footer'] = $this->load->controller('common/footer'); 819 820 $this->response->setOutput($this->load->view('extension/openbay/openbay_orderlist', $data)); 821 } 822 823 public function orderListUpdate() { 824 $data = $this->load->language('extension/openbay/openbay_order'); 825 826 $this->document->setTitle($this->language->get('heading_title')); 827 828 if (!isset($this->request->post['selected']) || empty($this->request->post['selected'])) { 829 $this->session->data['error'] = $data['text_no_orders']; 830 $this->response->redirect($this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'], true)); 831 } else { 832 $this->load->model('extension/openbay/order'); 833 $this->load->language('sale/order'); 834 835 $data['column_order_id'] = $this->language->get('column_order_id'); 836 $data['column_customer'] = $this->language->get('column_customer'); 837 $data['column_status'] = $this->language->get('column_status'); 838 $data['column_date_added'] = $this->language->get('column_date_added'); 839 $data['heading_title'] = $this->language->get('heading_title'); 840 841 $data['link_complete'] = $this->url->link('marketplace/openbay/orderlistcomplete', 'user_token=' . $this->session->data['user_token'], true); 842 843 $data['market_options'] = array(); 844 845 if ($this->config->get('ebay_status') == 1) { 846 $data['market_options']['ebay']['carriers'] = $this->openbay->ebay->getCarriers(); 847 } 848 849 if ($this->config->get('openbay_amazon_status') == 1) { 850 $data['market_options']['amazon']['carriers'] = $this->openbay->amazon->getCarriers(); 851 $data['market_options']['amazon']['default_carrier'] = $this->config->get('openbay_amazon_default_carrier'); 852 } 853 854 if ($this->config->get('openbay_amazonus_status') == 1) { 855 $data['market_options']['amazonus']['carriers'] = $this->openbay->amazonus->getCarriers(); 856 } 857 858 $this->load->model('localisation/order_status'); 859 $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses(); 860 $data['status_mapped'] = array(); 861 862 foreach($data['order_statuses'] as $status) { 863 $data['status_mapped'][$status['order_status_id']] = $status['name']; 864 } 865 866 $orders = array(); 867 868 foreach($this->request->post['selected'] as $order_id) { 869 $order = $this->model_extension_openbay_order->getOrder($order_id); 870 871 if ($order['order_status_id'] != $this->request->post['change_order_status_id']) { 872 $order['channel'] = $this->language->get('text_' . $order['channel']); 873 $orders[] = $order; 874 } 875 } 876 877 if (empty($orders)) { 878 $this->session->data['error'] = $data['text_no_orders']; 879 $this->response->redirect($this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'], true)); 880 } else { 881 $data['orders'] = $orders; 882 } 883 884 $data['breadcrumbs'] = array(); 885 886 $data['breadcrumbs'][] = array( 887 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true), 888 'text' => $this->language->get('text_home'), 889 ); 890 891 $data['breadcrumbs'][] = array( 892 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 893 'text' => $this->language->get('text_openbay'), 894 ); 895 896 $data['breadcrumbs'][] = array( 897 'href' => $this->url->link('marketplace/openbay/manage', 'user_token=' . $this->session->data['user_token'], true), 898 'text' => $data['heading_title'], 899 ); 900 901 $data['change_order_status_id'] = $this->request->post['change_order_status_id']; 902 $data['ebay_status_shipped_id'] = $this->config->get('ebay_status_shipped_id'); 903 $data['openbay_amazon_order_status_shipped'] = $this->config->get('openbay_amazon_order_status_shipped'); 904 $data['openbay_amazonus_order_status_shipped'] = $this->config->get('openbay_amazonus_order_status_shipped'); 905 906 $data['header'] = $this->load->controller('common/header'); 907 $data['column_left'] = $this->load->controller('common/column_left'); 908 $data['footer'] = $this->load->controller('common/footer'); 909 910 $url = ''; 911 912 if (isset($this->request->get['filter_order_id'])) { 913 $url .= '&filter_order_id=' . $this->request->get['filter_order_id']; 914 } 915 916 if (isset($this->request->get['filter_customer'])) { 917 $url .= '&filter_customer=' . urlencode(html_entity_decode($this->request->get['filter_customer'], ENT_QUOTES, 'UTF-8')); 918 } 919 920 if (isset($this->request->get['filter_order_status_id'])) { 921 $url .= '&filter_order_status_id=' . $this->request->get['filter_order_status_id']; 922 } 923 924 if (isset($this->request->get['filter_channel'])) { 925 $url .= '&filter_channel=' . $this->request->get['filter_channel']; 926 } 927 928 if (isset($this->request->get['filter_date_added'])) { 929 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 930 } 931 932 if (isset($this->request->get['sort'])) { 933 $url .= '&sort=' . $this->request->get['sort']; 934 } 935 936 if (isset($this->request->get['order'])) { 937 $url .= '&order=' . $this->request->get['order']; 938 } 939 940 if (isset($this->request->get['page'])) { 941 $url .= '&page=' . $this->request->get['page']; 942 } 943 944 $data['cancel'] = $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'] . $url, true); 945 $data['button_cancel'] = $this->language->get('button_cancel'); 946 947 $this->response->setOutput($this->load->view('extension/openbay/openbay_orderlist_confirm', $data)); 948 } 949 } 950 951 public function orderListComplete() { 952 $this->load->model('sale/order'); 953 $this->load->model('extension/openbay/openbay'); 954 $this->load->model('localisation/order_status'); 955 956 $data = $this->load->language('extension/openbay/openbay_order'); 957 958 // API login 959 $this->load->model('user/api'); 960 961 $api_info = $this->model_user_api->getApi($this->config->get('config_api_id')); 962 963 $api_key = ''; 964 if ($api_info) { 965 $api_key = $api_info['key']; 966 } 967 968 $api_login = $this->model_extension_openbay_openbay->apiLogin($api_key); 969 970 if (isset($api_info['error']) || isset($api_login['error'])) { 971 $this->session->data['error'] = isset($api_info['error']) ? $api_info['error'] : $api_login['error']; 972 $this->response->redirect($this->url->link('extension/openbay/orderList', 'token=' . $this->session->data['token'], true)); 973 } else { 974 //Amazon EU 975 if ($this->config->get('openbay_amazon_status') == 1) { 976 $this->load->model('extension/openbay/amazon'); 977 978 $orders = array(); 979 980 foreach ($this->request->post['order_id'] as $order_id) { 981 if ($this->request->post['channel'][$order_id] == 'Amazon EU') { 982 if ($this->config->get('openbay_amazon_order_status_shipped') == $this->request->post['order_status_id']) { 983 $carrier = ''; 984 985 if (isset($this->request->post['carrier_other'][$order_id]) && !empty($this->request->post['carrier_other'][$order_id])) { 986 $carrier_from_list = false; 987 $carrier = $this->request->post['carrier_other'][$order_id]; 988 } else { 989 $carrier_from_list = true; 990 $carrier = $this->request->post['carrier'][$order_id]; 991 } 992 993 $orders[] = array( 994 'order_id' => $order_id, 995 'status' => 'shipped', 996 'carrier' => $carrier, 997 'carrier_from_list' => $carrier_from_list, 998 'tracking' => $this->request->post['tracking'][$order_id], 999 ); 1000 1001 $this->model_extension_openbay_amazon->updateAmazonOrderTracking($order_id, $carrier, $carrier_from_list, !empty($carrier) ? $this->request->post['tracking'][$order_id] : ''); 1002 } 1003 1004 if ($this->config->get('openbay_amazon_order_status_canceled') == $this->request->post['order_status_id']) { 1005 $orders[] = array( 1006 'order_id' => $order_id, 1007 'status' => 'canceled', 1008 ); 1009 } 1010 } 1011 } 1012 1013 if ($orders) { 1014 $this->openbay->amazon->bulkUpdateOrders($orders); 1015 } 1016 } 1017 1018 //Amazon US 1019 if ($this->config->get('openbay_amazonus_status') == 1) { 1020 $this->load->model('extension/openbay/amazonus'); 1021 1022 $orders = array(); 1023 1024 foreach ($this->request->post['order_id'] as $order_id) { 1025 if ($this->request->post['channel'][$order_id] == 'Amazon US') { 1026 if ($this->config->get('openbay_amazonus_order_status_shipped') == $this->request->post['order_status_id']) { 1027 $carrier = ''; 1028 1029 if (isset($this->request->post['carrier_other'][$order_id]) && !empty($this->request->post['carrier_other'][$order_id])) { 1030 $carrier_from_list = false; 1031 $carrier = $this->request->post['carrier_other'][$order_id]; 1032 } else { 1033 $carrier_from_list = true; 1034 $carrier = $this->request->post['carrier'][$order_id]; 1035 } 1036 1037 $orders[] = array( 1038 'order_id' => $order_id, 1039 'status' => 'shipped', 1040 'carrier' => $carrier, 1041 'carrier_from_list' => $carrier_from_list, 1042 'tracking' => $this->request->post['tracking'][$order_id], 1043 ); 1044 1045 $this->model_extension_openbay_amazonus->updateAmazonusOrderTracking($order_id, $carrier, $carrier_from_list, !empty($carrier) ? $this->request->post['tracking'][$order_id] : ''); 1046 } 1047 1048 if ($this->config->get('openbay_amazonus_order_status_canceled') == $this->request->post['order_status_id']) { 1049 $orders[] = array( 1050 'order_id' => $order_id, 1051 'status' => 'canceled', 1052 ); 1053 } 1054 } 1055 } 1056 1057 if ($orders) { 1058 $this->openbay->amazonus->bulkUpdateOrders($orders); 1059 } 1060 } 1061 1062 $i = 0; 1063 1064 foreach ($this->request->post['order_id'] as $order_id) { 1065 if ($this->config->get('ebay_status') == 1 && $this->request->post['channel'][$order_id] == 'eBay') { 1066 if ($this->config->get('ebay_status_shipped_id') == $this->request->post['order_status_id']) { 1067 $this->openbay->ebay->orderStatusListen($order_id, $this->request->post['order_status_id'], array('tracking_no' => $this->request->post['tracking'][$order_id], 'carrier_id' => $this->request->post['carrier'][$order_id])); 1068 } else { 1069 $this->openbay->ebay->orderStatusListen($order_id, $this->request->post['order_status_id']); 1070 } 1071 } 1072 1073 if ($this->config->get('etsy_status') == 1 && $this->request->post['channel'][$order_id] == 'Etsy') { 1074 $linked_order = $this->openbay->etsy->orderFind($order_id); 1075 1076 if ($linked_order != false) { 1077 if ($this->config->get('etsy_order_status_paid') == $this->request->post['order_status_id']) { 1078 $response = $this->openbay->etsy->orderUpdatePaid($linked_order['receipt_id'], "true"); 1079 } 1080 1081 if ($this->config->get('etsy_order_status_shipped') == $this->request->post['order_status_id']) { 1082 $response = $this->openbay->etsy->orderUpdateShipped($linked_order['receipt_id'], "true"); 1083 } 1084 } 1085 } 1086 1087 $data = array( 1088 'append' => 0, 1089 'notify' => $this->request->post['notify'][$order_id], 1090 'order_status_id' => $this->request->post['order_status_id'], 1091 'comment' => $this->request->post['comments'][$order_id], 1092 ); 1093 1094 $add_history = $this->model_extension_openbay_openbay->addOrderHistory($order_id, $data, $api_login); 1095 1096 if (isset($add_history['error'])) { 1097 $this->session->data['error_orders'][] = array( 1098 'order_id' => $order_id, 1099 'error' => $add_history['error'] 1100 ); 1101 } 1102 1103 $i++; 1104 } 1105 1106 $this->session->data['success'] = sprintf($this->language->get('text_confirmed'), $i); 1107 } 1108 1109 $this->response->redirect($this->url->link('extension/openbay/orderList', 'token=' . $this->session->data['token'], true)); 1110 } 1111 1112 public function items() { 1113 $this->document->addScript('view/javascript/openbay/js/openbay.js'); 1114 $this->document->addScript('view/javascript/openbay/js/faq.js'); 1115 1116 $data = $this->load->language('catalog/product'); 1117 $data = $this->load->language('extension/openbay/openbay_itemlist', $data); 1118 1119 $this->document->setTitle($this->language->get('heading_title')); 1120 1121 $this->load->model('catalog/product'); 1122 $this->load->model('catalog/category'); 1123 $this->load->model('catalog/manufacturer'); 1124 $this->load->model('extension/openbay/openbay'); 1125 $this->load->model('tool/image'); 1126 1127 if ($this->openbay->addonLoad('openstock')) { 1128 $this->load->model('extension/module/openstock'); 1129 $openstock_installed = true; 1130 } else { 1131 $openstock_installed = false; 1132 } 1133 1134 $data['category_list'] = $this->model_catalog_category->getCategories(array()); 1135 $data['manufacturer_list'] = $this->model_catalog_manufacturer->getManufacturers(array()); 1136 1137 if (isset($this->request->get['filter_name'])) { 1138 $filter_name = $this->request->get['filter_name']; 1139 } else { 1140 $filter_name = ''; 1141 } 1142 1143 if (isset($this->request->get['filter_model'])) { 1144 $filter_model = $this->request->get['filter_model']; 1145 } else { 1146 $filter_model = ''; 1147 } 1148 1149 if (isset($this->request->get['filter_price'])) { 1150 $filter_price = $this->request->get['filter_price']; 1151 } else { 1152 $filter_price = ''; 1153 } 1154 1155 if (isset($this->request->get['filter_price_to'])) { 1156 $filter_price_to = $this->request->get['filter_price_to']; 1157 } else { 1158 $filter_price_to = ''; 1159 } 1160 1161 if (isset($this->request->get['filter_quantity'])) { 1162 $filter_quantity = $this->request->get['filter_quantity']; 1163 } else { 1164 $filter_quantity = ''; 1165 } 1166 1167 if (isset($this->request->get['filter_quantity_to'])) { 1168 $filter_quantity_to = $this->request->get['filter_quantity_to']; 1169 } else { 1170 $filter_quantity_to = ''; 1171 } 1172 1173 if (isset($this->request->get['filter_status'])) { 1174 $filter_status = $this->request->get['filter_status']; 1175 } else { 1176 $filter_status = ''; 1177 } 1178 1179 if (isset($this->request->get['filter_sku'])) { 1180 $filter_sku = $this->request->get['filter_sku']; 1181 } else { 1182 $filter_sku = ''; 1183 } 1184 1185 if (isset($this->request->get['filter_desc'])) { 1186 $filter_desc = $this->request->get['filter_desc']; 1187 } else { 1188 $filter_desc = ''; 1189 } 1190 1191 if (isset($this->request->get['filter_category'])) { 1192 $filter_category = $this->request->get['filter_category']; 1193 } else { 1194 $filter_category = ''; 1195 } 1196 1197 if (isset($this->request->get['filter_manufacturer'])) { 1198 $filter_manufacturer = $this->request->get['filter_manufacturer']; 1199 } else { 1200 $filter_manufacturer = ''; 1201 } 1202 1203 if (isset($this->request->get['filter_marketplace'])) { 1204 $filter_marketplace = $this->request->get['filter_marketplace']; 1205 } else { 1206 $filter_marketplace = ''; 1207 } 1208 1209 if (isset($this->request->get['sort'])) { 1210 $sort = $this->request->get['sort']; 1211 } else { 1212 $sort = 'pd.name'; 1213 } 1214 1215 if (isset($this->request->get['order'])) { 1216 $order = $this->request->get['order']; 1217 } else { 1218 $order = 'ASC'; 1219 } 1220 1221 if (isset($this->request->get['page'])) { 1222 $page = $this->request->get['page']; 1223 } else { 1224 $page = 1; 1225 } 1226 1227 $url = ''; 1228 1229 if (isset($this->request->get['filter_name'])) { 1230 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 1231 } 1232 1233 if (isset($this->request->get['filter_model'])) { 1234 $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); 1235 } 1236 1237 if (isset($this->request->get['filter_price'])) { 1238 $url .= '&filter_price=' . $this->request->get['filter_price']; 1239 } 1240 1241 if (isset($this->request->get['filter_price_to'])) { 1242 $url .= '&filter_price_to=' . $this->request->get['filter_price_to']; 1243 } 1244 1245 if (isset($this->request->get['filter_quantity'])) { 1246 $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; 1247 } 1248 1249 if (isset($this->request->get['filter_quantity_to'])) { 1250 $url .= '&filter_quantity_to=' . $this->request->get['filter_quantity_to']; 1251 } 1252 1253 if (isset($this->request->get['filter_status'])) { 1254 $url .= '&filter_status=' . $this->request->get['filter_status']; 1255 } 1256 1257 if (isset($this->request->get['filter_sku'])) { 1258 $url .= '&filter_sku=' . $this->request->get['filter_sku']; 1259 } 1260 1261 if (isset($this->request->get['filter_desc'])) { 1262 $url .= '&filter_desc=' . $this->request->get['filter_desc']; 1263 } 1264 1265 if (isset($this->request->get['filter_category'])) { 1266 $url .= '&filter_category=' . $this->request->get['filter_category']; 1267 } 1268 1269 if (isset($this->request->get['filter_manufacturer'])) { 1270 $url .= '&filter_manufacturer=' . $this->request->get['filter_manufacturer']; 1271 } 1272 1273 if (isset($this->request->get['filter_marketplace'])) { 1274 $url .= '&filter_marketplace=' . $this->request->get['filter_marketplace']; 1275 } 1276 1277 if (isset($this->request->get['sort'])) { 1278 $url .= '&sort=' . $this->request->get['sort']; 1279 } 1280 1281 if (isset($this->request->get['order'])) { 1282 $url .= '&order=' . $this->request->get['order']; 1283 } 1284 1285 if (isset($this->request->get['page'])) { 1286 $url .= '&page=' . $this->request->get['page']; 1287 } 1288 1289 $data['breadcrumbs'] = array(); 1290 1291 $data['breadcrumbs'][] = array( 1292 'text' => $this->language->get('text_home'), 1293 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true), 1294 ); 1295 1296 $data['breadcrumbs'][] = array( 1297 'text' => $this->language->get('text_openbay'), 1298 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 1299 ); 1300 1301 $data['breadcrumbs'][] = array( 1302 'text' => $this->language->get('heading_title'), 1303 'href' => $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . $url, true), 1304 ); 1305 1306 if ($this->config->get('openbay_amazon_status')) { 1307 $data['link_amazon_eu_bulk'] = $this->url->link('extension/openbay/amazon/bulkListProducts', 'user_token=' . $this->session->data['user_token'] . $url, true); 1308 } else { 1309 $data['link_amazon_eu_bulk'] = ''; 1310 } 1311 1312 if ($this->config->get('openbay_amazonus_status')) { 1313 $data['link_amazon_us_bulk'] = $this->url->link('extension/openbay/amazonus/bulkListProducts', 'user_token=' . $this->session->data['user_token'] . $url, true); 1314 } else { 1315 $data['link_amazon_us_bulk'] = ''; 1316 } 1317 1318 if ($this->config->get('ebay_status') == '1') { 1319 $data['link_ebay_bulk'] = $this->url->link('extension/openbay/openbay/createBulk', 'user_token=' . $this->session->data['user_token'], true); 1320 } else { 1321 $data['link_ebay_bulk'] = ''; 1322 } 1323 1324 $data['products'] = array(); 1325 1326 $filter_market_id = ''; 1327 $filter_market_name = ''; 1328 1329 $ebay_status = array( 1330 0 => 'ebay_inactive', 1331 1 => 'ebay_active', 1332 ); 1333 1334 if (in_array($filter_marketplace, $ebay_status)) { 1335 $filter_market_name = 'ebay'; 1336 $filter_market_id = array_search($filter_marketplace, $ebay_status); 1337 } 1338 1339 $amazon_status = array( 1340 0 => 'amazon_unlisted', 1341 1 => 'amazon_saved', 1342 2 => 'amazon_uploaded', 1343 3 => 'amazon_ok', 1344 4 => 'amazon_error', 1345 5 => 'amazon_linked', 1346 6 => 'amazon_not_linked', 1347 ); 1348 1349 if (in_array($filter_marketplace, $amazon_status)) { 1350 $filter_market_name = 'amazon'; 1351 $filter_market_id = array_search($filter_marketplace, $amazon_status); 1352 } 1353 1354 $amazonus_status = array( 1355 0 => 'amazonus_unlisted', 1356 1 => 'amazonus_saved', 1357 2 => 'amazonus_uploaded', 1358 3 => 'amazonus_ok', 1359 4 => 'amazonus_error', 1360 5 => 'amazonus_linked', 1361 6 => 'amazonus_not_linked', 1362 ); 1363 1364 if (in_array($filter_marketplace, $amazonus_status)) { 1365 $filter_market_name = 'amazonus'; 1366 $filter_market_id = array_search($filter_marketplace, $amazonus_status); 1367 } 1368 1369 $filter = array( 1370 'filter_name' => $filter_name, 1371 'filter_model' => $filter_model, 1372 'filter_price' => $filter_price, 1373 'filter_price_to' => $filter_price_to, 1374 'filter_quantity' => $filter_quantity, 1375 'filter_quantity_to' => $filter_quantity_to, 1376 'filter_status' => $filter_status, 1377 'filter_sku' => $filter_sku, 1378 'filter_desc' => $filter_desc, 1379 'filter_category' => $filter_category, 1380 'filter_manufacturer' => $filter_manufacturer, 1381 'filter_market_name' => $filter_market_name, 1382 'filter_market_id' => $filter_market_id, 1383 'sort' => $sort, 1384 'order' => $order, 1385 'start' => ($page - 1) * $this->config->get('config_limit_admin'), 1386 'limit' => $this->config->get('config_limit_admin') 1387 ); 1388 1389 if ($this->config->get('ebay_status') != '1' && $filter['filter_market_name'] == 'ebay') { 1390 $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true)); 1391 return; 1392 } 1393 1394 if ($this->config->get('openbay_amazon_status') != '1' && $filter['filter_market_name'] == 'amazon') { 1395 $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true)); 1396 return; 1397 } 1398 1399 if ($this->config->get('openbay_amazonus_status') != '1' && $filter['filter_market_name'] == 'amazonus') { 1400 $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true)); 1401 return; 1402 } 1403 1404 if ($this->config->get('etsy_status') != '1' && $filter['filter_market_name'] == 'etsy') { 1405 $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true)); 1406 return; 1407 } 1408 1409 $data['marketplace_statuses'] = array( 1410 'ebay' => $this->config->get('ebay_status'), 1411 'amazon' => $this->config->get('openbay_amazon_status'), 1412 'amazonus' => $this->config->get('openbay_amazonus_status'), 1413 'etsy' => $this->config->get('etsy_status'), 1414 ); 1415 1416 $product_total = $this->model_extension_openbay_openbay->getTotalProducts($filter); 1417 1418 $results = $this->model_extension_openbay_openbay->getProducts($filter); 1419 1420 foreach ($results as $result) { 1421 $edit = $this->url->link('catalog/product/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true); 1422 1423 if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { 1424 $image = $this->model_tool_image->resize($result['image'], 40, 40); 1425 } else { 1426 $image = $this->model_tool_image->resize('no_image.png', 40, 40); 1427 } 1428 1429 $special = false; 1430 1431 $product_specials = $this->model_catalog_product->getProductSpecials($result['product_id']); 1432 1433 foreach ($product_specials as $product_special) { 1434 if (($product_special['date_start'] == '0000-00-00' || $product_special['date_start'] < date('Y-m-d')) && ($product_special['date_end'] == '0000-00-00' || $product_special['date_end'] > date('Y-m-d'))) { 1435 $special = $product_special['price']; 1436 1437 break; 1438 } 1439 } 1440 1441 /** 1442 * Button status key: 1443 * 0 = Inactive / no link to market 1444 * 1 = Active 1445 * 2 = Error 1446 * 3 = Pending 1447 */ 1448 1449 $markets = array(); 1450 1451 if ($this->config->get('ebay_status') == '1') { 1452 $this->load->model('extension/openbay/ebay'); 1453 1454 $active_list = $this->model_extension_openbay_ebay->getLiveListingArray(); 1455 1456 if (!array_key_exists($result['product_id'], $active_list)) { 1457 $markets[] = array( 1458 'name' => $this->language->get('text_ebay'), 1459 'text' => $this->language->get('button_add'), 1460 'href' => $this->url->link('extension/openbay/ebay/create', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1461 'status' => 0 1462 ); 1463 } else { 1464 $markets[] = array( 1465 'name' => $this->language->get('text_ebay'), 1466 'text' => $this->language->get('button_edit'), 1467 'href' => $this->url->link('extension/openbay/ebay/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1468 'status' => 1 1469 ); 1470 } 1471 } 1472 1473 if ($this->config->get('openbay_amazon_status') == '1') { 1474 $this->load->model('extension/openbay/amazon'); 1475 $amazon_status = $this->model_extension_openbay_amazon->getProductStatus($result['product_id']); 1476 1477 if ($amazon_status == 'processing') { 1478 $markets[] = array( 1479 'name' => $this->language->get('text_amazon'), 1480 'text' => $this->language->get('text_processing'), 1481 'href' => '', 1482 'status' => 3 1483 ); 1484 } else if ($amazon_status == 'linked' || $amazon_status == 'ok' || $amazon_status == 'saved') { 1485 $markets[] = array( 1486 'name' => $this->language->get('text_amazon'), 1487 'text' => $this->language->get('button_edit'), 1488 'href' => $this->url->link('extension/openbay/amazon_listing/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1489 'status' => 1 1490 ); 1491 } else if ($amazon_status == 'error_quick' || $amazon_status == 'error_advanced' || $amazon_status == 'error_few') { 1492 $markets[] = array( 1493 'name' => $this->language->get('text_amazon'), 1494 'text' => $this->language->get('button_error_fix'), 1495 'href' => $this->url->link('extension/openbay/amazon_listing/create', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1496 'status' => 2 1497 ); 1498 } else { 1499 $markets[] = array( 1500 'name' => $this->language->get('text_amazon'), 1501 'text' => $this->language->get('button_add'), 1502 'href' => $this->url->link('extension/openbay/amazon_listing/create', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1503 'status' => 0 1504 ); 1505 } 1506 } 1507 1508 if ($this->config->get('openbay_amazonus_status') == '1') { 1509 $this->load->model('extension/openbay/amazonus'); 1510 $amazonus_status = $this->model_extension_openbay_amazonus->getProductStatus($result['product_id']); 1511 1512 if ($amazonus_status == 'processing') { 1513 $markets[] = array( 1514 'name' => $this->language->get('text_amazonus'), 1515 'text' => $this->language->get('text_processing'), 1516 'href' => '', 1517 'status' => 3 1518 ); 1519 } else if ($amazonus_status == 'linked' || $amazonus_status == 'ok' || $amazonus_status == 'saved') { 1520 $markets[] = array( 1521 'name' => $this->language->get('text_amazonus'), 1522 'text' => $this->language->get('button_edit'), 1523 'href' => $this->url->link('extension/openbay/amazonus_listing/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1524 'status' => 1 1525 ); 1526 } else if ($amazonus_status == 'error_quick' || $amazonus_status == 'error_advanced' || $amazonus_status == 'error_few') { 1527 $markets[] = array( 1528 'name' => $this->language->get('text_amazonus'), 1529 'text' => $this->language->get('button_error_fix'), 1530 'href' => $this->url->link('extension/openbay/amazonus_listing/create', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1531 'status' => 2 1532 ); 1533 } else { 1534 $markets[] = array( 1535 'name' => $this->language->get('text_amazonus'), 1536 'text' => $this->language->get('button_add'), 1537 'href' => $this->url->link('extension/openbay/amazonus_listing/create', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1538 'status' => 0 1539 ); 1540 } 1541 } 1542 1543 if ($this->config->get('etsy_status') == '1') { 1544 $this->load->model('extension/openbay/etsy_product'); 1545 1546 $status = $this->model_extension_openbay_etsy_product->getStatus($result['product_id']); 1547 1548 if ($status == 0) { 1549 $markets[] = array( 1550 'name' => $this->language->get('text_etsy'), 1551 'text' => $this->language->get('button_add'), 1552 'href' => $this->url->link('extension/openbay/etsy_product/create', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1553 'status' => 0 1554 ); 1555 } else { 1556 $markets[] = array( 1557 'name' => $this->language->get('text_etsy'), 1558 'text' => $this->language->get('button_edit'), 1559 'href' => $this->url->link('extension/openbay/etsy_product/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $result['product_id'] . $url, true), 1560 'status' => 1 1561 ); 1562 } 1563 } 1564 1565 if (!isset($result['has_option'])) { 1566 $result['has_option'] = 0; 1567 } 1568 1569 $data['products'][] = array( 1570 'markets' => $markets, 1571 'product_id' => $result['product_id'], 1572 'name' => $result['name'], 1573 'model' => $result['model'], 1574 'price' => $result['price'], 1575 'special' => $special, 1576 'image' => $image, 1577 'quantity' => $result['quantity'], 1578 'status' => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')), 1579 'selected' => isset($this->request->post['selected']) && in_array($result['product_id'], $this->request->post['selected']), 1580 'edit' => $edit, 1581 'has_option' => $openstock_installed ? $result['has_option'] : 0, 1582 'vCount' => $openstock_installed ? $this->model_setting_module_openstock->countVariation($result['product_id']) : '', 1583 'vsCount' => $openstock_installed ? $this->model_setting_module_openstock->countVariationStock($result['product_id']) : '', 1584 ); 1585 } 1586 1587 $data['user_token'] = $this->session->data['user_token']; 1588 1589 if (isset($this->error['warning'])) { 1590 $data['error_warning'] = $this->error['warning']; 1591 } else { 1592 if (isset($this->session->data['warning'])) { 1593 $data['error_warning'] = $this->session->data['warning']; 1594 unset($this->session->data['warning']); 1595 } else { 1596 $data['error_warning'] = ''; 1597 } 1598 } 1599 1600 if (isset($this->session->data['success'])) { 1601 $data['success'] = $this->session->data['success']; 1602 1603 unset($this->session->data['success']); 1604 } else { 1605 $data['success'] = ''; 1606 } 1607 1608 $url = ''; 1609 1610 if (isset($this->request->get['filter_name'])) { 1611 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 1612 } 1613 1614 if (isset($this->request->get['filter_model'])) { 1615 $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); 1616 } 1617 1618 if (isset($this->request->get['filter_price'])) { 1619 $url .= '&filter_price=' . $this->request->get['filter_price']; 1620 } 1621 1622 if (isset($this->request->get['filter_price_to'])) { 1623 $url .= '&filter_price_to=' . $this->request->get['filter_price_to']; 1624 } 1625 1626 if (isset($this->request->get['filter_quantity'])) { 1627 $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; 1628 } 1629 1630 if (isset($this->request->get['filter_quantity_to'])) { 1631 $url .= '&filter_quantity_to=' . $this->request->get['filter_quantity_to']; 1632 } 1633 1634 if (isset($this->request->get['filter_status'])) { 1635 $url .= '&filter_status=' . $this->request->get['filter_status']; 1636 } 1637 1638 if (isset($this->request->get['filter_sku'])) { 1639 $url .= '&filter_sku=' . $this->request->get['filter_sku']; 1640 } 1641 1642 if (isset($this->request->get['filter_desc'])) { 1643 $url .= '&filter_desc=' . $this->request->get['filter_desc']; 1644 } 1645 1646 if (isset($this->request->get['filter_category'])) { 1647 $url .= '&filter_category=' . $this->request->get['filter_category']; 1648 } 1649 1650 if (isset($this->request->get['filter_manufacturer'])) { 1651 $url .= '&filter_manufacturer=' . $this->request->get['filter_manufacturer']; 1652 } 1653 1654 if (isset($this->request->get['filter_marketplace'])) { 1655 $url .= '&filter_marketplace=' . $this->request->get['filter_marketplace']; 1656 } 1657 1658 if ($order == 'ASC') { 1659 $url .= '&order=DESC'; 1660 } else { 1661 $url .= '&order=ASC'; 1662 } 1663 1664 if (isset($this->request->get['page'])) { 1665 $url .= '&page=' . $this->request->get['page']; 1666 } 1667 1668 $data['sort_name'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . '&sort=pd.name' . $url, true); 1669 $data['sort_model'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . '&sort=p.model' . $url, true); 1670 $data['sort_price'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . '&sort=p.price' . $url, true); 1671 $data['sort_quantity'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . '&sort=p.quantity' . $url, true); 1672 $data['sort_status'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . '&sort=p.status' . $url, true); 1673 $data['sort_order'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . '&sort=p.sort_order' . $url, true); 1674 1675 $url = ''; 1676 1677 if (isset($this->request->get['filter_name'])) { 1678 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 1679 } 1680 1681 if (isset($this->request->get['filter_model'])) { 1682 $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); 1683 } 1684 1685 if (isset($this->request->get['filter_price'])) { 1686 $url .= '&filter_price=' . $this->request->get['filter_price']; 1687 } 1688 1689 if (isset($this->request->get['filter_price_to'])) { 1690 $url .= '&filter_price_to=' . $this->request->get['filter_price_to']; 1691 } 1692 1693 if (isset($this->request->get['filter_quantity'])) { 1694 $url .= '&filter_quantity=' . $this->request->get['filter_quantity']; 1695 } 1696 1697 if (isset($this->request->get['filter_quantity_to'])) { 1698 $url .= '&filter_quantity_to=' . $this->request->get['filter_quantity_to']; 1699 } 1700 1701 if (isset($this->request->get['filter_status'])) { 1702 $url .= '&filter_status=' . $this->request->get['filter_status']; 1703 } 1704 1705 if (isset($this->request->get['filter_sku'])) { 1706 $url .= '&filter_sku=' . $this->request->get['filter_sku']; 1707 } 1708 1709 if (isset($this->request->get['filter_desc'])) { 1710 $url .= '&filter_desc=' . $this->request->get['filter_desc']; 1711 } 1712 1713 if (isset($this->request->get['filter_category'])) { 1714 $url .= '&filter_category=' . $this->request->get['filter_category']; 1715 } 1716 1717 if (isset($this->request->get['filter_manufacturer'])) { 1718 $url .= '&filter_manufacturer=' . $this->request->get['filter_manufacturer']; 1719 } 1720 1721 if (isset($this->request->get['filter_marketplace'])) { 1722 $url .= '&filter_marketplace=' . $this->request->get['filter_marketplace']; 1723 } 1724 1725 if (isset($this->request->get['sort'])) { 1726 $url .= '&sort=' . $this->request->get['sort']; 1727 } 1728 1729 if (isset($this->request->get['order'])) { 1730 $url .= '&order=' . $this->request->get['order']; 1731 } 1732 1733 $pagination = new Pagination(); 1734 $pagination->total = $product_total; 1735 $pagination->page = $page; 1736 $pagination->limit = $this->config->get('config_limit_admin'); 1737 $pagination->text = $this->language->get('text_pagination'); 1738 $pagination->url = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'] . $url . '&page={page}', true); 1739 1740 $data['pagination'] = $pagination->render(); 1741 1742 $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($product_total - $this->config->get('config_limit_admin'))) ? $product_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $product_total, ceil($product_total / $this->config->get('config_limit_admin'))); 1743 1744 $data['filter_name'] = $filter_name; 1745 $data['filter_model'] = $filter_model; 1746 $data['filter_price'] = $filter_price; 1747 $data['filter_price_to'] = $filter_price_to; 1748 $data['filter_quantity'] = $filter_quantity; 1749 $data['filter_quantity_to'] = $filter_quantity_to; 1750 $data['filter_status'] = $filter_status; 1751 $data['filter_sku'] = $filter_sku; 1752 $data['filter_desc'] = $filter_desc; 1753 $data['filter_category'] = $filter_category; 1754 $data['filter_manufacturer'] = $filter_manufacturer; 1755 $data['filter_marketplace'] = $filter_marketplace; 1756 1757 $data['sort'] = $sort; 1758 $data['order'] = $order; 1759 1760 $data['ebay_status'] = $this->config->get('ebay_status'); 1761 $data['user_token'] = $this->request->get['user_token']; 1762 1763 $data['header'] = $this->load->controller('common/header'); 1764 $data['column_left'] = $this->load->controller('common/column_left'); 1765 $data['footer'] = $this->load->controller('common/footer'); 1766 1767 $this->response->setOutput($this->load->view('extension/openbay/openbay_itemlist', $data)); 1768 } 1769 1770 public function itemlist() { 1771 $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true)); 1772 } 1773 1774 public function eventDeleteProduct($route, $data) { 1775 $this->openbay->log('eventDeleteProduct fired: ' . $route); 1776 1777 foreach ($this->openbay->installed_markets as $market) { 1778 if ($market == 'amazon') { 1779 $status = $this->config->get('openbay_amazon_status'); 1780 } elseif ($market == 'amazonus') { 1781 $status = $this->config->get('openbay_amazonus_status'); 1782 } else { 1783 $status = $this->config->get($market . '_status'); 1784 } 1785 1786 if ($status == 1) { 1787 $this->openbay->{$market}->deleteProduct((int)$data[0]); 1788 } 1789 } 1790 } 1791 1792 public function eventEditProduct($route, $data) { 1793 $this->openbay->log('eventEditProduct fired: ' . $route); 1794 1795 foreach ($this->openbay->installed_markets as $market) { 1796 if ($market == 'amazon') { 1797 $status = $this->config->get('openbay_amazon_status'); 1798 } elseif ($market == 'amazonus') { 1799 $status = $this->config->get('openbay_amazonus_status'); 1800 } else { 1801 $status = $this->config->get($market . '_status'); 1802 } 1803 1804 if ($status == 1) { 1805 $this->openbay->{$market}->productUpdateListen((int)$data[0], $data[1]); 1806 } 1807 } 1808 } 1809 1810 public function eventMenu($route, &$data) { 1811 // OpenBay Pro Menu 1812 $openbay_menu = array(); 1813 1814 $this->load->language('extension/openbay/openbay_menu'); 1815 1816 if ($this->user->hasPermission('access', 'marketplace/openbay')) { 1817 $openbay_menu[] = array( 1818 'name' => $this->language->get('text_openbay_dashboard'), 1819 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 1820 'children' => array() 1821 ); 1822 1823 $openbay_menu[] = array( 1824 'name' => $this->language->get('text_openbay_orders'), 1825 'href' => $this->url->link('marketplace/openbay/orderlist', 'user_token=' . $this->session->data['user_token'], true), 1826 'children' => array() 1827 ); 1828 1829 $openbay_menu[] = array( 1830 'name' => $this->language->get('text_openbay_items'), 1831 'href' => $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true), 1832 'children' => array() 1833 ); 1834 1835 // eBay sub menu 1836 $ebay = array(); 1837 1838 if ($this->user->hasPermission('access', 'extension/openbay/ebay') && $this->config->get('ebay_status') == 1) { 1839 $ebay[] = array( 1840 'name' => $this->language->get('text_openbay_dashboard'), 1841 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true), 1842 'children' => array() 1843 ); 1844 1845 $ebay[] = array( 1846 'name' => $this->language->get('text_openbay_settings'), 1847 'href' => $this->url->link('extension/openbay/ebay/settings', 'user_token=' . $this->session->data['user_token'], true), 1848 'children' => array() 1849 ); 1850 1851 $ebay[] = array( 1852 'name' => $this->language->get('text_openbay_links'), 1853 'href' => $this->url->link('extension/openbay/ebay/viewitemlinks', 'user_token=' . $this->session->data['user_token'], true), 1854 'children' => array() 1855 ); 1856 1857 $ebay[] = array( 1858 'name' => $this->language->get('text_openbay_order_import'), 1859 'href' => $this->url->link('extension/openbay/ebay/vieworderimport', 'user_token=' . $this->session->data['user_token'], true), 1860 'children' => array() 1861 ); 1862 } 1863 1864 if ($ebay) { 1865 $openbay_menu[] = array( 1866 'name' => $this->language->get('text_openbay_ebay'), 1867 'href' => '', 1868 'children' => $ebay 1869 ); 1870 } 1871 1872 // Amazon EU sub menu 1873 $amazon_eu = array(); 1874 1875 if ($this->user->hasPermission('access', 'extension/openbay/amazon') && $this->config->get('openbay_amazon_status') == 1) { 1876 $amazon_eu[] = array( 1877 'name' => $this->language->get('text_openbay_dashboard'), 1878 'href' => $this->url->link('extension/openbay/amazon', 'user_token=' . $this->session->data['user_token'], true), 1879 'children' => array() 1880 ); 1881 1882 $amazon_eu[] = array( 1883 'name' => $this->language->get('text_openbay_settings'), 1884 'href' => $this->url->link('extension/openbay/amazon/settings', 'user_token=' . $this->session->data['user_token'], true), 1885 'children' => array() 1886 ); 1887 1888 $amazon_eu[] = array( 1889 'name' => $this->language->get('text_openbay_links'), 1890 'href' => $this->url->link('extension/openbay/amazon/itemlinks', 'user_token=' . $this->session->data['user_token'], true), 1891 'children' => array() 1892 ); 1893 } 1894 1895 if ($amazon_eu) { 1896 $openbay_menu[] = array( 1897 'name' => $this->language->get('text_openbay_amazon'), 1898 'href' => '', 1899 'children' => $amazon_eu 1900 ); 1901 } 1902 1903 // Amazon US sub menu 1904 $amazon_us = array(); 1905 1906 if ($this->user->hasPermission('access', 'extension/openbay/amazonus') && $this->config->get('openbay_amazonus_status') == 1) { 1907 $amazon_us[] = array( 1908 'name' => $this->language->get('text_openbay_dashboard'), 1909 'href' => $this->url->link('extension/openbay/amazonus', 'user_token=' . $this->session->data['user_token'], true), 1910 'children' => array() 1911 ); 1912 1913 $amazon_us[] = array( 1914 'name' => $this->language->get('text_openbay_settings'), 1915 'href' => $this->url->link('extension/openbay/amazonus/settings', 'user_token=' . $this->session->data['user_token'], true), 1916 'children' => array() 1917 ); 1918 1919 $amazon_us[] = array( 1920 'name' => $this->language->get('text_openbay_links'), 1921 'href' => $this->url->link('extension/openbay/amazonus/itemlinks', 'user_token=' . $this->session->data['user_token'], true), 1922 'children' => array() 1923 ); 1924 } 1925 1926 if ($amazon_us) { 1927 $openbay_menu[] = array( 1928 'name' => $this->language->get('text_openbay_amazonus'), 1929 'href' => '', 1930 'children' => $amazon_us 1931 ); 1932 } 1933 1934 // Etsy sub menu 1935 $etsy = array(); 1936 1937 if ($this->user->hasPermission('access', 'extension/openbay/etsy') && $this->config->get('etsy_status') == 1) { 1938 $etsy[] = array( 1939 'name' => $this->language->get('text_openbay_dashboard'), 1940 'href' => $this->url->link('extension/openbay/etsy', 'user_token=' . $this->session->data['user_token'], true), 1941 'children' => array() 1942 ); 1943 1944 $etsy[] = array( 1945 'name' => $this->language->get('text_openbay_settings'), 1946 'href' => $this->url->link('extension/openbay/etsy/settings', 'user_token=' . $this->session->data['user_token'], true), 1947 'children' => array() 1948 ); 1949 1950 if ($this->user->hasPermission('access', 'extension/openbay/etsy_product')) { 1951 $etsy[] = array( 1952 'name' => $this->language->get('text_openbay_links'), 1953 'href' => $this->url->link('extension/openbay/etsy_product/links', 'user_token=' . $this->session->data['user_token'], true), 1954 'children' => array() 1955 ); 1956 } 1957 } 1958 1959 if ($etsy) { 1960 $openbay_menu[] = array( 1961 'name' => $this->language->get('text_openbay_etsy'), 1962 'href' => '', 1963 'children' => $etsy 1964 ); 1965 } 1966 1967 // FBA sub menu 1968 $fba = array(); 1969 1970 if ($this->user->hasPermission('access', 'extension/openbay/fba') && $this->config->get('openbay_fba_status') == 1) { 1971 $fba[] = array( 1972 'name' => $this->language->get('text_openbay_dashboard'), 1973 'href' => $this->url->link('extension/openbay/fba', 'user_token=' . $this->session->data['user_token'], true), 1974 'children' => array() 1975 ); 1976 1977 $fba[] = array( 1978 'name' => $this->language->get('text_openbay_settings'), 1979 'href' => $this->url->link('extension/openbay/fba/settings', 'user_token=' . $this->session->data['user_token'], true), 1980 'children' => array() 1981 ); 1982 1983 $fba[] = array( 1984 'name' => $this->language->get('text_openbay_fulfillmentlist'), 1985 'href' => $this->url->link('extension/openbay/fba/fulfillmentlist', 'user_token=' . $this->session->data['user_token'], true), 1986 'children' => array() 1987 ); 1988 1989 $fba[] = array( 1990 'name' => $this->language->get('text_openbay_orderlist'), 1991 'href' => $this->url->link('extension/openbay/fba/orderlist', 'user_token=' . $this->session->data['user_token'], true), 1992 'children' => array() 1993 ); 1994 } 1995 1996 if ($fba) { 1997 $openbay_menu[] = array( 1998 'name' => $this->language->get('text_openbay_fba'), 1999 'href' => '', 2000 'children' => $fba 2001 ); 2002 } 2003 } 2004 2005 if ($openbay_menu) { 2006 $data['menus'][] = array( 2007 'id' => 'menu-openbay', 2008 'icon' => 'fa-cubes', 2009 'name' => $this->language->get('text_openbay_extension'), 2010 'href' => '', 2011 'children' => $openbay_menu 2012 ); 2013 } 2014 } 2015 2016 public function purge() { 2017 /** 2018 * This is a function that is very dangerous 2019 * Only developers should use this if you need to!! 2020 * You need this code: **135** (includes stars) 2021 * 2022 * ACTIONS HERE CANNOT BE UNDONE WITHOUT A BACKUP 2023 * 2024 * !! IMPORTANT !! 2025 * This section will by default comment out the database delete actions 2026 * If you want to use them, uncomment. 2027 * When you are finished, ensure you comment them back out! 2028 */ 2029 2030 $this->log->write('User is trying to wipe system data'); 2031 2032 if ($this->request->post['pass'] != '**135**') { 2033 $this->log->write('User failed password validation'); 2034 $json = array('msg' => 'Password wrong, check the source code for the password! This is so you know what this feature does.'); 2035 } else { 2036 /** 2037 $this->log->write('User passed validation'); 2038 $this->db->query("TRUNCATE `" . DB_PREFIX . "order`"); 2039 $this->db->query("TRUNCATE `" . DB_PREFIX . "order_history`"); 2040 $this->db->query("TRUNCATE `" . DB_PREFIX . "order_option`"); 2041 $this->db->query("TRUNCATE `" . DB_PREFIX . "order_product`"); 2042 $this->db->query("TRUNCATE `" . DB_PREFIX . "order_total`"); 2043 $this->db->query("TRUNCATE `" . DB_PREFIX . "customer`"); 2044 $this->db->query("TRUNCATE `" . DB_PREFIX . "customer_activity`"); 2045 $this->db->query("TRUNCATE `" . DB_PREFIX . "customer_ban_ip`"); 2046 $this->db->query("TRUNCATE `" . DB_PREFIX . "customer_transaction`"); 2047 $this->db->query("TRUNCATE `" . DB_PREFIX . "address`"); 2048 2049 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_order`"); 2050 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_order_lock`"); 2051 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_transaction`"); 2052 2053 if ($this->config->get('ebay_status') == 1) { 2054 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_category`"); 2055 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_category_history`"); 2056 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_image_import`"); 2057 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_listing`"); 2058 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_listing_pending`"); 2059 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_stock_reserve`"); 2060 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_payment_method`"); 2061 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_profile`"); 2062 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_setting_option`"); 2063 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_shipping`"); 2064 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_shipping_location`"); 2065 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_shipping_location_exclude`"); 2066 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_template`"); 2067 } 2068 2069 if ($this->config->get('etsy_status') == 1) { 2070 $this->db->query("TRUNCATE `" . DB_PREFIX . "etsy_listing`"); 2071 $this->db->query("TRUNCATE `" . DB_PREFIX . "etsy_setting_option`"); 2072 } 2073 2074 $this->db->query("TRUNCATE `" . DB_PREFIX . "etsy_order`"); 2075 $this->db->query("TRUNCATE `" . DB_PREFIX . "etsy_order_lock`"); 2076 $this->db->query("TRUNCATE `" . DB_PREFIX . "manufacturer`"); 2077 $this->db->query("TRUNCATE `" . DB_PREFIX . "manufacturer_to_store`"); 2078 $this->db->query("TRUNCATE `" . DB_PREFIX . "attribute`"); 2079 $this->db->query("TRUNCATE `" . DB_PREFIX . "attribute_description`"); 2080 $this->db->query("TRUNCATE `" . DB_PREFIX . "attribute_group`"); 2081 $this->db->query("TRUNCATE `" . DB_PREFIX . "attribute_group_description`"); 2082 $this->db->query("TRUNCATE `" . DB_PREFIX . "ebay_listing`"); 2083 $this->db->query("TRUNCATE `" . DB_PREFIX . "category`"); 2084 $this->db->query("TRUNCATE `" . DB_PREFIX . "category_description`"); 2085 $this->db->query("TRUNCATE `" . DB_PREFIX . "category_to_store`"); 2086 $this->db->query("TRUNCATE `" . DB_PREFIX . "product`"); 2087 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_store`"); 2088 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_description`"); 2089 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_attribute`"); 2090 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_option`"); 2091 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_value`"); 2092 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_image`"); 2093 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_to_category`"); 2094 $this->db->query("TRUNCATE `" . DB_PREFIX . "option`"); 2095 $this->db->query("TRUNCATE `" . DB_PREFIX . "option_description`"); 2096 $this->db->query("TRUNCATE `" . DB_PREFIX . "option_value`"); 2097 $this->db->query("TRUNCATE `" . DB_PREFIX . "option_value_description`"); 2098 2099 if ($this->openbay->addonLoad('openstock')) { 2100 $this->db->query("TRUNCATE `" . DB_PREFIX . "product_option_relation`"); 2101 } 2102 */ 2103 2104 $this->log->write('Data cleared'); 2105 $json = array('msg' => 'Data cleared'); 2106 } 2107 2108 $this->response->addHeader('Content-Type: application/json'); 2109 $this->response->setOutput(json_encode($json)); 2110 } 2111 }