Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как добавить произвольное поле в админке


Recommended Posts

Мне необходимо сделать "Акции на скидки" для оптового магазина.

Например: 

image.png.368b72527d6b099658a5c7e7fc5a4a0d.png

 

Самый простой способ, это создать в админке столбец с полями, рядом со скидочной ценой:

image.thumb.png.b5c07cc038e5966907eefe4a15608d1a.png

Вписывать значения, сохранять их в бд и выводить в шаблон.

 

Ищу код в гугле, чтобы сделать это, не могу найти. Модулей, я так понял, так же нет. Знатоки opencart и php подскажите, пожалуйста, как это можно сделать.

Может кто-то сталкивался с этим.

Надіслати
Поділитися на інших сайтах


13 минут назад, nashivan сказал:

Самый простой способ

Забавно, что так просто и не выходит.

А что из того что уже есть в самом опенкарт не так с этими скидками, что нужен ещё один столь простой столбец ?

Надіслати
Поділитися на інших сайтах

2 минуты назад, Tom сказал:

Забавно, что так просто и не выходит.

А что из того что уже есть в самом опенкарт не так с этими скидками, что нужен ещё один столь простой столбец ?

да, для оптового магазина очень нужен, самый простой способ оказался тяжелым, но другого я не могу придумать(

Надіслати
Поділитися на інших сайтах


если у вас два магазина в системе и один оптовый
то нужно пользователям давать группу оптовый

Надіслати
Поділитися на інших сайтах

2 минуты назад, chukcha сказал:

если у вас два магазина в системе и один оптовый
то нужно пользователям давать группу оптовый

нет, этот только оптовый, нужно просто добавить рядом в админке поле для ввода второй цены, а затем выводить эти цены в шаблон. 

Надіслати
Поділитися на інших сайтах


9 минут назад, chukcha сказал:

если у вас два магазина в системе и один оптовый
то нужно пользователям давать группу оптовый

нашел похожий модуль, только здесь скидка в процентах и она на демке как-то неправильно работает

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=19958&filter_search=discounts&filter_license=0

Надіслати
Поділитися на інших сайтах


Странное довольно желание. Толку от этих зачеркнутых цен.

Тем более что акция у основной цены , как на скрине и так есть в опенкарт.

Надіслати
Поділитися на інших сайтах

7 минут назад, Tom сказал:

Толку от этих зачеркнутых цен.

ну типа, хватайте пока подешевело

Надіслати
Поділитися на інших сайтах

8 минут назад, Tom сказал:

Странное довольно желание. Толку от этих зачеркнутых цен.

Тем более что акция у основной цены , как на скрине и так есть в опенкарт.

желание странное, согласен, но все таки, интересно было бы, как это реализовать можно

Надіслати
Поділитися на інших сайтах


3 минуты назад, nashivan сказал:

желание странное, согласен, но все таки, интересно было бы, как это реализовать можно

Так вы расскажите , что вы уже сделали. Будет проще дать советы.

Или вам нужно что бы кто то расписал вам как выполнить такую не стандартную фишку в магазине?

Надіслати
Поділитися на інших сайтах

4 минуты назад, nashivan сказал:

как это реализовать можно

1  добавить поле в базу

2 вывести в админке по аналогии с полем цена

3 прописать везде где идет работа с ценой, чтобы учитывалась ваша скидка

вы же сами сказали

1 час назад, nashivan сказал:

Самый простой способ, это создать в админке столбец с полями,

 

Надіслати
Поділитися на інших сайтах

17 минут назад, Tom сказал:

Так вы расскажите , что вы уже сделали. Будет проще дать советы.

Или вам нужно что бы кто то расписал вам как выполнить такую не стандартную фишку в магазине?

Вот, что я сделал

 

 

В admin/view/template/catalog/product_form.tpl

после 

<td class="text-right"><?php echo $entry_price; ?></td>

это

<td class="text-right">Старая цена</td>

 

после

<td class="text-right"><input type="text" name="product_discount[<?php echo $discount_row; ?>][price]" value="<?php echo $product_discount['price']; ?>" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td>

это

<td class="text-right"><input type="text" name="product_discount[<?php echo $discount_row; ?>][price2]" value="<?php echo $product_discount['price2']; ?>" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td>

 

 

В admin/controller/catalog/product.php

после 

'price'             => $product_discount['price'],

это

'price2'             => $product_discount['price2'],

 

В /admin/model/catalog/product.php

 

вместо (57 строка):

$this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'");

это 

$this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', price2 = '" . (float)$product_discount['price2'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'");

 

 

вместо (196 строка):

$this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'");

это

$this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', price2 = '" . (float)$product_discount['price2'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'");

 

в tpl вывести <?php echo $discount['price2']; ?>

 

ocstore 2.3

 

 

 

 

 

Надіслати
Поділитися на інших сайтах


22 минуты назад, nashivan сказал:

после ввода ошибка и сохранения ошибка 500 :(

добавил в phpmyadmin столбец price2 с такими же параметрами как и у price - ошибка пропала.

осталось две проблемы:

image.thumb.png.ee373a57893ecc901a9bdfccd827c6e5.png

и не выводит:

image.png.80ea513aac15db0856988cc49bd230c6.png

Надіслати
Поділитися на інших сайтах


в catalog/controller/product/product.php

после

'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']),

это

'price2'    => $this->currency->format($this->tax->calculate($discount['price2'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']),

 

теперь выводит

 image.png.8464ff440b3df38fa8c0bd3a42558b14.png

Надіслати
Поділитися на інших сайтах


В admin/view/template/catalog/product_form.tpl

после:

html += '  <td class="text-right"><input type="text" name="product_discount[' + discount_row + '][price]" value="" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td>';
это

html += '  <td class="text-right"><input type="text" name="product_discount[' + discount_row + '][price2]" value="" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td>';

 

Все работает, всем спасибо)
 

Надіслати
Поділитися на інших сайтах


честно, думал, что до моей проблемы с этим кто-то уже сталкивался.

если будет время до запилю простой ocmod и выложу сюда

Змінено користувачем nashivan
Надіслати
Поділитися на інших сайтах


49 минут назад, nashivan сказал:

price2 = '" . (float)$product_discount['price2'] .

в базе, создали поле?

Надіслати
Поділитися на інших сайтах

17 минут назад, nashivan сказал:

$this->currency->format($this->tax->calculate($discount['price2'],

а в $discount  price2 как окажется?

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.