Видимо уже мозги поплыли вечером. Искал и не нашел. Даниил, не подскажете, где формируется номер заказа. Хочу его переделать, избавиться от простой порядковости.
Смотрите fn_update_order (app/functions/fn.cart.php). Но там не все так просто с порядковостью, как кажется
[quote name=‘eComLabs’ timestamp=‘1439532833’ post=‘226730’]
Смотрите fn_update_order (app/functions/fn.cart.php). Но там не все так просто с порядковостью, как кажется
[/quote]
да уж, навертели там. Номер заказ - это просто автоинкрементное поле в базе. Это плохо ![]()
т.е. номер заказ сейчас может быть только числовым полем по автоинкременту.
[quote name=‘densvi’ timestamp=‘1439553243’ post=‘226780’]
да уж, навертели там. Номер заказ - это просто автоинкрементное поле в базе. Это плохо ![]()
т.е. номер заказ сейчас может быть только числовым полем по автоинкременту.
[/quote]
А вы хотите усложнить жизнь клиенту, чтобы он говорил fb-gb-2013?
Вот куда хуже с 2-я витринами там номера вперемешку, 2015 заказ одной витрины, 2016 другой и т.д. то есть нет отдельной нумерации.
Вопрос “Зачем” оставим за скобками.
Попробовал изменить в [color=#282828][font=arial, verdana, tahoma, sans-serif] fn_update_order (app/functions/fn.cart.php) после заведения в базу нового заказа, т.е. после строки [/font][/color]
[color=#282828][font=arial, verdana, tahoma, sans-serif]<br />
$order_id = db_query("INSERT INTO ?:orders ?e", $order);<br />
[/font][/color]
номер заказа, т.е. поле order_id на произвольное число запросом UPDATE, например, на 98765. Изменил, но заказ как-то криво формируется, то вообще ошибка, то еще что. Ну это ладно.
Самое главное, что когда я убрал все свои добавления, удалил в админке заказ 98765, то новый заказ прекрасно сформировался с номером большим на 1 чем моё то произвольное число, т.е. заказ стал 98766. Как так?
В настройках в админке в “[color=#333333]Начальный номер заказа” [/color]так и остался стоять прежний номер заказа, допустим 300.
Когда я в этой настройке в админке изменил начальный номер заказ, допустим на 400, то мой следующий заказ с таким номером и сформировался.
Теперь вопрос. Как так происходит? Номер заказ где-то хранится для автоинкремента при добавлении заказа???
Если вы сделаете дамп таблицы, то увидите там параметр AUTO_INCREMENT у order_id.
http://www.mysql.ru/docs/man/example-AUTO_INCREMENT.html
Относительно него айдишник следующего заказа и формируется. В настройках даже если вы укажите значение меньше этого номера, то это не сработает
т.е. вручную переопределить этот самый номер, кроме как увеличить, его нельзя?
[quote name='densvi' timestamp='1439812591' post='226964']
т.е. вручную переопределить этот самый номер, кроме как увеличить, его нельзя?
[/quote]
Да, из админки нельзя меньший указать. Можно табличку подкорректировать и вернуть старый номер, но тогда заказы с айдишником более [color=#282828][font=arial, verdana, tahoma, sans-serif]98765 лучше удалить[/font][/color]
[quote name=‘densvi’ timestamp=‘1439812591’ post=‘226964’]
т.е. вручную переопределить этот самый номер, кроме как увеличить, его нельзя?
[/quote]
Откройте phpmyadmin , зайдите в таблицу cscart_orders , там есть вкладочка “Операции”, там есть поле “AUTO_INCREMENT”
Я немножко не про это. Мысль была, чтобы номер заказа формировать по принципу:
DDMMHHMM
деньмесяцчасминуты
[quote name='densvi' timestamp='1439825572' post='226998']
Я немножко не про это. Мысль была, чтобы номер заказа формировать по принципу:
DDMMHHMM
деньмесяцчасминуты
[/quote]
Лучше тогда дефолтный айдишник не трогать, а сделать альтеранативный айдишник и заменять его при отображении
[quote name='densvi' timestamp='1439825572' post='226998']
Я немножко не про это. Мысль была, чтобы номер заказа формировать по принципу:
DDMMHHMM
деньмесяцчасминуты
[/quote]
Нет, это плохая идея.
У заказа есть timestamp , можете его любить и жаловать, вывести где нить в любом формате времени