Как сократить процесс формирования заказа до 1 шага?

#
Как сократить процесс формирования заказа до 1 шага?
В общем, задача такая:

На сайте есть каталог товаров. Регистрации нет, доставки нет, оплаты нет.

Нужно, чтобы пользователь только заполнял ФИО, телефон и комментарий к заказу и нажимал "отправить заказ".
То есть, надо убрать все промежуточные шаги по заполнению формы заказа.
Модератор
#
Re: Как сократить процесс формирования заказа до 1 шага?
Воспользуйтесь поиском по сайту.
#
Re: Как сократить процесс формирования заказа до 1 шага?
Спасибо за совет

Я решил написать код создания заказа и рассылки писем сам в ТДС "магаз-корзина" в обработчике


/* AJAX добавление товара в корзину */
if (isset($_GET['ajax_add_item_id']))


чтобы заказ оформлялся сразу по нажатию кнопки "оформить заказ" ("Купить"



/* AJAX добавление товара в корзину */
if (isset($_GET['ajax_add_item_id']))
{
   $fio1 = substr(quote_smart(to_str($_GET['fio'])), 0, 255);
   $phone1 = substr(quote_smart(to_str($_GET['phone'])), 0, 255);
   $email1 = substr(quote_smart(to_str($_GET['email'])), 0, 255);
   $item_id1 = to_int($_GET['ajax_add_item_id']);
   
   $item_row1 = $shop->getItem($item_id1);
   
   if (!$item_row1/* || $fio1 == '' || $phone1 == '' || $email1 == ''*/) {
      // Отображаем неудачу
      $JsHttpRequest = new JsHttpRequest('UTF-8');

      ob_start();      
      if (!$item_row1) {
         echo "item_id";
      } else if ($fio1 == '') {
         echo "fio";
      } else if ($phone1 == '') {
         echo "phone";
      } else if ($email1 == '') {
         echo "email";
      }
      $error_html = ob_get_clean();
      
      $GLOBALS['_RESULT'] = array('cart' => $error_html);
      echo $JsHttpRequest->LOADER;
      exit();
   }
   
   // Create order in db
   $param = array();
   $param['shop_shops_id'] = $shop_id;
   $param['shop_system_of_pay_id'] = 16;
   $param['shop_order_users_name'] = $fio1;
   $param['shop_order_users_email'] = $email1;
   $param['phone'] = $phone1;
   $param['description'] = quote_smart(to_str($_GET['add_info']));
   $param['shop_order_ip'] = '127.0.0.1';
   /*$param['system_information'] = 'Дополнительная инфромация - system_information';*/
   $order_id1 = $shop->InsertOrder($param);
   
   // Add item to order
   $param = array();
   $param['shop_order_id'] = $order_id1;
   $param['shop_items_catalog_item_id'] = $item_id1;
   $param['shop_order_items_quantity'] = 1;
   $param['shop_order_items_price'] = $item_row1['shop_items_catalog_price'];
   $param['shop_order_items_name'] = $item_row1['shop_items_catalog_name'];
   $param['shop_order_items_type'] = 0;
   $shop->InsertOrderItems($param);
   
   // Send email to admin and client
   $param = array();
   $param['admin-content-type'] = 'html';
   $param['user-content-type'] = 'html';
   
   $shop->SendMailAboutOrder($shop_id, $order_id1, $site_users_id, 'ПисьмоАдминистратору', 'ПисьмоПользователю', $email1, $param);
   
   ///////////////////////////////////////////////
   
   // Отображаем результат "ок"
   $JsHttpRequest = new JsHttpRequest('UTF-8');

   ob_start();
      echo "ok";
   $little_cart_html = ob_get_clean();

   $GLOBALS['_RESULT'] = array('cart' => $little_cart_html);

   echo $JsHttpRequest->LOADER;
   exit();
}




И вроде, всё отлично. Заказ пишется в базу. Письма рассылаются админам и пользователям.

Одно но: заказы почему-то дублируются(троятся и четверятся тоже) в базе, и письма приходят соответственно приходят тоже по несколько раз. Причём бывает, что дубликаты появляются сразу вместе с основным заказом. А бывает так, что с некоторым интервалом.

Что это может быть такое??
#
Re: Как сократить процесс формирования заказа до 1 шага?
m66 писал(а):
чтобы заказ оформлялся сразу по нажатию кнопки «оформить заказ»
- неожиданное решение, ибо в этом случае у вас заказ сможет содержать только один товар. Не совсем удобно: покупатель один, хочет купить много товаров хороших и разных в одном заказе, а у него на каждое перемещение очередного товара в корзину создатся отдельный заказ, а не один общий.
m66 писал(а):
заказы почему-то дублируются(троятся и четверятся тоже) в базе
- на основании чего сделан вывод, что это именно дубли одного заказа, а не разные заказы? Что у них совпадает? Номера, товары?
Псмотрите тему: http://www.hostcms.ru/forums/17/3056/, седьмое сообщение.
#
Re: Как сократить процесс формирования заказа до 1 шага?
natalya писал(а):
 — неожиданное решение, ибо в этом случае у вас заказ сможет содержать только один товар. Не совсем удобно: покупатель один, хочет купить много товаров хороших и разных в одном заказе, а у него на каждое перемещение очередного товара в корзину создатся отдельный заказ, а не один общий.
m66 писал(а):


Да, я тоже удивлялся. Но заказчик всегда прав, и ему именно это и надо: "Никакой корзины!!" ))

natalya писал(а):
— на основании чего сделан вывод, что это именно дубли одного заказа, а не разные заказы? Что у них совпадает? Номера, товары?


  1. ID заказов разные
  2. В заказах один и тот же товар.
  3. Время появления: сразу или же через некоторое время после моего заказа
  4. В данный момент сайтом пользуюсь только я


На все остальные поля заказа у меня пока стоят заглушки. Мыло везде моё, так что все заказы идут ко мне
#
Re: Как сократить процесс формирования заказа до 1 шага?
Сообщите адрес страницы с товаром, а также данные доступа к разделу администрирования на адрес службы поддержки.
#
Re: Как сократить процесс формирования заказа до 1 шага?
Довёл до ума и отправил
Авторизация