Оформление заказа в корзине в один шаг v.6

#
Re: Оформление заказа в корзине в один шаг v.6
Попали не туда куда нужно, выходит я не туда их вотнул...но вот если Ваш код из первого сообщения чуть поправить

с
$_SESSION['hostcmsOrder']['address'] = strval(Core_Array::getPost('address'));
$_SESSION['hostcmsOrder']['surname'] = strval(Core_Array::getPost('surname'));


на
$_SESSION['hostcmsOrder']['address'] = Core_Str::stripTags(strval(Core_Array::getPost('address')));
$_SESSION['hostcmsOrder']['surname'] = Core_Str::stripTags(strval(Core_Array::getPost('surname')));


то ошибка уходит, может все же связанно что код с первого сообщения для более поздней версий.

Боюсь попросить, не подскажите как "Проверьте правильность выбранных XSL в настройках структуры. " проверяется? В XLS-шаблоны - но создавать там или править существующий..

Платное решение видел в теме, спасибо за предложение но нам пока рано
#
Re: Оформление заказа в корзине в один шаг v.6
Допилил корзину в 1 шаг, одна проблема, как на странице корзины в данном случае отобразить и способы доставки(их нет в XML) а также способы оплаты. Об этих моментах в теме вообще не сказано, в 4 шаг переносится форма заполнения данных пользователем, а остальная информация не выводится
#
Re: Оформление заказа в корзине в один шаг v.6
Прошла все шаги со всеми ошибками. Для текущей версии рабочий вариант:
В типовой для четвертого шага ставим:

// Окончание оформления заказа
   case 4:
      $_SESSION['last_order_id'] = 0;

      $_SESSION['hostcmsOrder']['shop_country_id'] = intval(Core_Array::getPost('shop_country_id', 0));
      $_SESSION['hostcmsOrder']['shop_country_location_id'] = intval(Core_Array::getPost('shop_country_location_id', 0));
      $_SESSION['hostcmsOrder']['shop_country_location_city_id'] = intval(Core_Array::getPost('shop_country_location_city_id', 0));
      $_SESSION['hostcmsOrder']['shop_country_location_city_area_id'] = intval(Core_Array::getPost('shop_country_location_city_area_id', 0));
      $_SESSION['hostcmsOrder']['postcode'] = Core_Str::stripTags(strval(Core_Array::getPost('postcode')));
      $_SESSION['hostcmsOrder']['address'] = Core_Str::stripTags(strval(Core_Array::getPost('address')));
      $_SESSION['hostcmsOrder']['surname'] = Core_Str::stripTags(strval(Core_Array::getPost('surname')));
      $_SESSION['hostcmsOrder']['name'] = Core_Str::stripTags(strval(Core_Array::getPost('name')));
      $_SESSION['hostcmsOrder']['patronymic'] = Core_Str::stripTags(strval(Core_Array::getPost('patronymic')));
      $_SESSION['hostcmsOrder']['company'] = Core_Str::stripTags(strval(Core_Array::getPost('company')));
      $_SESSION['hostcmsOrder']['phone'] = Core_Str::stripTags(strval(Core_Array::getPost('phone')));
      $_SESSION['hostcmsOrder']['fax'] = Core_Str::stripTags(strval(Core_Array::getPost('fax')));
      $_SESSION['hostcmsOrder']['email'] = Core_Str::stripTags(strval(Core_Array::getPost('email')));
      $_SESSION['hostcmsOrder']['description'] = Core_Str::stripTags(strval(Core_Array::getPost('description')));
      $_SESSION['hostcmsOrder']['tin'] = Core_Str::stripTags(strval(Core_Array::getPost('tin')));
      $_SESSION['hostcmsOrder']['kpp'] = Core_Str::stripTags(strval(Core_Array::getPost('kpp')));
      
      
      
      // Проверяем наличие товара в корзины
      $Shop_Cart_Controller = Shop_Cart_Controller::instance();
      $aShop_Cart = $Shop_Cart_Controller->getAll($oShop);

      // А корзине есть товары или заполнен номер последнего заказа
      if (count($aShop_Cart) || Core_Array::get($_SESSION, 'last_order_id'))
      {
         $shop_payment_system_id = $_SESSION['hostcmsOrder']['shop_payment_system_id'] = 26;//id используемой платежной системы

         // Оплата бонусами с лицевого счета
         $_SESSION['hostcmsOrder']['partial_payment_by_personal_account'] = Core_Array::getPost('partial_payment_by_personal_account', 0);

       // Если выбрана платежная система
      if ($_SESSION['hostcmsOrder']['shop_payment_system_id'])
      {

         Shop_Payment_System_Handler::factory(
            Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
         )
         ->orderParams($_SESSION['hostcmsOrder'])
         ->execute();
      }
      else
      {
         ?><h1>Ошибка! Не указана ни одна платежная система.</h1><?php
      }
   break;   
         
         // Иначе не прерываем и выводим последний шаг - обычная корзина
         break;
      }
   default:
      $xslName = Core_Array::get(Core_Page::instance()->libParams, 'cartXsl');

      $Shop_Cart_Controller_Show
         ->couponText(
            Core_Str::stripTags(Core_Array::get(Core_Array::get($_SESSION, 'hostcmsOrder', array()), 'coupon_text'))
         )
         ->xsl(
            Core_Entity::factory('Xsl')->getByName($xslName)
         )
         ->show();
}

и вуа ля.
Kvasha.studio
#
Re: Оформление заказа в корзине в один шаг v.6
После выполнения кода
Shop_Payment_System_Handler::factory(
            Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
         )
         ->orderParams($_SESSION['hostcmsOrder'])
         ->execute();

Есть ли возможность получить номер заказа - (id  из  таблицы shop_orders )

#
Re: Оформление заказа в корзине в один шаг v.6
После выполнения ->execute();  id будет в $_SESSION['last_order_id']
«Не выходи из комнаты, не совершай ошибку…»
Модератор
#
Re: Оформление заказа в корзине в один шаг v.6
alexjn,
сам сформированный объект заказа вы можете получить методом getShopOrder().

$oShop_Payment_System_Handler = Shop_Payment_System_Handler::factory(
            Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
         );

$oShop_Payment_System_Handler
         ->orderParams($_SESSION['hostcmsOrder'])
         ->execute();

$oShop_Order = $oShop_Payment_System_Handler->getShopOrder();
Авторизация