Новости Joomla

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

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Скажу сразу - это не Большой Брат  ;D
Задача - отслеживать действия покупателей в корзине: что положили в корзинку, на каком этапе оформления заказа задерживались, с какого этапа отказались делать заказ и т.д.
Настройки Целей в Яндексе и Гугле не очень помогают, особенно при установленном SEF404. Сделал логирование самостоятельно. Теперь в отдельный файл пишется когда, кто (id, email и имя) на каком этапе оформления заказа находился покупатель. Дополнительно выводится содержимое его корзины. Эти данные нужны для улучшения эффективности работы магазина ;).
Код писался очень быстро и далек от совершенства, но работает ;)
Правим файл administrator/components/com_virtuemart/html/checkout.index.php. В самом начале с 24-й строки пишем:
Код
function getUserName ( $user_id )
{
$q = 'SELECT `name`, `email` FROM `jos_users` WHERE `id` ='.$user_id;
$db = new ps_DB();
$db->query( $q );
$name = "-----------------";
while ( $db->next_record() ) {
$name = $db->f ( "name" );
$name .= " : " . $db->f ( "email" );
}
return $name;
}

function getProductName ( $id )
{
$q = 'SELECT `product_sku` FROM `jos_vm_product` WHERE `product_id` = ' . $id;
$db = new ps_DB();
$db->query( $q );
$sku = "------------------";
while ( $db->next_record() ) {
$sku = $db->f ( "product_sku" );
}
return $sku;
}
Где-то в районе 304-й строки после кода:
Код
	<input type="hidden" name="zone_qty" value="'. $zone_qty .'" />
        <input type="hidden" name="ship_to_info_id" value="'. $ship_to_info_id .'" />
        <input type="hidden" name="shipping_rate_id" value="'. urlencode($shipping_rate_id).'" />
        <input type="hidden" name="payment_method_id" value="'. $payment_method_id .'" />
        <input type="hidden" name="checkout_last_step" value="'. $current_stage .'" />';

$theme->set( 'basket_html', $basket_html );
   
вставляем:
Код
// Определяем имя файла для записи лога
$logfilename = "logs/" . date ( "d-m-Y" ). ".log";
- тут определяем имя файла для лога. Я пишу в файл с именем соответсвующим текущей дате, файлы складываю в папке /logs в корне сайта. Не забываем закрыть ее от посторонних и поисковых роботов!
Буквально через пару строк, после кода:
Код
	    if( in_array('CHECK_OUT_GET_SHIPPING_ADDR', $checkout_steps[$current_stage]) ) {
echo '<a name="CHECK_OUT_GET_SHIPPING_ADDR"></a>';
echo $theme->fetch( 'checkout/get_shipping_address.tpl.php');
$theme->set('basket_html', '');
пишем:
Код
// Мы на шаге выбора адреса
if ( $logfile = fopen ( $logfilename, 'a+' ) ) {
fwrite ( $logfile, date ( "d-m-Y H:i:s") );
fwrite ( $logfile, "  -  Adress  . UserId = " );
fwrite ( $logfile, (int)$auth['user_id'] . " : " . getUserName ( (int)$auth['user_id'] ). "\n" );
for($i = 0; $i < $cart["idx"]; $i++) {
fwrite ( $logfile, "      " . $cart[$i]['quantity'] . " : " . getProductName ( $cart[$i]['product_id'] ). "\n" );
}
fwrite ( $logfile, "  \n" );
fclose ( $logfile );
}
// Выбор адреса закончился
- тут производим запись в лог данных о текущем времени, данных пользователя и его корзину.
после:
Код
        if( in_array('CHECK_OUT_GET_SHIPPING_METHOD', $checkout_steps[$current_stage]) ) {   
        echo '<a name="CHECK_OUT_GET_SHIPPING_METHOD"></a>';
        echo $theme->fetch( 'checkout/get_shipping_method.tpl.php');
$theme->set('basket_html', '');
вставляем:
Код
// Мы на шаге выбора метода доставки
if ( $logfile = fopen ( $logfilename, 'a+' ) ) {
fwrite ( $logfile, date ( "d-m-Y H:i:s") );
fwrite ( $logfile, "  -  Shipping. UserId = " );
fwrite ( $logfile, (int)$auth['user_id'] . " : " . getUserName ( (int)$auth['user_id'] ). "\n" );
for($i = 0; $i < $cart["idx"]; $i++) {
fwrite ( $logfile, "      " . $cart[$i]['quantity'] . " : " . getProductName ( $cart[$i]['product_id'] ). "\n" );
}
fwrite ( $logfile, "\n" );
fclose ( $logfile );
}
// Выбор метода доставки закончился
,
после кода:
Код
        if( in_array('CHECK_OUT_GET_PAYMENT_METHOD', $checkout_steps[$current_stage]) ) {   
        echo '<a name="CHECK_OUT_GET_PAYMENT_METHOD"></a>';

if(!empty( $paypal_api_payment_method_id ) && $paypalActive)
{
echo $theme->fetch('checkout/get_payment_method_paypal_ex.tpl.php');
}
else
{
echo $theme->fetch( 'checkout/get_payment_method.tpl.php');
}

$theme->set('basket_html', '');
вставляем:
Код
// Мы на шаге выбора метода оплаты
if ( $logfile = fopen ( $logfilename, 'a+' ) ) {
fwrite ( $logfile, date ( "d-m-Y H:i:s") );
fwrite ( $logfile, "  -  Paymed  . UserId = " );
fwrite ( $logfile, (int)$auth['user_id'] . " : " . getUserName ( (int)$auth['user_id'] ). "\n" );
for($i = 0; $i < $cart["idx"]; $i++) {
fwrite ( $logfile, "      " . $cart[$i]['quantity'] . " : " . getProductName ( $cart[$i]['product_id'] ). "\n" );
}
fwrite ( $logfile, "\n" );
fclose ( $logfile );
}
// Выбор метода оплаты закончился
после кода:
Код
        if( in_array('CHECK_OUT_GET_FINAL_CONFIRMATION', $checkout_steps[$current_stage]) ) {   
вставляем:
Код
// Мы на финальном шаге - подтверждение заказа
if ( $logfile = fopen ( $logfilename, 'a+' ) ) {
fwrite ( $logfile, date ( "d-m-Y H:i:s") );
fwrite ( $logfile, "  -  Final   . UserId = " );
fwrite ( $logfile, (int)$auth['user_id'] . " : " . getUserName ( (int)$auth['user_id'] ). "\n" );
for($i = 0; $i < $cart["idx"]; $i++) {
fwrite ( $logfile, "      " . $cart[$i]['quantity'] . " : " . getProductName ( $cart[$i]['product_id'] ). "\n" );
}
fwrite ( $logfile, "\n" );
fclose ( $logfile );
}
// Финальный шаг- подтверждение заказа
.

В приложении мой файл, для тех, кому лень ковыряться ;)

[вложение удалено Администратором]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отображение скидки на каждый товар в корзине.

Автор magic21

Ответов: 27
Просмотров: 4091
Последний ответ 03.10.2013, 10:30:19
от spsyper
возможность вывода в корзине свойств товара

Автор aleks_yug

Ответов: 102
Просмотров: 37815
Последний ответ 15.02.2013, 11:04:26
от kpk17
Последние добавленные товары в мини корзине

Автор Sonio

Ответов: 0
Просмотров: 1053
Последний ответ 06.12.2012, 16:42:02
от Sonio
[Решено] [Joomla 1.5.x] [VM 1.1.x] Изображение товара в корзине.

Автор urodoff

Ответов: 103
Просмотров: 25901
Последний ответ 14.11.2012, 00:28:14
от kreolka_8
Изменять количество товаров в мини-корзине VM 1.1.9

Автор bipw

Ответов: 1
Просмотров: 1774
Последний ответ 27.08.2012, 22:13:44
от TyT