ebay_profile.php (16711B)
1 <?php 2 class ControllerExtensionOpenbayEbayProfile extends Controller { 3 private $error = array(); 4 5 public function profileAll() { 6 $data = $this->load->language('extension/openbay/ebay_profile'); 7 8 $this->load->model('extension/openbay/ebay_profile'); 9 10 $this->document->setTitle($data['heading_title']); 11 $this->document->addScript('view/javascript/openbay/js/faq.js'); 12 13 if (isset($this->session->data['error'])) { 14 $data['error_warning'] = $this->session->data['error']; 15 unset($this->session->data['error']); 16 } else { 17 $data['error_warning'] = ''; 18 } 19 20 if (isset($this->session->data['success'])) { 21 $data['success'] = $this->session->data['success']; 22 unset($this->session->data['success']); 23 } else { 24 $data['success'] = ''; 25 } 26 27 $data['add'] = $this->url->link('extension/openbay/ebay_profile/add', 'user_token=' . $this->session->data['user_token'], true); 28 $data['types'] = $this->model_extension_openbay_ebay_profile->getTypes(); 29 $data['profiles'] = $this->model_extension_openbay_ebay_profile->getAll(); 30 $data['user_token'] = $this->session->data['user_token']; 31 32 $data['breadcrumbs'] = array(); 33 34 $data['breadcrumbs'][] = array( 35 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true), 36 'text' => $this->language->get('text_home'), 37 ); 38 39 $data['breadcrumbs'][] = array( 40 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 41 'text' => $this->language->get('text_openbay'), 42 ); 43 44 $data['breadcrumbs'][] = array( 45 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true), 46 'text' => $this->language->get('text_ebay'), 47 ); 48 49 $data['breadcrumbs'][] = array( 50 'href' => $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true), 51 'text' => $this->language->get('heading_title'), 52 ); 53 54 $data['header'] = $this->load->controller('common/header'); 55 $data['column_left'] = $this->load->controller('common/column_left'); 56 $data['footer'] = $this->load->controller('common/footer'); 57 58 $this->response->setOutput($this->load->view('extension/openbay/ebay_profile_list', $data)); 59 60 } 61 62 public function add() { 63 $this->load->model('extension/openbay/ebay_profile'); 64 65 $data = $this->load->language('extension/openbay/ebay_profile'); 66 67 $data['btn_save'] = $this->url->link('extension/openbay/ebay_profile/add', 'user_token=' . $this->session->data['user_token'], true); 68 $data['cancel'] = $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true); 69 70 if (!isset($this->request->post['step1'])) { 71 if ($this->request->post && $this->profileValidate()) { 72 $this->session->data['success'] = $data['text_added']; 73 74 $this->model_extension_openbay_ebay_profile->add($this->request->post); 75 76 $this->response->redirect($this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true)); 77 } 78 } 79 80 $this->profileForm($data); 81 } 82 83 public function delete() { 84 $this->load->model('extension/openbay/ebay_profile'); 85 86 if (!$this->user->hasPermission('modify', 'extension/openbay/ebay_profile')) { 87 $this->error['warning'] = $this->language->get('error_permission'); 88 } else { 89 if (isset($this->request->get['ebay_profile_id'])) { 90 $this->model_extension_openbay_ebay_profile->delete($this->request->get['ebay_profile_id']); 91 } 92 } 93 94 $this->response->redirect($this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true)); 95 } 96 97 public function edit() { 98 $this->load->model('extension/openbay/ebay_profile'); 99 100 $data = $this->load->language('extension/openbay/ebay_profile'); 101 102 if ($this->request->post && $this->profileValidate()) { 103 $this->session->data['success'] = $data['text_updated']; 104 105 $this->model_extension_openbay_ebay_profile->edit($this->request->post['ebay_profile_id'], $this->request->post); 106 107 $this->response->redirect($this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true)); 108 } 109 110 $this->profileForm($data); 111 } 112 113 public function profileForm($data) { 114 $this->load->model('extension/openbay/ebay'); 115 $this->load->model('extension/openbay/ebay_template'); 116 117 $data['user_token'] = $this->session->data['user_token']; 118 $data['shipping_international_zones'] = $this->model_extension_openbay_ebay->getShippingLocations(); 119 $data['templates'] = $this->model_extension_openbay_ebay_template->getAll(); 120 $data['types'] = $this->model_extension_openbay_ebay_profile->getTypes(); 121 122 $setting = array(); 123 $setting['returns'] = $this->openbay->ebay->getSetting('returns'); 124 $setting['dispatch_times'] = $this->openbay->ebay->getSetting('dispatch_time_max'); 125 $setting['countries'] = $this->openbay->ebay->getSetting('countries'); 126 $setting['shipping_types'] = $this->openbay->ebay->getSetting('shipping_types'); 127 $setting['listing_restrictions'] = $this->openbay->ebay->getSetting('listing_restrictions'); 128 129 if (empty($setting['dispatch_times']) || empty($setting['countries']) || empty($setting['returns'])){ 130 $this->session->data['warning'] = $this->language->get('error_missing_settings'); 131 $this->response->redirect($this->url->link('extension/openbay/ebay/syncronise', 'user_token=' . $this->session->data['user_token'], true)); 132 } 133 134 if (is_array($setting['dispatch_times'])) { 135 ksort($setting['dispatch_times']); 136 } 137 if (is_array($setting['countries'])) { 138 ksort($setting['countries']); 139 } 140 141 $data['setting'] = $setting; 142 143 if (isset($this->error['warning'])) { 144 $data['error_warning'] = $this->error['warning']; 145 } else { 146 $data['error_warning'] = ''; 147 } 148 149 $profile_info = array(); 150 if (isset($this->request->get['ebay_profile_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { 151 $profile_info = $this->model_extension_openbay_ebay_profile->get($this->request->get['ebay_profile_id']); 152 $data['text_manage'] = $this->language->get('text_edit'); 153 $data['action'] = $this->url->link('extension/openbay/ebay_profile/edit', 'user_token=' . $this->session->data['user_token'], true); 154 } else { 155 $data['action'] = $this->url->link('extension/openbay/ebay_profile/add', 'user_token=' . $this->session->data['user_token'], true); 156 $data['text_manage'] = $this->language->get('text_add'); 157 } 158 159 if (isset($this->request->post['type'])) { 160 $type = $this->request->post['type']; 161 } else { 162 $type = $profile_info['type']; 163 } 164 165 if (!array_key_exists($type, $data['types'])) { 166 $this->session->data['error'] = $data['error_no_template']; 167 168 $this->response->redirect($this->url->link('extension/openbay/ebay_profile/profilAall', 'user_token=' . $this->session->data['user_token'], true)); 169 } 170 171 $this->document->addScript('view/javascript/openbay/js/faq.js'); 172 173 $data['breadcrumbs'] = array(); 174 175 $data['breadcrumbs'][] = array( 176 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true), 177 'text' => $this->language->get('text_home'), 178 ); 179 180 $data['breadcrumbs'][] = array( 181 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true), 182 'text' => $this->language->get('text_openbay'), 183 ); 184 185 $data['breadcrumbs'][] = array( 186 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true), 187 'text' => $this->language->get('text_ebay'), 188 ); 189 190 $data['breadcrumbs'][] = array( 191 'href' => $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true), 192 'text' => $this->language->get('heading_title') 193 ); 194 195 if (isset($this->request->post['default'])) { 196 $data['default'] = $this->request->post['default']; 197 } elseif (!empty($profile_info)) { 198 $data['default'] = $profile_info['default']; 199 } else { 200 $data['default'] = 0; 201 } 202 203 if (isset($this->request->post['name'])) { 204 $data['name'] = $this->request->post['name']; 205 } elseif (!empty($profile_info)) { 206 $data['name'] = $profile_info['name']; 207 } else { 208 $data['name'] = ''; 209 } 210 211 if (isset($this->request->post['description'])) { 212 $data['description'] = $this->request->post['description']; 213 } elseif (!empty($profile_info)) { 214 $data['description'] = $profile_info['description']; 215 } else { 216 $data['description'] = ''; 217 } 218 219 if (isset($this->request->post['type'])) { 220 $data['type'] = $this->request->post['type']; 221 } else { 222 $data['type'] = $profile_info['type']; 223 } 224 225 if (isset($this->request->get['ebay_profile_id'])) { 226 $data['ebay_profile_id'] = $this->request->get['ebay_profile_id']; 227 } else { 228 $data['ebay_profile_id'] = ''; 229 } 230 231 if (isset($this->request->post['data'])) { 232 $data['data'] = $this->request->post['data']; 233 } elseif (!empty($profile_info)) { 234 $data['data'] = $profile_info['data']; 235 } else { 236 $data['data'] = ''; 237 } 238 239 if ($type == 0) { 240 $data['zones'] = $this->model_extension_openbay_ebay->getShippingLocations(); 241 242 $data['data']['national']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'calculated'); 243 $data['data']['international']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'calculated'); 244 $data['data']['national']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'flat'); 245 $data['data']['international']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'flat'); 246 247 $data['data']['national']['calculated']['count'] = isset($data['data']['national']['calculated']['service_id']) ? max(array_keys($data['data']['national']['calculated']['service_id']))+1 : 0; 248 $data['data']['national']['flat']['count'] = isset($data['data']['national']['flat']['service_id']) ? max(array_keys($data['data']['national']['flat']['service_id']))+1 : 0; 249 $data['data']['international']['calculated']['count'] = isset($data['data']['international']['calculated']['service_id']) ? max(array_keys($data['data']['international']['calculated']['service_id']))+1 : 0; 250 $data['data']['international']['flat']['count'] = isset($data['data']['international']['flat']['service_id']) ? max(array_keys($data['data']['international']['flat']['service_id']))+1 : 0; 251 252 $payment_types = $this->model_extension_openbay_ebay->getPaymentTypes(); 253 $data['cod_surcharge'] = 0; 254 255 foreach($payment_types as $payment) { 256 if ($payment['ebay_name'] == 'COD') { 257 $data['cod_surcharge'] = 1; 258 } 259 } 260 261 if (!isset($data['data']['national']['shipping_type'])) { 262 $data['data']['national']['shipping_type'] = 'flat'; 263 } 264 265 if (!isset($data['data']['international']['shipping_type'])) { 266 $data['data']['international']['shipping_type'] = 'flat'; 267 } 268 269 $data['html_national_flat'] = $this->load->view('extension/openbay/ebay_profile_shipping_national_flat', $data); 270 $data['html_international_flat'] = $this->load->view('extension/openbay/ebay_profile_shipping_international_flat', $data); 271 $data['html_national_calculated'] = $this->load->view('extension/openbay/ebay_profile_shipping_national_calculated', $data); 272 $data['html_international_calculated'] = $this->load->view('extension/openbay/ebay_profile_shipping_international_calculated', $data); 273 } 274 275 $data['cancel'] = $this->url->link('extension/openbay/ebay_profile/profileAll', 'user_token=' . $this->session->data['user_token'], true); 276 277 $this->document->setTitle($data['heading_title']); 278 279 $data['header'] = $this->load->controller('common/header'); 280 $data['column_left'] = $this->load->controller('common/column_left'); 281 $data['footer'] = $this->load->controller('common/footer'); 282 283 $this->response->setOutput($this->load->view($data['types'][$type]['template'], $data)); 284 } 285 286 public function profileGet() { 287 $this->load->model('extension/openbay/ebay_profile'); 288 $this->load->model('extension/openbay/ebay'); 289 $this->load->language('extension/openbay/ebay_profile'); 290 291 $profile_info = $this->model_extension_openbay_ebay_profile->get($this->request->get['ebay_profile_id']); 292 $data = array(); 293 294 if ($profile_info['type'] == 0) { 295 $data['data'] = $profile_info['data']; 296 $data['data']['national']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'calculated'); 297 $data['data']['international']['calculated']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'calculated'); 298 $data['data']['national']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(0, 'flat'); 299 $data['data']['international']['flat']['types'] = $this->model_extension_openbay_ebay->getShippingService(1, 'flat'); 300 301 $data['data']['national']['calculated']['count'] = isset($data['data']['national']['calculated']['service_id']) ? max(array_keys($data['data']['national']['calculated']['service_id']))+1 : 0; 302 $data['data']['national']['flat']['count'] = isset($data['data']['national']['flat']['service_id']) ? max(array_keys($data['data']['national']['flat']['service_id']))+1 : 0; 303 $data['data']['international']['calculated']['count'] = isset($data['data']['international']['calculated']['service_id']) ? max(array_keys($data['data']['international']['calculated']['service_id']))+1 : 0; 304 $data['data']['international']['flat']['count'] = isset($data['data']['international']['flat']['service_id']) ? max(array_keys($data['data']['international']['flat']['service_id']))+1 : 0; 305 306 $data['zones'] = $this->model_extension_openbay_ebay->getShippingLocations(); 307 308 $data['text_shipping_service'] = $this->language->get('text_shipping_service'); 309 $data['text_shipping_first'] = $this->language->get('text_shipping_first'); 310 $data['button_delete'] = $this->language->get('button_delete'); 311 $data['text_shipping_zones'] = $this->language->get('text_shipping_zones'); 312 $data['text_shipping_worldwide'] = $this->language->get('text_shipping_worldwide'); 313 $data['text_shipping_add'] = $this->language->get('text_shipping_add'); 314 $data['text_cod_surcharge'] = $this->language->get('text_cod_surcharge'); 315 316 $payment_types = $this->model_extension_openbay_ebay->getPaymentTypes(); 317 $data['cod_surcharge'] = 0; 318 319 if (!empty($payment_types)) { 320 foreach($payment_types as $payment) { 321 if ($payment['ebay_name'] == 'COD') { 322 $data['cod_surcharge'] = 1; 323 } 324 } 325 } 326 $return['national']['type'] = $data['data']['national']['shipping_type']; 327 $return['international']['type'] = $data['data']['international']['shipping_type']; 328 329 $return['national_flat_count'] = (int)$data['data']['national']['flat']['count']; 330 $return['national_flat'] = $this->load->view('extension/openbay/ebay_profile_shipping_national_flat', $data); 331 332 $return['international_flat_count'] = (int)$data['data']['international']['flat']['count']; 333 $return['international_flat'] = $this->load->view('extension/openbay/ebay_profile_shipping_international_flat', $data); 334 335 $return['national_calculated_count'] = (int)$data['data']['national']['calculated']['count']; 336 $return['national_calculated'] = $this->load->view('extension/openbay/ebay_profile_shipping_national_calculated', $data); 337 338 $return['international_calculated_count'] = (int)$data['data']['international']['flat']['count']; 339 $return['international_calculated'] = $this->load->view('extension/openbay/ebay_profile_shipping_international_calculated', $data); 340 341 $profile_info['html'] = $return; 342 } 343 344 $this->response->addHeader('Content-Type: application/json'); 345 $this->response->setOutput(json_encode($profile_info)); 346 } 347 348 private function profileValidate() { 349 if (!$this->user->hasPermission('modify', 'extension/openbay/ebay_profile')) { 350 $this->error['warning'] = $this->language->get('error_permission'); 351 } 352 353 if ($this->request->post['name'] == '') { 354 $this->error['name'] = $this->language->get('error_name'); 355 } 356 357 return !$this->error; 358 } 359 }