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

Произвольный номер заказа


Recommended Posts

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

А это где должно выводиться? Клиенту, в админку, на почту или куда?

По идее везде: админка, клиенту на почту, на сайте при формлении заказа.

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


5 минут назад, nikifalex сказал:

почему именно +13 ?

Это для примера дано (указано же в задании "+13, к примеру"). Т.е. это значение можно через админку менять. Или в идеале настраивается 1 раз по правилу:

При заказе  9:00 до 17:00 к последнему номеру заказа +16.

При заказе с 17:00 до 20:00  к последнему номеру заказа +11. 

При заказе с 20:00 до 09:00  к последнему номеру заказа +7.

Т.е. 1 раз прописано правило. Менять не надо  этом случае.

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


не получится у вас такое

разве что не номер а номер счета это да, это можно

 

Ну или просто сделать дополнительно поле с таким номером

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

Я так предполагаю, вам нужно во всех контроллерах, найти order_id и добавить к этой переменной 13. Или добавить свою логику. Но это во многих местах придется делать. И в админке тоже. 

Так как добавлять в таблицу не по порядку это не феншуй.

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


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

@spectre @niger вы какую то дичь пишете. Это делается относительно легко и без проблем.

Ну так поделитесь :)

Так сходу надо добавлять в addorder к getlastid но сдается мне будут приколы

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

5 минут назад, nikifalex сказал:

@spectre @niger вы какую то дичь пишете. Это делается относительно легко и без проблем.

Готова приобрести данное решение))

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


@nikifalex В базу при сохранении херачить с такими айди?)))) ну ну. Легко и без проблема это сделать. Очень классный  вариант исполнения 

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


1 минуту назад, spectre сказал:

Ну так поделитесь :)

Так сходу надо добавлять в addorder к getlastid но сдается мне будут приколы

Зато легко и без проблем =)

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


6 минут назад, nikifalex сказал:

 

Вот вам решение без приколов.

просто высчитывайте order_id самостоятельно, по любому алгоритму. И передавайте его явно в INSERT INTO order запрос

тогда auto_increment срабатывать не будет.

проверка на уникальность primary может дать отлуп в 0.0001% случаев, поэтому ловите ошибку после insert

 

Я в ОПЕНКАРТ просто пользователь, которому надо совсем всё "в рот положить". Можно подробное решение? Если Вам удобно, то можно в ЛС писать.

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


  • 2 months later...

В файле \catalog\model\checkout\order.php , в функции Create() после строки

$order_id = $this->db->getLastId();

добавить строки

$new_order_id = $order_id + КОЛИЧЕСТВО_ПОЗИЦИЙ;
$this->db->query("alter table `" . DB_PREFIX . "order` AUTO_INCREMENT=" .$new_order_id);

Если нужно случайное число, например от 5 до 15, напишите вместо КОЛИЧЕСТВО_ПОЗИЦИЙ - rand(5, 15)

Проверено на версиях 1.5 - 2.3

После внесения изменений не забывайте обновлять кэш дополнений.

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


16 часов назад, ukrline сказал:

В файле \catalog\model\checkout\order.php , в функции Create() после строки


$order_id = $this->db->getLastId();

добавить строки


$new_order_id = $order_id + КОЛИЧЕСТВО_ПОЗИЦИЙ;
$this->db->query("alter table `" . DB_PREFIX . "order` AUTO_INCREMENT=" .$new_order_id);

Если нужно случайное число, например от 5 до 15, напишите вместо КОЛИЧЕСТВО_ПОЗИЦИЙ - rand(5, 15)

Проверено на версиях 1.5 - 2.3

После внесения изменений не забывайте обновлять кэш дополнений.

Супер!!!

На 2.3. работает.

БЛАГОДАРЮ)))

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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