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

Сложный id order


Recommended Posts

Здравствуйте

Пытаюсь сделать сложный id для заказа

вот например добавляю в тпл

  <?php 
$chars="1234567890";
$max=10;
$size=StrLen($chars)-1;
$password=null;

    while($max--)
    $password.=$chars[rand(0,$size)];

$order_number= $password.$order['order_id'];
$char="-"; 
$order_number_char=preg_replace('/((?:.|\n){4})(?!$)/i','${1}'.$char,$order_number); 

?>

и вывожу уже переменную $order_number_char, но при обновлении страницы этот id меняется естественно

Как можно сделать чтобы он сохранялся?

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


В итоге что сделать то хотите? В базу он все равно в таком виде не влезет int(11) как бы намекает...

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

 

проблема в том как это все записать в бд в поле ид заказа

Проблема в том, что вы понятия не имеете, что такое первичный ключ в базе данных. А проблема OpenCart - что он зачем-то смешал понятия предметной области (номер заказа) и системных структур (ключей в таблице) в одном поле.

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

Проблема в том, что вы понятия не имеете, что такое первичный ключ в базе данных. А проблема OpenCart - что он зачем-то смешал понятия предметной области (номер заказа) и системных структур (ключей в таблице) в одном поле.

уважаемый, я семестр в вузе учила sql так что разбираюсь и в запросах и в ключах, пусть я не пользовалась phpmyadmin но все равно

Мне нужна связь с опенкарт, кароч сделаю напишу решение, так как наверняка многим надо, а то что за дела 1 заказ - ид 1, десятый - ид 10, кто хоч подсчитает сколько заказов у клиента в месяц, странно еще что нигде никто не писал решения, хотя темок тьма

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


Ваша досада и обида понятна. Однако учить != понимать.

 

Самое правильное решение - оставить бедный order_id в покое, чтобы не ломать сотни дополнений, которые справедливо надеются видеть в этом поле int, а сделать новое поле order_num, в контроллере заполнять как вам вздумается, выбрасывать на виды, в письмо покупашке и далее по вкусу.

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

..а то что за дела 1 заказ - ид 1, десятый - ид 10, кто хоч подсчитает сколько заказов у клиента в месяц, странно еще что нигде никто не писал решения, хотя темок тьма

не факт! тот же id можно накрутить как угодно - хоть 100500 выставить ;)

 

полностью согласен с tabook - лучше дополнительное поле завести, и уже его обрабатывать по всякому в зависимости от самого id

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

создайте тестовый заказ, потом в базе в таблице order этот самый order_id измените например на 1000 (главное, чтоб номер был больше последнего реального заказа)

при следующем заказе его номер будет 1001 - поле в БД инкрементное

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

Самое правильное решение - оставить бедный order_id в покое, чтобы не ломать сотни дополнений, которые справедливо надеются видеть в этом поле int, а сделать новое поле order_num, в контроллере заполнять как вам вздумается, выбрасывать на виды, в письмо покупашке и далее по вкусу.

+

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

  • 4 weeks later...
  • 1 month later...

У меня стоит модуль https://opencartforu...ta-po-shablonu/ который изменяет номер счета (invoice) по шаблону: 
{YY} - год заказа (две цифры)

{YYYY} - год заказа (полный)
{M} - месяц заказа (без ведущего нуля, например 3)
{MM} - месяц заказа (с ведущим нулем, например 03}
{D} - день заказа (без ведущего нуля, например 5),{DD} - день заказа (с ведущим нулем, например 05)
{ORDER_ID} - системный номер заказа
{NUM} - порядковый номер счета, нумерация начинается с 1 согласно настройке ниже

 

В модуле есть так же возможность начинать новую нумерацию:

1. Каждый день

2. Каждый месяц

3. Каждый год

 

Нужно добавить в инвойс возможность включения/выключения страны заказа и уравнять Номер заказа с Номером счета. Чтоб было как-то так:

 

Номер счета:          UA00012320151306

Номер заказа: INV-UA00012320151306

 

Предложения в личку.

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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