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

amoRNizam

  • Новичок
  • 12
  • 0 / 0
Здравствуйте. Очень надеюсь на помощь.
Чтобы сократить шаги в корзине и при этом, чтобы осталась возможность изменить количество товара и удаление товара из корзины, решил из первого шага, где реализована возможность редактирования количества и удаления, из cart.php перенести во второй шаг в checkout.php, чтобы на этом шаге можно было и в таблице количество товара изменить и заполнить данные по клиенту. Чтобы вся покупка зинимала три шага.
В результате всё редактируется, но при нажатии кнопки "перерасчитать" страница обновляется и остается то количество товара которое было при добавлении товара в корзину, удаление из корзины соответственно тоже не работает. К сожалению я не знаю как сдалать, чтобы это работало.
Может быть есть другой не очень сложный способ реализовать такую задачу?
*

nevigen

  • Moderator
  • 9573
  • 822 / 17
  • http://n*****n.com
Re: Перерасчет в корзине JoomShopping
« Ответ #1 : 19.09.2016, 13:57:09 »
может это ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

amoRNizam

  • Новичок
  • 12
  • 0 / 0
Re: Перерасчет в корзине JoomShopping
« Ответ #2 : 19.09.2016, 14:27:42 »
может это ?
Да, модуль подошел бы, но он платный. Мне нельзя расходовать ресурсы организации, а из своего кошелька-для меня дорого.
*

kit2m2

  • Завсегдатай
  • 1451
  • 128 / 1
Re: Перерасчет в корзине JoomShopping
« Ответ #3 : 19.09.2016, 16:08:40 »
Что за организация, что не может выделить 3700 на удобства для клиентов, причем эти удобства выльются ей в дополнительные продажи. Не бесплатным товаром же организация торгует...  ;)
*

amoRNizam

  • Новичок
  • 12
  • 0 / 0
Re: Перерасчет в корзине JoomShopping
« Ответ #4 : 19.09.2016, 16:17:51 »
Что за организация, что не может выделить 3700 на удобства для клиентов, причем эти удобства выльются ей в дополнительные продажи. Не бесплатным товаром же организация торгует...  ;)
Дело в том, что я 1с программист и в мои обязанности входит еще и занятие сайтом. Второе для меня сложновато пока, но задачу поставили, надо выполнить. А если я скажу начальнику "не могу сделать", давайте купим, то не хорошо на мне скажется. Такие вот дела.
*

dmitry_stas

  • Легенда
  • 12252
  • 1162 / 7
Re: Перерасчет в корзине JoomShopping
« Ответ #5 : 19.09.2016, 16:26:36 »
для меня сложновато пока, но задачу поставили, надо выполнить
была тема где то, где хаками ядра JoomShopping пытались колхозить, меняли контроллер checkout. результат не помню, получилось в итоге или нет, но можете поискать попробовать.

не хорошо на мне скажется. Такие вот дела.
не хорошо - это когда в обязанности программиста 1С входит еще и занятие сайтом. как возможный итог - и 1С заброшен, и сайт не сделан. и это стоит руководству объяснить сразу, а не потратить время впустую, а потом все равно сказать. такие вот дела :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kit2m2

  • Завсегдатай
  • 1451
  • 128 / 1
Re: Перерасчет в корзине JoomShopping
« Ответ #6 : 19.09.2016, 16:27:07 »
А не нужно говорить "Не могу сделать", нужно правильно обосновать покупку и тогда начальство само скажет - "Покупай". Я так всегда делаю, поэтому они считаю что я "всё могу"...  ;)
*

nevigen

  • Moderator
  • 9573
  • 822 / 17
  • http://n*****n.com
Re: Перерасчет в корзине JoomShopping
« Ответ #7 : 19.09.2016, 17:40:27 »
А если я скажу начальнику "не могу сделать", давайте купим, то не хорошо на мне скажется. Такие вот дела.
вам еще повезло, что Ваш начальник не дал Вам задание сделать из калины мерседес.
вообще я скажу вашему начальнику повезло :) такие исполнители это мечта :)
через пару лет даже сможет поручить написать ОС для своего офиса;) а херлитам ? вы же програмист?! :) или заставит написать систему учета работы на андроиде + иОСе и принудительно поставить на все устройства ваших сотрудников :)

П.С. сорри просто не сдержался. но по сути... делать не свойственные вещи не разумно. разве, что только в рамках обучения. и говорить что ты не можешь что-то делать это нормально :) не нормально браться за работу и не сделать ее :)

еси что смотрим костыли
интересно... чего я не лезу в 1С ? :)
« Последнее редактирование: 19.09.2016, 17:48:42 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

amoRNizam

  • Новичок
  • 12
  • 0 / 0
Re: Перерасчет в корзине JoomShopping
« Ответ #8 : 20.09.2016, 08:09:28 »
вам еще повезло, что Ваш начальник не дал Вам задание сделать из калины мерседес.
вообще я скажу вашему начальнику повезло :) такие исполнители это мечта :)
через пару лет даже сможет поручить написать ОС для своего офиса;) а херлитам ? вы же програмист?! :) или заставит написать систему учета работы на андроиде + иОСе и принудительно поставить на все устройства ваших сотрудников :)

П.С. сорри просто не сдержался. но по сути... делать не свойственные вещи не разумно. разве, что только в рамках обучения. и говорить что ты не можешь что-то делать это нормально :) не нормально браться за работу и не сделать ее :)

еси что смотрим костыли
интересно... чего я не лезу в 1С ? :)
Я с вами согласен, но мне и самому интересно этим заниматься. А начальству порой ничего не доказать, так как есть своё мнение неоспоримое.
Что если через iframe сделать на одной странице две(два шага), может получиться или не выйдет? И еще врядли во всех браузерах этот фрейм поддерживается.
« Последнее редактирование: 20.09.2016, 08:14:56 от amoRNizam »
*

nevigen

  • Moderator
  • 9573
  • 822 / 17
  • http://n*****n.com
Re: Перерасчет в корзине JoomShopping
« Ответ #9 : 20.09.2016, 08:11:40 »
ну решение же есть ... уже описано...
пробуйте и развивайте в тех аспектах которые вас не будут устраивать.
или вы хотите сами все сделать заново ? :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 12252
  • 1162 / 7
Re: Перерасчет в корзине JoomShopping
« Ответ #10 : 20.09.2016, 08:46:08 »
не понял зачем нужен ифрейм?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

amoRNizam

  • Новичок
  • 12
  • 0 / 0
Re: Перерасчет в корзине JoomShopping
« Ответ #11 : 20.09.2016, 10:48:43 »
ну решение же есть ... уже описано...
пробуйте и развивайте в тех аспектах которые вас не будут устраивать.
или вы хотите сами все сделать заново ? :)
Спасибо!! Сейчас попробую.
*

amoRNizam

  • Новичок
  • 12
  • 0 / 0
Re: Перерасчет в корзине JoomShopping
« Ответ #12 : 20.09.2016, 15:59:55 »
Я с вами согласен, но мне и самому интересно этим заниматься. А начальству порой ничего не доказать, так как есть своё мнение неоспоримое.
Что если через iframe сделать на одной странице две(два шага), может получиться или не выйдет? И еще врядли во всех браузерах этот фрейм поддерживается.
вам еще повезло, что Ваш начальник не дал Вам задание сделать из калины мерседес.
вообще я скажу вашему начальнику повезло :) такие исполнители это мечта :)
через пару лет даже сможет поручить написать ОС для своего офиса;) а херлитам ? вы же програмист?! :) или заставит написать систему учета работы на андроиде + иОСе и принудительно поставить на все устройства ваших сотрудников :)

П.С. сорри просто не сдержался. но по сути... делать не свойственные вещи не разумно. разве, что только в рамках обучения. и говорить что ты не можешь что-то делать это нормально :) не нормально браться за работу и не сделать ее :)

еси что смотрим костыли
интересно... чего я не лезу в 1С ? :)
Сделал всё, как там описывалось, но не работает. Из корзины по кнопке далее кидает сразу на 4 шаг и там пустая страница.
*

nevigen

  • Moderator
  • 9573
  • 822 / 17
  • http://n*****n.com
Re: Перерасчет в корзине JoomShopping
« Ответ #13 : 20.09.2016, 16:55:29 »
включите ошибки.
чтобы посмотреть что выдает на "пустой" странице.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

amoRNizam

  • Новичок
  • 12
  • 0 / 0
Re: Перерасчет в корзине JoomShopping
« Ответ #14 : 21.09.2016, 09:41:01 »
включите ошибки.
чтобы посмотреть что выдает на "пустой" странице.
Ошибок не возникает. Нашел почему на странице второго шага остальные шаги не отображались. Сейчас на втором шаге шаг2 и шаг5 отображаются(как мне и нужно), а вот когда жму по кнопке подтвердить заказ (кнопка из пятого шага), то открывается пустая страница пятого шага, а пустая она от того, что function step5(){} вырезана согласно инструкции. Где то прописан редирект со второго шага на пятый. Но пока не могу разобраться.
Прилагаю код файла checkout.php , может быть вы подскажете где эта сложность.
Код
<?php
/**
* @version      4.7.0 10.08.2014
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/

defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.controller');
include_once(JPATH_COMPONENT_SITE."/payments/payment.php");

class JshoppingControllerCheckout extends JControllerLegacy{
   
    function __construct($config = array()){
        parent::__construct($config);
        JPluginHelper::importPlugin('jshoppingcheckout');
        JPluginHelper::importPlugin('jshoppingorder');
        JDispatcher::getInstance()->trigger('onConstructJshoppingControllerCheckout', array(&$this));
    }
   
    function display($cachable = false, $urlparams = false){
        $this->step2();
    }
   
    function step2(){
        $checkout = JSFactory::getModel('checkout', 'jshop');
        $checkout->checkStep(2);
        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onLoadCheckoutStep2', array());
       
        $session = JFactory::getSession();
        $user = JFactory::getUser();
        $jshopConfig = JSFactory::getConfig();
        $country = JSFactory::getTable('country', 'jshop');
       
        $checkLogin = JRequest::getInt('check_login');
        if ($checkLogin){
            $session->set("show_pay_without_reg", 1);
            checkUserLogin();
        }

        appendPathWay(_JSHOP_CHECKOUT_ADDRESS);
        $seo = JSFactory::getTable("seo", "jshop");
        $seodata = $seo->loadData("checkout-address");
        if ($seodata->title==""){
            $seodata->title = _JSHOP_CHECKOUT_ADDRESS;
        }
        setMetaData($seodata->title, $seodata->keyword, $seodata->description);
       
        $cart = JSFactory::getModel('cart', 'jshop');
        $cart->load();
        $cart->getSum();

        $adv_user = JSFactory::getUser();
       
        $adv_user->birthday = getDisplayDate($adv_user->birthday, $jshopConfig->field_birthday_format);
        $adv_user->d_birthday = getDisplayDate($adv_user->d_birthday, $jshopConfig->field_birthday_format);
       
        $tmp_fields = $jshopConfig->getListFieldsRegister();
        $config_fields = $tmp_fields['address'];
        $count_filed_delivery = $jshopConfig->getEnableDeliveryFiledRegistration('address');

        $checkout_navigator = $this->_showCheckoutNavigation(2);
        if ($jshopConfig->show_cart_all_step_checkout){
            $small_cart = $this->_showSmallCart(2);
        }else{
            $small_cart = '';
        }

        $view_name = "checkout";
        $view_config = array("template_path"=>$jshopConfig->template_path.$jshopConfig->template."/".$view_name);
        $view = $this->getView($view_name, getDocumentType(), '', $view_config);
        $view->setLayout("adress");
        $view->assign('select', $jshopConfig->user_field_title);
       
        if (!$adv_user->country) $adv_user->country = $jshopConfig->default_country;
        if (!$adv_user->d_country) $adv_user->d_country = $jshopConfig->default_country;

        $option_country[] = JHTML::_('select.option',  '0', _JSHOP_REG_SELECT, 'country_id', 'name' );
        $option_countryes = array_merge($option_country, $country->getAllCountries());
        $select_countries = JHTML::_('select.genericlist', $option_countryes, 'country', 'class = "inputbox" size = "1"','country_id', 'name', $adv_user->country );
        $select_d_countries = JHTML::_('select.genericlist', $option_countryes, 'd_country', 'class = "inputbox" size = "1"','country_id', 'name', $adv_user->d_country);

        foreach($jshopConfig->user_field_title as $key => $value) {
            $option_title[] = JHTML::_('select.option', $key, $value, 'title_id', 'title_name');
        }
        $select_titles = JHTML::_('select.genericlist', $option_title, 'title', 'class = "inputbox"','title_id', 'title_name', $adv_user->title);           
        $select_d_titles = JHTML::_('select.genericlist', $option_title, 'd_title', 'class = "inputbox"','title_id', 'title_name', $adv_user->d_title);
       
        $client_types = array();
        foreach ($jshopConfig->user_field_client_type as $key => $value) {
            $client_types[] = JHTML::_('select.option', $key, $value, 'id', 'name' );
        }
        $select_client_types = JHTML::_('select.genericlist', $client_types,'client_type','class = "inputbox" onchange="showHideFieldFirm(this.value)"','id','name', $adv_user->client_type);
       
        filterHTMLSafe( $adv_user, ENT_QUOTES);

if ($config_fields['birthday']['display'] || $config_fields['d_birthday']['display']){
            JHTML::_('behavior.calendar');
        }
        $view->assign('config', $jshopConfig);
        $view->assign('select_countries', $select_countries);
        $view->assign('select_d_countries', $select_d_countries);
        $view->assign('select_titles', $select_titles);
        $view->assign('select_d_titles', $select_d_titles);
        $view->assign('select_client_types', $select_client_types);
        $view->assign('live_path', JURI::base());
        $view->assign('config_fields', $config_fields);
        $view->assign('count_filed_delivery', $count_filed_delivery);
        $view->assign('user', $adv_user);
        $view->assign('delivery_adress', $adv_user->delivery_adress);
        $view->assign('checkout_navigator', $checkout_navigator);
        $view->assign('small_cart', $small_cart);
        $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=checkout&task=step2save', 0, 0, $jshopConfig->use_ssl));
        $dispatcher->trigger('onBeforeDisplayCheckoutStep2View', array(&$view));
        $view->display();
//начало шага 5
        $checkout = JSFactory::getModel('checkout', 'jshop');
        //$checkout->checkStep(5);
        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onLoadCheckoutStep5', array() );

        appendPathWay(_JSHOP_CHECKOUT_PREVIEW);
        $seo = JSFactory::getTable("seo", "jshop");
        $seodata = $seo->loadData("checkout-preview");
        if ($seodata->title==""){
            $seodata->title = _JSHOP_CHECKOUT_PREVIEW;
        }
        setMetaData($seodata->title, $seodata->keyword, $seodata->description);

        $cart = JSFactory::getModel('cart', 'jshop');
        $cart->load();

        $session = JFactory::getSession();
        $jshopConfig = JSFactory::getConfig();
        $user = JFactory::getUser();
        $adv_user = JSFactory::getUser();

        $sh_method = JSFactory::getTable('shippingMethod', 'jshop');
        $shipping_method_id = $cart->getShippingId();
        $sh_method->load($shipping_method_id);
       
        $sh_mt_pr = JSFactory::getTable('shippingMethodPrice', 'jshop');
        $sh_mt_pr->load($cart->getShippingPrId());
        if ($jshopConfig->show_delivery_time_checkout){
            $deliverytimes = JSFactory::getAllDeliveryTime();
            $deliverytimes[0] = '';
            $delivery_time = $deliverytimes[$sh_mt_pr->delivery_times_id];
            if (!$delivery_time && $jshopConfig->delivery_order_depends_delivery_product){
                $delivery_time = $cart->getDelivery();
            }
        }else{
            $delivery_time = '';
        }
        if ($jshopConfig->show_delivery_date){
            $delivery_date = $cart->getDeliveryDate();
            if ($delivery_date){
                $delivery_date = formatdate($cart->getDeliveryDate());
            }
        }else{
            $delivery_date = '';
        }
       
        $pm_method = JSFactory::getTable('paymentMethod', 'jshop');
        $payment_method_id = $cart->getPaymentId();
$pm_method->load($payment_method_id);

        $lang = JSFactory::getLang();
        $field_country_name = $lang->get("name");
       
        $invoice_info = array();
        $country = JSFactory::getTable('country', 'jshop');
        $country->load($adv_user->country);
        $invoice_info['f_name'] = $adv_user->f_name;
        $invoice_info['l_name'] = $adv_user->l_name;
        $invoice_info['firma_name'] = $adv_user->firma_name;
        $invoice_info['street'] = $adv_user->street;
        $invoice_info['street_nr'] = $adv_user->street_nr;
        $invoice_info['zip'] = $adv_user->zip;
        $invoice_info['state'] = $adv_user->state;
        $invoice_info['city'] = $adv_user->city;
        $invoice_info['country'] = $country->$field_country_name;
        $invoice_info['home'] = $adv_user->home;
        $invoice_info['apartment'] = $adv_user->apartment;
       
if ($adv_user->delivery_adress){
            $country = JSFactory::getTable('country', 'jshop');
            $country->load($adv_user->d_country);
$delivery_info['f_name'] = $adv_user->d_f_name;
            $delivery_info['l_name'] = $adv_user->d_l_name;
$delivery_info['firma_name'] = $adv_user->d_firma_name;
$delivery_info['street'] = $adv_user->d_street;
            $delivery_info['street_nr'] = $adv_user->d_street_nr;
$delivery_info['zip'] = $adv_user->d_zip;
$delivery_info['state'] = $adv_user->d_state;
            $delivery_info['city'] = $adv_user->d_city;
$delivery_info['country'] = $country->$field_country_name;
            $delivery_info['home'] = $adv_user->d_home;
            $delivery_info['apartment'] = $adv_user->d_apartment;
} else {
            $delivery_info = $invoice_info;
}
       
        $no_return = 0;
        if ($jshopConfig->return_policy_for_product){
            $cart_products = array();
            foreach($cart->products as $products){
                $cart_products[] = $products['product_id'];
            }
            $cart_products = array_unique($cart_products);
            $_product_option = JSFactory::getTable('productOption', 'jshop');
            $list_no_return = $_product_option->getProductOptionList($cart_products, 'no_return');
            $no_return = intval(in_array('1', $list_no_return));
        }
        if ($jshopConfig->no_return_all){
            $no_return = 1;
        }
       
        $tmp_fields = $jshopConfig->getListFieldsRegister();
        $config_fields = $tmp_fields['address'];
        $count_filed_delivery = $jshopConfig->getEnableDeliveryFiledRegistration('address');
       
        $checkout_navigator = $this->_showCheckoutNavigation(5);
        $small_cart = $this->_showSmallCart(5);

$view_name = "checkout";
        $view_config = array("template_path"=>$jshopConfig->template_path.$jshopConfig->template."/".$view_name);
        $view = $this->getView($view_name, getDocumentType(), '', $view_config);
        $view->setLayout("previewfinish");
        $dispatcher->trigger('onBeforeDisplayCheckoutStep5', array(&$sh_method, &$pm_method, &$delivery_info, &$cart, &$view));
        $lang = JSFactory::getLang();
        $name = $lang->get("name");
        $sh_method->name = $sh_method->$name;
        $view->assign('no_return', $no_return);
$view->assign('sh_method', $sh_method );
$view->assign('payment_name', $pm_method->$name);
        $view->assign('delivery_info', $delivery_info);
$view->assign('invoice_info', $invoice_info);
        $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=checkout&task=step2save',0,0, $jshopConfig->use_ssl));       
        $view->assign('config', $jshopConfig);
        $view->assign('delivery_time', $delivery_time);
        $view->assign('delivery_date', $delivery_date);
        $view->assign('checkout_navigator', $checkout_navigator);
        $view->assign('small_cart', $small_cart);
$view->assign('count_filed_delivery', $count_filed_delivery);
        $dispatcher->trigger('onBeforeDisplayCheckoutStep5View', array(&$view));
    $view->display();
    }
   
    function step2save(){
        $checkout = JSFactory::getModel('checkout', 'jshop');
        $checkout->checkStep(2);

        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onLoadCheckoutStep2save', array());

        $cart = JSFactory::getModel('cart', 'jshop');
        $cart->load();
       
        $session = JFactory::getSession();
        $jshopConfig = JSFactory::getConfig();
        $post = JRequest::get('post');
        if (!count($post)){
            JError::raiseWarning("",_JSHOP_ERROR_DATA);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step2',0,1, $jshopConfig->use_ssl));
            return 0;
        }
        if ($post['birthday']) $post['birthday'] = getJsDateDB($post['birthday'], $jshopConfig->field_birthday_format);
        if ($post['d_birthday']) $post['d_birthday'] = getJsDateDB($post['d_birthday'], $jshopConfig->field_birthday_format);
        unset($post['user_id']);
        unset($post['usergroup_id']);
       
        $user = JFactory::getUser();
        $adv_user = JSFactory::getUser();
       
        $adv_user->bind($post);
        if (!$adv_user->check("address")){
            JError::raiseWarning("",$adv_user->getError());
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step2',0,1, $jshopConfig->use_ssl));
            return 0;
        }
        $dispatcher->trigger('onBeforeSaveCheckoutStep2', array(&$adv_user, &$user, &$cart));
       
        if (!$adv_user->store()){
            JError::raiseWarning(500,_JSHOP_REGWARN_ERROR_DATABASE);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step2',0,1, $jshopConfig->use_ssl));
            return 0;
        }

        if($user->id && !$jshopConfig->not_update_user_joomla){
            $user = clone(JFactory::getUser());
if ($adv_user->email){
$user->email = $adv_user->email;
}
if ($adv_user->f_name || $adv_user->l_name){
$user->name = $adv_user->f_name." ".$adv_user->l_name;
}
if ($adv_user->f_name || $adv_user->l_name || $adv_user->email){
$user->save();
}
        }
       
        setNextUpdatePrices();
       
$cart->setShippingId(0);
$cart->setShippingPrId(0);
$cart->setShippingPrice(0);
$cart->setPaymentId(0);
$cart->setPaymentParams("");
$cart->setPaymentPrice(0);

        $dispatcher->trigger('onAfterSaveCheckoutStep2', array(&$adv_user, &$user, &$cart));
       
        if ($jshopConfig->without_shipping && $jshopConfig->without_payment) {
            $checkout->setMaxStep(5);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5',0,1, $jshopConfig->use_ssl));
            return 0;
        }
       
        if ($jshopConfig->without_payment){
            $checkout->setMaxStep(4);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4',0,1,$jshopConfig->use_ssl));
            return 0;
        }

if ($jshopConfig->step_4_3){
            if ($jshopConfig->without_shipping){
                $checkout->setMaxStep(3);
                $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3',0,1,$jshopConfig->use_ssl));
                return 0;
            }
            $checkout->setMaxStep(4);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4',0,1,$jshopConfig->use_ssl));
        }else{
$checkout->setMaxStep(3);
$this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3',0,1,$jshopConfig->use_ssl));
}
//начало шага 5
$session = JFactory::getSession();
        $jshopConfig = JSFactory::getConfig();
        $db = JFactory::getDBO();
        $checkout = JSFactory::getModel('checkout', 'jshop');
        $mainframe = JFactory::getApplication();
        $checkout->checkStep(5);
$checkagb = JRequest::getVar('agb');
        $dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onLoadStep5save', array(&$checkagb));
       
        $lang = JSFactory::getLang();
        $user = JFactory::getUser();
        $adv_user = JSFactory::getUser();
        $cart = JSFactory::getModel('cart', 'jshop');
        $cart->load();
        $cart->setDisplayItem(1, 1);
        $cart->setDisplayFreeAttributes();

if ($jshopConfig->check_php_agb && $checkagb!='on'){
            JError::raiseWarning("", _JSHOP_ERROR_AGB);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5',0,1,$jshopConfig->use_ssl));
            return 0;
        }

        if (!$cart->checkListProductsQtyInStore()){
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=cart&task=view',1,1));
            return 0;
        }
if (!$session->get('checkcoupon')){
            if (!$cart->checkCoupon()){
                $cart->setRabatt(0,0,0);
                JError::raiseWarning("", _JSHOP_RABATT_NON_CORRECT);
                $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=cart&task=view',1,1));
                return 0;
            }
            $session->set('checkcoupon', 1);
        }

        $orderNumber = $jshopConfig->next_order_number;
        $jshopConfig->updateNextOrderNumber();

        $payment_method_id = $cart->getPaymentId();
        $pm_method = JSFactory::getTable('paymentMethod', 'jshop');
        $pm_method->load($payment_method_id);
$payment_method = $pm_method->payment_class;

        if ($jshopConfig->without_payment){
            $pm_method->payment_type = 1;
            $paymentSystemVerySimple = 1;
        }else{
            $paymentsysdata = $pm_method->getPaymentSystemData();
            $payment_system = $paymentsysdata->paymentSystem;
            if ($paymentsysdata->paymentSystemVerySimple){
                $paymentSystemVerySimple = 1;
            }
            if ($paymentsysdata->paymentSystemError){
                $cart->setPaymentParams("");
                JError::raiseWarning("",_JSHOP_ERROR_PAYMENT);
                $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3',0,1,$jshopConfig->use_ssl));
                return 0;
            }
        }

        $order = JSFactory::getTable('order', 'jshop');
        $arr_property = $order->getListFieldCopyUserToOrder();
        foreach($adv_user as $key => $value){
            if (in_array($key, $arr_property)){
                $order->$key = $value;
            }
        }

        $sh_mt_pr = JSFactory::getTable('shippingMethodPrice', 'jshop');
        $sh_mt_pr->load($cart->getShippingPrId());

        $order->order_date = $order->order_m_date = getJsDate();
        $order->order_tax = $cart->getTax(1, 1, 1);
        $order->setTaxExt($cart->getTaxExt(1, 1, 1));
        $order->order_subtotal = $cart->getPriceProducts();
        $order->order_shipping = $cart->getShippingPrice();
        $order->order_payment = $cart->getPaymentPrice();
        $order->order_discount = $cart->getDiscountShow();
        $order->shipping_tax = $cart->getShippingPriceTaxPercent();
        $order->setShippingTaxExt($cart->getShippingTaxList());
        $order->payment_tax = $cart->getPaymentTaxPercent();
        $order->setPaymentTaxExt($cart->getPaymentTaxList());
        $order->order_package = $cart->getPackagePrice();
        $order->setPackageTaxExt($cart->getPackageTaxList());
        $order->order_total = $cart->getSum(1, 1, 1);
        $order->currency_exchange = $jshopConfig->currency_value;
        $order->vendor_type = $cart->getVendorType();
        $order->vendor_id = $cart->getVendorId();
        $order->order_status = $jshopConfig->default_status_order;
        $order->shipping_method_id = $cart->getShippingId();
        $order->payment_method_id = $cart->getPaymentId();
        $order->delivery_times_id = $sh_mt_pr->delivery_times_id;
        if ($jshopConfig->delivery_order_depends_delivery_product){
            $order->delivery_time = $cart->getDelivery();
        }
        if ($jshopConfig->show_delivery_date){
            $order->delivery_date = $cart->getDeliveryDate();
        }
        $order->coupon_id = $cart->getCouponId();

        $pm_params = $cart->getPaymentParams();

        if (is_array($pm_params) && !$paymentSystemVerySimple){
            $payment_system->setParams($pm_params);
            $payment_params_names = $payment_system->getDisplayNameParams();
            $order->payment_params = getTextNameArrayValue($payment_params_names, $pm_params);
            $order->setPaymentParamsData($pm_params);
        }
       
        $name = $lang->get("name");
        $order->ip_address = $_SERVER['REMOTE_ADDR'];
        $order->order_add_info = JRequest::getVar('order_add_info','');
        $order->currency_code = $jshopConfig->currency_code;
        $order->currency_code_iso = $jshopConfig->currency_code_iso;
        $order->order_number = $order->formatOrderNumber($orderNumber);
        $order->order_hash = md5(time().$order->order_total.$order->user_id);
        $order->file_hash = md5(time().$order->order_total.$order->user_id."hashfile");
        $order->display_price = $jshopConfig->display_price_front_current;
        $order->lang = $jshopConfig->cur_lang;
       
        if ($order->client_type){
            $order->client_type_name = $jshopConfig->user_field_client_type[$order->client_type];
        }else{
            $order->client_type_name = "";
        }

if ($order->order_total==0){
            $pm_method->payment_type = 1;
            $jshopConfig->without_payment = 1;
            $order->order_status = $jshopConfig->payment_status_paid;
        }
       
        if ($pm_method->payment_type == 1){
            $order->order_created = 1;
        }else {
            $order->order_created = 0;
        }
       
        if (!$adv_user->delivery_adress) $order->copyDeliveryData();
       
        $dispatcher->trigger('onBeforeCreateOrder', array(&$order));

        $order->store();

        $dispatcher->trigger('onAfterCreateOrder', array(&$order));

        if ($cart->getCouponId()){
            $coupon = JSFactory::getTable('coupon', 'jshop');
            $coupon->load($cart->getCouponId());
            if ($coupon->finished_after_used){
                $free_discount = $cart->getFreeDiscount();
                if ($free_discount > 0){
                    $coupon->coupon_value = $free_discount / $jshopConfig->currency_value;
                }else{
                    $coupon->used = $adv_user->user_id;
                }
                $coupon->store();
            }
        }

        $order->saveOrderItem($cart->products);

$dispatcher->trigger('onAfterCreateOrderFull', array(&$order));

        $session->set("jshop_end_order_id", $order->order_id);

        $order_history = JSFactory::getTable('orderHistory', 'jshop');
        $order_history->order_id = $order->order_id;
        $order_history->order_status_id = $order->order_status;
        $order_history->status_date_added = $order->order_date;
        $order_history->customer_notify = 1;
        $order_history->store();
       
        if ($pm_method->payment_type == 1){
            $order->changeProductQTYinStock("-");
            if ($jshopConfig->send_order_email){
                $checkout->sendOrderEmail($order->order_id);
            }
        }
       
        $dispatcher->trigger('onEndCheckoutStep5', array(&$order) );

        $session->set("jshop_send_end_form", 0);
       
        if ($jshopConfig->without_payment){
            $checkout->setMaxStep(10);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=finish',0,1,$jshopConfig->use_ssl));
            return 0;
        }
       
        $pmconfigs = $pm_method->getConfigs();
       
        $task = "step6";
        if (isset($pmconfigs['windowtype']) && $pmconfigs['windowtype']==2){
            $task = "step6iframe";
            $session->set("jsps_iframe_width", $pmconfigs['iframe_width']);
            $session->set("jsps_iframe_height", $pmconfigs['iframe_height']);
        }
        $checkout->setMaxStep(6);
        $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task='.$task,0,1,$jshopConfig->use_ssl));
    }
   
    function step3(){
        $checkout = JSFactory::getModel('checkout', 'jshop');
    $checkout->checkStep(3);

        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onLoadCheckoutStep3', array() );
   
        $jshopConfig = JSFactory::getConfig();
        $session = JFactory::getSession();
        $cart = JSFactory::getModel('cart', 'jshop');
        $cart->load();
       
        $user = JFactory::getUser();
        $adv_user = JSFactory::getUser();
       
        appendPathWay(_JSHOP_CHECKOUT_PAYMENT);
        $seo = JSFactory::getTable("seo", "jshop");
        $seodata = $seo->loadData("checkout-payment");
        if ($seodata->title==""){
            $seodata->title = _JSHOP_CHECKOUT_PAYMENT;
        }
        setMetaData($seodata->title, $seodata->keyword, $seodata->description);
       
        $checkout_navigator = $this->_showCheckoutNavigation(3);
        if ($jshopConfig->show_cart_all_step_checkout){
            $small_cart = $this->_showSmallCart(3);
        }else{
            $small_cart = '';
        }
       
        if ($jshopConfig->without_payment){
            $checkout->setMaxStep(4);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4',0,1,$jshopConfig->use_ssl));
            return 0;
        }

        $paymentmethod = JSFactory::getTable('paymentmethod', 'jshop');
$shipping_id = $cart->getShippingId();
        $all_payment_methods = $paymentmethod->getAllPaymentMethods(1, $shipping_id);
        $i = 0;
        $paym = array();
        foreach($all_payment_methods as $pm){
            $paym[$i] = new stdClass();
            if ($pm->scriptname!=''){
                $scriptname = $pm->scriptname;   
            }else{
                $scriptname = $pm->payment_class;   
            }
            $paymentsysdata = $paymentmethod->getPaymentSystemData($scriptname);
            if ($paymentsysdata->paymentSystem){
                $paym[$i]->existentcheckform = 1;
$paym[$i]->payment_system = $paymentsysdata->paymentSystem;
            }else{
                $paym[$i]->existentcheckform = 0;
            }
           
            $paym[$i]->name = $pm->name;
            $paym[$i]->payment_id = $pm->payment_id;
            $paym[$i]->payment_class = $pm->payment_class;
            $paym[$i]->scriptname = $pm->scriptname;
            $paym[$i]->payment_description = $pm->description;
            $paym[$i]->price_type = $pm->price_type;
            $paym[$i]->image = $pm->image;
            $paym[$i]->price_add_text = '';
            if ($pm->price_type==2){
                $paym[$i]->calculeprice = $pm->price;
                if ($paym[$i]->calculeprice!=0){
                    if ($paym[$i]->calculeprice>0){
                        $paym[$i]->price_add_text = '+'.$paym[$i]->calculeprice.'%';
                    }else{
                        $paym[$i]->price_add_text = $paym[$i]->calculeprice.'%';
                    }
                }
            }else{
                $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id, $cart->products);
                if ($paym[$i]->calculeprice!=0){
                    if ($paym[$i]->calculeprice>0){
                        $paym[$i]->price_add_text = '+'.formatprice($paym[$i]->calculeprice);
                    }else{
                        $paym[$i]->price_add_text = formatprice($paym[$i]->calculeprice);
                    }
                }
            }
           
            $s_payment_method_id = $cart->getPaymentId();
            if ($s_payment_method_id == $pm->payment_id){
                $params = $cart->getPaymentParams();
            }else{
                $params = array();
            }

            $parseString = new parseString($pm->payment_params);
            $pmconfig = $parseString->parseStringToParams();

            if ($paym[$i]->existentcheckform){
                ob_start();
                $paym[$i]->payment_system->showPaymentForm($params, $pmconfig);
                $paym[$i]->form = ob_get_contents();               
                ob_get_clean();
            }else{
                $paym[$i]->form = "";
            }
           
            $i++;
        }
       
        $s_payment_method_id = $cart->getPaymentId();
        $active_payment = intval($s_payment_method_id);

        if (!$active_payment){
            $list_payment_id = array();
            foreach($paym as $v){
                $list_payment_id[] = $v->payment_id;
            }
            if (in_array($adv_user->payment_id, $list_payment_id)) $active_payment = $adv_user->payment_id;
        }
       
        if (!$active_payment){
            if (isset($paym[0])){
                $active_payment = $paym[0]->payment_id;
            }
        }
       
        if ($jshopConfig->hide_payment_step){
            $first_payment = $paym[0]->payment_class;
            if (!$first_payment){
                JError::raiseWarning("", _JSHOP_ERROR_PAYMENT);
                return 0;
            }
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save&payment_method='.$first_payment,0,1,$jshopConfig->use_ssl));
            return 0;
        }
       
        $view_name = "checkout";
        $view_config = array("template_path"=>$jshopConfig->template_path.$jshopConfig->template."/".$view_name);
        $view = $this->getView($view_name, getDocumentType(), '', $view_config);
        $view->setLayout("payments");
        $view->assign('payment_methods', $paym);
        $view->assign('active_payment', $active_payment);
        $view->assign('checkout_navigator', $checkout_navigator);
        $view->assign('small_cart', $small_cart);
        $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save', 0, 0, $jshopConfig->use_ssl));
        $dispatcher->trigger('onBeforeDisplayCheckoutStep3View', array(&$view));
        $view->display();   
    }
   
    function step3save(){
        $checkout = JSFactory::getModel('checkout', 'jshop');
        $checkout->checkStep(3);
       
        $session = JFactory::getSession();
        $jshopConfig = JSFactory::getConfig();
        $post = JRequest::get('post');

        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onBeforeSaveCheckoutStep3save', array(&$post) );
       
        $cart = JSFactory::getModel('cart', 'jshop');
        $cart->load();
       
        $user = JFactory::getUser();
        $adv_user = JSFactory::getUser();
       
        $payment_method = JRequest::getVar('payment_method'); //class payment method
        $params = JRequest::getVar('params');
        if (isset($params[$payment_method])){
            $params_pm = $params[$payment_method];
        }else{
            $params_pm = '';
        }
       
        $paym_method = JSFactory::getTable('paymentmethod', 'jshop');
        $paym_method->class = $payment_method;
        $payment_method_id = $paym_method->getId();
        $paym_method->load($payment_method_id);
        $pmconfigs = $paym_method->getConfigs();
        $paymentsysdata = $paym_method->getPaymentSystemData();
        $payment_system = $paymentsysdata->paymentSystem;
        if ($paymentsysdata->paymentSystemError){
            $cart->setPaymentParams('');
            JError::raiseWarning(500, _JSHOP_ERROR_PAYMENT);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3',0,1,$jshopConfig->use_ssl));
            return 0;
        }
        if ($payment_system){
            if (!$payment_system->checkPaymentInfo($params_pm, $pmconfigs)){
                $cart->setPaymentParams('');
                JError::raiseWarning("", $payment_system->getErrorMessage());
                $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3',0,1,$jshopConfig->use_ssl));
                return 0;
            }           
        }
       
        $paym_method->setCart($cart);
        $cart->setPaymentId($payment_method_id);
        $price = $paym_method->getPrice();
        $cart->setPaymentDatas($price, $paym_method);
       
        if (isset($params[$payment_method])) {
            $cart->setPaymentParams($params_pm);
        } else {
            $cart->setPaymentParams('');
        }
       
        $adv_user->saveTypePayment($payment_method_id);
       
        $dispatcher->trigger( 'onAfterSaveCheckoutStep3save', array(&$adv_user, &$paym_method, &$cart) );
       
        if ($jshopConfig->without_shipping) {
            $checkout->setMaxStep(5);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5',0,1,$jshopConfig->use_ssl));
            return 0;
        }
       
if ($jshopConfig->step_4_3){
            $checkout->setMaxStep(5);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5',0,1,$jshopConfig->use_ssl));
        }else{
$checkout->setMaxStep(4);
$this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4',0,1,$jshopConfig->use_ssl));
}
    }
   
    function step4(){
        $checkout = JSFactory::getModel('checkout', 'jshop');
        $checkout->checkStep(4);
       
        $session = JFactory::getSession();
        $jshopConfig = JSFactory::getConfig();

        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onLoadCheckoutStep4', array() );

        appendPathWay(_JSHOP_CHECKOUT_SHIPPING);
        $seo = JSFactory::getTable("seo", "jshop");
        $seodata = $seo->loadData("checkout-shipping");
        if ($seodata->title==""){
            $seodata->title = _JSHOP_CHECKOUT_SHIPPING;
        }
        setMetaData($seodata->title, $seodata->keyword, $seodata->description);
       
        $cart = JSFactory::getModel('cart', 'jshop');
        $cart->load();
       
        $user = JFactory::getUser();
        $adv_user = JSFactory::getUser();

        $checkout_navigator = $this->_showCheckoutNavigation(4);
        if ($jshopConfig->show_cart_all_step_checkout){
            $small_cart = $this->_showSmallCart(4);
        }else{
            $small_cart = '';
        }
       
        if ($jshopConfig->without_shipping){
        $checkout->setMaxStep(5);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5',0,1,$jshopConfig->use_ssl));
            return 0;
        }
       
        $shippingmethod = JSFactory::getTable('shippingMethod', 'jshop');
        $shippingmethodprice = JSFactory::getTable('shippingMethodPrice', 'jshop');
       
        if ($adv_user->delivery_adress){
            $id_country = $adv_user->d_country;
        }else{
            $id_country = $adv_user->country;
        }
        if (!$id_country) $id_country = $jshopConfig->default_country;
       
        if (!$id_country){
            JError::raiseWarning("", _JSHOP_REGWARN_COUNTRY);
        }
       
        if ($jshopConfig->show_delivery_time_checkout){
            $deliverytimes = JSFactory::getAllDeliveryTime();
            $deliverytimes[0] = '';
        }
        if ($jshopConfig->show_delivery_date){
            $deliverytimedays = JSFactory::getAllDeliveryTimeDays();
    &
« Последнее редактирование: 21.09.2016, 10:07:00 от amoRNizam »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Панель с меню в левой части экрана админки JoomShopping

Автор psayk

Ответов: 3
Просмотров: 82
Последний ответ 11.12.2018, 23:21:10
от nevigen
JoomShopping "Купить в один клик"

Автор Indexxx

Ответов: 1
Просмотров: 106
Последний ответ 03.12.2018, 12:15:25
от nevigen
Дочерние товары в JoomShopping

Автор Dolphin4ik_1

Ответов: 3
Просмотров: 73
Последний ответ 02.12.2018, 15:31:55
от dmitry_stas
Количество товара кнопками - И + В JoomShopping to NEVIGEN

Автор konsty

Ответов: 13
Просмотров: 1472
Последний ответ 26.11.2018, 11:51:48
от intcorp
com_privacy и регистрация JoomShopping

Автор lev731

Ответов: 2
Просмотров: 149
Последний ответ 21.11.2018, 20:15:30
от lev731