Перейти к содержанию
leshkakrash

Изменить присвоение номера заказа - платно

Рекомендуемые сообщения

Нужно сделать следующее:
Изменить присвоение номера заказа на следующий: должен состоять из даты (год, месяц, число) и время в секундах.

Пример: заказ совершен 2 января 2014 года в 15:32:12, тогда номер заказа будет такой 14010255932

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И начиная со ВТОРОГО (не двадцатого и даже не третьего) покупателя "номера заказов" МОГУТ пересекаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример: заказ совершен 2 января 2014 года в 15:32:12, тогда номер заказа будет такой 14010255932

не увидел логики между датой и числом...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15*60*60+32*60+12

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

/catalog/model/checkout/order.php

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

заменить на

$order_id = $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET order_id = '"date('ymd'). time()"'");

как-то так...

правда секунды от времени unix )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз пошла такая пьянка...

 

 

$tim = time();
$order_id = date('y',$tim). date('m',$tim).date('d',$tim). (date('H',$tim)*60*60+date('i',$tim)*60+date('s',$tim));
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET `order_id`='. $order_id .', далее старый запрос

Не проверял

 

как раз длина номера заказа попадает в 11

Изменено пользователем chukcha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

как раз длина номера заказа попадает в 11

кстати, мой пример не попадёт, нужно будит менять)

P.S. Я тоже не проверял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не увидел логики между датой и числом...

140102 - дата: год 14, месяц 01, число 02

55932 - время в секундах

 

Маленько не то :)

 

И начиная со ВТОРОГО (не двадцатого и даже не третьего) покупателя "номера заказов" МОГУТ пересекаться.

Это вряд ли, заказы с разницей в секунды уже не пересекутся. 

 

/catalog/model/checkout/order.php

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

заменить на

$order_id = $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET order_id = '"date('ymd'). time()"'");

как-то так...

правда секунды от времени unix )))

Будет немного перебор :) Тогда можно сделать номер заказа по unix времени...

 

Раз пошла такая пьянка...

$tim = time();
$order_id = date('y',$tim). date('m',$tim).date('d',$tim). (date('H',$tim)*60*60+date('i',$tim)*60+date('s',$tim));
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET `order_id`='. $order_id .', далее старый запрос

Не проверял

 

как раз длина номера заказа попадает в 11

Сегодня попробую....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET `order_id`='. $order_id .', далее старый запрос

 

Это куда вставлять?)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

model/checkout/order.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

строка 4

 invoice_prefix = '" с этого места начинается "далее старый запрос"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

строка 4

 invoice_prefix = '" с этого места начинается "далее старый запрос"

так?

invoice_prefix = '"$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET `order_id`='. $order_id .' "

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем пробовал по разному - не работает. При оформлении заказа белый экран.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это вряд ли, заказы с разницей в секунды уже не пересекутся.

это с одним посетителем на сайте - вряд ли.

[edit]с двумя и более - этой разницы может и не оказаться.[/edit]

зачем вам вообще такой формат?

Изменено пользователем afwollis
с двумя и более - этой разницы может и не оказаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это с одним посетителем на сайте - вряд ли.

[edit]с двумя и более - этой разницы может и не оказаться.[/edit]

зачем вам вообще такой формат?

Не хочу номера заказов по порядку. Вы имеете ввиду что заказ могут сделать два человека одновременно? Оооочень маленькая вероятность такого исхода. 

Подскажите, что и куда вставить, как посоветовал "chukcha"...если будут возникать ошибки, верну старый номер заказа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне казалось что это элементарно :(

		$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" .  $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()");

	$tim = time();
$order_id = date('y',$tim). date('m',$tim).date('d',$tim). (date('H',$tim)*60*60+date('i',$tim)*60+date('s',$tim));
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET `order_id`='. $order_id .', invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" .  $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()");

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению не работает :( Номер как и прежде, и проблемы с "единой кассой".

Изменено пользователем afwollis
overquote deleted

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

leshkakrash

может у вас установлен Simple Checkout ?

Если да, то нужно править там.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

leshkakrash

может у вас установлен Simple Checkout ?

Если да, то нужно править там.

Да, установлен....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

игра не стоит свеч.

но если вам так хочется (и до сих пор не сделали) - могу сделать именно так, как вы хотите (см. ЛС).

обратите внимание, что я вас предупредил о возможных проблемах/ошибках в будущем при использовании подобного изменения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.