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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Всем привет!
Пока фильтр замер, добрался до оформления заказа.

Все делалось на Joomla 3 и JS 4.6, должно работать и на других версиях checkout.php везде одинаковый...


Рассмотрел checkout.php и вроде ничего сложного. Сохраняем оригинальный checkout.php и приступаем...

Идем в \components\com_jshopping\controllers\checkout.php
1) Вырезаем внутренности функций function step3, function step4, function step5 и вставляем в function step2.
Вырезаем только внутренности, после вырезания у вас должно остаться function step3(){} function step4(){} и function step5(){}, внимательнее с закрывающими и открывающими скобками функций, такая поляна кода - можно легко запутаться.

2) Точно так же поступаем со всеми внутренностями function step3save, function step4save, function step5save вставляем в function step2save. Все делаем также внимательно как и в первом варианте..))

3) В function step2(){} комментируем или удаляем строчки $checkout->checkStep(3); $checkout->checkStep(4); $checkout->checkStep(5); а строку $checkout->checkStep(2); не трогаем, оставляем на месте.

4) Далее в получившихся function step2(){} и function step2save(){} ищем в тексте step3save, step4save и step5save, и заменяем на step2save.
Выглядят строки примерно так:
SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save'.

Теперь можно проверить что вышло, на данном этапе на первой странице заказа у нас загружаются все шаги заказа. Но, у каждого шага свой <form>, также сохраняем оригинальные файлы adress.php, payments.php, shippings.php previewfinish.php и исправляем..

5) В файлах adress.php, payments.php, shippings.php и previewfinish.php которые находятся в каталоге \components\com_jshopping\templates\default\checkout\ удаляем в самом начале <?php print $this->checkout_navigator?> - этим мы убираем показ шагов.

6) в adress.php удаляем закрывающий тег </form> и кнопку далее

7) в payments.php удаляем строку <form id = "payment_form" name = "payment_form" action = "<?php print $this->action ?>" method = "post"> кнопку далее, а также закрывающий тег </form>
8.) в shippings.php делаем тоже самое что и 7-шаге.

9) И последнее, в файле previewfinish.php удаляем строку <form name = "form_finish" action = "<?php print $this->action ?>" method = "post">, а кнопку и закрывающий тег </form> оставляем. Теперь у нас одна форма на все 4 шага.

Зависимость способов оплаты от доставки ниже, в теме..

Все, пробуем оформить заказ, и радуемся...)))

Вроде ничего не забыл, если что не работает, пишите...

Готовый код cheсkout.php прикрепеленном в txt файле.

« Последнее редактирование: 18.01.2016, 20:23:12 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
Re: Заказ на одной странице
« Ответ #1 : 07.09.2014, 22:26:22 »
и что работает зависимость оплата-доставка ?
а корзина де ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Заказ на одной странице
« Ответ #2 : 07.09.2014, 23:31:11 »
Корзина выключена, вернее была не включена.
По поводу зависимости не совсем понял..?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
Re: Заказ на одной странице
« Ответ #3 : 07.09.2014, 23:32:40 »
2. если самовывоз доступен только для 1 и 3-го способов оплаты ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Заказ на одной странице
« Ответ #4 : 07.09.2014, 23:37:15 »
Ааа, чет я даж и не помню что так можно..

Ну-да, тут уже скриптец писать надо..

Ахах, что то фильтр напоминает..)))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Заказ на одной странице
« Ответ #5 : 18.09.2014, 15:23:45 »
Нашлось время, сделал зависимость доставки от оплаты..) Все делается конечно же без перезагрузки..

Идем в \components\com_jshopping\templates\default\checkout\payments.php и в тег input добавляем аттрибут data-payment="<?php print $payment->payment_id ?>" в итоге input получается вот такой:
Спойлер
[свернуть]
Это мы добавили идентификатор оплаты, для удобной его обработки..

Дальше, в файле \components\com_jshopping\controllers\checkout.php сразу после строчки class JshoppingControllerCheckout extends JControllerLegacy{ вставляем код:
Код
    function ship_disable(){
$ajax = 1;
$db = JFactory::getDbo();
$sql_dis = "SELECT shipping_id FROM teyzk_jshopping_shipping_method WHERE payments!='' AND payments NOT LIKE '%$_POST[dis]%'";
$db->setQuery($sql_dis);
$result_dis = $db->loadRowList();
foreach($result_dis as $k) {
echo $k[0].".";
}
if ($ajax){die();}
}
Здесь возвращаются номера способов доставки которые не используются, для текущего(выбранного) способа оплаты..

Ну и последнее, в \components\com_jshopping\templates\default\checkout\shippings.php вставляете (можно вставить куда угодно):

Код
<script>
$(document).ready(function(){
$('input[name="payment_method"]:first').click(); //имитация клика при загрузке страницы
});
$('input[name="payment_method"]').live("click", function(){
pay_d = $(this).attr('data-payment'); //получение выбранного способа оплаты
    $(function() {
jQuery.ajax({ //все отправляем..
type: "POST",
cache: false,
url: "<?php print SEFLink('index.php?option=com_jshopping&controller=checkout&task=ship_disable', 1);?>",
data: {dis: pay_d},
success: function(html){
var ship_d = HTML.split('.');
var i=0;
$('input[name="sh_pr_method_id"]').removeAttr('disabled'); //сброс дисаблед
while (i<ship_d.length){
$('#shipping_method_'+ship_d[i]+'').attr('disabled', 'disabled'); //добавление дисаблед способам доставки
i++;
}
$('input[name="sh_pr_method_id"]').removeAttr('checked'); //сброс чекед чтобы у клиента на дисабледе чекед не остался
$('input[name="sh_pr_method_id"]:not(:disabled):first').attr('checked', 'checked'); //ставим чекед на первую не задисабленную позицию
}
});return false;
});
});
</script>

Все..)
Хотел сделать проще - в shipping.php добавить <?php print $shipping->payments?> и получать значения от туда, проверкой is(:content) но что то не получилось..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #6 : 20.09.2014, 04:51:49 »
Добавил готовый код checkout.php в txt файле...
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: Заказ на одной странице
« Ответ #7 : 20.09.2014, 22:44:20 »

Как работает можно глянуть тут: http://shurakana.myjino.ru/shop/videoregistratory





не рабочая ссылка...
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #8 : 20.09.2014, 22:56:25 »
Хостинг кончился...)))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #9 : 22.09.2014, 00:51:07 »
Закинул денежку..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
RE: - Заказ на одной странице
« Ответ #10 : 01.10.2014, 21:54:10 »
привет, интересует как оформить в два столбца на одной странице заказа...
с лева данные покупателя и адрес доставки, с права тип оплаты и доставка... последний шаг подтверждение можно по центру в низу...
и не будет ли после очередного обновления опять переделки этого листа заказа ?
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Заказ на одной странице
« Ответ #11 : 01.10.2014, 21:58:51 »
привет, интересует как оформить в два столбца на одной странице заказа...
с лева данные покупателя и адрес доставки, с права тип оплаты и доставка... последний шаг подтверждение можно по центру в низу...
Ну в два столбца, это вам CSS в помощь, могу сказать что внутренности файлов adress.php, payments.php, shippings.php и previewfinish.php можно перенести в любой из них.

и не будет ли после очередного обновления опять переделки этого листа заказа ?
Ну это же хак, конечно будет.
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
Re: Заказ на одной странице
« Ответ #12 : 01.10.2014, 22:29:37 »
ну рытся в php я не силен... CSS приходилось править, но чаше по подсказке из этого форума,  а готовые платные решения мне по виду не очень нравятся... конкретно в этом вопросе мне предпочтителнее скромное решение ...
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #13 : 01.10.2014, 22:42:22 »
Ну да, могу понять вас, это решение для таких как я скорее всего, которые также ничего не понимают, но любили игру "найди 10 отличий"..))
Т.к. кто умеет, думаю что нибудь и по элегантней придумает..))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #14 : 01.10.2014, 23:05:49 »
Кстати, нашел прошлогоднюю попытку создания себе сайта, там J1.5..

Там уже корзина оформлена как надо...)
Работает только эта категория - http://old.shurakana.myjino.ru/shop/videoregistratory

Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
RE: - Заказ на одной странице
« Ответ #15 : 01.10.2014, 23:22:54 »
ну этото примерчик даже лучше чем я ожидал :)
только поля для заказа я бы стандартные оствил, а примочки интересные... надо подумать как мне под свои стили такое подключить... и карточки товара тоже симпотные...
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
RE: - Заказ на одной странице
« Ответ #16 : 04.10.2014, 00:20:19 »
попробовал все менять как куказано.. у меня НЕ прибавляет в карточку цену доставки и надбавки за способ оплаты...
Ув shurakana, глянте мой магазиник в чем там может быть проблема, я не шарю что надо сделать... 
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
RE: - Заказ на одной странице
« Ответ #17 : 04.10.2014, 00:25:14 »
и еще недоделка - надобы строчки както вставить вместо шагов - *данные покупателя* / *способ оплаты* / *способ доставки*

и у меня почему то карточка в низу висит а не в верху как на вашей ссылке...
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
Re: Заказ на одной странице
« Ответ #18 : 04.10.2014, 00:45:00 »
upsss.... при нажатии потвердить заказ... добавляет суммы, пересчитывает... но выкидывает *ошибка шага*...
« Последнее редактирование: 04.10.2014, 01:36:20 от dragon4x4 »
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #19 : 04.10.2014, 11:42:00 »
попробовал все менять как куказано.. у меня НЕ прибавляет в карточку цену доставки и надбавки за способ оплаты..
Не совсем понял, но по идее он и не должен прибавляться, все считается после отправки заказа..
Хотя, надо бы общую строчку сделать, перед отправкой "общая сумма с доставкой"..будет время..

и еще недоделка - надобы строчки както вставить вместо шагов - *данные покупателя* / *способ оплаты* / *способ доставки*
и у меня почему то карточка в низу висит а не в верху как на вашей ссылке...
Это не недоделка, в файлы adress.php, payments.php, shippings.php и previewfinish.php в самый верх вставьте <h2>нужный текст</h2>
Из previewfinish.php переместите checkout-navigator в adress.php или удалите эту строку..

upsss.... при нажатии потвердить заказ... добавляет суммы, пересчитывает... но выкидывает *ошибка шага*...
Где то ошибку допустили, незнаю как определить.. Восстановите и все заново, по инструкции..))
Прикрепленный txt файл использовали?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
Re: Заказ на одной странице
« Ответ #20 : 04.10.2014, 12:06:55 »
да использовал ваш txt ... закономерность обнаружил, если в админке менят местами шаги заказа типа оплта-доставка, то тогда это и всплывает.. в одном случае ошибка, в другом отправляет заказ... но потом в шаге доставки пропадают способы доставки..
вобщем вернул в стандарт все и наверное лучше запалчу за готовое решение Невигену ...:)
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #21 : 04.10.2014, 12:23:24 »
вобщем вернул в стандарт все и наверное лучше запалчу за готовое решение Невигену ...:)
Вы выбрали правильное решение, ведь тут больше для тех кто хоть чуть чуть понимает..)
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
RE: - Заказ на одной странице
« Ответ #22 : 04.10.2014, 12:29:13 »
Вы выбрали правильное решение, ведь тут больше для тех кто хоть чуть чуть понимает..)
я я чуть чуть понимаю, но пока копировал построчно (тупо не думая) решение то чуть не свихнулся
У меня давняя мечта, кастрировать разработчиков, что открывают тег HTML в одном файла а закрывают в другом

В итоге закрыл и вернулся к своему недомагазину (где не нужна доставка, онлайн оплата и пр)

Когда влезаю в код JS то впечатление что вляпался в код Datso галери любой версии
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #23 : 04.10.2014, 12:37:33 »
я я чуть чуть понимаю, но пока копировал построчно (тупо не думая) решение то чуть не свихнулся
Да я сам чуть не тоже самое что и вы, раз 7 ресетил..)) Забываешь что уже скопировал а что нет и пр..)))

У меня давняя мечта, кастрировать разработчиков, что открывают тег HTML в одном файла а закрывают в другом
В данном случае идет искусственное и вынужденное усложнение, дабы продать возможность заказа на одной странице..
В основном довольно неплохой код..)) (я имею ввиду для меня)
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
RE: - Заказ на одной странице
« Ответ #24 : 04.10.2014, 13:05:14 »
Вы выбрали правильное решение, ведь тут больше для тех кто хоть чуть чуть понимает..)

ой ой ой :) как ни как кое что методом тыка и подскасками форумчан зделал более мене так как мне хотелось.. ... уже 4 года  регулярно обновляю и поправки вношу под свои нужды... просто жаль времени на изучение PHP когда все равно это не мое занятие... я ползователь, а не создатель шопов на продажу...    :)
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
RE: - Заказ на одной странице
« Ответ #25 : 04.10.2014, 13:15:26 »
ой ой ой :) как ни как кое что методом тыка и подскасками форумчан зделал более мене так как мне хотелось..
Неужто вы обиделись? Тогда, по идее, я тоже должен обидеться сам на себя, ведь под словами "чуть чуть понимает" я себя имел ввиду..))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
RE: - Заказ на одной странице
« Ответ #26 : 04.10.2014, 13:17:59 »
много лет не обижаюсь по жизни вообще :) просто реплика и та с улыбками :)
*

riser

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
Re: Заказ на одной странице
« Ответ #27 : 26.12.2014, 17:05:28 »
Реально ли это объединить с корзиной ? Чтобы при нажатии кнопки "купить", товар падал в корзину(фоном), и запускалось оформления заказа ?
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
RE: - Заказ на одной странице
« Ответ #28 : 03.02.2015, 17:44:47 »
Плюсанул. Полезная тема. Только на Joomla 2.5 сходу не заработало. Ошибка, связанная со способом доставки. Пока не вникал, чуть позже постараюсь разобраться.
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
RE: - Заказ на одной странице
« Ответ #29 : 05.02.2015, 14:34:42 »
Видимо не все checkout.php одинаковые. :)
у меня на JS 3.14.3 возникла проблемка на этом участке:
Код
        $payment_id = $cart->getPaymentId();
        $shippings = $shippingmethod->getAllShippingMethodsCountry($id_country, $payment_id);
        foreach($shippings as $key=>$value){
            $shippingmethodprice->load($value->sh_pr_method_id);
            if ($jshopConfig->show_list_price_shipping_weight){
                $shippings[$key]->shipping_price = $shippingmethodprice->getPricesWeight($value->sh_pr_method_id, $id_country, $cart);
            }
            $prices = $shippingmethodprice->calculateSum($cart);
            $shippings[$key]->calculeprice = $prices['shipping']+$prices['package'];
            $shippings[$key]->delivery = '';
            $shippings[$key]->delivery_date_f = '';
            if ($jshopConfig->show_delivery_time_checkout){
                $shippings[$key]->delivery = $deliverytimes[$value->delivery_times_id];
            }
            if ($jshopConfig->show_delivery_date){
                $day = $deliverytimedays[$value->delivery_times_id];
                if ($day){
                    $shippings[$key]->delivery_date = getCalculateDeliveryDay($day);
                    $shippings[$key]->delivery_date_f = formatdate($shippings[$key]->delivery_date);
                }
            }
        }

Способы доставки не отображаются, выдает:
Цитировать
Warning: Invalid argument supplied for foreach() in Z:\home\...\www\components\com_jshopping\controllers\checkout.php on line 318

Проблема начинается тут $payment_id = $cart->getPaymentId();.
Пока по непонятным мне причинам, не подтягивается ID оплаты. Если изменить на что-то типа $payment_id = "3"; то все срабатывает.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Адрес e-mail как логин при регистрации

Автор orexov_m

Ответов: 51
Просмотров: 12954
Последний ответ 28.02.2024, 18:34:01
от nevigen
Плагин - Товар на складе или Товар под заказ для JoomShopping [Скачать]

Автор kit2m2

Ответов: 58
Просмотров: 9200
Последний ответ 18.05.2023, 12:59:00
от Akeksandr
[Решено] Товар на замену в блоке с ценой

Автор dron

Ответов: 2
Просмотров: 1255
Последний ответ 13.04.2022, 16:09:53
от dron
[Решено] Разные шаблоны для разных статусов заказов

Автор nevigen

Ответов: 4
Просмотров: 3418
Последний ответ 04.04.2022, 19:45:58
от nevigen
MSI Юзабилити "Списка заказов" Красим заказ в цвет его статуса

Автор Cerber

Ответов: 22
Просмотров: 9169
Последний ответ 16.12.2021, 13:31:33
от Mister Shadow