7506
OpenCart не реализована возможность задавать определенную цену для нескольких валют. Можно только задать одну любую валюту по умолчанию, и через биржевой курс или заданный в ручную, цена будет конвертироваться.
Например, валюта по умолчанию - рубли. Цена товара 399.00. Задаем курс для евро, доллара и фунта стерлингов через админ. панель: EUR=70, USD=60, GRB=80. В итоге, цена товара: EUR=5.7, USD=6.65, GRB=4.99. На этом стандартный функционал для работы с валютой завершен.
1.Добавляем поля под валюту. В нашем случае 3 поля. Можно больше или меньше
Открываем файл admin/controller/catalog/product.php
и находим строку
if (isset($this->request->post['model'])){
И перед этой строкой добавляем код
if (isset($this->post['GBP'])) { $data['GBP'] = $this->request->post['GBP']; } elseif (!empty($product_info)) { $data['GBP'] = $product_info['GBP']; } else { $data['GBP'] = ''; } if (isset($this->request->post['EUR'])) { $data['EUR'] = $this->request->post['EUR']; } elseif (!empty($product_info)) { $data['EUR'] = $product_info['EUR']; } else { $data['EUR'] = ''; } if (isset($this->request->post['USD'])) { $data['USD'] = $this->request->post['USD']; } elseif (!empty($product_info)) { $data['USD'] = $product_info['USD']; } else { $data['USD'] = ''; }
Открываем файл admin/model/catalog/product.php
и находим строку
model = '" . $this->escape($data['model']) . "',
И выполняем замену
model = '" . $this->db->escape($data['model']) . "', GBP = '" . $this->db->escape($data['GBP']) . "', EUR = '" . $this->db->escape($data['EUR']) . "', USD = '" . $this->db->escape($data['USD']) . "',
Далее, ищем строку
public function getProducts($data = array()) {
И после этой строкой добавляем код
$exist = $this->db->query("SHOW COLUMNS FROM `" . DB_PREFIX . "product` WHERE Field = 'entry_1'"); if (count($exist->row) == 0) { $this->db->query("ALTER TABLE `" . DB_PREFIX . "product` ADD COLUMN `GBP` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, ADD COLUMN `EUR` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, ADD COLUMN `USD` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL"); }
Открываем файл admin/view/template/catalog/product_form.tpl
и находим строку
<label class="col-sm-2 control-label" for="input-model"><?php echo $entry_model; ?></label>
<div class="form-group"> <label class="col-sm-2 control-label" for="input-entry_1">GBP</label> <div class="col-sm-10"> <input style="width: 20%; display:inline" type="text" name="GBP" value="<?php echo $GBP; ?>" placeholder="GBP" id="input-GBP" class="form-control" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" for="input-entry_2">EUR</label> <div class="col-sm-10"> <input style="width: 20%; display:inline" type="text" name="EUR" value="<?php echo $EUR; ?>" placeholder="EUR" id="input-EUR" class="form-control" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" for="input-entry_3">USD</label> <div class="col-sm-10"> <input style="width: 20%; display:inline" type="text" name="USD" value="<?php echo $USD; ?>" placeholder="USD" id="input-USD" class="form-control" /> </div> </div>
Популярные записи