Некорректно дублируется товар во всех Okay 2.x/3.x

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

trainracing M
Аватара
trainracing M
Возраст: 29
Репутация: 12
Сообщения: 118
Зарегистрирован: 07.10.2016
С нами: 4 года 8 месяцев
Сайт

Сообщение #1 trainracing » 26.01.2021, 10:38

Во всех версиях всех веток окай неправильно дулируется товар - при дублировании у оригинального товара например артикул "220" а у дубликата тоже будет 220, хотя по идее должно быть пусто, иначе будет куча ошибок при будущих экспортах/импортах через csv

а в логах будет ошибка :

Код: Выделить всё

Error (1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', last_modify=NOW() WHERE id in ('118') LIMIT 1' at line 1
UPDATE ok_products SET , last_modify=NOW() WHERE id in ('118') LIMIT 1

Даже если версия MySQL будет соответствовать или выше чем минимальное по тех требованиям окая

Как это исправить?)

makki M
makki M
Репутация: 190
Сообщения: 640
Зарегистрирован: 12.08.2016
С нами: 4 года 10 месяцев
Откуда: Киев
Сайт

Сообщение #2 makki » 26.01.2021, 12:35

Эта ошибка не связана с артикулом. Ошибка в функции обновления товара.
Во OkayCMS 2 исправляется так:
В файле api/Products.php в функции update_product (строка 326) строку

Код: Выделить всё

$result = $this->languages->get_description($product, 'product');

переносим ниже в условие

Код: Выделить всё

if($this->db->query($query)) {

должно получиться так

Код: Выделить всё

public function update_product($id, $product) {
        $product = (object)$product;

        $query = $this->db->placehold("UPDATE __products SET ?%, last_modify=NOW() WHERE id in (?@) LIMIT ?", $product, (array)$id, count((array)$id));
        if($this->db->query($query)) {
            $result = $this->languages->get_description($product, 'product');
            if(!empty($result->description)) {
                $this->languages->action_description($id, $result->description, 'product', $this->languages->lang_id());
            }
            return $id;
        } else {
            return false;
        }
    }


Насчет OkayCMS 3 не смотрел и не буду
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 207
Сообщения: 1475
Зарегистрирован: 12.11.2015
С нами: 5 лет 7 месяцев
Сайт Skype

Сообщение #3 OkayCMS » 26.01.2021, 21:34

Учтём в новой версии


Название раздела: Баг-репорт OkayCMS (Сообщения об ошибках)
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Баг-репорт OkayCMS (Сообщения об ошибках)»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость