Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 28 Ответов
  • 13233 Просмотров
*

vlom

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Кто подскажет где в вирте можно изменить способ формирования номера заказа?
Сейчас выглядит так 522b025 а мне скажем надо сделать такого вида 000356
что бы в номере содержались исключительно цифры и номера шли по порядку
*

vlom

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Re: Человеческий номер заказа
« Ответ #1 : 24.04.2012, 13:47:21 »
решил таки эту проблему, хоть и пришлось пол дня потратить
решение такое, открываем файл /administartor/components/com_virtumarte/models/order.php
ищем метод generateOrderNumber
и меням его содержимое на
Код
    	$db = JFactory::getDBO();
        $q = 'SELECT `order_number`
        FROM #__virtuemart_orders
        ORDER BY `order_number` DESC
        LIMIT 1';
        $db->setQuery($q);
        $data = $db->loadAssoc();
        $a = (int)$data['order_number'] + 1;
        echo $a;
        return $a;
*

xilgiz

  • Захожу иногда
  • 129
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #2 : 22.06.2012, 15:11:53 »
У меня там есть только orders.php
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Человеческий номер заказа
« Ответ #3 : 18.07.2012, 13:34:22 »
Файл administrator/components/com_virtuemart/models/orders.php
заменяем строку $_orderData->order_number =''; (у меня 565 была, версия 2.08) на
$_orderData->order_number = $this->generateOrderNumber($_usr->get('id'),0,$_orderData->virtuemart_vendor_id);
Радуемся и наслаждаемся  yes!
*

glutton

  • Захожу иногда
  • 54
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #4 : 01.11.2012, 23:39:49 »
а как ноль убрать в начале?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Человеческий номер заказа
« Ответ #5 : 01.11.2012, 23:46:57 »
а как ноль убрать в начале?
удалить заказы предыдущие
сделать, чтобы последний был цифровым ну и на крайний случай добавить строку
$_orderData->order_number=ltrim($_orderData->order_number, '0');
*

Dr.House

  • Новичок
  • 6
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #6 : 06.11.2012, 15:31:11 »
Файл administrator/components/com_virtuemart/models/orders.php
заменяем строку $_orderData->order_number =''; (у меня 565 была, версия 2.08) на
$_orderData->order_number = $this->generateOrderNumber($_usr->get('id'),0,$_orderData->virtuemart_vendor_id);
Радуемся и наслаждаемся  yes!
а как сделать, что бы за номер заказа брал id заказа? заранее спасибо!
*

glutton

  • Захожу иногда
  • 54
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #7 : 08.11.2012, 01:08:26 »
Файл administrator/components/com_virtuemart/models/orders.php
заменяем строку $_orderData->order_number =''; (у меня 565 была, версия 2.08) на
$_orderData->order_number = $this->generateOrderNumber($_usr->get('id'),0,$_orderData->virtuemart_vendor_id);
Радуемся и наслаждаемся  yes!

Вот такую ошибку стало выдавать после подтверждения заказа:
Код
Warning: substr() expects parameter 3 to be long, string given in /administrator/components/com_virtuemart/models/orders.php on line 1128

Что бы это могло быть?
Я как раз недавно добавил напрямую в базу данных 3 (три) разных продавца (vendors) - может, как раз с этим связано?
« Последнее редактирование: 08.11.2012, 01:13:50 от glutton »
*

aivalab

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #8 : 26.11.2012, 14:34:08 »
Прошу помощи - как сбросить ID заказов ?
Сейчас после тестирования ID заказа идет наприер 179, а номер заказа 068. очень нужно уровнять, кто знает что делать ?
*

mixfix83

  • Новичок
  • 5
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #9 : 01.12.2012, 19:49:47 »
Я себе сделал, что бы за id заказа шла дата. Например: 54011212, где 54 - id заказа, 011212 - день/месяц и год. В итоге функуия выглядит так
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = ($data['virtuemart_order_id']+1).date("dmy");
return (int)$order_id;
}
*

aivalab

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #10 : 01.12.2012, 19:54:42 »
id и номер заказа несколько разные вещи вообще-то
*

mixfix83

  • Новичок
  • 5
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #11 : 03.12.2012, 09:31:46 »
id и номер заказа несколько разные вещи вообще-то
Естественно, а я разве утверждал обратное?
*

aivalab

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #12 : 03.12.2012, 09:54:03 »
Естественно, а я разве утверждал обратное?
наверное не так понял.
не подскажите, как мне все-таки уровнять эти два значения ?
*

mixfix83

  • Новичок
  • 5
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #13 : 03.12.2012, 22:53:25 »
Цитировать
не подскажите, как мне все-таки уровнять эти два значения ?
А вот я не знаю, но если бы была такая у меня необходимость копал бы в базе данных
*

twister2013

  • Захожу иногда
  • 91
  • 3 / 0
Re: Человеческий номер заказа
« Ответ #14 : 10.09.2013, 11:01:45 »
Уважаемые любители VirtueMart!
Подскажите пожалуйста, у меня используется плагин для распечатки счета после оформления заказа, номер счета там выглядит так:
Код
СЧЕТ № <?php echo $InvId ?>
Номер заказа я сделал как написал Fedor Vlasenko . А как бы мне этот номер заказа вставить  вместо номера счета. Заранее спасибо

Решил сам. Как удалить пост не пойму
« Последнее редактирование: 12.09.2013, 14:15:33 от twister2013 »
*

bankinobi

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #15 : 14.09.2013, 19:22:05 »
Решил сам. Как удалить пост не пойму
А и не надо ничего удалять, лучше напишите ваше решение проблемы)
*

twister2013

  • Захожу иногда
  • 91
  • 3 / 0
Re: Человеческий номер заказа
« Ответ #16 : 17.09.2013, 11:18:18 »
А и не надо ничего удалять, лучше напишите ваше решение проблемы)
заменил virtuemart_order_id на order_number
*

magic7tyle

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #17 : 28.09.2013, 02:00:03 »
В данный момент у меня функция выглядит следующим образом:
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = date('Ymd').($data['virtuemart_order_id']+1);
return (int)$order_id;
}
и она выдаёт номер заказа типа 201309281, где 2013 - год, 09 - месяц, 28 - текущий день месяца, 1 - $data['virtuemart_order_id']...
Как мне получить номер заказа типа 20130928-00001
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Re: Человеческий номер заказа
« Ответ #18 : 07.10.2013, 14:21:21 »
а вот можно с этого
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = ($data['virtuemart_order_id']+1).date("dmy");
return (int)$order_id;
}
чтоб было
не 212071013
а вот так  212-07,10,13
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Человеческий номер заказа
« Ответ #19 : 15.07.2014, 13:50:44 »
а как сделать чтобы номера заказов начинались с цифры 1 , следущий 2 и т.д.?
*

MMONSTERR

  • Захожу иногда
  • 59
  • 3 / 0
Re: Человеческий номер заказа
« Ответ #20 : 11.08.2014, 17:39:30 »
Да простят меня программисты. Или улучшат мой код, я сделал так:

В administrator/components/com_virtuemart/models/orders.php, я добавил в самый конец функции generateOrderNumber следующее:
Код
$_SESSION['mm_vm_order_id'] = $data;
return $data;

А в templates\ВАШ_ШАБЛОН\html\com_virtuemart\cart\order_done.php

Код
$db =& JFactory::getDBO();
$___id_order = mysql_fetch_assoc(mysql_query("SELECT `virtuemart_order_id` FROM `".$db->getPrefix()."virtuemart_orders` WHERE
`order_number` = '".$_SESSION['mm_vm_order_id']."' LIMIT 1;"));
echo 'Номер заказа: '.$___id_order['virtuemart_order_id'];
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Re: Человеческий номер заказа
« Ответ #21 : 18.08.2014, 12:52:45 »
Может кому пригодится... На просторах инета нашел плагин. И код не надо ковырять и номер заказа можно хоть как-то в божеский вид привести...
*

bankinobi

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #22 : 07.09.2014, 21:16:08 »
Может кому пригодится... На просторах инета нашел плагин. И код не надо ковырять и номер заказа можно хоть как-то в божеский вид привести...
За плагин спасибо, решил разом головняк)
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Re: Человеческий номер заказа
« Ответ #23 : 28.10.2014, 09:23:53 »
На 4-том шаге оформления стал выдавать вот такую ошибку
Цитировать
Couldn't create order
No order created
и номер заказа стал какой-то странный
был такой (2124231014)  при том что ID заказа (2124) и дата (23-10-14)
до ошибки стал выводить
2-1 а ID заказа нормальный 2150 по порядку
дальше стал вообще не понятно что выводить
2147483647-2014-10-28- а ID заказа 2154
в /administartor/components/com_virtumarte/models/order.php
строки 1313 / 1321
Код
		static public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
    $db = JFactory::getDBO();
    $q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
    $db->setQuery($q);
    $data = $db->loadAssoc();
    $order_id = ($data['virtuemart_order_id']+1).date("dmy");
    return (int)$order_id;
}
*

Dobreff

  • Захожу иногда
  • 213
  • 10 / 4
Re: Человеческий номер заказа
« Ответ #24 : 28.04.2015, 10:23:08 »
Я себе сделал, что бы за id заказа шла дата. Например: 54011212, где 54 - id заказа, 011212 - день/месяц и год. В итоге функуия выглядит так
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = ($data['virtuemart_order_id']+1).date("dmy");
return (int)$order_id;
}

Отлично! Супер! Работает.
*

Carapax

  • Новичок
  • 6
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #25 : 03.10.2015, 09:43:58 »
В VM3 эта функция помечена как устаревшая, вместо нее используется genStdOrderNumber (если кому-то интересно). Расположена там же, на одну позицию выше.
*

rony1111

  • Новичок
  • 3
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #26 : 04.12.2015, 16:11:10 »
Нашла классный модуль (бесплатный). У меня все работает, сделала номер под требования разных курьерок https://www.genius-webdesign.com/joomla-extensions/63-genius-order-numbering-for-virtuemart-2
Joomla 2.5
*

SLAVJAN

  • Новичок
  • 3
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #27 : 25.04.2018, 16:45:27 »
Да простят меня программисты. Или улучшат мой код, я сделал так:

В administrator/components/com_virtuemart/models/orders.php, я добавил в самый конец функции generateOrderNumber следующее:
Код
$_SESSION['mm_vm_order_id'] = $data;

большое человеческое спасибо! пригодилось.
*

SLAVJAN

  • Новичок
  • 3
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #28 : 25.04.2018, 16:45:54 »
В VM3 эта функция помечена как устаревшая, вместо нее используется genStdOrderNumber (если кому-то интересно). Расположена там же, на одну позицию выше.
очень пригодилось Ваше уточнение :) спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать подтверждение заказа J3, VM3?

Автор Bakston

Ответов: 1
Просмотров: 909
Последний ответ 26.02.2018, 19:15:54
от draff
Описание статуса заказа в письмо клиенту

Автор antony2606

Ответов: 0
Просмотров: 1002
Последний ответ 20.11.2017, 03:20:16
от antony2606
Форма оформления заказа + Корзина. Всё в одном модальном окне на VirtueMart 2

Автор Strikerus

Ответов: 0
Просмотров: 1577
Последний ответ 19.04.2017, 08:13:30
от Strikerus
МОДУЛЬ - Корзина товаров с оформлением заказа на любой странице

Автор WooSuuP

Ответов: 10
Просмотров: 2595
Последний ответ 12.04.2016, 16:39:10
от WooSuuP
При оформление заказа на сумму выше N числа, появляется блок

Автор psg-2301

Ответов: 1
Просмотров: 772
Последний ответ 27.11.2015, 13:32:06
от nikola_blin