$this->load->model('setting/setting');
$this->load->model('localisation/geo_zone');
$this->load->model('localisation/order_status');
$this->load->model('payment/amazon_checkout');
$this->language->load('payment/amazon_checkout');
$this->load->library('cba');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->request->post['amazon_checkout_access_key'] = trim($this->request->post['amazon_checkout_access_key']);
$this->request->post['amazon_checkout_access_secret'] = trim($this->request->post['amazon_checkout_access_secret']);
$this->request->post['amazon_checkout_merchant_id'] = trim($this->request->post['amazon_checkout_merchant_id']);
if (!isset($this->request->post['amazon_checkout_allowed_ips'])) {
$this->request->post['amazon_checkout_allowed_ips'] = array();
}
$this->model_setting_setting->editSetting('amazon_checkout', $this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$access_key = $this->request->post['amazon_checkout_access_key'];
$access_secret = $this->request->post['amazon_checkout_access_secret'];
$merchant_id = $this->request->post['amazon_checkout_merchant_id'];
$mode = $this->request->post['amazon_checkout_mode'];
$cba = new CBA($merchant_id, $access_key, $access_secret);
$cba->setMode($mode);
$cba->scheduleReports();
$this->redirect($this->url->link('extension/payment', 'token=' . $this->session->data['token'], 'SSL'));
}
if (isset($this->request->post['amazon_checkout_status'])) {
$this->data['amazon_checkout_status'] = $this->request->post['amazon_checkout_status'];
} elseif ($this->config->get('amazon_checkout_status')) {
$this->data['amazon_checkout_status'] = $this->config->get('amazon_checkout_status');
} else {
$this->data['amazon_checkout_status'] = '0';
}
if (isset($this->request->post['amazon_checkout_mode'])) {
$this->data['amazon_checkout_mode'] = $this->request->post['amazon_checkout_mode'];
} elseif ($this->config->get('amazon_checkout_mode')) {
$this->data['amazon_checkout_mode'] = $this->config->get('amazon_checkout_mode');
} else {
$this->data['amazon_checkout_mode'] = 'sandbox';
}
if (isset($this->request->post['amazon_checkout_sort_order'])) {
$this->data['amazon_checkout_sort_order'] = $this->request->post['amazon_checkout_sort_order'];
} elseif ($this->config->get('amazon_checkout_sort_order')) {
$this->data['amazon_checkout_sort_order'] = $this->config->get('amazon_checkout_sort_order');
} else {
$this->data['amazon_checkout_sort_order'] = '0';
}
if (isset($this->request->post['amazon_checkout_geo_zone'])) {
$this->data['amazon_checkout_geo_zone'] = $this->request->post['amazon_checkout_geo_zone'];
} elseif ($this->config->get('amazon_checkout_geo_zone')) {
$this->data['amazon_checkout_geo_zone'] = $this->config->get('amazon_checkout_geo_zone');
} else {
$this->data['amazon_checkout_geo_zone'] = '0';
}
if (isset($this->request->post['amazon_checkout_minimum_total'])) {
$this->data['amazon_checkout_minimum_total'] = $this->request->post['amazon_checkout_minimum_total'];
} elseif ($this->config->get('amazon_checkout_minimum_total')) {
$this->data['amazon_checkout_minimum_total'] = $this->config->get('amazon_checkout_minimum_total');
} else {
$this->data['amazon_checkout_minimum_total'] = '0.00';
}
if (isset($this->request->post['amazon_checkout_access_key'])) {
$this->data['amazon_checkout_access_key'] = $this->request->post['amazon_checkout_access_key'];
} elseif ($this->config->get('amazon_checkout_access_key')) {
$this->data['amazon_checkout_access_key'] = $this->config->get('amazon_checkout_access_key');
} else {
$this->data['amazon_checkout_access_key'] = '';
}
if (isset($this->request->post['amazon_checkout_access_secret'])) {
$this->data['amazon_checkout_access_secret'] = $this->request->post['amazon_checkout_access_secret'];
} elseif ($this->config->get('amazon_checkout_access_secret')) {
$this->data['amazon_checkout_access_secret'] = $this->config->get('amazon_checkout_access_secret');
} else {
$this->data['amazon_checkout_access_secret'] = '';
}
if (isset($this->request->post['amazon_checkout_merchant_id'])) {
$this->data['amazon_checkout_merchant_id'] = $this->request->post['amazon_checkout_merchant_id'];
} elseif ($this->config->get('amazon_checkout_merchant_id')) {
$this->data['amazon_checkout_merchant_id'] = $this->config->get('amazon_checkout_merchant_id');
} else {
$this->data['amazon_checkout_merchant_id'] = '';
}
if (isset($this->request->post['amazon_checkout_marketplace'])) {
$this->data['amazon_checkout_marketplace'] = $this->request->post['amazon_checkout_marketplace'];
} elseif ($this->config->get('amazon_checkout_marketplace')) {
$this->data['amazon_checkout_marketplace'] = $this->config->get('amazon_checkout_marketplace');
} else {
$this->data['amazon_checkout_marketplace'] = 'uk';
}
if (isset($this->request->post['amazon_checkout_order_default_status'])) {
$this->data['amazon_checkout_order_default_status'] = $this->request->post['amazon_checkout_order_default_status'];
} elseif ($this->config->get('amazon_checkout_order_default_status')) {
$this->data['amazon_checkout_order_default_status'] = $this->config->get('amazon_checkout_order_default_status');
} else {
$this->data['amazon_checkout_order_default_status'] = '0';
}
if (isset($this->request->post['amazon_checkout_order_ready_status'])) {
$this->data['amazon_checkout_order_ready_status'] = $this->request->post['amazon_checkout_order_ready_status'];
} elseif ($this->config->get('amazon_checkout_order_ready_status')) {
$this->data['amazon_checkout_order_ready_status'] = $this->config->get('amazon_checkout_order_ready_status');
} else {
$this->data['amazon_checkout_order_ready_status'] = '0';
}
if (isset($this->request->post['amazon_checkout_order_canceled_status'])) {
$this->data['amazon_checkout_order_canceled_status'] = $this->request->post['amazon_checkout_order_canceled_status'];
} elseif ($this->config->get('amazon_checkout_order_canceled_status')) {
$this->data['amazon_checkout_order_canceled_status'] = $this->config->get('amazon_checkout_order_canceled_status');
} else {
$this->data['amazon_checkout_order_canceled_status'] = 'amazon_checkout_order_canceled_status';
}
if (isset($this->request->post['amazon_checkout_order_shipped_status'])) {
$this->data['amazon_checkout_order_shipped_status'] = $this->request->post['amazon_checkout_order_shipped_status'];
} elseif ($this->config->get('amazon_checkout_order_shipped_status')) {
$this->data['amazon_checkout_order_shipped_status'] = $this->config->get('amazon_checkout_order_shipped_status');
} else {
$this->data['amazon_checkout_order_shipped_status'] = '0';
}
if (isset($this->request->post['amazon_checkout_allowed_ips'])) {
$this->data['amazon_checkout_allowed_ips'] = $this->request->post['amazon_checkout_allowed_ips'];
} elseif ($this->config->get('amazon_checkout_allowed_ips')) {
$this->data['amazon_checkout_allowed_ips'] = $this->config->get('amazon_checkout_allowed_ips');
} else {
$this->data['amazon_checkout_allowed_ips'] = array();
}
if (isset($this->request->post['amazon_checkout_button_colour'])) {
$this->data['amazon_checkout_button_colour'] = $this->request->post['amazon_checkout_button_colour'];
} elseif ($this->config->get('amazon_checkout_button_colour')) {
$this->data['amazon_checkout_button_colour'] = $this->config->get('amazon_checkout_button_colour');
} else {
$this->data['amazon_checkout_button_colour'] = 'orange';
}
if (isset($this->request->post['amazon_checkout_button_size'])) {
$this->data['amazon_checkout_button_size'] = $this->request->post['amazon_checkout_button_size'];
} elseif ($this->config->get('amazon_checkout_button_size')) {
$this->data['amazon_checkout_button_size'] = $this->config->get('amazon_checkout_button_size');
} else {
$this->data['amazon_checkout_button_size'] = 'large';
}
if (isset($this->request->post['amazon_checkout_button_background'])) {
$this->data['amazon_checkout_button_background'] = $this->request->post['amazon_checkout_button_background'];
} elseif ($this->config->get('amazon_checkout_button_background')) {
$this->data['amazon_checkout_button_background'] = $this->config->get('amazon_checkout_button_background');
} else {
$this->data['amazon_checkout_button_background'] = '';
}
if (isset($this->request->post['amazon_checkout_cron_job_token'])) {
$this->data['amazon_checkout_cron_job_token'] = $this->request->post['amazon_checkout_cron_job_token'];
} elseif ($this->config->get('amazon_checkout_cron_job_token')) {
$this->data['amazon_checkout_cron_job_token'] = $this->config->get('amazon_checkout_cron_job_token');
} else {
$this->data['amazon_checkout_cron_job_token'] = sha1(uniqid(mt_rand(), 1));
}
$this->data['cron_job_url'] = HTTPS_CATALOG . 'index.php?route=payment/amazon_checkout/cron&token=' . $this->data['amazon_checkout_cron_job_token'];
$this->data['text_cron_job_token'] = $this->language->get('text_cron_job_token');
$this->data['help_cron_job_token'] = $this->language->get('help_cron_job_token');
$this->data['text_cron_job_url'] = $this->language->get('text_cron_job_url');
$this->data['help_cron_job_url'] = $this->language->get('help_cron_job_url');
$this->data['text_amazon_join'] = $this->language->get('text_amazon_join');
$this->data['text_home'] = $this->language->get('text_home');
$this->data['heading_title'] = $this->language->get('heading_title');
$this->data['text_access_key'] = $this->language->get('text_access_key');
$this->data['text_access_secret'] = $this->language->get('text_access_secret');
$this->data['text_merchant_id'] = $this->language->get('text_merchant_id');
$this->data['text_marketplace'] = $this->language->get('text_marketplace');
$this->data['text_germany'] = $this->language->get('text_germany');
$this->data['text_uk'] = $this->language->get('text_uk');
$this->data['text_checkout_mode'] = $this->language->get('text_checkout_mode');
$this->data['text_geo_zone'] = $this->language->get('text_geo_zone');
$this->data['text_status'] = $this->language->get('text_status');
$this->data['text_live'] = $this->language->get('text_live');
$this->data['text_sandbox'] = $this->language->get('text_sandbox');
$this->data['text_sort_order'] = $this->language->get('text_sort_order');
$this->data['text_minimum_total'] = $this->language->get('text_minimum_total');
$this->data['text_all_geo_zones'] = $this->language->get('text_all_geo_zones');
$this->data['text_status_enabled'] = $this->language->get('text_status_enabled');
$this->data['text_status_disabled'] = $this->language->get('text_status_disabled');
$this->data['text_default_order_status'] = $this->language->get('text_default_order_status');
$this->data['text_ready_order_status'] = $this->language->get('text_ready_order_status');
$this->data['text_canceled_order_status'] = $this->language->get('text_canceled_order_status');
$this->data['text_shipped_order_status'] = $this->language->get('text_shipped_order_status');
$this->data['text_last_cron_job_run'] = $this->language->get('text_last_cron_job_run');
$this->data['text_allowed_ips'] = $this->language->get('text_allowed_ips');
$this->data['text_upload_success'] = $this->language->get('text_upload_success');
$this->data['text_add'] = $this->language->get('text_add');
$this->data['button_cancel'] = $this->language->get('button_cancel');
$this->data['button_save'] = $this->language->get('button_save');
$this->data['text_button_settings'] = $this->language->get('text_button_settings');
$this->data['text_colour'] = $this->language->get('text_colour');
$this->data['text_orange'] = $this->language->get('text_orange');
$this->data['text_tan'] = $this->language->get('text_tan');
$this->data['text_white'] = $this->language->get('text_white');
$this->data['text_light'] = $this->language->get('text_light');
$this->data['text_dark'] = $this->language->get('text_dark');
$this->data['text_size'] = $this->language->get('text_size');
$this->data['text_medium'] = $this->language->get('text_medium');
$this->data['text_large'] = $this->language->get('text_large');
$this->data['text_x_large'] = $this->language->get('text_x_large');
$this->data['text_background'] = $this->language->get('text_background');
$this->data['help_allowed_ips'] = $this->language->get('help_allowed_ips');
$this->data['last_cron_job_run'] = $this->config->get('amazon_checkout_last_cron_job_run');
$this->document->setTitle($this->language->get('heading_title'));
$this->data['breadcrumbs'] = array();
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
'separator' => false
);
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_payment'),
'href' => $this->url->link('extension/payment', 'token=' . $this->session->data['token'], 'SSL'),
'separator' => ' :: '
);
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('payment/amazon_checkout', 'token=' . $this->session->data['token'], 'SSL'),
'separator' => ' :: '
);
$this->data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones();
$this->data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses();
$this->data['errors'] = $this->errors;
$this->data['cancel'] = $this->url->link('extension/payment', 'token=' . $this->session->data['token']);
$this->data['button_colours'] = array(
'orange' => $this->language->get('text_orange'),
'tan' => $this->language->get('text_tan')
);
$this->data['button_backgrounds'] = array(
'white' => $this->language->get('text_white'),
'light' => $this->language->get('text_light'),
'dark' => $this->language->get('text_dark'),
);
$this->data['button_sizes'] = array(
'medium' => $this->language->get('text_medium'),
'large' => $this->language->get('text_large'),
'x-large' => $this->language->get('text_x_large'),
);
$this->children = array(
'common/header',
'common/footer'
);
$this->template = 'payment/amazon_checkout.tpl';
$this->response->setOutput($this->render());