Артикул товара автоматически

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

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #1 Julius123 » 04.10.2017, 16:35

Подскажите, есть как-то возможность формировать арткул автоматически. Возможно айди товара как-то можно туда прописывать?

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #2 makki » 04.10.2017, 17:55

Делается одним запросом в базу данных, например:

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

UPDATE ok_variants SET sku = concat('100', id);
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #3 Julius123 » 04.10.2017, 18:17

makki писал(а):Делается одним запросом в базу данных, например:
Можете пожалуйста разъяснить что именно в БД делает этот запрос?

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #4 makki » 04.10.2017, 18:38

Julius123 писал(а):
makki писал(а):Делается одним запросом в базу данных, например:
Можете пожалуйста разъяснить что именно в БД делает этот запрос?
Устанавливает значение артикула варианта товара путем объединения 100 и айди варианта. Это просто пример. Вы можете формировать артикул по-своему.

Возможно это не то, о чем вы спрашивали, поскольку как я понял, вы хотели чтобы артикул генерировался автоматически. Но это уже требует программирования.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #5 Julius123 » 04.10.2017, 19:44

makki писал(а):
Julius123 писал(а):Можете пожалуйста разъяснить что именно в БД делает этот запрос?
Устанавливает значение артикула варианта товара путем объединения 100 и айди варианта. Это просто пример. Вы можете формировать артикул по-своему.

Возможно это не то, о чем вы спрашивали, поскольку как я понял, вы хотели чтобы артикул генерировался автоматически. Но это уже требует программирования.
Вы правы, вопрос был чтобы формировать артикул автоматически. Например у каждого товара формируется айди, и этот же айди писать в БД поле артикула

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #6 OkayCMS » 04.10.2017, 21:14

Нужно чуть доработать, чтобы не запрос в БД был (он один раз нужен), а при сохранении товара в поле артикула записывался 100+id варианта. Я думаю makki вам такое сможет за полчаса сделать.

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #7 makki » 28.12.2020, 16:53

Чтобы в OkayCMS 2 автоматически генерился артикул в зависимости от id варианта в базе данных,
нужно в файле api/Variants.php в функции add_variant после строки:

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

$variant_id = $this->db->insert_id();

добавить

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

        if(empty($variant->sku)) {
            $this->db->query("UPDATE __variants SET sku=substring(concat ('000000',id),-5) WHERE id=?", $variant_id);
        }


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

Владимир
Владимир

Сообщение #8 Владимир » 22.01.2021, 07:22

makki писал(а):api/Variants.php

А где находиться этот файл в 3.8.1 версии ? Как на этой версии реализовать это ?

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #9 makki » 22.01.2021, 14:42

Владимир писал(а):
makki писал(а):api/Variants.php

А где находиться этот файл в 3.8.1 версии ? Как на этой версии реализовать это ?
Без понятия
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #10 Julius123 » 14.06.2021, 06:09

makki писал(а):В результате, например если id варианта 145, артикул получится 000145
Спасибо, все работает. Но как быть с сотнями уже добавленных вариантов без артикула? Можно ли сгенерировать запросом в БД всем уже добавленным вариантам в таком же формате? Желательно перезаписать и уже заполненные артикулы, чтобы все были в одном формате.

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #11 makki » 14.06.2021, 07:59

Julius123 писал(а):Спасибо, все работает. Но как быть с сотнями уже добавленных вариантов без артикула? Можно ли сгенерировать запросом в БД всем уже добавленным вариантам в таком же формате? Желательно перезаписать и уже заполненные артикулы, чтобы все были в одном формате.
Выполните этот SQL запрос

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

UPDATE __variants SET sku=substring(concat ('000000',id),-5)
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #12 Julius123 » 14.06.2021, 16:54

makki писал(а):
Julius123 писал(а):Спасибо, все работает. Но как быть с сотнями уже добавленных вариантов без артикула? Можно ли сгенерировать запросом в БД всем уже добавленным вариантам в таком же формате? Желательно перезаписать и уже заполненные артикулы, чтобы все были в одном формате.
Выполните этот SQL запрос

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

UPDATE __variants SET sku=substring(concat ('000000',id),-5)

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

UPDATE ok_variants SET sku=substring(concat ('000000',id),-5)

Только вот так сработало. Спасибо!


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

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


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

   

Вернуться в «Вопросы по работе с OkayCMS»

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

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