нужно чтобы номера заказов были не по очередности 1. 2. 3. 4. 5. а в случайном/уникальном порядке 1. 4. 7. 11. 3. 90. 34 можно с буквами 12d 3f 5d можно ли такое организовать?
можно все )) используй php функция date(): string date ( string format [, int timestamp] ) d -> День месяца, 2 цифры с ведущими нулями от 01 до 31 D -> Сокращенное наименование дня недели, 3 символа от Mon до Sun F -> Полное наименование месяца, например January или March от January до December g -> Часы в 12-часовом формате без ведущих нулей От 1 до 12 G -> Часы в 24-часовом формате без ведущих нулей От 0 до 23 h -> Часы в 12-часовом формате с ведущими нулями От 01 до 12 H -> Часы в 24-часовом формате с ведущими нулями От 00 до 23 i -> Минуты с ведущими нулями 00 to 59
1- использовать при занесении заказа в Mysql: ...catalog\model\checkout\order.php 2 - снять AUTO_INCREMENT с поля id_order (и теперь не будет задаваться автоматически)
пожалуйста еще по подробнее!!! не могу сам догнать что то здесь надо менять? public function getOrder($order_id) { $order_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = '" . (int)$order_id . "'");
Функция "public function getOrder($order_id)" - это выборка уже сделанных заказов. В самом верху файла есть функция "public function addOrder($data)" она отвечает за добавления нового заказа в Базу Данных MySql: добавляете в перечень переменных 'id_order' и присваиваете ему значение функции date() = 'date("m.d.y-H:i:s")' тогда номер заказа у Вас сформируется в формате 01.06.13-15:04:59 Не забудьте предварительно подготовить в БД это поле 'id_order' как 'varchar(20)' !!!
попадает в брошенные заказы! может скиньте готовую строчку Код: public function addOrder($data) { $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()"); --- добавлено: 1 июн 2013 в 20:10 --- и заказ просмотреть не могу "Страница, которую Вы запрашиваете, не найдена"
Так же интересует этот вопрос. Ставил модуль отдельный AddonCustomOrderID но он работает странно и не решает задачу. У кого то есть решение?
А смысл так заморачиваться? Поставьте какое-нибудь большое начальное значение order id и хватамба. Например, можно стартануть с 10000
объясняю важен не начальный номер, а шаг между номерами заказов. для того чтобы не было видно сколько магазин продает товаров. Это отлично реализовано на амазоне, таобао, алиэкспресс, витакост, и так далее. И вообще, вопрос был как это сделать, но не по какому умыслу.
Вот не пойму я таких вот извращений с нормально организованной логикой, зачем вам номера заказов в системе менять, если нужно какое то отображение для клиента или в отчетах - выводите номер счета, а номер заказа не трогайте.
Если имееться в виду, номер, который фигурирует в письме, то надо зайти по адресу: catalog/model/checkout/order.php найти: и начиная со строки: $subject = sprintf($language->get('text_new_subject'), $order_info['store_name'], $order_id); и до конца функции рассылки убрать $order_id, это так в общем направление, а так, то деликатно надо смотреть что к чему...
а если в кабинете пользователя еще удалить, то где надо копать? Но вообще мне идея с айди заказа в формате даты ГГГГММЧЧММСС нравится намного больше. логичнее как-то.