Урл инет магазина и кнопка добавления в корзину

#
Урл инет магазина и кнопка добавления в корзину
Здраствуйте, у меня следующая просьба и вопрос.

1. Думаю не я один уже сталкивался с тем что поменять урл магазина, довольно тяготное дело, как минимум надо все xsl шаблоны просмотреть и shop сменить на нужное, могли бы вы последующем релизе исправить это не удобство, что бы можно было без проблем менять урл только в структуре сайта, вы конечно же можете сказать, что какая разница, но вот я например сейчас делаю 2 сайта, по продаже одного и того же товара (сайты почти полностью эдентичны, не по дизайну конечно же), и разные урлы было бы очень полезно сделать, что бы как можно больше обезапасить сайт от бана.

2. В магазине при нажати на кнопку добавления в корзину, товар добавляется в корзину и сразу же начинается оформление заказа, можно ли сделать так, что бы не начиналось оформление, а просто товар добавлялся и отображался в "малой" корзине, что бы юзеры без проблем могли дальше выбирать товары? Если можно, то как?
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
#
Re: Урл инет магазина и кнопка добавления в корзину
1. этот вопрос уже учтен. Внесены все необходимые исправления в XSL-шаблоны для интернет-магазина.

2. думаю, что можно реализовать. Попробуйте в типовой динамической странице для корзины после того, как был добавлен товар не показывать корзину, как это реализовано по умолчанию методом ShowCart и не показывать форму регистрации(метод ShowSiteUserRegistartion), а отображать интернет-магазин. Например:

if (to_str($_GET['action']) == 'add')
{
$GLOBALS['shops']->ShowShop($shop_id, 'МагазинКаталогТоваров');
}
else
{
$GLOBALS['shops']->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_cart']), to_str($_REQUEST['shop_coupon_text']));
   /* Выводим форму быстрой регистрации (регистрация для пользователей) */
   $GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
   $SiteUsers->ShowSiteUserRegistartion($site_users_id,
   to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
#
Re: Урл инет магазина и кнопка добавления в корзину
А можно по подробнее, куда и какие нужно внести изменения, чтобы при нажатии кнопки "В корзину" товар добавлялся в корзину, а страница выбора товара оставалась та же?
#
Re: Урл инет магазина и кнопка добавления в корзину
phantik, оставить страницу выбора той же не получится(для этого необходимо использовать технологию AJAX). Способ, предложенный выше, добавит товар в корзину и отобразит пользователю главную страницу магазина. Приведенный код нужно вставит в типовую динамическую страницу для корзины(в код этой страницы). В сообщении указано:
natalya писал(а):
в типовой динамической странице для корзины
#
Re: Урл инет магазина и кнопка добавления в корзину
Добавлял, но эффект никакой, т.е. все равно переходит в корзину
#
Re: Урл инет магазина и кнопка добавления в корзину
Приведите полностью получившийся код тип. дин. страницы.
#
Re: Урл инет магазина и кнопка добавления в корзину
Модуль "Пользователи сайта" отключен.

<?
/* Создаем экземпляр класса магазина (при создании устанавливаем флаг необходимости очитстки кукисов в истину) */
$GLOBALS['shops'] = new shop(true);

/* Идентификатор интернет-магазина */
$shop_id = to_int($GLOBALS['LA']['shop_id']);

if (class_exists("SiteUsers"))
{
   /* Определяем идентификатор текущего пользователя */
   $SiteUsers = new SiteUsers();
   $site_user = $SiteUsers->GetCurrentSiteUser();
}
else
{
   $site_user = false;
}

/* Запускаем сессию, если пользователь не авторизирован и пришли данные для регистрации */
if ($site_user == 0 && isset($_POST['site_users_login'])
&& isset($_POST['site_users_password'])
&& isset($_POST['site_users_email'])
&& !isset($_SESSION))
{
   session_start();
}

$GLOBALS['external_propertys'] = array();

//print_r($_POST);

/* Необходимо перенести товары из кукисов в сессию и очистить кукисы */
if (isset($_POST['step_1_1a']) && !class_exists("SiteUsers"))
{
   //echo "1";
   # Если сессия не была запущена - стартуем ее
   if (!isset($_SESSION))
   {
      //echo "2";
      @session_start();
   }
   
   /* Читаем массив из кукисов */
   if (!empty($_COOKIE['CART']))
   {
      $session_cart = array();
      $postpone_items = array();

      $cart_from_cookies = @unserialize(to_str($_COOKIE['CART']));

      $items = to_array($cart_from_cookies[$shop_id]);

      foreach ($items as $key => $value)
      {
         if ($value['shop_cart_flag_postpone'])
         {
            /* Оставляем товар в корзине кукисов */
            $postpone_items[$key] = $value;
         }
         else
         {
            /* Добавляем в корзину сессии */
            $session_cart[$key] = $value;
         }
      }
      /* Добавляем данные в сессию */
      $_SESSION['CART'][$shop_id] = $session_cart;

      /* Если массив с отложенными товарами не пуст - сохраняем его в кукисы */
      if (count($postpone_items) > 0)
      {
         $cart_from_cookies[$shop_id] = $postpone_items;
      }
      else
      {
         /* Удалям целиком кукисы карзины для данного магазина */
         unset($cart_from_cookies[$shop_id]);
      }
      
      /* Сохраняем данные */
      $cookie_value = serialize($cart_from_cookies);
      setcookie('CART', $cookie_value, time() + 31536000, '/');
      $_COOKIE['CART'] = $cookie_value;
   }
}

/* Переданы данные для авторизации */
if (isset($_POST['step1_1']))
{
   /* Проверяем правильность введенных данных */
   $site_user = $SiteUsers->ValidUser(to_str($_POST['login']), to_str($_POST['password']));

   /* Проверяем подтвердил ли пользователь регистрацию */
   if ($site_user == -1)
   {
      $GLOBALS['external_propertys']['error'] = -5; /* Вы не активировали свой аккаунт. По указанному адресу отправлено письмо с инструкцией об активации. После активации Вы можете авторизироваться. */
   }
   elseif ($site_user > 0)
   {
      # Пользователь ввел верные данные, авторизируем его
      $SiteUsers->SetCurrentSiteUser($site_user);
   }
   else
   {
      /* Неверные данные пользователя */
      $GLOBALS['external_propertys']['error'] = -6;
   }
}

/* добавление товара в корзину */
if (to_str($_GET['action']) == 'add')
{
   $param = array();
   $param['shop_id'] = $shop_id;
   $param['item_id'] = to_int($_GET['item_id']);
   $param['user_id'] = $site_user;
   
   // Число товаров передаем, если посетитеь кладет в корзину больше одного товара
   if (to_int($_GET['count']) > 0)
   {
      $param['count'] = to_int($_GET['count']);
   }
   
   /* Добавляем товар в корзину */
   $GLOBALS['shops']->AddIntoCart($param);
$GLOBALS['shops']->ShowShop($shop_id, 'МагазинКаталогТоваров');
}
else
{
$GLOBALS['shops']->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_cart']), to_str($_REQUEST['shop_coupon_text']));
   /* Выводим форму быстрой регистрации (регистрация для пользователей) */
   $GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
   $SiteUsers->ShowSiteUserRegistartion($site_users_id,
   to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}

/* Удаляение товара из корзины */
if (to_str($_GET['action']) == 'delete_item')
{
   $param = array();
   $param['shop_id'] = $shop_id;
   $param['item_id'] = to_int($_GET['item_id']);

   /* Проверяем наличие пользователя */
   if ($site_user != 0)
   {
      $param['user_id'] = $site_user;
   }

   $GLOBALS['shops']->DeleteCart($param);
}

/* Пересчет товара в корзине */
if (isset($_POST['recount']))
{
   $param = array();

   foreach ($_POST as $key => $value)
   {
      $param['item_id'] = $key;

      /* Получаем идентификатор записи в корзине по идентификатору пользователя и товара */
      $cart_id = $GLOBALS['shops']->GetItemFromCart($shop_id, $site_user, $param['item_id']);

      $param['cart_id'] = to_int($cart_id['shop_cart_id']);
      $param['user_id'] = $site_user;
      $param['shop_id'] = $shop_id;
      $param['count'] = to_int($value);

      /* Если установлен флажок - делаем товар отложенным */
      $param['postpone'] = !empty($_POST['flag_postpone'.$key]) ? 1 : 0;

      /* Если количество = 0 - удаляем из корзины */
      if ($param['count'] == 0)
      {
         $GLOBALS['shops']->DeleteCart($param);
      }
      else
      {
         $GLOBALS['shops']->UpdateCart($param);
      }
   }
}
?>
#
Re: Урл инет магазина и кнопка добавления в корзинуelse
phantik, Вы код добавили в настройки тип. дин. страницы корзины, а нужно в саму страницу. Вместо:
else
   {
      /* Очищаем сессию */
      if (isset($_SESSION['CART'][$shop_id]))
      {
         unset($_SESSION['CART'][$shop_id]);
      }
   
      /* Отображаем корзину */
      $GLOBALS['shops']->ShowCart($shop_id, $site_users_id,
      to_str($GLOBALS['LA']['xsl_cart']), to_str($_REQUEST['shop_coupon_text']));

   }
}
elseif ($site_users_id === 0)
{
   /* Выводим корзину */
$GLOBALS['shops']->ShowCart($shop_id, $site_users_id,
   to_str($GLOBALS['LA']['xsl_cart']), to_str($_REQUEST['shop_coupon_text']));

   /* Выводим форму быстрой регистрации (регистрация для пользователей) */
   $GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
   $SiteUsers->ShowSiteUserRegistartion($site_users_id,
   to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);

}

используйте:
else
   {
      /* Очищаем сессию */
      if (isset($_SESSION['CART'][$shop_id]))
      {
         unset($_SESSION['CART'][$shop_id]);
      }
   
      /* Отображаем корзину */
if (to_str($_GET['action']) == 'add')
{
$GLOBALS['shops']->ShowShop($shop_id, 'МагазинКаталогТоваров');
}
else
{
      $GLOBALS['shops']->ShowCart($shop_id, $site_users_id,
      to_str($GLOBALS['LA']['xsl_cart']), to_str($_REQUEST['shop_coupon_text']));
}

   }
}
elseif ($site_users_id === 0)
{

if (to_str($_GET['action']) == 'add')
{
$GLOBALS['shops']->ShowShop($shop_id, 'МагазинКаталогТоваров');
}
else
{
$GLOBALS['shops']->ShowCart($shop_id, $site_users_id, to_str($GLOBALS['LA']['xsl_cart']), to_str($_REQUEST['shop_coupon_text']));
   /* Выводим форму быстрой регистрации (регистрация для пользователей) */
   $GLOBALS['external_propertys']['ПоказатьАвторизацию'] = 'true';
   $SiteUsers->ShowSiteUserRegistartion($site_users_id,
   to_str($GLOBALS['LA']['xsl_quick_registration']), $GLOBALS['external_propertys']);
}
}
#
Re: Урл инет магазина и кнопка добавления в корзину
Спасибо, все замечательно, работает. Только при отображении интернет магазина почемута шаблон страницы идет "Основной", а не который должен быть. Как это исправить??
#
Re: Урл инет магазина и кнопка добавления в корзину
phantik, т.е. в "Структуре сайта" в узле "Интернет-магазин" выбран Ваш шаблон? А реально используется "Основной"? Сообщите данные доступа на адрес службы тех. поддержки.
Авторизация