Установка
Как упростить процедуру оформления заказа, т.е. что б после нажатия в корзине кнопки "Оформить заказ" сразу же попадали на страницу подтверждения заказа?!
Данный способ полезен таким магазинам, где только один вид доставки, например бесплатная доставка, и где только один вид оплаты, например оплата курьеру при получении товара.
Покупатель сразу попадает на страницу подтверждения заказа,
минуя формальные (в даннном случае) 2 шага, т.е. выбор способа доставки и выбор способа оплаты.
По пунктам:
1. Открываем файл checkout_confirmation.php и после
require('includes/application_top.php');Вставляем следующий код:
$sendto = $customer_default_address_id;
tep_session_register('sendto');
$shipping = array('id' => 'flat', 'title' => 'Flat Rate', 'cost' => 5);
tep_session_register('shipping');
$payment = 'cod';
tep_session_register('payment');
2. Далее находим вот этот код:
$navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
3. Открываем файл shopping_cart.php
Находим:
4. Открываем файл includes/header.php
Находим:
FILENAME_CHECKOUT_SHIPPINGИ меняем на:
FILENAME_CHECKOUT_CONFIRMATION
Всё!
Последние обновление: 2005-03-02 12:24
Опубликовал: Farmer, yura, VaM
Revision: 1.0
Отправить на печать
Отправить другу
Скомпилировать PDF файл
Эскпорт в XML файл
Вы можете оставить свой комментарий
Comment of Сергей (2038-01-19 06:14:07):
Сделал все как написано не работает
Comment of Aqua$erg (2038-01-19 06:14:07):
Работает, но окно Информации об оплате выдаёт ошибки:
Warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/fghfrcby/www/site1/public_html/catalog/includes/functions/general.php on line 42
Warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/fghfrcby/www/site1/public_html/catalog/includes/functions/general.php on line 42
Comment of axler (2038-01-19 06:14:07):
2Aqua$erg:
попробуйте в файле checkout_confirmation.php добавить такие строчки:
//начало
// if no shipping destination address was selected, use the customers own address as default
if (!tep_session_is_registered('sendto')) {
tep_session_register('sendto');
$sendto = $customer_default_address_id;
} else {
// verify the selected shipping address
$check_address_query = tep_db_query("select count(*) as total from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and address_book_id = '" . (int)$sendto . "'");
$check_address = tep_db_fetch_array($check_address_query);
if ($check_address['total'] != '1') {
$sendto = $customer_default_address_id;
if (tep_session_is_registered('shipping')) tep_session_unregister('shipping');
}
}
// if no billing destination address was selected, use the customers own address as default
if (!tep_session_is_registered('billto')) {
tep_session_register('billto');
$billto = $customer_default_address_id;
} else {
// verify the selected billing address
$check_address_query = tep_db_query("select count(*) as total from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and address_book_id = '" . (int)$billto . "'");
$check_address = tep_db_fetch_array($check_address_query);
if ($check_address['total'] != '1') {
$billto = $customer_default_address_id;
if (tep_session_is_registered('payment')) tep_session_unregister('payment');
}
}
//конец
Это можно вставить вначале файла после строчки:
tep_session_register('payment');
© http://osc-ru.my777.biz/viewtopic.php?t=3321&highlight=htmlspecialchars+expects+parameter+++string&sid=0554a264588f21432d39e4e424fed8cb
P.S. Ребята, вы вообще хороши.
Такие вещи давно уже нужно в фак складывать. :/
Comment of Артур (2038-01-19 06:14:07):
Думаю стоит добавить что в предложенном в статье коде:
...
$shipping = array('id' => 'flat', 'title' => 'Flat Rate', 'cost' => 5);
tep_session_register('shipping');
$payment = 'cod';
tep_session_register('payment');
...
Есть парочку важных деталей (на поиск которых я потратил 4 часа, забыв про эти исправления)
1. 'cost' => 5 - цена доставки, в следствии чего к вашей цене добавляются еще 5 у.е.
2. $payment = 'cod' - где 'cod' - имя вашего модуля оплаты по-умолчанию
Comment of Артур (2038-01-19 06:14:07):
Еще хотел бы добавить, может у других работает нормально, но думаю что все же еще после предложенного выше кода необходимо
/*[Begin]Techart*/{
// register a random ID in the session to check throughout the checkout procedure
// against alterations in the shopping cart contents
if (!tep_session_is_registered('cartID')) tep_session_register('cartID');
$cartID = $cart->cartID;
}/*[End]Techart*/
///[End]
Comment of DeadLy (2038-01-19 06:14:07):
А для XT как можно тпе сделать?? кто-нить знает?