Перейти к содержанию
caveman77

оформление заказа без регистрации личного кабинета

Рекомендуемые сообщения

мне нужно оформление заказа без регистрации личного кабинетачел жмет оформить - всплыват форма фио-тел-мыло - чел жмет далаа - далее появляется окошко "заказ в обработке - с вами свяжутся"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

фактически мне нужна урезанная страница "Без регистрации - шаг 1" сразу же с кнопкой "ЗАКАЗАТЬ"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

фактически мне нужна урезанная страница "Без регистрации - шаг 1" сразу же с кнопкой "ЗАКАЗАТЬ"

Режьте код, убирайте ненужные поля. Готового решения нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

понял - какие файлы отвечают за страници оформления заказа?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во-первых viewtopic.php?f=15&t=662А-потом копать в catalog/view/theme/default/template/checkout/guest_step_1.tplcatalog/view/theme/default/template/checkout/guest_step_2.tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

функция validate() в соответствующем контроллере

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

устроил поиск слова validate по файлу guest_step_1 - не нашел ниче

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно, а я нашел

private function validate() {    	if ((strlen(utf8_decode($this->request->post['firstname'])) < 1) || (strlen(utf8_decode($this->request->post['firstname'])) > 32)) {      		$this->error['firstname'] = $this->language->get('error_firstname');    	}    	if ((strlen(utf8_decode($this->request->post['lastname'])) < 1) || (strlen(utf8_decode($this->request->post['lastname'])) > 32)) {      		$this->error['lastname'] = $this->language->get('error_lastname');    	}    	if (!preg_match(EMAIL_PATTERN, $this->request->post['email'])) {      		$this->error['email'] = $this->language->get('error_email');    	}		    	if ((strlen(utf8_decode($this->request->post['telephone'])) < 3) || (strlen(utf8_decode($this->request->post['telephone'])) > 32)) {      		$this->error['telephone'] = $this->language->get('error_telephone');    	}		    	if ((strlen(utf8_decode($this->request->post['address_1'])) < 3) || (strlen(utf8_decode($this->request->post['address_1'])) > 128)) {      		$this->error['address_1'] = $this->language->get('error_address_1');    	}    	if ((strlen(utf8_decode($this->request->post['city'])) < 3) || (strlen(utf8_decode($this->request->post['city'])) > 128)) {      		$this->error['city'] = $this->language->get('error_city');    	}				$this->load->model('localisation/country');				$country_info = $this->model_localisation_country->getCountry($this->request->post['country_id']);				if ($country_info && $country_info['postcode_required']) {			if ((strlen(utf8_decode($this->request->post['postcode'])) < 2) || (strlen(utf8_decode($this->request->post['postcode'])) > 10)) {				$this->error['postcode'] = $this->language->get('error_postcode');			}		}    	if ($this->request->post['country_id'] == 'FALSE') {      		$this->error['country'] = $this->language->get('error_country');    	}		    	if ($this->request->post['zone_id'] == 'FALSE') {      		$this->error['zone'] = $this->language->get('error_zone');    	}				if (isset($this->request->post['shipping_indicator'])) {						if ((strlen(utf8_decode($this->request->post['shipping_firstname'])) < 3) || (strlen(utf8_decode($this->request->post['shipping_firstname'])) > 32)) {      		$this->error['shipping_firstname'] = $this->language->get('error_firstname');    		}    		if ((strlen(utf8_decode($this->request->post['shipping_lastname'])) < 3) || (strlen(utf8_decode($this->request->post['shipping_lastname'])) > 32)) {      			$this->error['shipping_lastname'] = $this->language->get('error_lastname');    		}						if ((strlen(utf8_decode($this->request->post['shipping_address_1'])) < 3) || (strlen(utf8_decode($this->request->post['shipping_address_1'])) > 128)) {      		$this->error['shipping_address_1'] = $this->language->get('error_address_1');    		}    		if ((strlen(utf8_decode($this->request->post['shipping_city'])) < 3) || (strlen(utf8_decode($this->request->post['shipping_city'])) > 128)) {      			$this->error['shipping_city'] = $this->language->get('error_city');    		}						$country_info = $this->model_localisation_country->getCountry($this->request->post['shipping_country_id']);					if ($country_info && $country_info['postcode_required']) {				if ((strlen(utf8_decode($this->request->post['shipping_postcode'])) < 2) || (strlen(utf8_decode($this->request->post['shipping_postcode'])) > 10)) {					$this->error['shipping_postcode'] = $this->language->get('error_postcode');				}			}			    		if ($this->request->post['shipping_country_id'] == 'FALSE') {      			$this->error['shipping_country'] = $this->language->get('error_country');    		}			    		if ($this->request->post['shipping_zone_id'] == 'FALSE') {      			$this->error['shipping_zone'] = $this->language->get('error_zone');    		}    				}		    	if (!$this->error) {      		return TRUE;    	} else {      		return FALSE;    	}  	}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в каком это файле все делать? guest_step_1.tpl или guest_step_1.php ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сколько вебмани возьмешь за решение задачи?одна страница без регистрации - обязательные поля: фио, мыло, телефончел жмет "Оформить" - на следующий странице надпись "Заказ в обработке. Наш менеджер свяжется с вами"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

естесно мне и ему на мыло падают детали заказа

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в guest_step_1.php (папка controller)ближайшие недели полторы времени нет - завален работой, так что взяться врядли смогу.если готов подождать цена вопроса 700р.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

Интересует то же - быстрая схема покупки без личного кабинета, без регистрации. Сейчас есть возможность заказа без регистрации и вообще без указания существования логинов.

Во-первых нужно переадресовывать пользователей на guest_step_1. Во вторых нужно убрать лишние поля и их проверку в шаге 2 написано здесь: viewtopic.php?f=15&p=7067#p7067

Но этого недостаточно. Хочется, чтобы шагов было не 4, а 2 или всего один (например в предпросмотре корзины были те самые поля клиента "Адрес", "телефон")

Когда-то 19th сказал

фактически мне нужна урезанная страница "Без регистрации - шаг 1" сразу же с кнопкой "ЗАКАЗАТЬ"

Режьте код, убирайте ненужные поля. Готового решения нет.

Как движок обрабатывает кнопку "submit" на шаге step_1? Как ему сказать, чтобы сразу всё заканчивал и переходил к "Спасибо за заказ"?

Есть ли какие-нибудь мысли?

Спасибо всем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Частично нашел ответ. Источник: http://www.opencart.com/index.php?route ... path=47_48

Решение пропускает шаг 2 (указание метода оплаты и доставки)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В /controller/module/cart.php меняем в строке 18 с

$this->data['checkout'] = HTTP_SERVER . 'index.php?route=checkout/shipping';

на

$this->data['checkout'] = HTTP_SERVER . 'index.php?route=checkout/guest_step_1';

3. В файле /controller/checkoute/guest_step_1.php находим функцию validate() и комментируем все ненужные проверки.

4. В файле /view/themes/template/checkoute/guest_step_1.tpl убираем лишние звездочки.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.