8 (900) 117 54-89

Получить скидку

8 (952) 061 23-25

Заказать звонок

21

07
2018

Владислав
608
OpenCart разная цены для валюты на сайте

OpenCart разная цены для валюты на сайте

OpenCart не реализована возможность задавать определенную цену для нескольких валют. Можно только задать одну любую валюту по умолчанию, и через биржевой курс или заданный в ручную, цена будет конвертироваться.

Например, валюта по умолчанию - рубли. Цена товара 399.00. Задаем курс для евро, доллара и фунта стерлингов через админ. панель: EUR=70, USD=60,  GRB=80. В итоге, цена товара: EUR=5.7, USD=6.65,  GRB=4.99. На этом стандартный функционал для работы с валютой завершен.

Как в OpenCart задавать разные цены для валюты на сайте

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>

Сделай репост к себе, чтобы не потерять

Коментарии

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *