aboutsummaryrefslogtreecommitdiffstats
path: root/public/admin/controller/extension/openbay/ebay.php
diff options
context:
space:
mode:
authorJesús <heckyel@hyperbola.info>2019-08-18 21:14:58 -0500
committerJesús <heckyel@hyperbola.info>2019-08-18 21:14:58 -0500
commit2eed7b082f83630301e51f57ca8394de228a8605 (patch)
tree1d19962d22d30f99317d9276e4bae7744fc93fc2 /public/admin/controller/extension/openbay/ebay.php
downloadlibrecart-2eed7b082f83630301e51f57ca8394de228a8605.tar.lz
librecart-2eed7b082f83630301e51f57ca8394de228a8605.tar.xz
librecart-2eed7b082f83630301e51f57ca8394de228a8605.zip
first commit
Diffstat (limited to 'public/admin/controller/extension/openbay/ebay.php')
-rw-r--r--public/admin/controller/extension/openbay/ebay.php2421
1 files changed, 2421 insertions, 0 deletions
diff --git a/public/admin/controller/extension/openbay/ebay.php b/public/admin/controller/extension/openbay/ebay.php
new file mode 100644
index 0000000..b0687bf
--- /dev/null
+++ b/public/admin/controller/extension/openbay/ebay.php
@@ -0,0 +1,2421 @@
+<?php
+class ControllerExtensionOpenbayEbay extends Controller {
+ public function install() {
+ $this->load->language('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('setting/setting');
+ $this->load->model('setting/extension');
+ $this->load->model('user/user_group');
+
+ $this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', 'extension/openbay/ebay_profile');
+ $this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', 'extension/openbay/ebay_profile');
+ $this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', 'extension/openbay/ebay_template');
+ $this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', 'extension/openbay/ebay_template');
+
+ $this->model_extension_openbay_ebay->install();
+ }
+
+ public function uninstall() {
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('setting/setting');
+ $this->load->model('setting/extension');
+
+ $this->model_extension_openbay_ebay->uninstall();
+ $this->model_setting_extension->uninstall('openbay', $this->request->get['extension']);
+ $this->model_setting_setting->deleteSetting($this->request->get['extension']);
+ }
+
+ public function index() {
+ $this->load->language('extension/openbay/ebay');
+
+ $data = $this->language->all();
+
+ $this->document->setTitle($this->language->get('text_dashboard'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_dashboard'),
+ );
+
+ if (isset($this->session->data['success'])) {
+ $data['success'] = $this->session->data['success'];
+ unset($this->session->data['success']);
+ } else {
+ $data['success'] = '';
+ }
+
+ $data['validation'] = $this->openbay->ebay->validate();
+ $data['links_settings'] = $this->url->link('extension/openbay/ebay/settings', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_itemlink'] = $this->url->link('extension/openbay/ebay/viewItemLinks', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_subscribe'] = $this->url->link('extension/openbay/ebay/subscription', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_usage'] = $this->url->link('extension/openbay/ebay/viewUsage', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_itemimport'] = $this->url->link('extension/openbay/ebay/viewItemImport', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_orderimport'] = $this->url->link('extension/openbay/ebay/viewOrderImport', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_usage'] = $this->url->link('extension/openbay/ebay/viewUsage', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_sync'] = $this->url->link('extension/openbay/ebay/syncronise', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_linkmaintenance'] = $this->url->link('extension/openbay/ebay/viewItemLinkMaintenance', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_summary'] = $this->url->link('extension/openbay/ebay/summary', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_profile'] = $this->url->link('extension/openbay/ebay_profile', 'user_token=' . $this->session->data['user_token'], true);
+ $data['links_template'] = $this->url->link('extension/openbay/ebay_template/listAll', 'user_token=' . $this->session->data['user_token'], true);
+ $data['link_signup'] = 'https://account.openbaypro.com/ebay/apiRegister/?endpoint=2&utm_source=opencart_install&utm_medium=dashboard&utm_campaign=ebay';
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay', $data));
+ }
+
+ public function settings() {
+ $this->load->language('extension/openbay/ebay_settings');
+
+ $data = $this->language->all();
+
+ $this->load->model('setting/setting');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('localisation/currency');
+ $this->load->model('localisation/order_status');
+
+ if (($this->request->server['REQUEST_METHOD'] == 'POST') && ($this->validate())) {
+ $this->model_setting_setting->editSetting('ebay', $this->request->post);
+ $this->session->data['success'] = $this->language->get('text_success');
+ $this->response->redirect($this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true));
+ }
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/settings', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['action'] = $this->url->link('extension/openbay/ebay/settings', 'user_token=' . $this->session->data['user_token'], true);
+ $data['cancel'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['link_signup'] = 'https://account.openbaypro.com/ebay/apiRegister/?endpoint=2&utm_source=opencart_install&utm_medium=settings&utm_campaign=ebay';
+ $data['link_token_renew'] = 'https://account.openbaypro.com/ebay/apiRenew/?utm_source=opencart_install&utm_medium=settings&utm_campaign=ebaytoken';
+ $data['link_update'] = 'https://account.openbaypro.com/ebay/apiUpdate/?utm_source=opencart_install&utm_medium=settings&utm_campaign=ebayupdate';
+
+ if (isset($this->request->post['ebay_def_currency'])) {
+ $data['ebay_def_currency'] = $this->request->post['ebay_def_currency'];
+ } else {
+ $data['ebay_def_currency'] = $this->config->get('ebay_def_currency');
+ }
+ $data['currency_list'] = $this->model_localisation_currency->getCurrencies();
+
+ $data['user_token'] = $this->session->data['user_token'];
+
+ if (isset($this->error['warning'])) {
+ $data['error_warning'] = $this->error['warning'];
+ } else {
+ $data['error_warning'] = '';
+ }
+
+ if (isset($this->request->post['ebay_status'])) {
+ $data['ebay_status'] = $this->request->post['ebay_status'];
+ } else {
+ $data['ebay_status'] = $this->config->get('ebay_status');
+ }
+
+ if (isset($this->request->post['ebay_token'])) {
+ $data['ebay_token'] = trim($this->request->post['ebay_token']);
+ } else {
+ $data['ebay_token'] = trim($this->config->get('ebay_token'));
+ }
+
+ if (isset($this->request->post['ebay_secret'])) {
+ $data['ebay_secret'] = trim($this->request->post['ebay_secret']);
+ } else {
+ $data['ebay_secret'] = trim($this->config->get('ebay_secret'));
+ }
+
+ if (isset($this->request->post['ebay_encryption_key'])) {
+ $data['ebay_encryption_key'] = trim($this->request->post['ebay_encryption_key']);
+ } else {
+ $data['ebay_encryption_key'] = trim($this->config->get('ebay_encryption_key'));
+ }
+
+ if (isset($this->request->post['ebay_encryption_iv'])) {
+ $data['ebay_encryption_iv'] = trim($this->request->post['ebay_encryption_iv']);
+ } else {
+ $data['ebay_encryption_iv'] = trim($this->config->get('ebay_encryption_iv'));
+ }
+
+ if (isset($this->request->post['ebay_enditems'])) {
+ $data['ebay_enditems'] = $this->request->post['ebay_enditems'];
+ } else {
+ $data['ebay_enditems'] = $this->config->get('ebay_enditems');
+ }
+
+ if (isset($this->request->post['ebay_relistitems'])) {
+ $data['ebay_relistitems'] = $this->request->post['ebay_relistitems'];
+ } else {
+ $data['ebay_relistitems'] = $this->config->get('ebay_relistitems');
+ }
+
+ if (isset($this->request->post['ebay_disable_nostock'])) {
+ $data['ebay_disable_nostock'] = $this->request->post['ebay_disable_nostock'];
+ } else {
+ $data['ebay_disable_nostock'] = $this->config->get('ebay_disable_nostock');
+ }
+ if (isset($this->request->post['ebay_logging'])) {
+ $data['ebay_logging'] = $this->request->post['ebay_logging'];
+ } else {
+ $data['ebay_logging'] = $this->config->get('ebay_logging');
+ }
+
+ if (isset($this->request->post['ebay_created_hours'])) {
+ $data['ebay_created_hours'] = $this->request->post['ebay_created_hours'];
+ } else {
+ $data['ebay_created_hours'] = $this->config->get('ebay_created_hours');
+ }
+
+ if (isset($this->request->post['ebay_time_offset'])) {
+ $data['ebay_time_offset'] = $this->request->post['ebay_time_offset'];
+ } else {
+ $data['ebay_time_offset'] = $this->config->get('ebay_time_offset');
+ }
+
+ if (isset($this->request->post['ebay_update_notify'])) {
+ $data['ebay_update_notify'] = $this->request->post['ebay_update_notify'];
+ } else {
+ $data['ebay_update_notify'] = $this->config->get('ebay_update_notify');
+ }
+
+ if (isset($this->request->post['ebay_confirm_notify'])) {
+ $data['ebay_confirm_notify'] = $this->request->post['ebay_confirm_notify'];
+ } else {
+ $data['ebay_confirm_notify'] = $this->config->get('ebay_confirm_notify');
+ }
+
+ if (isset($this->request->post['ebay_confirmadmin_notify'])) {
+ $data['ebay_confirmadmin_notify'] = $this->request->post['ebay_confirmadmin_notify'];
+ } else {
+ $data['ebay_confirmadmin_notify'] = $this->config->get('ebay_confirmadmin_notify');
+ }
+
+ if (isset($this->request->post['ebay_itm_link'])) {
+ $data['ebay_itm_link'] = $this->request->post['ebay_itm_link'];
+ } else {
+ $data['ebay_itm_link'] = $this->config->get('ebay_itm_link');
+ }
+
+ if (isset($this->request->post['ebay_stock_allocate'])) {
+ $data['ebay_stock_allocate'] = $this->request->post['ebay_stock_allocate'];
+ } else {
+ $data['ebay_stock_allocate'] = $this->config->get('ebay_stock_allocate');
+ }
+
+ if (isset($this->request->post['ebay_create_date'])) {
+ $data['ebay_create_date'] = $this->request->post['ebay_create_date'];
+ } else {
+ $data['ebay_create_date'] = $this->config->get('ebay_create_date');
+ }
+
+ $data['durations'] = array(
+ 'Days_1' => $data['text_listing_1day'],
+ 'Days_3' => $data['text_listing_3day'],
+ 'Days_5' => $data['text_listing_5day'],
+ 'Days_7' => $data['text_listing_7day'],
+ 'Days_10' => $data['text_listing_10day'],
+ 'Days_30' => $data['text_listing_30day'],
+ 'GTC' => $data['text_listing_gtc']
+ );
+
+ if (isset($this->request->post['ebay_duration'])) {
+ $data['ebay_duration'] = $this->request->post['ebay_duration'];
+ } else {
+ $data['ebay_duration'] = $this->config->get('ebay_duration');
+ }
+
+ if (isset($this->request->post['ebay_measurement'])) {
+ $data['ebay_measurement'] = $this->request->post['ebay_measurement'];
+ } else {
+ $data['ebay_measurement'] = $this->config->get('ebay_measurement');
+ }
+
+ if (isset($this->request->post['ebay_default_addressformat'])) {
+ $data['ebay_default_addressformat'] = $this->request->post['ebay_default_addressformat'];
+ } else {
+ $data['ebay_default_addressformat'] = $this->config->get('ebay_default_addressformat');
+ }
+
+ $data['payment_options'] = $this->model_extension_openbay_ebay->getPaymentTypes();
+
+ if (isset($this->request->post['ebay_payment_types'])) {
+ $data['ebay_payment_types'] = $this->request->post['ebay_payment_types'];
+ } else {
+ $data['ebay_payment_types'] = $this->config->get('ebay_payment_types');
+ }
+
+ if (isset($this->request->post['ebay_payment_instruction'])) {
+ $data['ebay_payment_instruction'] = $this->request->post['ebay_payment_instruction'];
+ } else {
+ $data['ebay_payment_instruction'] = $this->config->get('ebay_payment_instruction');
+ }
+
+ if (isset($this->request->post['ebay_payment_paypal_address'])) {
+ $data['ebay_payment_paypal_address'] = $this->request->post['ebay_payment_paypal_address'];
+ } else {
+ $data['ebay_payment_paypal_address'] = $this->config->get('ebay_payment_paypal_address');
+ }
+
+ if (isset($this->request->post['ebay_payment_immediate'])) {
+ $data['ebay_payment_immediate'] = $this->request->post['ebay_payment_immediate'];
+ } else {
+ $data['ebay_payment_immediate'] = $this->config->get('ebay_payment_immediate');
+ }
+
+ if (isset($this->request->post['ebay_tax_listing'])) {
+ $data['ebay_tax_listing'] = $this->request->post['ebay_tax_listing'];
+ } else {
+ $data['ebay_tax_listing'] = $this->config->get('ebay_tax_listing');
+ }
+
+ if (isset($this->request->post['ebay_tax'])) {
+ $data['ebay_tax'] = $this->request->post['ebay_tax'];
+ } else {
+ $data['ebay_tax'] = $this->config->get('ebay_tax');
+ }
+
+ if (isset($this->request->post['ebay_import_unpaid'])) {
+ $data['ebay_import_unpaid'] = $this->request->post['ebay_import_unpaid'];
+ } else {
+ $data['ebay_import_unpaid'] = $this->config->get('ebay_import_unpaid');
+ }
+
+ if (isset($this->request->post['ebay_status_partial_refund_id'])) {
+ $data['ebay_status_partial_refund_id'] = $this->request->post['ebay_status_partial_refund_id'];
+ } else {
+ $data['ebay_status_partial_refund_id'] = $this->config->get('ebay_status_partial_refund_id');
+ }
+
+ if (isset($this->request->post['ebay_status_import_id'])) {
+ $data['ebay_status_import_id'] = $this->request->post['ebay_status_import_id'];
+ } else {
+ $data['ebay_status_import_id'] = $this->config->get('ebay_status_import_id');
+ }
+
+ if (isset($this->request->post['ebay_status_paid_id'])) {
+ $data['ebay_status_paid_id'] = $this->request->post['ebay_status_paid_id'];
+ } else {
+ $data['ebay_status_paid_id'] = $this->config->get('ebay_status_paid_id');
+ }
+
+ if (isset($this->request->post['ebay_status_shipped_id'])) {
+ $data['ebay_status_shipped_id'] = $this->request->post['ebay_status_shipped_id'];
+ } else {
+ $data['ebay_status_shipped_id'] = $this->config->get('ebay_status_shipped_id');
+ }
+
+ if (isset($this->request->post['ebay_status_cancelled_id'])) {
+ $data['ebay_status_cancelled_id'] = $this->request->post['ebay_status_cancelled_id'];
+ } else {
+ $data['ebay_status_cancelled_id'] = $this->config->get('ebay_status_cancelled_id');
+ }
+
+ if (isset($this->request->post['ebay_status_refunded_id'])) {
+ $data['ebay_status_refunded_id'] = $this->request->post['ebay_status_refunded_id'];
+ } else {
+ $data['ebay_status_refunded_id'] = $this->config->get('ebay_status_refunded_id');
+ }
+
+ $data['api_server'] = $this->openbay->ebay->getServer();
+ $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses();
+ $data['measurement_types'] = $this->openbay->ebay->getSetting('measurement_types');
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_settings', $data));
+ }
+
+ public function updateSettings() {
+ set_time_limit(0);
+
+ $json = $this->openbay->ebay->updateSettings();
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function updateCategories() {
+ set_time_limit(0);
+
+ $json = $this->openbay->ebay->updateCategories();
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function updateStore() {
+ set_time_limit(0);
+
+ $json = $this->openbay->ebay->updateStore();
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getCategories() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getCategory($this->request->get['parent']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getSuggestedCategories() {
+ $this->load->model('extension/openbay/ebay');
+
+ $this->load->language('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getSuggestedCategories($this->request->get['qry']);
+
+ if (empty($json['data'])) {
+ $json['msg'] = $this->language->get('error_category_nosuggestions');
+ }
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getShippingService() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getShippingService($this->request->get['loc'], $this->request->get['type']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getEbayCategorySpecifics() {
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('catalog/product');
+ $this->load->model('catalog/attribute');
+
+ $response = $this->model_extension_openbay_ebay->getEbayCategorySpecifics($this->request->get['category_id']);
+
+ $recommendation_data = array();
+
+ if (isset($response['data']['Recommendations']['NameRecommendation'])) {
+ if (isset($response['data']['Recommendations']['NameRecommendation']['Name'])) {
+ $recommendations = array($response['data']['Recommendations']['NameRecommendation']);
+ } else {
+ $recommendations = $response['data']['Recommendations']['NameRecommendation'];
+ }
+
+ foreach ($recommendations as $name_recommendation_key => $name_recommendation) {
+ $recommendation_data_option = array(
+ 'name' => $name_recommendation['Name'],
+ 'validation' =>
+ array(
+ 'max_values' => $name_recommendation['ValidationRules']['MaxValues'],
+ 'selection_mode' => $name_recommendation['ValidationRules']['SelectionMode'],
+ ),
+ 'unmatched_value' => '',
+ );
+
+ if (isset($name_recommendation['ValueRecommendation'])) {
+ if (!isset($name_recommendation['ValueRecommendation']['Value'])) {
+ foreach($name_recommendation['ValueRecommendation'] as $value_recommendation_key => $value_recommendation) {
+ $recommendation_data_option['options'][] = $value_recommendation['Value'];
+ }
+ }
+ }
+
+ $recommendation_data[] = $recommendation_data_option;
+ }
+
+ if (isset($this->request->get['product_id'])) {
+ $product_attributes = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);
+
+ foreach ($product_attributes as $product_attribute) {
+ $attribute_info = $this->model_catalog_attribute->getAttribute($product_attribute['attribute_id']);
+
+ if ($attribute_info) {
+ // search the ebay attribute results for a match
+ foreach($recommendation_data as $name_recommendation_key => $name_recommendation) {
+ if (strtolower($attribute_info['name']) == strtolower($name_recommendation['name'])) {
+ $preset_match_found = false;
+
+ if (isset($name_recommendation['options'])) {
+ foreach($name_recommendation['options'] as $value_recommendation_key => $value_recommendation) {
+ if (strtolower($value_recommendation) == strtolower($product_attribute['product_attribute_description'][$this->config->get('config_language_id')]['text'])) {
+ $preset_match_found = $value_recommendation_key;
+ }
+ }
+ }
+
+ if ($preset_match_found === false) {
+ if ($name_recommendation['validation']['selection_mode'] == 'FreeText') {
+ $recommendation_data[$name_recommendation_key]['unmatched_value'] = $product_attribute['product_attribute_description'][$this->config->get('config_language_id')]['text'];
+ }
+ } else {
+ $recommendation_data[$name_recommendation_key]['matched_value_key'] = $preset_match_found;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ $json = array(
+ 'data' => $recommendation_data,
+ 'msg' => $response['msg'],
+ 'error' => $response['error'],
+ );
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getCategoryFeatures() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getCategoryFeatures($this->request->get['category']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function searchEbayCatalog() {
+ $this->load->language('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_product');
+
+ $response = $this->model_extension_openbay_ebay_product->searchEbayCatalog($this->request->post['search'], $this->request->post['category_id']);
+
+ $json = array('error' => false, 'error_message' => '');
+
+ if (isset($response['ack'])) {
+ if ($response['ack'] == 'Success') {
+ $json['results'] = (int)$response['productSearchResult']['paginationOutput']['totalEntries'];
+ $json['page'] = (int)$response['productSearchResult']['paginationOutput']['pageNumber'];
+ $json['page_total'] = (int)$response['productSearchResult']['paginationOutput']['totalPages'];
+
+ if (isset($response['productSearchResult']['products'])) {
+ $json['products'] = $response['productSearchResult']['products'];
+ } else {
+ $json = array('error' => true, 'error_message' => $this->language->get('error_no_products'));
+ }
+ } else {
+ if (isset($response['errorMessage']['error']['message'])) {
+ $json = array('error' => true, 'error_message' => $response['errorMessage']['error']['message']);
+ } else {
+ $json = array('error' => true, 'error_message' => $this->language->get('error_loading_catalog'));
+ }
+ }
+ } else {
+ $json = array('error' => true, 'error_message' => $this->language->get('error_generic_fail'));
+ }
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function summary() {
+ $this->load->language('extension/openbay/ebay_summary');
+
+ $data = $this->language->all();
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/summary', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $data['heading_title'],
+ );
+
+ $data['return'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['validation'] = $this->openbay->ebay->validate();
+ $data['user_token'] = $this->session->data['user_token'];
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_summary', $data));
+ }
+
+ public function getSellerSummary() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getSellerSummary();
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function verifyCredentials() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->verifyCredentials();
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function viewItemImport() {
+ $this->load->language('extension/openbay/ebay_import');
+
+ $data = $this->language->all();
+
+ $this->load->model('extension/openbay/ebay_product');
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/viewItemImport', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['return'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['validation'] = $this->openbay->ebay->validate();
+ $data['user_token'] = $this->session->data['user_token'];
+ $data['maintenance'] = $this->config->get('config_maintenance');
+ $data['image_import'] = $this->model_extension_openbay_ebay_product->countImportImages();
+ $data['ini_setting_post_max_size'] = ini_get('post_max_size');
+ $data['ini_setting_memory_limit'] = ini_get('memory_limit');
+ $data['image_import_link'] = $this->url->link('extension/openbay/ebay/getImportImages', 'user_token=' . $this->session->data['user_token'], true);
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_item_import', $data));
+ }
+
+ public function importItems() {
+ $data = array(
+ 'adv' => $this->request->get['advanced'],
+ 'c' => 1,
+ 'd' => $this->request->get['desc'],
+ 'n' => $this->request->get['note'],
+ 'cat' => $this->request->get['categories'],
+ );
+
+ $this->openbay->ebay->callNoResponse('setup/getItemsMain/', $data);
+
+ $json = array('msg' => 'ok');
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getImportImages() {
+ set_time_limit(0);
+ $this->openbay->ebay->getImages();
+
+ $json = array('error' => false, 'msg' => 'OK');
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function importOrdersManual() {
+ $this->openbay->ebay->callNoResponse('order/getOrdersManual/');
+
+ $json = array('msg' => 'ok');
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getProductStock() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getProductStock($this->request->get['pid']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function setProductStock() {
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('catalog/product');
+
+ $product = $this->model_catalog_product->getProduct($this->request->get['product_id']);
+
+ $json = array();
+
+ if ($product['subtract'] == 1) {
+ $this->openbay->ebay->productUpdateListen($this->request->get['product_id']);
+
+ $json['error'] = false;
+ $json['msg'] = 'ok';
+ } else {
+ $this->load->language('extension/openbay/ebay_links');
+
+ $json['error'] = true;
+ $json['msg'] = $this->language->get('error_subtract_setting');
+ }
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getPlans() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getPlans();
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getMyPlan() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getMyPlan();
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function subscription() {
+ $this->load->language('extension/openbay/ebay_subscription');
+
+ $data = $this->language->all();
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/subscription', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['return'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['user_token'] = $this->session->data['user_token'];
+ $data['obp_token'] = $this->config->get('ebay_token');
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_subscription', $data));
+ }
+
+ public function viewUsage() {
+ $this->load->language('extension/openbay/ebay_usage');
+
+ $data = $this->language->all();
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/view_usage', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['return'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['user_token'] = $this->session->data['user_token'];
+ $data['obp_token'] = $this->config->get('ebay_token');
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_usage', $data));
+ }
+
+ public function getUsage() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->getUsage();
+ $json['html'] = base64_decode($json['html']);
+ $json['lasterror'] = $this->openbay->ebay->lasterror;
+ $json['lastmsg'] = $this->openbay->ebay->lastmsg;
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function viewOrderImport() {
+ $this->load->language('extension/openbay/ebay_orders');
+
+ $data = $this->language->all();
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/viewOrderImport', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['return'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['validation'] = $this->openbay->ebay->validate();
+ $data['user_token'] = $this->session->data['user_token'];
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_order_import', $data));
+ }
+
+ public function syncronise() {
+ $this->load->language('extension/openbay/ebay_syncronise');
+
+ $data = $this->language->all();
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/syncronise', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['return'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['validation'] = $this->openbay->ebay->validate();
+ $data['user_token'] = $this->session->data['user_token'];
+
+ if (isset($this->session->data['warning'])) {
+ $data['error_warning'] = $this->session->data['warning'];
+ } else {
+ $data['error_warning'] = '';
+ }
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_syncronise', $data));
+ }
+
+ public function viewItemLinks() {
+ $this->load->language('extension/openbay/ebay_links');
+
+ $data = $this->language->all();
+
+ $this->document->setTitle($this->language->get('heading_title'));
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $this->load->model('extension/openbay/ebay');
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/viewItemLinks', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['cancel'] = $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true);
+ $data['edit_url'] = $this->url->link('extension/openbay/ebay/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=', true);
+ $data['validation'] = $this->openbay->ebay->validate();
+ $data['user_token'] = $this->session->data['user_token'];
+
+ $total_linked = $this->model_extension_openbay_ebay->totalLinked();
+
+ if (isset($this->request->get['linked_item_page'])){
+ $linked_item_page = (int)$this->request->get['linked_item_page'];
+ } else {
+ $linked_item_page = 1;
+ }
+
+ if (isset($this->request->get['linked_item_limit'])){
+ $linked_item_limit = (int)$this->request->get['linked_item_limit'];
+ } else {
+ $linked_item_limit = 100;
+ }
+
+ $pagination = new Pagination();
+ $pagination->total = $total_linked;
+ $pagination->page = $linked_item_page;
+ $pagination->limit = 100;
+ $pagination->text = $this->language->get('text_pagination');
+ $pagination->url = $this->url->link('extension/openbay/ebay/viewItemLinks', 'user_token=' . $this->session->data['user_token'] . '&linked_item_page={page}', true);
+
+ $data['pagination'] = $pagination->render();
+
+ $data['linked_items'] = $this->model_extension_openbay_ebay->loadLinked($linked_item_limit, $linked_item_page);
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_item_link', $data));
+ }
+
+ public function saveItemLink() {
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->saveItemLink($this->request->get);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function removeItemLink() {
+ $this->load->language('extension/openbay/ebay');
+
+ $this->openbay->ebay->removeItemByProductId($this->request->get['product_id']);
+
+ $json = array('error' => false, 'msg' => $this->language->get('item_link_removed'));
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function loadUnlinked(){
+ set_time_limit(0);
+
+ $this->load->model('extension/openbay/ebay');
+
+ $filter = array();
+
+ if (isset($this->request->post['filter_variant']) && !empty($this->request->post['filter_variant'])) {
+ $filter['variants'] = (int)$this->request->post['filter_variant'];
+ }
+
+ if (isset($this->request->post['filter_title']) && !empty($this->request->post['filter_title'])) {
+ $filter['title'] = (string)$this->request->post['filter_title'];
+ }
+
+ if (isset($this->request->post['filter_qty_min']) && !empty($this->request->post['filter_qty_min'])) {
+ $filter['qty_min'] = (int)$this->request->post['filter_qty_min'];
+ }
+
+ if (isset($this->request->post['filter_qty_max']) && !empty($this->request->post['filter_qty_max'])) {
+ $filter['qty_max'] = (int)$this->request->post['filter_qty_max'];
+ }
+
+ $data = $this->model_extension_openbay_ebay->loadUnlinked(200, $this->request->get['page'], $filter);
+
+ if (!empty($data)) {
+ $data['more_pages'] = 1;
+
+ if ($data['next_page'] > $data['max_page']){
+ $data['more_pages'] = 0;
+ }
+
+ $json['data'] = $data;
+ } else {
+ $json['data'] = null;
+ }
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function loadLinkedStatus(){
+ set_time_limit(0);
+
+ $this->load->model('extension/openbay/ebay');
+
+ $json['data'] = '';
+ if (isset($this->request->post['item_id']) && !empty($this->request->post['item_id'])){
+ $data = $this->model_extension_openbay_ebay->loadLinkedStatus($this->request->post['item_id']);
+
+ if (!empty($data)) {
+ $json['data'] = $data;
+ }
+ }
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ private function validate() {
+ if (!$this->user->hasPermission('modify', 'extension/openbay/ebay')) {
+ $this->error['warning'] = $this->language->get('error_permission');
+ }
+
+ return !$this->error;
+ }
+
+ private function checkConfig() {
+ if ($this->config->get('ebay_token') == '' || $this->config->get('ebay_secret') == '') {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ public function edit() {
+ if ($this->checkConfig() == true) {
+ if (!empty($this->request->get['product_id'])) {
+ $this->load->language('extension/openbay/ebay_edit');
+
+ $data = $this->language->all();
+
+ $this->load->model('catalog/product');
+ $this->load->model('tool/image');
+ $this->load->model('catalog/manufacturer');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_product');
+
+ $this->document->setTitle($data['heading_title']);
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['action'] = $this->url->link('extension/openbay/ebay/create', 'user_token=' . $this->session->data['user_token'], true);
+ $data['cancel'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true);
+ $data['view_link'] = $this->config->get('ebay_itm_link') . $this->openbay->ebay->getEbayItemId($this->request->get['product_id']);
+ $data['user_token'] = $this->session->data['user_token'];
+ $data['product_id'] = $this->request->get['product_id'];
+
+ $data['breadcrumbs'] = array();
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $this->request->get['product_id'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_edit', $data));
+ } else {
+ $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true));
+ }
+ }
+ }
+
+ public function editLoad() {
+ $this->load->model('catalog/product');
+ $this->load->model('extension/openbay/ebay_product');
+ $this->load->model('tool/image');
+
+ $item_id = $this->openbay->ebay->getEbayItemId($this->request->get['product_id']);
+
+ if (!empty($item_id)) {
+ $listings = $this->openbay->ebay->getEbayListing($item_id);
+ $stock = $this->openbay->ebay->getProductStockLevel($this->request->get['product_id']);
+ $reserve = $this->openbay->ebay->getReserve($this->request->get['product_id'], $item_id);
+ $options = array();
+
+ $product_info = $this->model_catalog_product->getProduct($this->request->get['product_id']);
+
+ if ($this->openbay->addonLoad('openstock') && $product_info['has_option'] == 1) {
+ $this->load->model('extension/module/openstock');
+ $data['addon']['openstock'] = true;
+ $product_info['options'] = $this->model_setting_module_openstock->getVariants($this->request->get['product_id']);
+ $product_info['option_groups'] = $this->model_extension_openbay_ebay_product->getProductOptions($this->request->get['product_id']);
+
+ $t = array();
+ $t_rel = array();
+
+ foreach($product_info['option_groups'] as $group) {
+ $t_tmp = array();
+
+ foreach($group['product_option_value'] as $group_node) {
+ $t_tmp[$group_node['option_value_id']] = $group_node['name'];
+ $t_rel[$group_node['product_option_value_id']] = $group['name'];
+ }
+
+ $t[] = array('name' => $group['name'], 'child' => $t_tmp);
+ }
+
+ if (!isset($listings['variations']['Variation'][1])) {
+ $listings['variations']['Variation'] = array($listings['variations']['Variation']);
+ }
+
+ foreach($product_info['options'] as $option) {
+ $option['base64'] = base64_encode(serialize($option['option_values']));
+ $option_reserve = $this->openbay->ebay->getReserve($this->request->get['product_id'], $item_id, $option['sku']);
+ if ($option_reserve == false) {
+ $option['reserve'] = 0;
+ } else {
+ $option['reserve'] = $this->openbay->ebay->getReserve($this->request->get['product_id'], $item_id, $option['sku']);
+ }
+
+ $ebay_listing = '';
+
+ foreach($listings['variations']['Variation'] as $listing) {
+
+ $sku = (isset($listing['SKU']) ? $listing['SKU'] : '');
+
+ if ($sku != '' && $sku == $option['sku']) {
+ $listing['StartPrice'] = number_format($listing['StartPrice'], 2, '.', '');
+ $listing['Quantity'] = $listing['Quantity'] - $listing['SellingStatus']['QuantitySold'];
+
+ $ebay_listing = $listing;
+ }
+ }
+
+ $options[] = array('ebay' => $ebay_listing, 'local' => $option, 'sku' => $option['sku'], 'product_option_variant_id' => $option['product_option_variant_id']);
+ }
+
+ //unset variants that dont appear on eBay
+ $options_inactive = array();
+ foreach($options as $k => $option) {
+ if (empty($option['ebay'])) {
+ $options_inactive[] = $options[$k];
+ unset($options[$k]);
+ }
+ }
+
+ $variant = array(
+ 'variant' => 1,
+ 'data' => array(
+ 'group_information' => array(
+ 'option_groups' => base64_encode(serialize($t)),
+ 'option_group_relationship' => base64_encode(serialize($t_rel)),
+ ),
+ 'options' => $options,
+ 'options_inactive' => $options_inactive
+ )
+ );
+
+ } else {
+ $variant = array('variant' => 0, 'data' => '');
+ }
+
+ if ($reserve == false) {
+ $reserve = 0;
+ }
+
+ $data = array(
+ 'listing' => $listings,
+ 'stock' => $stock,
+ 'reserve' => $reserve,
+ 'variant' => $variant,
+ 'product' => $product_info
+ );
+
+ if (!empty($listings)) {
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode(array('error' => false, 'data' => $data)));
+ } else {
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode(array('error' => true)));
+ }
+ } else {
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode(array('error' => true)));
+ }
+ }
+
+ public function editSave() {
+ if ($this->checkConfig() == true && $this->request->server['REQUEST_METHOD'] == 'POST') {
+
+ $this->load->model('extension/openbay/ebay');
+
+ $json = $this->model_extension_openbay_ebay->editSave($this->request->post);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ } else {
+ $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true));
+ }
+ }
+
+ public function create() {
+ if ($this->checkConfig() == true) {
+ if (!empty($this->request->get['product_id'])) {
+ $this->load->language('extension/openbay/ebay_new');
+
+ $data = $this->language->all();
+
+ $this->load->model('catalog/product');
+ $this->load->model('tool/image');
+ $this->load->model('catalog/manufacturer');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_template');
+ $this->load->model('extension/openbay/ebay_product');
+ $this->load->model('extension/openbay/ebay_profile');
+
+ $this->document->setTitle($data['heading_title']);
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+
+ $data['action'] = $this->url->link('extension/openbay/ebay/create', 'user_token=' . $this->session->data['user_token'], true);
+ $data['cancel'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true);
+ $data['user_token'] = $this->session->data['user_token'];
+
+ $data['breadcrumbs'] = array();
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/create', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $this->request->get['product_id'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $product_info = $this->model_catalog_product->getProduct($this->request->get['product_id']);
+
+ $setting = array();
+
+ $setting['dispatch_times'] = $this->openbay->ebay->getSetting('dispatch_time_max');
+
+ if (is_array($setting['dispatch_times'])) {
+ ksort($setting['dispatch_times']);
+ }
+
+ $setting['countries'] = $this->openbay->ebay->getSetting('countries');
+
+ if (is_array($setting['countries'])) {
+ ksort($setting['countries']);
+ }
+
+ $setting['returns'] = $this->openbay->ebay->getSetting('returns');
+ $setting['package_type'] = $this->openbay->ebay->getSetting('package_type');
+ $setting['shipping_types'] = $this->openbay->ebay->getSetting('shipping_types');
+ $setting['measurement_types'] = $this->openbay->ebay->getSetting('measurement_types');
+ $setting['measurement_types'] = $this->openbay->ebay->getSetting('measurement_types');
+ $setting['product_details'] = $this->openbay->ebay->getSetting('product_details');
+ $setting['listing_restrictions'] = $this->openbay->ebay->getSetting('listing_restrictions');
+
+ if (!isset($setting['product_details']['product_identifier_unavailable_text'])) {
+ $this->session->data['warning'] = $this->language->get('error_missing_settings');
+ $this->response->redirect($this->url->link('extension/openbay/ebay/syncronise&user_token=' . $this->session->data['user_token'], true));
+ }
+
+ if (empty($setting['dispatch_times']) || empty($setting['countries']) || empty($setting['returns'])){
+ $this->session->data['warning'] = $this->language->get('error_missing_settings');
+ $this->response->redirect($this->url->link('extension/openbay/ebay/syncronise&token=' . $this->session->data['user_token'], true));
+ }
+
+ $data['setting'] = $setting;
+
+ if ($this->openbay->addonLoad('openstock') && $product_info['has_option'] == 1) {
+ $this->load->model('extension/module/openstock');
+ $data['addon']['openstock'] = true;
+ $product_info['options'] = $this->model_setting_module_openstock->getVariants($this->request->get['product_id']);
+
+ $product_info['options_array'] = base64_encode(serialize($product_info['options'][0]['option_values']));
+
+ $product_info['option_groups'] = $this->model_extension_openbay_ebay_product->getProductOptions($this->request->get['product_id']);
+
+ $option_group_array = array();
+ $option_group_relation_array = array();
+
+ foreach($product_info['option_groups'] as $option_group) {
+ $child_option = array();
+
+ foreach($option_group['product_option_value'] as $group_node) {
+ $child_option[$group_node['option_value_id']] = $group_node['name'];
+ $option_group_relation_array[$group_node['product_option_value_id']] = $option_group['name'];
+ }
+
+ $option_group_array[] = array('name' => $option_group['name'], 'child' => $child_option);
+ }
+
+ $product_info['option_group_array'] = base64_encode(serialize($option_group_array));
+ $product_info['option_group_relation_array'] = base64_encode(serialize($option_group_relation_array));
+ }
+
+ // get the product tax rate from opencart
+ if (isset($product_info['tax_class_id'])) {
+ $product_info['defaults']['tax'] = $this->model_extension_openbay_ebay_product->getTaxRate($product_info['tax_class_id']);
+ } else {
+ $product_info['defaults']['tax'] = 0.00;
+ }
+
+ //get the popular categories the user has used
+ $product_info['popular_cats'] = $this->model_extension_openbay_ebay->getPopularCategories();
+
+ //get shipping profiles
+ $product_info['profiles_shipping'] = $this->model_extension_openbay_ebay_profile->getAll(0);
+ //get default shipping profile
+ $product_info['profiles_shipping_def'] = $this->model_extension_openbay_ebay_profile->getDefault(0);
+
+ //get returns profiles
+ $product_info['profiles_returns'] = $this->model_extension_openbay_ebay_profile->getAll(1);
+ //get default returns profile
+ $product_info['profiles_returns_def'] = $this->model_extension_openbay_ebay_profile->getDefault(1);
+ $data['data']['shipping_international_zones'] = $this->model_extension_openbay_ebay->getShippingLocations();
+
+ //get theme profiles
+ $product_info['profiles_theme'] = $this->model_extension_openbay_ebay_profile->getAll(2);
+ //get default returns profile
+ $product_info['profiles_theme_def'] = $this->model_extension_openbay_ebay_profile->getDefault(2);
+
+ //get generic profiles
+ $product_info['profiles_generic'] = $this->model_extension_openbay_ebay_profile->getAll(3);
+ //get default generic profile
+ $product_info['profiles_generic_def'] = $this->model_extension_openbay_ebay_profile->getDefault(3);
+
+ //product attributes - this is just a direct pass through used with the template tag
+ $product_info['attributes'] = base64_encode(json_encode($this->model_extension_openbay_ebay->getProductAttributes($this->request->get['product_id'])));
+
+ //post edit link
+ $product_info['edit_link'] = $this->url->link('extension/openbay/ebay/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $this->request->get['product_id'], true);
+
+ //images
+ $product_images = $this->model_catalog_product->getProductImages($this->request->get['product_id']);
+ $product_info['product_images'] = array();
+
+ if (!empty($product_info['image'])) {
+ $img_info = getimagesize(DIR_IMAGE . $product_info['image']);
+
+ $product_info['product_images'][] = array(
+ 'image' => $product_info['image'],
+ 'preview' => $this->model_tool_image->resize($product_info['image'], 100, 100),
+ 'full' => HTTPS_CATALOG . 'image/' . $product_info['image'],
+ 'width' => $img_info[0],
+ 'height' => $img_info[1],
+ );
+ }
+
+ foreach ($product_images as $product_image) {
+ if ($product_image['image'] && file_exists(DIR_IMAGE . $product_image['image'])) {
+ $img_info = getimagesize(DIR_IMAGE . $product_image['image']);
+
+ $product_info['product_images'][] = array(
+ 'image' => $product_image['image'],
+ 'preview' => $this->model_tool_image->resize($product_image['image'], 100, 100),
+ 'full' => HTTPS_CATALOG . 'image/' . $product_image['image'],
+ 'width' => $img_info[0],
+ 'height' => $img_info[1],
+ );
+ }
+ }
+
+ $product_info['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers();
+ $product_info['payments'] = $this->model_extension_openbay_ebay->getPaymentTypes();
+ $product_info['templates'] = $this->model_extension_openbay_ebay_template->getAll();
+ $product_info['store_cats'] = $this->model_extension_openbay_ebay->getSellerStoreCategories();
+
+ $product_info['defaults']['cod_surcharge'] = 0;
+
+ foreach($product_info['payments'] as $payment) {
+ if ($payment['ebay_name'] == 'COD') {
+ $product_info['defaults']['cod_surcharge'] = 1;
+ }
+ }
+
+ $product_info['defaults']['ebay_payment_types'] = $this->config->get('ebay_payment_types');
+ $product_info['defaults']['paypal_address'] = $this->config->get('ebay_payment_paypal_address');
+ $product_info['defaults']['payment_instruction'] = $this->config->get('ebay_payment_instruction');
+ $product_info['defaults']['ebay_payment_immediate'] = $this->config->get('ebay_payment_immediate');
+
+ $product_info['defaults']['gallery_height'] = '400';
+ $product_info['defaults']['gallery_width'] = '400';
+ $product_info['defaults']['thumb_height'] = '100';
+ $product_info['defaults']['thumb_width'] = '100';
+
+ $product_info['defaults']['ebay_measurement'] = $this->config->get('ebay_measurement');
+
+ $product_info['defaults']['listing_duration'] = $this->config->get('ebay_duration');
+ if ($product_info['defaults']['listing_duration'] == '') {
+ $product_info['defaults']['listing_duration'] = 'Days_30';
+ }
+
+ if (isset($this->error['warning'])) {
+ $data['error_warning'] = $this->error['warning'];
+ } else {
+ $data['error_warning'] = '';
+ }
+
+ if ($product_info['quantity'] < 1 && (!isset($product_info['has_option']) || $product_info['has_option'] == 0)) {
+ $data['error_warning'] = $this->language->get('error_no_stock');
+ }
+
+ $data['no_image'] = $this->model_tool_image->resize('no_image.png', 100, 100);
+
+ $weight_parts = explode('.', $product_info['weight']);
+ $product_info['weight_major'] = (int)$weight_parts[0];
+ $product_info['weight_minor'] = (int)substr($weight_parts[1], 0, 3);
+
+ $data['product'] = $product_info;
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_new', $data));
+ } else {
+ $this->response->redirect($this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true));
+ }
+ }
+ }
+
+ public function createBulk() {
+ if ($this->checkConfig() == true) {
+ if (!empty($this->request->post['selected'])) {
+ $this->load->language('extension/openbay/ebay_newbulk');
+
+ $data = $this->language->all();
+
+ $this->load->model('catalog/product');
+ $this->load->model('tool/image');
+ $this->load->model('catalog/manufacturer');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_profile');
+
+ $data['breadcrumbs'] = array();
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_home'),
+ );
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('marketplace/openbay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_openbay'),
+ );
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('text_ebay'),
+ );
+
+ $data['breadcrumbs'][] = array(
+ 'href' => $this->url->link('extension/openbay/ebay/createBulk', 'user_token=' . $this->session->data['user_token'], true),
+ 'text' => $this->language->get('heading_title'),
+ );
+
+ $data['error_warning'] = array();
+
+ $data['cancel'] = $this->url->link('marketplace/openbay/items', 'user_token=' . $this->session->data['user_token'], true);
+ $data['image_directory'] = DIR_IMAGE;
+
+ $active_list = $this->model_extension_openbay_ebay->getLiveListingArray();
+
+ $products = array();
+
+ if ($this->openbay->addonLoad('openstock')) {
+ $openstock = 1;
+ } else {
+ $openstock = 0;
+ }
+
+ foreach ($this->request->post['selected'] as $product_id) {
+ if (!array_key_exists($product_id, $active_list)) {
+
+ $prod = $this->model_catalog_product->getProduct($product_id);
+
+ if ($openstock == 1 && isset($prod['has_option']) && $prod['has_option'] == 1) {
+ $data['error_warning']['os'] = $this->language->get('text_error_variants');
+ } else {
+ if ($prod['quantity'] > 0) {
+ if ($prod['image'] && file_exists(DIR_IMAGE . $prod['image'])) {
+ $prod['image'] = $this->model_tool_image->resize($prod['image'], 80, 80);
+ } else {
+ $prod['image'] = $this->model_tool_image->resize('no_image.png', 80, 80);
+ }
+
+ $products[] = $prod;
+ } else {
+ $data['error_warning']['stock'] = $this->language->get('text_error_stock');
+ }
+ }
+ } else {
+ $data['error_warning']['exists'] = $this->language->get('text_exists');
+ }
+ }
+
+ $data['count'] = count($products);
+ $data['user_token'] = $this->session->data['user_token'];
+ $data['listing_link'] = $this->config->get('ebay_itm_link');
+
+ $plan = $this->model_extension_openbay_ebay->getMyPlan();
+
+ if ($plan['plan']['listing_bulk'] == 1) {
+ if ($data['count'] == 0) {
+ $data['error_fail'][] = $this->language->get('text_error_no_product');
+ } else {
+ if (($plan['plan']['listing_limit'] == 0) || (($plan['usage']['items'] + $data['count']) <= $plan['plan']['listing_limit'])) {
+ if ($data['count'] > 5) {
+ $data['error_warning']['count'] = sprintf($this->language->get('text_error_count'), $data['count']);
+ }
+
+ //load the settings from eBay
+ $setting = array();
+
+ $setting['product_details'] = $this->openbay->ebay->getSetting('product_details');
+
+ if (!isset($setting['product_details']['product_identifier_unavailable_text'])) {
+ $this->session->data['warning'] = $this->language->get('error_missing_settings');
+ $this->response->redirect($this->url->link('extension/openbay/ebay/syncronise&token=' . $this->session->data['user_token'], true));
+ }
+
+ $setting['dispatch_times'] = $this->openbay->ebay->getSetting('dispatch_time_max');
+ if (is_array($setting['dispatch_times'])) {
+ ksort($setting['dispatch_times']);
+ }
+
+ $setting['countries'] = $this->openbay->ebay->getSetting('countries');
+ if (is_array($setting['countries'])) {
+ ksort($setting['countries']);
+ }
+
+ $setting['returns'] = $this->openbay->ebay->getSetting('returns');
+
+ if (empty($setting['dispatch_times']) || empty($setting['countries']) || empty($setting['returns'])){
+ $this->session->data['warning'] = $this->language->get('error_missing_settings');
+ $this->response->redirect($this->url->link('extension/openbay/ebay/syncronise&token=' . $this->session->data['user_token'], true));
+ }
+
+ $data['setting'] = $setting;
+
+ //get generic profiles
+ $product_info['profiles_generic'] = $this->model_extension_openbay_ebay_profile->getAll(3);
+ //get default generic profile
+ $product_info['profiles_generic_def'] = $this->model_extension_openbay_ebay_profile->getDefault(3);
+ if ($product_info['profiles_generic_def'] === false) {
+ $data['error_fail'][] = $this->language->get('text_error_generic_profile');
+ }
+
+ //get shipping profiles
+ $product_info['profiles_shipping'] = $this->model_extension_openbay_ebay_profile->getAll(0);
+ //get default shipping profile
+ $product_info['profiles_shipping_def'] = $this->model_extension_openbay_ebay_profile->getDefault(0);
+ //check it has a default profile
+ if ($product_info['profiles_shipping_def'] === false) {
+ $data['error_fail'][] = $this->language->get('text_error_ship_profile');
+ }
+
+ //get returns profiles
+ $product_info['profiles_returns'] = $this->model_extension_openbay_ebay_profile->getAll(1);
+ //get default returns profile
+ $product_info['profiles_returns_def'] = $this->model_extension_openbay_ebay_profile->getDefault(1);
+ //check it has a default profile
+ if ($product_info['profiles_returns_def'] === false) {
+ $data['error_fail'][] = $this->language->get('text_error_return_profile');
+ }
+
+ //get returns profiles
+ $product_info['profiles_theme'] = $this->model_extension_openbay_ebay_profile->getAll(2);
+ //get default returns profile
+ $product_info['profiles_theme_def'] = $this->model_extension_openbay_ebay_profile->getDefault(2);
+ //check it has a default profile
+ if ($product_info['profiles_theme_def'] === false) {
+ $data['error_fail'][] = $this->language->get('text_error_theme_profile');
+ }
+
+ // get the product tax rate
+ if (isset($product_info['tax_class_id'])) {
+ $product_info['defaults']['tax'] = $this->model_extension_openbay_ebay_product->getTaxRate($product_info['tax_class_id']);
+ } else {
+ $product_info['defaults']['tax'] = 0.00;
+ }
+
+ $data['products'] = $products;
+
+ $product_info['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers();
+ $product_info['payments'] = $this->model_extension_openbay_ebay->getPaymentTypes();
+ $product_info['store_cats'] = $this->model_extension_openbay_ebay->getSellerStoreCategories();
+
+ $product_info['defaults']['ebay_template'] = $this->config->get('ebay_template');
+
+ $product_info['defaults']['listing_duration'] = $this->config->get('ebay_duration');
+ if ($product_info['defaults']['listing_duration'] == '') {
+ $product_info['defaults']['listing_duration'] = 'Days_30';
+ }
+
+ $data['default'] = $product_info;
+ } else {
+ $data['error_fail']['plan'] = sprintf($this->language->get('text_item_limit'), $this->url->link('extension/openbay/ebay/subscription', 'user_token=' . $this->session->data['user_token'], true));
+ }
+ }
+ } else {
+ $data['error_fail']['plan'] = sprintf($this->language->get('text_bulk_plan_error'), $this->url->link('extension/openbay/ebay/subscription', 'user_token=' . $this->session->data['user_token'], true));
+ }
+
+ $this->document->setTitle($data['heading_title']);
+ $this->document->addScript('view/javascript/openbay/js/faq.js');
+ $this->document->addScript('view/javascript/openbay/js/openbay.js');
+
+ $data['header'] = $this->load->controller('common/header');
+ $data['column_left'] = $this->load->controller('common/column_left');
+ $data['footer'] = $this->load->controller('common/footer');
+
+ $this->response->setOutput($this->load->view('extension/openbay/ebay_new_bulk', $data));
+ } else {
+ $this->load->language('extension/openbay/ebay_newbulk');
+ $this->session->data['warning'] = $this->language->get('text_error_no_selection');
+ $this->response->redirect($this->url->link('marketplace/openbay/items&token=' . $this->session->data['user_token']));
+ }
+ }
+ }
+
+ public function verify() {
+ $this->load->model('extension/openbay/openbay');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_template');
+ $this->load->model('catalog/product');
+ $this->load->model('catalog/filter');
+
+ if ($this->request->server['REQUEST_METHOD'] == 'POST') {
+ if ($this->checkConfig() == true) {
+ $this->model_extension_openbay_ebay->logCategoryUsed($this->request->post['finalCat']);
+
+ $item_id = $this->openbay->ebay->getEbayItemId($this->request->post['product_id']);
+
+ if ($item_id == false) {
+ $data = $this->request->post;
+
+ if ($data['template'] != 'None') {
+ $template = $this->model_extension_openbay_ebay_template->get($data['template']);
+ $data['template_html'] = (isset($template['html']) ? base64_encode($template['html']) : '');
+ } else {
+ $data['template_html'] = '';
+ }
+
+ // set shipping data
+ $data['national'] = $data['data']['national'];
+ $data['international'] = $data['data']['international'];
+ unset($data['data']);
+
+ if (!empty($data['img_tpl'])) {
+ $tmp_gallery_array = array();
+ $tmp_thumbnail_array = array();
+ $this->load->model('tool/image');
+
+ foreach ($data['img_tpl'] as $k => $v) {
+ $tmp_gallery_array[$k] = $this->model_extension_openbay_openbay->storeImage($v, $data['gallery_width'], $data['gallery_height'], 'ebay');
+ $tmp_thumbnail_array[$k] = $this->model_extension_openbay_openbay->storeImage($v, $data['thumb_width'], $data['thumb_height'], 'ebay');
+ }
+
+ $data['img_tpl'] = $tmp_gallery_array;
+ $data['img_tpl_thumb'] = $tmp_thumbnail_array;
+ }
+
+ $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$data['product_id'] . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
+
+ $data['product_info'] = $query->row;
+
+ $data['product_info']['product_filters'] = array();
+
+ $filters = $this->model_catalog_product->getProductFilters($this->request->post['product_id']);
+
+ foreach ($filters as $filter_id) {
+ $filter_info = $this->model_catalog_filter->getFilter($filter_id);
+
+ if ($filter_info) {
+ $data['product_info']['product_filters'][] = array(
+ 'filter_id' => $filter_info['filter_id'],
+ 'group' => $filter_info['group'],
+ 'name' => $filter_info['name']
+ );
+ }
+ }
+
+ if (!empty($data['product_info']['sku'])){
+ $data['sku'] = $data['product_info']['sku'];
+ }
+
+ $json = $this->model_extension_openbay_ebay->ebayVerifyAddItem($data, $this->request->get['options']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ } else {
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode(array('error' => true, 'msg' => 'This item is already listed in your eBay account', 'item' => $item_id)));
+ }
+ }
+ } else {
+ $this->response->redirect($this->url->link('marketplace/openbay/items&token=' . $this->session->data['user_token']));
+ }
+ }
+
+ public function verifyBulk() {
+ $this->load->model('extension/openbay/openbay');
+ $this->load->model('extension/openbay/ebay_profile');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_template');
+ $this->load->model('catalog/product');
+ $this->load->model('tool/image');
+ $this->load->model('catalog/filter');
+
+ if ($this->request->server['REQUEST_METHOD'] == 'POST') {
+ if ($this->checkConfig() == true) {
+ $post = $this->request->post;
+ $data = array();
+
+ //load all of the listing defaults and assign to correct variable names
+ $profile_shipping = $this->model_extension_openbay_ebay_profile->get($post['shipping_profile']);
+ $profile_return = $this->model_extension_openbay_ebay_profile->get($post['return_profile']);
+ $profile_template = $this->model_extension_openbay_ebay_profile->get($post['theme_profile']);
+ $profile_generic = $this->model_extension_openbay_ebay_profile->get($post['generic_profile']);
+
+ $payments = $this->model_extension_openbay_ebay->getPaymentTypes();
+ $payments_accepted = $this->config->get('ebay_payment_types');
+ $product_info = $this->model_catalog_product->getProduct($post['product_id']);
+
+ // set shipping data
+ $data['national'] = $profile_shipping['data']['national'];
+ $data['international'] = $profile_shipping['data']['international'];
+
+ $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$post['product_id'] . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
+
+ $data['product_info'] = $query->row;
+
+ $data['product_info']['product_filters'] = array();
+
+ $filters = $this->model_catalog_product->getProductFilters($this->request->post['product_id']);
+
+ foreach ($filters as $filter_id) {
+ $filter_info = $this->model_catalog_filter->getFilter($filter_id);
+
+ if ($filter_info) {
+ $data['product_info']['product_filters'][] = array(
+ 'filter_id' => $filter_info['filter_id'],
+ 'group' => $filter_info['group'],
+ 'name' => $filter_info['name']
+ );
+ }
+ }
+
+
+ $data['description'] = $product_info['description'];
+ $data['name'] = $post['title'];
+ $data['sub_name'] = '';
+ $data['bestoffer'] = 0;
+ $data['finalCat'] = $post['finalCat'];
+ $data['price'][0] = $post['price'];
+ $data['qty'][0] = (int)$post['qty'];
+ $data['product_id'] = (int)$post['product_id'];
+
+ $data['feat'] = $post['feat'];
+ $data['featother'] = $post['featother'];
+
+ if (!empty($product_info['sku'])){
+ $data['sku'] = $product_info['sku'];
+ }
+
+ if (isset($post['identifier_ean']) && !empty($post['identifier_ean'])){
+ $data['identifier_ean'] = $post['identifier_ean'];
+ }
+
+ if (isset($post['identifier_isbn']) && !empty($post['identifier_isbn'])){
+ $data['identifier_isbn'] = $post['identifier_isbn'];
+ }
+
+ if (isset($post['identifier_upc']) && !empty($post['identifier_upc'])){
+ $data['identifier_upc'] = $post['identifier_upc'];
+ }
+
+ $data['auction_duration'] = $post['duration'];
+ $data['condition'] = (isset($post['condition']) && $post['condition'] != 0 ? $post['condition'] : '');
+ $data['auction_type'] = 'FixedPriceItem';
+ $data['catalog_epid'] = (isset($post['catalog_epid']) && $post['catalog_epid'] != 0 ? $post['catalog_epid'] : '');
+ $data['identifier_upc'] = (isset($post['identifier_upc']) && $post['identifier_upc'] != '' ? $post['identifier_upc'] : '');
+ $data['identifier_isbn'] = (isset($post['identifier_isbn']) && $post['identifier_isbn'] != '' ? $post['identifier_isbn'] : '');
+ $data['identifier_ean'] = (isset($post['identifier_ean']) && $post['identifier_ean'] != '' ? $post['identifier_ean'] : '');
+
+ $data['ebay_payment_immediate'] = $this->config->get('ebay_payment_immediate');
+ $data['paypal_email'] = $this->config->get('ebay_payment_paypal_address');
+ $data['payment_instruction'] = $this->config->get('ebay_payment_instruction');
+
+ if (isset($profile_return['data']['returns_accepted'])) {
+ $data['returns_accepted'] = $profile_return['data']['returns_accepted'];
+ }
+ if (isset($profile_return['data']['returns_policy'])) {
+ $data['return_policy'] = $profile_return['data']['returns_policy'];
+ }
+ if (isset($profile_return['data']['returns_option'])) {
+ $data['returns_option'] = $profile_return['data']['returns_option'];
+ }
+ if (isset($profile_return['data']['returns_within'])) {
+ $data['returns_within'] = $profile_return['data']['returns_within'];
+ }
+ if (isset($profile_return['data']['returns_shipping'])) {
+ $data['returns_shipping'] = $profile_return['data']['returns_shipping'];
+ }
+ if (isset($profile_return['data']['returns_restocking_fee'])) {
+ $data['returns_restocking_fee'] = $profile_return['data']['returns_restocking_fee'];
+ }
+
+ $data['location'] = $profile_shipping['data']['location'];
+ $data['postcode'] = $profile_shipping['data']['postcode'];
+ $data['dispatch_time'] = $profile_shipping['data']['dispatch_time'];
+
+ if (isset($profile_shipping['data']['country'])) {
+ $data['country'] = $profile_shipping['data']['country'];
+ }
+
+ if (isset($profile_shipping['data']['eligible_for_pickup_dropoff'])) {
+ $data['eligible_for_pickup_dropoff'] = $profile_shipping['data']['eligible_for_pickup_dropoff'];
+ }
+
+ if (isset($profile_shipping['data']['eligible_for_pickup_instore'])) {
+ $data['eligible_for_pickup_instore'] = $profile_shipping['data']['eligible_for_pickup_instore'];
+ }
+
+ if (isset($profile_shipping['data']['global_shipping'])) {
+ $data['global_shipping'] = $profile_shipping['data']['global_shipping'];
+ }
+
+ if (isset($profile_shipping['data']['promotional_shipping_discount'])) {
+ $data['promotional_shipping_discount'] = $profile_shipping['data']['promotional_shipping_discount'];
+ }
+
+ if (isset($profile_shipping['data']['promotional_shipping_discount_international'])) {
+ $data['promotional_shipping_discount_international'] = $profile_shipping['data']['promotional_shipping_discount_international'];
+ }
+
+ $data['get_it_fast'] = (isset($profile_shipping['data']['get_it_fast']) ? $profile_shipping['data']['get_it_fast'] : 0);
+
+ if (isset($profile_template['data']['ebay_template_id'])) {
+ $template = $this->model_extension_openbay_ebay_template->get($profile_template['data']['ebay_template_id']);
+ $data['template_html'] = (isset($template['html']) ? base64_encode($template['html']) : '');
+ $data['template'] = $profile_template['data']['ebay_template_id'];
+ } else {
+ $data['template_html'] = '';
+ $data['template'] = '';
+ }
+
+ $data['gallery_plus'] = $profile_template['data']['ebay_gallery_plus'];
+ $data['gallery_super'] = $profile_template['data']['ebay_supersize'];
+
+ $data['private_listing'] = $profile_generic['data']['private_listing'];
+
+ //product attributes - this is just a direct pass through used with the template tag
+ $data['attributes'] = base64_encode(json_encode($this->model_extension_openbay_ebay->getProductAttributes($post['product_id'])));
+
+ $data['payments'] = array();
+ foreach($payments as $payment) {
+ if ($payments_accepted[$payment['ebay_name']] == 1) {
+ $data['payments'][$payment['ebay_name']] = 1;
+ }
+ }
+
+ $data['main_image'] = 0;
+ $data['img'] = array();
+
+ $product_images = $this->model_catalog_product->getProductImages($post['product_id']);
+
+ $product_info['product_images'] = array();
+
+ if (!empty($product_info['image'])) {
+ $data['img'][] = $product_info['image'];
+ }
+
+ if (isset($profile_template['data']['ebay_img_ebay']) && $profile_template['data']['ebay_img_ebay'] == 1) {
+ foreach ($product_images as $product_image) {
+ if ($product_image['image'] && file_exists(DIR_IMAGE . $product_image['image'])) {
+ $data['img'][] = $product_image['image'];
+ }
+ }
+ }
+
+ if (isset($profile_template['data']['ebay_img_template']) && $profile_template['data']['ebay_img_template'] == 1) {
+ $tmp_gallery_array = array();
+ $tmp_thumbnail_array = array();
+
+ //if the user has not set the exclude default image, add it to the array for theme images.
+ $key_offset = 0;
+ if (!isset($profile_template['data']['default_img_exclude']) || $profile_template['data']['default_img_exclude'] != 1) {
+ $tmp_gallery_array[0] = $this->model_extension_openbay_openbay->storeImage($product_info['image'], $profile_template['data']['ebay_gallery_width'], $profile_template['data']['ebay_gallery_height'], 'ebay');
+ $tmp_thumbnail_array[0] = $this->model_extension_openbay_openbay->storeImage($product_info['image'], $profile_template['data']['ebay_thumb_width'], $profile_template['data']['ebay_thumb_height'], 'ebay');
+ $key_offset = 1;
+ }
+
+ //loop through the product images and add them.
+ foreach ($product_images as $k => $v) {
+ $tmp_gallery_array[$k+$key_offset] = $this->model_extension_openbay_openbay->storeImage($v['image'], $profile_template['data']['ebay_gallery_width'], $profile_template['data']['ebay_gallery_height'], 'ebay');
+ $tmp_thumbnail_array[$k+$key_offset] = $this->model_extension_openbay_openbay->storeImage($v['image'], $profile_template['data']['ebay_thumb_width'], $profile_template['data']['ebay_thumb_height'], 'ebay');
+ }
+
+ $data['img_tpl'] = $tmp_gallery_array;
+ $data['img_tpl_thumb'] = $tmp_thumbnail_array;
+ }
+
+ $weight_parts = explode('.', $product_info['weight']);
+
+ // package size and weights
+ $data['package']['depth'] = $product_info['height'];
+ $data['package']['irregular'] = 0;
+ $data['package']['length'] = $product_info['length'];
+ $data['package']['unit'] = $this->config->get('ebay_measurement');
+ $data['package']['weight_major'] = (int)$weight_parts[0];
+ $data['package']['weight_minor'] = (int)substr($weight_parts[1], 0, 3);
+ $data['package']['width'] = $product_info['width'];
+
+ $package_types = $this->openbay->ebay->getSetting('package_type');
+
+ foreach ($package_types as $package_type) {
+ if ($package_type['default'] == 1) {
+ $data['package']['package'] = $package_type['code'];
+ }
+ }
+
+ $data = array_merge($data, $profile_shipping['data']);
+
+ $verify_response = $this->model_extension_openbay_ebay->ebayVerifyAddItem($data, 'no');
+
+ $json = array(
+ 'errors' => $verify_response['data']['Errors'],
+ 'fees' => $verify_response['data']['Fees'],
+ 'itemid' => (string)$verify_response['data']['ItemID'],
+ 'preview' => (string)$verify_response['data']['link'],
+ 'i' => $this->request->get['i'],
+ 'ack' => (string)$verify_response['data']['Ack'],
+ );
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+ } else {
+ $this->response->redirect($this->url->link('marketplace/openbay/items&token=' . $this->session->data['user_token']));
+ }
+ }
+
+ public function listItem() {
+ $this->load->model('extension/openbay/openbay');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_template');
+ $this->load->model('catalog/product');
+ $this->load->model('catalog/filter');
+
+ if ($this->checkConfig() == true && $this->request->server['REQUEST_METHOD'] == 'POST') {
+ $data = $this->request->post;
+
+ if ($data['template'] != 'None') {
+ $template = $this->model_extension_openbay_ebay_template->get($data['template']);
+ $data['template_html'] = (isset($template['html']) ? base64_encode($template['html']) : '');
+ } else {
+ $data['template_html'] = '';
+ }
+
+ // set shipping data
+ $data['national'] = $data['data']['national'];
+ $data['international'] = $data['data']['international'];
+ unset($data['data']);
+
+ if (!empty($data['img_tpl'])) {
+ $tmp_gallery_array = array();
+ $tmp_thumbnail_array = array();
+ $this->load->model('tool/image');
+
+ foreach ($data['img_tpl'] as $k => $v) {
+ $tmp_gallery_array[$k] = $this->model_extension_openbay_openbay->storeImage($v, $data['gallery_width'], $data['gallery_height'], 'ebay');
+ $tmp_thumbnail_array[$k] = $this->model_extension_openbay_openbay->storeImage($v, $data['thumb_width'], $data['thumb_height'], 'ebay');
+ }
+
+ $data['img_tpl'] = $tmp_gallery_array;
+ $data['img_tpl_thumb'] = $tmp_thumbnail_array;
+ }
+
+ $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$data['product_id'] . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
+
+ $data['product_info'] = $query->row;
+
+ $data['product_info']['product_filters'] = array();
+
+ $filters = $this->model_catalog_product->getProductFilters($this->request->post['product_id']);
+
+ foreach ($filters as $filter_id) {
+ $filter_info = $this->model_catalog_filter->getFilter($filter_id);
+
+ if ($filter_info) {
+ $data['product_info']['product_filters'][] = array(
+ 'filter_id' => $filter_info['filter_id'],
+ 'group' => $filter_info['group'],
+ 'name' => $filter_info['name']
+ );
+ }
+ }
+
+ if (!empty($data['product_info']['sku'])){
+ $data['sku'] = $data['product_info']['sku'];
+ }
+
+ $json = $this->model_extension_openbay_ebay->ebayAddItem($data, $this->request->get['options']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ } else {
+ $this->response->redirect($this->url->link('marketplace/openbay/items&token=' . $this->session->data['user_token']));
+ }
+ }
+
+ public function listItemBulk() {
+ $this->load->model('extension/openbay/openbay');
+ $this->load->model('extension/openbay/ebay_profile');
+ $this->load->model('extension/openbay/ebay');
+ $this->load->model('extension/openbay/ebay_template');
+ $this->load->model('catalog/product');
+ $this->load->model('tool/image');
+ $this->load->model('catalog/filter');
+
+ if ($this->request->server['REQUEST_METHOD'] == 'POST') {
+ if ($this->checkConfig() == true) {
+ $post = $this->request->post;
+ $data = array();
+
+ //load all of the listing defaults and assign to correct variable names
+ $profile_shipping = $this->model_extension_openbay_ebay_profile->get($post['shipping_profile']);
+ $profile_return = $this->model_extension_openbay_ebay_profile->get($post['return_profile']);
+ $profile_template = $this->model_extension_openbay_ebay_profile->get($post['theme_profile']);
+ $profile_generic = $this->model_extension_openbay_ebay_profile->get($post['generic_profile']);
+ $payments = $this->model_extension_openbay_ebay->getPaymentTypes();
+ $payments_accepted = $this->config->get('ebay_payment_types');
+ $product_info = $this->model_catalog_product->getProduct($post['product_id']);
+
+ // set shipping data
+ $data['national'] = $profile_shipping['data']['national'];
+ $data['international'] = $profile_shipping['data']['international'];
+
+ $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$post['product_id'] . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
+
+ $data['product_info'] = $query->row;
+
+ $data['product_info']['product_filters'] = array();
+
+ $filters = $this->model_catalog_product->getProductFilters($this->request->post['product_id']);
+
+ foreach ($filters as $filter_id) {
+ $filter_info = $this->model_catalog_filter->getFilter($filter_id);
+
+ if ($filter_info) {
+ $data['product_info']['product_filters'][] = array(
+ 'filter_id' => $filter_info['filter_id'],
+ 'group' => $filter_info['group'],
+ 'name' => $filter_info['name']
+ );
+ }
+ }
+
+ $data['description'] = $product_info['description'];
+ $data['name'] = $post['title'];
+ $data['sub_name'] = '';
+ $data['bestoffer'] = 0;
+ $data['finalCat'] = $post['finalCat'];
+ $data['price'][0] = $post['price'];
+ $data['qty'][0] = $post['qty'];
+ $data['product_id'] = $post['product_id'];
+
+ $data['feat'] = $post['feat'];
+ $data['featother'] = $post['featother'];
+
+ if (!empty($product_info['sku'])){
+ $data['sku'] = $product_info['sku'];
+ }
+
+ if (isset($post['identifier_ean']) && !empty($post['identifier_ean'])){
+ $data['identifier_ean'] = $post['identifier_ean'];
+ }
+
+ if (isset($post['identifier_isbn']) && !empty($post['identifier_isbn'])){
+ $data['identifier_isbn'] = $post['identifier_isbn'];
+ }
+
+ if (isset($post['identifier_upc']) && !empty($post['identifier_upc'])){
+ $data['identifier_upc'] = $post['identifier_upc'];
+ }
+
+ $data['auction_duration'] = $post['duration'];
+ $data['condition'] = (isset($post['condition']) && $post['condition'] != 0 ? $post['condition'] : '');
+ $data['auction_type'] = 'FixedPriceItem';
+ $data['catalog_epid'] = (isset($post['catalog_epid']) && $post['catalog_epid'] != 0 ? $post['catalog_epid'] : '');
+ $data['identifier_upc'] = (isset($post['identifier_upc']) && $post['identifier_upc'] != '' ? $post['identifier_upc'] : '');
+ $data['identifier_isbn'] = (isset($post['identifier_isbn']) && $post['identifier_isbn'] != '' ? $post['identifier_isbn'] : '');
+ $data['identifier_ean'] = (isset($post['identifier_ean']) && $post['identifier_ean'] != '' ? $post['identifier_ean'] : '');
+
+ $data['ebay_payment_immediate'] = $this->config->get('ebay_payment_immediate');
+ $data['paypal_email'] = $this->config->get('ebay_payment_paypal_address');
+ $data['payment_instruction'] = $this->config->get('ebay_payment_instruction');
+
+ if (isset($profile_return['data']['returns_accepted'])) {
+ $data['returns_accepted'] = $profile_return['data']['returns_accepted'];
+ }
+ if (isset($profile_return['data']['returns_policy'])) {
+ $data['return_policy'] = $profile_return['data']['returns_policy'];
+ }
+ if (isset($profile_return['data']['returns_option'])) {
+ $data['returns_option'] = $profile_return['data']['returns_option'];
+ }
+ if (isset($profile_return['data']['returns_within'])) {
+ $data['returns_within'] = $profile_return['data']['returns_within'];
+ }
+ if (isset($profile_return['data']['returns_shipping'])) {
+ $data['returns_shipping'] = $profile_return['data']['returns_shipping'];
+ }
+ if (isset($profile_return['data']['returns_restocking_fee'])) {
+ $data['returns_restocking_fee'] = $profile_return['data']['returns_restocking_fee'];
+ }
+
+ $data['location'] = $profile_shipping['data']['location'];
+ $data['postcode'] = $profile_shipping['data']['postcode'];
+ $data['dispatch_time'] = $profile_shipping['data']['dispatch_time'];
+
+ if (isset($profile_shipping['data']['country'])) {
+ $data['country'] = $profile_shipping['data']['country'];
+ }
+
+ if (isset($profile_shipping['data']['eligible_for_pickup_dropoff'])) {
+ $data['eligible_for_pickup_dropoff'] = $profile_shipping['data']['eligible_for_pickup_dropoff'];
+ }
+
+ if (isset($profile_shipping['data']['eligible_for_pickup_instore'])) {
+ $data['eligible_for_pickup_instore'] = $profile_shipping['data']['eligible_for_pickup_instore'];
+ }
+
+ if (isset($profile_shipping['data']['global_shipping'])) {
+ $data['global_shipping'] = $profile_shipping['data']['global_shipping'];
+ }
+
+ if (isset($profile_shipping['data']['promotional_shipping_discount'])) {
+ $data['promotional_shipping_discount'] = $profile_shipping['data']['promotional_shipping_discount'];
+ }
+
+ if (isset($profile_shipping['data']['promotional_shipping_discount_international'])) {
+ $data['promotional_shipping_discount_international'] = $profile_shipping['data']['promotional_shipping_discount_international'];
+ }
+
+ $data['get_it_fast'] = (isset($profile_shipping['data']['get_it_fast']) ? $profile_shipping['data']['get_it_fast'] : 0);
+
+ if (isset($profile_template['data']['ebay_template_id'])) {
+ $template = $this->model_extension_openbay_ebay_template->get($profile_template['data']['ebay_template_id']);
+ $data['template_html'] = (isset($template['html']) ? base64_encode($template['html']) : '');
+ $data['template'] = $profile_template['data']['ebay_template_id'];
+ } else {
+ $data['template_html'] = '';
+ $data['template'] = '';
+ }
+
+ $data['gallery_plus'] = $profile_template['data']['ebay_gallery_plus'];
+ $data['gallery_super'] = $profile_template['data']['ebay_supersize'];
+
+ $data['private_listing'] = $profile_generic['data']['private_listing'];
+
+ //product attributes - this is just a direct pass through used with the template tag
+ $data['attributes'] = base64_encode(json_encode($this->model_extension_openbay_ebay->getProductAttributes($post['product_id'])));
+
+ $data['payments'] = array();
+ foreach($payments as $payment) {
+ if ($payments_accepted[$payment['ebay_name']] == 1) {
+ $data['payments'][$payment['ebay_name']] = 1;
+ }
+ }
+
+ $data['main_image'] = 0;
+ $data['img'] = array();
+
+ $product_images = $this->model_catalog_product->getProductImages($post['product_id']);
+
+ $product_info['product_images'] = array();
+
+ if (!empty($product_info['image'])) {
+ $data['img'][] = $product_info['image'];
+ }
+
+ if (isset($profile_template['data']['ebay_img_ebay']) && $profile_template['data']['ebay_img_ebay'] == 1) {
+ foreach ($product_images as $product_image) {
+ if ($product_image['image'] && file_exists(DIR_IMAGE . $product_image['image'])) {
+ $data['img'][] = $product_image['image'];
+ }
+ }
+ }
+
+ if (isset($profile_template['data']['ebay_img_template']) && $profile_template['data']['ebay_img_template'] == 1) {
+ $tmp_gallery_array = array();
+ $tmp_thumbnail_array = array();
+
+ //if the user has not set the exclude default image, add it to the array for theme images.
+ $key_offset = 0;
+ if (!isset($profile_template['data']['default_img_exclude']) || $profile_template['data']['default_img_exclude'] != 1) {
+ $tmp_gallery_array[0] = $this->model_extension_openbay_openbay->storeImage($product_info['image'], $profile_template['data']['ebay_gallery_width'], $profile_template['data']['ebay_gallery_height'], 'ebay');
+ $tmp_thumbnail_array[0] = $this->model_extension_openbay_openbay->storeImage($product_info['image'], $profile_template['data']['ebay_thumb_width'], $profile_template['data']['ebay_thumb_height'], 'ebay');
+ $key_offset = 1;
+ }
+
+ //loop through the product images and add them.
+ foreach ($product_images as $k => $v) {
+ $tmp_gallery_array[$k+$key_offset] = $this->model_extension_openbay_openbay->storeImage($v['image'], $profile_template['data']['ebay_gallery_width'], $profile_template['data']['ebay_gallery_height'], 'ebay');
+ $tmp_thumbnail_array[$k+$key_offset] = $this->model_extension_openbay_openbay->storeImage($v['image'], $profile_template['data']['ebay_thumb_width'], $profile_template['data']['ebay_thumb_height'], 'ebay');
+ }
+
+ $data['img_tpl'] = $tmp_gallery_array;
+ $data['img_tpl_thumb'] = $tmp_thumbnail_array;
+ }
+
+ $weight_parts = explode('.', $product_info['weight']);
+
+ // package size and weights
+ $data['package']['depth'] = $product_info['height'];
+ $data['package']['irregular'] = 0;
+ $data['package']['length'] = $product_info['length'];
+ $data['package']['unit'] = $this->config->get('ebay_measurement');
+ $data['package']['weight_major'] = (int)$weight_parts[0];
+ $data['package']['weight_minor'] = (int)substr($weight_parts[1], 0, 3);
+ $data['package']['width'] = $product_info['width'];
+
+ $package_types = $this->openbay->ebay->getSetting('package_type');
+
+ foreach ($package_types as $package_type) {
+ if ($package_type['default'] == 1) {
+ $data['package']['package'] = $package_type['code'];
+ }
+ }
+
+ $data = array_merge($data, $profile_shipping['data']);
+
+ $verify_response = $this->model_extension_openbay_ebay->ebayAddItem($data, 'no');
+
+ $json = array(
+ 'errors' => $verify_response['data']['Errors'],
+ 'fees' => $verify_response['data']['Fees'],
+ 'itemid' => (string)$verify_response['data']['ItemID'],
+ 'preview' => (string)$verify_response['data']['link'],
+ 'i' => $this->request->get['i'],
+ 'ack' => (string)$verify_response['data']['Ack'],
+ );
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+ } else {
+ $this->response->redirect($this->url->link('marketplace/openbay/items&token=' . $this->session->data['user_token']));
+ }
+ }
+
+ public function repairLinks() {
+ $this->load->model('extension/openbay/ebay_product');
+
+ $this->model_extension_openbay_ebay_product->repairLinks();
+
+ $json = array('msg' => 'Links repaired');
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function deleteAllLocks() {
+ $this->openbay->ebay->log('deleteAllLocks() - Deleting all locks');
+ $this->db->query("DELETE FROM `" . DB_PREFIX . "ebay_order_lock`");
+
+ $json = array('msg' => 'Locks deleted');
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function endItem() {
+ $json = $this->openbay->ebay->endItem($this->request->get['item_id']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getPartsCompatibilityOptions() {
+ $this->load->model('extension/openbay/ebay_product');
+
+ $json = $this->model_extension_openbay_ebay_product->getPartsCompatibilityOptions($this->request->get['category_id']);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getPartsCompatibilityValues() {
+ $this->load->model('extension/openbay/ebay_product');
+
+ $property_filter = array();
+
+ if (isset($this->request->post['filters']) && !empty($this->request->post['filters'])) {
+ $post_filters = $this->request->post['filters'];
+
+ foreach ($post_filters as $filter) {
+ $property_filter[] = array(
+ 'property_filter_name' => $filter['property_filter_name'],
+ 'property_filter_value' => $filter['property_filter_value'],
+ );
+ }
+ }
+
+ $filters = array(
+ 'category_id' => $this->request->get['category_id'],
+ 'property_name' => $this->request->get['option_name'],
+ 'property_filter' => $property_filter,
+ );
+
+ $json = $this->model_extension_openbay_ebay_product->getPartsCompatibilityValues($filters);
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+
+ public function getItemRecommendations() {
+ $this->load->language('extension/openbay/ebay_edit');
+ $this->load->model('extension/openbay/ebay_product');
+
+ if (!isset($this->request->get['item_id']) || empty($this->request->get['item_id'])) {
+ $json = array(
+ 'error' => true,
+ 'msg' => $this->language->get('error_no_item_id'),
+ );
+ } else {
+ $filters = array();
+
+ $filters['item_id'] = $this->request->get['item_id'];
+
+ if (isset($this->request->get['recommendation_type'])) {
+ $filters['recommendation_type'] = $this->request->get['recommendation_type'];
+ }
+
+ $json = $this->model_extension_openbay_ebay_product->getItemRecommendations($filters);
+ }
+
+ $this->response->addHeader('Content-Type: application/json');
+ $this->response->setOutput(json_encode($json));
+ }
+}