Предпочли все-таки первый способ? Тогда понадобится выполнить следующие шаги в модельке базы данных (определенном PHP-классе), предназначенной для работы с таблицой заказов:
- 1. исправить тип поля quantity
- 2. запустить в CMS проверку целостности таблиц
- 3. исправить алгоритм сохранения поля quantity
Для реализации шага 1 откройте файл objects/.db-models/Orders.php, найдите ближе к концу файла метод check_products и в нем есть следующая строка, которую я помечу сейчас таким цветом как неправильную для вашей задачи.
public function check_products () {
...
$name = 'quantity';
$type = 'INT(11)';
...
}
Измените эту строку так, чтобы тип был FLOAT с некоторым размером поля в виде общего количества цифр и количества цифр после запятой. Для понятности я показал это изменение таким цветом.
public function check_products () {
...
$name = 'quantity';
$type = 'FLOAT(17,6)';
...
}
Теперь нужно выполнить шаг 2, так как в CMS встроен механизм автоматической коррекции структуры таблиц согласно прописанным в их модельках базы данных.
- Для этой операции зайдите в админпанель,
- далее идите в меню "утилиты -> Очистка кешей",
- включите там флажок "Инициировать проверку структурного соответствия таблиц базы данных"
- и нажмите кнопку Выполнить.
Теперь нужно выполнить шаг 3. Снова откройте файл упоминавшейся выше модельки, найдите метод update_product и в нем будет такая неправильная для вас строка.
public function update_product () {
...
if (isset($item->quantity)) ...value_as_integer($item->quantity)) . '\'';}
...
}
Измените эту строку так.
public function update_product () {
...
if (isset($item->quantity)) ...value_as_float($item->quantity)) . '\'';}
...
}
Тогда CMS сможет сохранять поле количества в дробном виде.