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

soter

  • Осваиваюсь на форуме
  • 18
  • 2 / 0
На форуме VirtueMart был опубликован способ оплаты при помощи системы кредитов Vodes. Пользователь имеет свой счет на сайте с которого он может снимать кредиты для оплаты в магазине.

Для установки такого способа оплаты нужно:

1. Установить Vodes
2. Создать новый способ оплаты

Payment method name : Credits
Code: Credits
Payment class - leave blank
Payment type: address/ Cash on Delivery

3. В настройках способа оплаты прописать

Код
<?php
$tax_total = $db->f("order_tax\") + $db->f(\"order_shipping_tax\");
$discount_total = $db->f(\"coupon_discount\") + $db->f(\"order_discount\");
$amount = round( $db->f(\"order_subtotal\")+$tax_total-$discount_total, 2);
$order_id =  $db->f(\"order_id\") ;
$order_item_sku =  $db->f(\"order_item_sku\") ;
$order_item_name = $db->f(\"order_item_name\") ;

$b = round( $db->f(\"order_subtotal\")+$tax_total-$discount_total, 2);
        
        
$row = null;
$database->setQuery( "SELECT * FROM #__vodes_credits WHERE userid='$my->id'" );
$database->loadObject($row);


if ($row->credit > $b) {

$database->setQuery( "UPDATE #__vodes_credits SET credit=credit-'$amount' WHERE userid='$my->id' " );
$database->query();


  echo '<br />Credit Deduction Successful';


$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'C' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();

$database->setQuery( "INSERT INTO `movie` ( `userid` , `sku` , `orderid` , `item_name` , `date` , `accessed` , `Status` )
VALUES ( '$my->id', '$order_item_sku', '$order_id', '$order_item_name', '', '0', 'C' ); ");
$database->query();



// extra


//parameter for function order_status_update
$d = array ("order_id"  => $order_id,
"notify_customer" => "Y",
"order_status" => "C",
"current_order_status" => "P");

    require_once ($mosConfig_absolute_path.'/administrator/components/com_VirtueMart/classes/ps_order.php');
$ps_order= new ps_order;
$ps_order->order_status_update($d);



//end

} else {

$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'X' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();

echo '<br /><b/>Insufficient Credits';
echo '<br /><a href="index.php?option=com_vodes">Buy More</a>';

}

?>

По утверждению автора это должно работат. Вот только в Joomla 1.5 этот метод не работает.
Может подскажете как можно исправить и настроить такой метод оплаты.
ссылка на тему в форуме: http://forum.VirtueMart.net/index.php?topic=25075
« Последнее редактирование: 24.07.2009, 20:36:17 от soter »
*

soter

  • Осваиваюсь на форуме
  • 18
  • 2 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #1 : 27.07.2009, 11:54:29 »
Пока все думали, на оффициальном форуме (казалось бы умершей теме) появилось решение

Код
<?php
defined('_JEXEC') or die('Restricted access');
global $my, $db , $database, $mainframe;
$database  =& JFactory::getDBO();

echo 'podatki lacznie: ';
echo $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax"); //laczna kwota podatkow
echo '<br>Obnizka lacznie: ';
echo $discount_total = $db->f("coupon_discount") + $db->f("order_discount"); //laczna kwota obnizek cen
echo '<br>Kwota transportu: ';
echo $transport = $db->f("order_shipping"); //koszty transportu
echo '<br>Suma zamowienia: ';
echo $amount = round( $db->f("order_subtotal")+$tax_total-$discount_total+$transport, 2);  //suma zamowienia
echo '<br>';
$order_id =  $db->f("order_id") ;
$order_item_sku =  $db->f("order_item_sku") ;
$order_item_name = $db->f("order_item_name") ;

echo $b = round( $db->f("order_subtotal")+$tax_total-$discount_total, 2);
     
if( @get_class( $db ) != 'ps_DB' ) $db = new ps_DB();   

//echo $kwota = $db->order_total;
//print_r ($db);
//echo '<br><br><br>';
//print_r ($database);

$row = null;
$sql = "SELECT * FROM jos_vodes_credits WHERE userid='$my->id'";
$database->setQuery( $sql );
$row = $database->loadObject();
print_r ($row);
echo $row->credit;
//if ($row->credit > $b) {
if ($row->credit > $amount) {

$database->setQuery( "UPDATE #__vodes_credits SET credit=credit-'$amount' WHERE userid='$my->id' " );
$database->query();


  echo '<br />Credit Deduction Successful';


$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'C' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();
/*
$database->setQuery( "INSERT INTO `movie` ( `userid` , `sku` , `orderid` , `item_name` , `date` , `accessed` , `Status` )
VALUES ( '$my->id', '$order_item_sku', '$order_id', '$order_item_name', '', '0', 'C' ); ");
$database->query();

*/

// extra


   //parameter for function order_status_update
   $d = array ("order_id"  => $order_id,
            "notify_customer" => "Y",
            "order_status" => "C",
            "current_order_status" => "P");

    require_once ($mosConfig_absolute_path.'/administrator/components/com_virtuemart/classes/ps_order.php');
   $ps_order= new ps_order;
   $ps_order->order_status_update($d);



//end

} else {

$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'X' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();

echo '<br /><b/>Insufficient Credits';
echo '<br /><a href="index.php?option=com_vodes">Buy More</a>';

}


?>
*

maxim108

  • Новичок
  • 7
  • 0 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #2 : 17.10.2009, 22:25:27 »
Спасибо большое за этот модуль! Я уже обыскался возможность сделать пользователям личный балланс. Вроде, нужный модуль, а нигде нет. Попробовал прикрутить этот. Что-то получилось. Но...

1) как сделать, чтобы покупатели могли пополнять этот баланс. Допустим, сделать товар-карточку для пополнения. Но как после покупки деньги будут зачисляться на кредит-балланс?

2) когда вручную даешь пользователю кредит, а он потом что-то покупает, то баланс не уменьшается сам. Получается, пока админ не заметил, можно на один и тот же кредит скупить весь магазин. :)

Понимаю, что ветка старая, но если вам удалось прикрутить эту систему, поделитесь знаниями!
*

soter

  • Осваиваюсь на форуме
  • 18
  • 2 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #3 : 26.10.2009, 15:18:51 »
я прикрепил систему пополнения счета через компонент для смс-баланса пользователей. http://smscoin.com/software/engine/Joomla!™+CMS/Компонент+для+смс-баланса+пользователей./
вместо jos_vodes_credits нужно прописать путь к базе smscoin.

Пример:
Код
<?php
defined('_JEXEC') or die('Restricted access');
global $my, $db , $database, $mainframe;
$database  =& JFactory::getDBO();

echo $VM_LANG->_('DML_TPL_NALOGI');
echo $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax"); //laczna kwota podatkow
echo '<br>';
echo $VM_LANG->_('DML_TPL_SNIJKA');
echo $discount_total = $db->f("coupon_discount") + $db->f("order_discount"); //laczna kwota obnizek cen
echo $transport = $db->f("order_shipping"); //транспортні витрати
echo '<br>';
echo $VM_LANG->_('DML_TPL_SUMMA');
echo $amount = round( $db->f("order_subtotal")+$tax_total-$discount_total+$transport);  //сума замовлення
echo '<br>';
$order_id =  $db->f("order_id") ;
$order_item_sku =  $db->f("order_item_sku") ;
$order_item_name = $db->f("order_item_name") ;


      
if( @get_class( $db )!= 'ps_DB' ) $db = new ps_DB();  

//echo $kwota = $db->order_total;
//print_r ($db);
//echo '<br><br><br>';
//print_r ($database);

$row = null;
$sql = "SELECT * FROM #__users_balance WHERE uid='$my->id'";
$database->setQuery( $sql );

$row = $database->loadObject();


//if ($row->balance > $b) {
if ($row->balance > $amount) {

$database->setQuery( "UPDATE #__users_balance SET balance=balance-'$amount' WHERE uid='$my->id' " );
$database->query();

echo '<br>';
  echo $VM_LANG->_('DML_TPL_CREDITOK');


$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'C' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();
/*
$database->setQuery( "INSERT INTO `movie` ( `userid` , `sku` , `orderid` , `item_name` , `date` , `accessed` , `Status` )
VALUES ( '$my->id', '$order_item_sku', '$order_id', '$order_item_name', '', '0', 'C' ); ");
$database->query();

*/

// extra


   //parameter for function order_status_update
   $d = array ("order_id"  => $order_id,
            "notify_customer" => "Y",
            "order_status" => "C",
            "current_order_status" => "P");

    require_once ($mosConfig_absolute_path.'/administrator/components/com_virtuemart/classes/ps_order.php');
   $ps_order= new ps_order;
   $ps_order->order_status_update($d);



//end

} else {

$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'X' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();

echo $VM_LANG->_('DML_TPL_CREDITNO');
echo '<br/><a href="index.php?option=com_artforms&formid=1">';
echo $VM_LANG->_('DML_TPL_BUYMORE');
echo '</a>';

}


?>

У меня прописаны переменные на языковые файлы. Вам необходимо заменить


[вложение удалено Администратором]
*

back

  • Захожу иногда
  • 216
  • 7 / 0
  • Все просто если по очереди)
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #4 : 03.03.2010, 21:41:26 »
помогло
« Последнее редактирование: 03.03.2010, 22:58:14 от back »
*

dogma-kz

  • Новичок
  • 8
  • 0 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #5 : 21.05.2010, 07:51:45 »
А куда денежка падает? где зарегистрироваться нужно?
*

maverick518

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #6 : 30.06.2010, 20:54:52 »
У меня еще вопрос, несмотря на то, что на счету у меня 0 кредитов, я товар оплатил и ссылку на скачивание получил. Где ошибка?
*

vektornsk

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #7 : 19.11.2011, 01:21:51 »
неужели за долгое время не придумали решение проблемы? чтобы на сайте у пользователя открывался счет и после пополнения его через современные веб кошельки, пользователь смог оплачивать товар через лицевой счет?
*

Annaweb

  • Захожу иногда
  • 244
  • 3 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #8 : 16.01.2012, 19:11:32 »
Тема умерла ?

Для каких-то версий есть решения ?
*

SolopoV

  • Давно я тут
  • 548
  • 15 / 0
  • зеленею...
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #9 : 30.07.2012, 20:53:59 »
Тема умерла ?

Для каких-то версий есть решения ?

Видимо решений нет, а НАДА.
*

mmi1973

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #10 : 12.03.2013, 23:24:05 »
Видимо решений нет, а НАДА.
А БД смотрели? После установки компонента Vodes создается jos_vode_credits. Далее смотрите код, а именно
$sql = "SELECT * FROM jos_vodes_credits WHERE userid='$my->id'";
и
$database->setQuery( "UPDATE #__vodes_credits SET credit=credit-'$amount' WHERE userid='$my->id' " );
правим
$sql = "SELECT * FROM jos_vode_credits WHERE userid='$my->id'";
и
$database->setQuery( "UPDATE #__vode_credits SET credit=credit-'$amount' WHERE userid='$my->id' " );

И все пашет. (мы использовали для лицевого счета юр.лиц, баланс пополняет по факту бухгалтер)
*

mmi1973

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
Re: VirtueMart и Vodes (личный счет/баланс)
« Ответ #11 : 12.03.2013, 23:27:54 »
Видимо решений нет, а НАДА.
<?php
defined('_JEXEC') or die('Restricted access');
global $my, $db , $database, $mainframe;
$database  =& JFactory::getDBO();

echo 'Сумма с налогами: ';
echo $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax");      //laczna kwota podatkow
echo '<br>Сумма дисконта: ';
echo $discount_total = $db->f("coupon_discount") + $db->f("order_discount"); //laczna kwota obnizek cen
echo '<br>Стоимость доставки: ';
echo $transport = $db->f("order_shipping");   //koszty transportu
echo '<br>Итого оплачено: ';
echo $amount = round( $db->f("order_subtotal")+$tax_total-$discount_total+$transport, 2);  //suma zamowienia
echo '<br>';
$order_id =  $db->f("order_id") ;
$order_item_sku =  $db->f("order_item_sku") ;
$order_item_name = $db->f("order_item_name") ;

echo $b = round( $db->f("order_subtotal")+$tax_total-$discount_total, 2);
     
if( @get_class( $db )!= 'ps_DB' ) $db = new ps_DB();   

//echo $kwota = $db->order_total;
//print_r ($db);
//echo '<br><br><br>';
//print_r ($database);

$row = null;
$sql = "SELECT * FROM jos_vode_credits WHERE userid='$my->id'";
$database->setQuery( $sql );
$row = $database->loadObject();
print_r ($row);
echo $row->credit;
//if ($row->credit > $b) {
if ($row->credit > $amount) {

$database->setQuery( "UPDATE #__vode_credits SET credit=credit-'$amount' WHERE userid='$my->id' " );
$database->query();


  echo '<br />Операция успешно выполнена!';


$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'C' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();
/*
$database->setQuery( "INSERT INTO `movie` ( `userid` , `sku` , `orderid` , `item_name` , `date` , `accessed` , `Status` )
VALUES ( '$my->id', '$order_item_sku', '$order_id', '$order_item_name', '', '0', 'C' ); ");
$database->query();

*/

// extra


   //parameter for function order_status_update
   $d = array ("order_id"  => $order_id,
            "notify_customer" => "Y",
            "order_status" => "C",
            "current_order_status" => "P");

    require_once ($mosConfig_absolute_path.'/administrator/components/com_virtuemart/classes/ps_order.php');
   $ps_order= new ps_order;
   $ps_order->order_status_update($d);



//end

} else {

$database->setQuery( "UPDATE `jos_vm_orders` SET `order_status` = 'R' WHERE `jos_vm_orders`.`order_id` = '$order_id' " );
$database->query();

echo '<br /><b/>Лицевой счет';
echo '<br /><a href="index.php?option=com_vodes">Пополнить счет</a>';

}


?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки почты России 1.0.6 для VirtueMart 1.1.Х

Автор esmark

Ответов: 65
Просмотров: 21703
Последний ответ 24.12.2015, 11:29:51
от SolopoV
[Решено] Как связать доставку и оплату? Joomla 1.5.* + VirtueMart 1.1.*

Автор Solser

Ответов: 86
Просмотров: 48271
Последний ответ 16.11.2015, 07:14:43
от draff
Модуль VirtueMart для Новой почты

Автор rezon

Ответов: 25
Просмотров: 7155
Последний ответ 15.10.2015, 23:31:01
от rezon
модуль оплаты roboxchange.com (ROBOKASSА) для VirtueMart 1.1.3

Автор dezzor

Ответов: 103
Просмотров: 37057
Последний ответ 11.03.2015, 07:21:48
от Pingvin78
Модуль оплаты SPRYPAY для VirtueMart 1.1.9 - кто пробовал?

Автор vsd

Ответов: 0
Просмотров: 933
Последний ответ 08.03.2015, 08:50:37
от vsd