OpenCart — убираем обязательные поля в оформлении заказа
Не так давно мы рассмотрели способ удаления лишних шагов при оформлении заказа, вместо шести мы оставили всего лишь 2 шага. Сегодня же разберемся с вопросом о полях, которые помечены звездочкой, с вопросом об обязательных полях. Они обязательны для заполнения, но порой в них просто нет надобности, так что мы постараемся их скрыть, чтобы упростить оформление заказа.
Что мы можем предпринять для осуществления задуманного? Мы можем скрыть поля и удалить проверку на ошибки касательно этих полей.
OpenCart содержит два файла, отвечающих за ввод персональных данных в первом шаге заказа:
catalog/view/theme/default/template/checkout/register.tpl — при оформлении заказа с регистрацией catalog/view/theme/default/template/checkout/guest.tpl - при гостевом оформлении заказаМы рассмотри процесс удаления ненужных для нас полей на примере оформления заказа с регистрацией, но для гостевой регистрации изменения будут идентичны. Редактировать мы будем следующее:
- удалять поля: Факс, Компания, Company ID и Индекс,
- редактировать поля «Имя, Отчество» и «Фамилия» — объединим их в одно поле и назовем стандартно «ФИО».
Все изменения рассмотрены на версии 1.5.3.1, на дефолтной теме.
Наши действия:
1. Перестрахуемся и сохраним файл catalog/view/theme/default/template/checkout/register.tpl (всегда может что-то пойти не так, или произведенные действия не возымеют эффекта и т.д.).
2. Факс. В вышеупомянутом файле ищем строки касающиеся факса (19-22 строки):
1 2 3 4 |
<?php echo $entry_fax; ?><br /> <input type="text" name="fax" value="" class="large-field" /> <br /> <br /> |
И либо удаляем их, либо комментируем. Я обычно выбираю второй способ, если та или иная возможность мне еще может понадобиться в будущем.
3. Компания и Company ID . Находим строки о компании и поступаем с ними также, как и с факсом — удаляем или комментируем (приблизительно строки 36-39, 53-57):
1 2 3 4 |
<?php echo $entry_company; ?><br /> <input type="text" name="company" value="" class="large-field" /> <br /> <br /> |
и
1 2 3 4 5 |
<div id="company-id-display"><span id="company-id-required" class="required">*</span> <?php echo $entry_company_id; ?><br /> <input type="text" name="company_id" value="" class="large-field" /> <br /> <br /> </div> |
4. Почтовый Индекс. Все предыдущие поля не были обязательными, с индексом ситуация немного иная, так как это поле обязательно для заполнения и помечено в файле как «required». Поэтому, найдя строки с индексом (75-78), мы их закомментируем
1 2 3 4 |
<span id="payment-postcode-required" class="required">*</span><?php echo $entry_postcode; ?><br /> <input type="text" name="postcode" value="<?php echo $postcode; ?>" class="large-field" /> <br /> <br /> |
и для того, чтобы разобраться с ошибками мы будем также править файлы в контроллере:
catalog/controller/checkout/register.php — заказ с регистрацией, catalog/controller/checkout/guest.php — гостевое оформление заказа.Открываем register.php и ищем строку с почтовым индексом, комментировать мы будем только его, поскольку все остальные поля, скрытые нами, необязательны для заполнения (приблизительно 23я и 50-54 строки):
1 |
$this->data['entry_postcode'] = $this->language->get('entry_postcode'); |
1 2 3 4 5 |
if (isset($this->session->data['shipping_postcode'])) { $this->data['postcode'] = $this->session->data['shipping_postcode']; } else { $this->data['postcode'] = ''; } |
5. Для того же, чтобы объединить два поля с «именем, отчеством» и «фамилией» в одно поле, следует в файле catalog/view/theme/default/template/checkout/register.tpl
закомментировать строки (строки 7-10):
1 2 3 4 |
<span class="required">*</span><?php echo $entry_lastname; ?><br /> <input type="text" name="lastname" value="" class="large-field" /> <br /> <br /> |
Мы убрали второе поле, для ввода фамилии, теперь для того, чтобы изменить название поля с «Имя, Отчество» на «ФИО», открываем файл catalog/language/ukrainian/checkout/checkout.php и вносим изменения:
вместо
1 |
$_['entry_firstname'] = 'Имя, Отчество:'; |
прописываем
1 |
$_['entry_firstname'] = 'ФИО:'; |
Поля приобрели необходимый вид и структуру, но обработчик не пропустит покупателя дальше второго шага, так как поле с фамилией было обязательным для заполнения. Снова обращаемся к файлу catalog/controller/checkout/register.php и комментируем строки (приблизительно 13 и 138-140):
1 |
$this->data['entry_lastname'] = $this->language->get('entry_lastname'); |
1 2 3 |
if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) { $json['error']['lastname'] = $this->language->get('error_lastname'); } |
Поскольку мы изменяем оформление заказа с регистрацией, то нам теперь необходимо открыть файл catalog/model/account/customer.php и 14 строку:
1 |
$this->db->query("INSERT INTO " . DB_PREFIX . "customer SET store_id = '" . (int)$this->config->get('config_store_id') . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', password = '" . $this->db->escape(md5($data['password'])) . "', newsletter = '" . (isset($data['newsletter']) ? (int)$data['newsletter'] : 0) . "', customer_group_id = '" . (int)$customer_group_id . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "', status = '1', approved = '" . (int)!$customer_group_info['approval'] . "', date_added = NOW()"); |
изменить на
1 |
$this->db->query("INSERT INTO " . DB_PREFIX . "customer SET store_id = '" . (int)$this->config->get('config_store_id') . "', firstname = '" . $this->db->escape($data['firstname']) . /*"', lastname = '" . $this->db->escape($data['lastname']) .*/ "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', password = '" . $this->db->escape(md5($data['password'])) . "', newsletter = '" . (isset($data['newsletter']) ? (int)$data['newsletter'] : 0) . "', customer_group_id = '" . (int)$customer_group_id . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "', status = '1', approved = '" . (int)!$customer_group_info['approval'] . "', date_added = NOW()"); |
Также меняем 18ю строку:
1 |
$this->db->query("INSERT INTO " . DB_PREFIX . "address SET customer_id = '" . (int)$customer_id . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', company_id = '" . $this->db->escape($data['company_id']) . "', tax_id = '" . $this->db->escape($data['tax_id']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', city = '" . $this->db->escape($data['city']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', country_id = '" . (int)$data['country_id'] . "', zone_id = '" . (int)$data['zone_id'] . "'"); |
на
1 |
$this->db->query("INSERT INTO " . DB_PREFIX . "address SET customer_id = '" . (int)$customer_id . "', firstname = '" . $this->db->escape($data['firstname']) . /*"', lastname = '" . $this->db->escape($data['lastname']) .*/ "', company = '" . $this->db->escape($data['company']) . "', company_id = '" . $this->db->escape($data['company_id']) . "', tax_id = '" . $this->db->escape($data['tax_id']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', city = '" . $this->db->escape($data['city']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', country_id = '" . (int)$data['country_id'] . "', zone_id = '" . (int)$data['zone_id'] . "'"); |
Подобными изменениями строк мы лишь закомментировали фамилию.
Вот таким несложным способом мы удалили из второго шага оформления заказа ненужные для нашего магазина поля личных данных покупателя.
Остальные поля, например e-mail или телефон, можно убрать точно таким же способом, каким мы убрали индекс и фамилию.
Напомню еще раз, для того, чтобы править гостевое оформление заказа, то есть без регистрации, необходимо править файлы catalog/view/theme/default/template/checkout/guest.tpl и catalog/controller/checkout/guest.php . Принцип действия тот же, только в файле catalog/controller/checkout/guest.php необходимо закомментировать следующие строки:
13
1 |
$this->data['entry_lastname'] = $this->language->get('entry_lastname'); |
приблизительно 189-191
1 2 3 |
if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) { $json['error']['lastname'] = $this->language->get('error_lastname'); } |
приблизительно 261
1 |
$this->session->data['guest']['lastname'] = $this->request->post['lastname']; |
приблизительно 267
1 |
$this->session->data['guest']['payment']['lastname'] = $this->request->post['lastname']; |
и приблизительно 318 строку
1 |
$this->session->data['guest']['shipping']['lastname'] = $this->request->post['lastname']; |
В результате мы получили второй шаг с уменьшенным количеством полей для заполнения:
Подскажите а как вы закоментировали строки. У меня почему то неполучилось
Вот пример того, как закомментирован факс:
Весь остальной код, который нам не нужен, комментируем аналогично.
Спасибо Андрею.
Подскажите, где находится customer.php?
Отдельная благодарность автору!!!
Вопрос 2. Можно ли для экономии времени скопировать и заменить содержимое register.php и register.tpl на guest.php и guest.tpl, если разумеется изменения производились в квесте?
Богдан, файлов, под названием customer.php, в сборке около десятка, о каком именно идет речь? В посте я упоминаю catalog/model/account/customer.php.
На счет замены файлов — не советую, можете вызвать ошибки, которые потом придется долго разбирать по частям.
u menya ne poluchaetsa takim sposobom zakomentirovat stroku
oshibku vidaet
pozaluysta vilozite fayli s zakomentirovanim strokami…
Могу выложить файлы, но с одним нюансом — для заказа без регистрации:
guest.tpl
guest.php
spasibo ogromnoe…ochen pomogli…
Рада, что смогла помочь)
Проблема на миллион(( все сделал так как у Вас написало нажимаю продолжить оформление заказа, и все ошибки понеслись,что делать???? гонит на файл guest.php
Снова обращаемся к файлу catalog/controller/checkout/register.php и КОММЕНТИРУЕМ строки
Что значит комментируем? подскажите мой сайт gstore.org.ua в оформлении заказа необходимо убрать строку страна фамилию имя и отчество объединить в одну данный способ поможет версия движка 1.5.4.1
Комментирование, грубо говоря, не позволяет коду отобразиться на сайте. То есть вместо того, чтобы просто удалить строки, мы их комментируем, для tpl файлов подходит тот же тип комментирования, что и для html файлов —
[!— здесь код —]
Только вместо квадратных скобок «[ ]» необходимо прописать скобки вот такого вида «<>«.
Именно таким образом необходимо обрамить код ненужных строк.
Что касается страны, то ее стоит оставить, но так, чтобы не было списка с выбором, а была лишь та, которая необходима. Города отображаются в зависимости от той страны, которая выбрана по умолчанию.
Как создать одно общее поле для ФИО в статье описано, если что-то непонятно или не получается, то напишите что именно.
закоментировал строку адрес в файле checkout.tpl а вот в checkout.php не получается
зачем оставлять страну? мы работаем только по Украине
А чем Вам мешает упоминание Украины, как страны по умолчанию? Покупателю даже не придется ее выбирать, просто написано себе и всё. Чтобы убрать страну, надо кучу кода перебрать, так как я раньше Вам писала:
, соответственно, они не будут работать, если Вы уберете страну.
ок оставим страну в покое как мне в файле checkout.php закоментировать код
Egor, зачем Вы вносите изменения в checkout.php? Если у Вас гостевое оформление заказа, то правьте guest.tpl и php, а если с регистрацией, то register.tpl и php.
Так и не возьму в толк, какая проблема у Вас возникла с комментированием…
Здравствуйте.
У меня после комментирования или нужного мне изменения строк после сохранения с нужной кодировкой(UTF-8) на сервере не происходит никаких изменений на сайте…
Здравствуйте, Александр.
Комментирование и кодировка друг с другом никак не связаны и друг на друга не влияют. Ищите проблему в чем-то другом.
Тупанул скажите так выглядит закоментированная строка в guest.php
/*$this->data[‘entry_postcode’] = $this->language->get(‘entry_postcode’);*/
если да то я сделал как в тех файлах что вы выложили но ничего не изменилось
Верно, комментировать в php файле следует именно так. Но, если Вы хотите скрыть индекс, то необходимо комментировать не только эту строку, но и ниже код, касающийся индекса (смотрите в записи).
еще вопрос допустим закоментировал или удалил я строки из файлов guest.tpl и guest.php мне в файле checkout.tpl нужно тоже их убирать или они должны сами пропасть?
Все изменения происходят в guest.tpl и guest.php.
да я видел в guest.php закоментировал и вторую часть кода ничего не изменилось( могу я выложить свои файлы gust.tpl и guest.php что бы вы закоментировали мне поле фамилия а дальше уж я сам а то запарился уже да и вас наверно замучал
Ответила на почту.
Делал, как написано (с фамилией) — выдаёт ошибку, пока в файле рнр не закоментировал всё, что с фамилией. После этого только пропустил ко второму шагу.
Спасибо за замечание.
Описывала скрытие обязательных полей после процесса по упрощению оформления заказа, от того и ход действий был совсем иным. Отредактировала пост под обычное многошаговое оформление заказа.
Здравствуйте, хорошая статья спасибо помогла очень, но теперь появилась еще одна проблема, как убрать эти же поля с АДМИНКИ с формы данных о заказе товара?
Вам этот момент необходим для правки заказов?
Редактировать заказы в админке необходимо в файлах order.tpl и order.php.
Здравствуйте. Хороший блог, чистый, светлый, понятный.
По теме поста, кто может подсказать как в поле «регион» сделать так чтоб выставилось не выбрать, а например конкретный, а то даже если всего один регион в системе все равно в селекте слово выбрать?
Спасибо.
А что касается Вашего вопроса, то это не то, что Вам требуется? В посте основная тема — это страна, но и о регионе идет речь.
А как убрать пустые строки которые остаются? Само название факс или компания пропадает а строка ввода остается, как убрать?
На скринах в посте видно к чему приводит комментирование упомянутых строк: скрываются и фразы и поля ввода, ничего дополнительно комментировать или удалять не требуется.
Добрый день! Пожалуйста помогите с редактированием заказа для не зарегистрированного пользователя, где то допустил ошибку наверное, и теперь ошибка:
SybtaxError: Unexpected token <
OK
Notice : Undefined index: postcode in /home/адрес сайта/www/catalog/controller/checkout/guest.php on line 233
и аналогичный текст с 260, 264, 265, 269,315, 318,346
Ответила на почту.
Доброго времени суток. Отличный у Вас блог=) С шагами все получилось как по маслу а вот с удалением полей запарка(
«SyntaxError: JSON.parse: Unable to parse value: Noti
OK
Notice: Undefined index: postcode in /home/modamy/public_html/catalog/controller/checkout/guest.php on line 237………»
Помогите пожалуйста=)
Спасибо)
Закомментируйте 237 строку файле guest.php.
Большое спасибо компания, company id, факс и индекс исчезли. А что нужно сделать что бы осталось «ФИО», «email», «телефон» и «адрес»? (ну и желательно регион по умолчанию «Украина» и «Москва», в идеале вообще убрать бы=) В каких файлах искать если без регистрации оформлять клиент будет. Заранее спасибо)
Что касается ФИО, то в посте о них речь идет. Описан процесс для зарегистрированных пользователей, но действия производить следует аналогичные, только в файлах guest.tpl и guest.php.
А о правке страны и региона посмотрите здесь.
Добрый день.
Советы хороши. правда в версии 1.5.1 искомые строки выглядят немного по другому, но разобраться можно. Но, тем не менее, я, вероятно допустил ошибку. Не могли бы Вы быть столь добры, чтобы подсказать, как исправить её, ибо бьюсь об учебники «Ява» и «ПХП» уже неделю, но понять, как знания об «Гет» и «Пост» запросах соотносятся с проблемой явно не могу..
изменения:
Оставил: «* Имя, Отчество:»; «* E-mail:»; «* Телефон:»;
Переименовано из адреса, города и артикула: «* Улица:»; «* Город:»; «* Номер дома:»
Необязательные поля убраны.
Оставлены только шаги — 2, 5, 6. Заказ без регистрации.
После «шаг 5″ на «Шаг 6: Подтверждение заказа» не переходит, вместо оного появляется окно с кнопкой «ок» и надписью:
» Подтвердите действие на localhost
SyntaxError: Unexpected token < "
Чтобы дать совет, надо иметь код перед глазами. А 1.5.1 я уже давно не видела, и какие там отличия от нынешних версий не помню.
Здравствуйте!Хорошая статья!! все сделала как написано (меняла пока только для регистрации), но почему-то не срабатывает, выдает ошибку
Когда заходишь через «оформить заказ» в корзине, не пускает на 2 шаг
Когда заходишь через «зарегестрироваться», поля для заполнения остаются прежними
Уже вроде все 10 раз перепроверила, не могли бы вы взглянуть на мои 2 файла?(
Заранее большое спасибо!!
Ответила на почту.
Юля, пожалуйста помогите, сделал все как у Вас написано, но теперь после того, как я пытаюсь оформить заказ через регистрацию система выдает ошибку , по ссылке принскрин https://files.mail.com/1B4FB3C7614B412EA413884AB4DC8FC0?t=1
Но заказ тем заводится, только ошибка выскакивает
Александр, система сама подсказывает Вам где кроются ошибки — указывает строки и переменные. Закомментируйте в register.php строки с индексом и компанией (номера строк указаны в ошибках), а в customer.php, на тех строках, которые указаны, необходимо закомментировать только куски кода с индексом, факсом и компанией, при этом там код в одну строку (разбивать нельзя), будьте внимательны при комментировании.
Здравствуйте, обыскал весь интернет статья весьма полезна, у меня вопрос как убрать надпись и checkbox на странице регистрации?
—> Мой адрес доставки совпадает с платёжным.
Я так поняла, речь об оформлении заказа с регистрацией. Тогда открывайте файл catalog\view\theme\default\template\checkout\register.tpl и комментируйте строки
[?php //if ($shipping_required) { ?]
[input type=»checkbox» name=»shipping_address» value=»1″ id=»shipping» checked=»checked» /]
[label for=»shipping»>< ?php //echo $entry_shipping; ?>
Добрый вечер!
А можно прописать аналогичную корректировку карточки регистрации нового покупателя (при нажатии на «Регистрация») или хотя бы какие файлы править ?
И если можно, не совсем по этой теме, как сделать чтобы при нажатии на кнопку «Продолжить» в закладках, переход осуществлялся не в личный кабинет, а туда, откуда покупатель зашёл в закладки, или хотя бы на главную страницу (это необходимо так как закладки были переделаны так, что ими может пользоваться и незарегистрированный покупатель, но при нажатии на кнопку «Продолжить» всё равно выбрасывает в личный кабинет).
Заранее спасибо!
Для правки регистрации открывайте файлы
catalog\view\theme\default\template\account\register.tpl
catalog\controller\account\register.php
и правьте их аналогично тому, как описано в статье.
Владислав, когда товар добавлен в закладки, движок оповещает покупателя об этом и предлагает зайти в закладки — дает ссылку. Вот в Вашем магазине куда ведет эта ссылка? Покупатель попадает на страницу с вопросом о новом клиенте или зарегистрированном? Если да, то за эту страницу отвечает файл
catalog\view\theme\default\template\account\login.tpl
в котором Вы и сможете изменить путь для кнопки «Продолжить».
А зачем выдаёт поля Пароль и Подтвердите пароль если это покупка без регистрации ?
В гостевом оформлении заказа нет запроса пароля. В статье же я рассматриваю скрытие полей для оформления заказа с регистрацией, соответственно, движок просит пароль.
У меня выдаёт пароль в варианте без регистрации. Очевидно где-то ошибся. Буду искать.
Периодически вылазять глюки типа этого:
Notice: Undefined index: lastname in N:\home\localhost\www\13kopeek\catalog\controller\checkout\confirm.php on line 134Notice: Undefined index: fax in N:\home\localhost\www\13kopeek\catalog\controller\checkout\confirm.php on line 137Notice: Undefined index: lastname in N:\home\localhost\www\13kopeek\catalog\controller\checkout\confirm.php on line 143Notice: Undefined index: company in N:\home\localhost\www\13kopeek\catalog\controller\checkout\confirm.php on line 144Notice: Undefined index: company_id in N:\home\localhost\www\13kopeek\catalog\controller\checkout\confirm.php on line 145Notice: Undefined index: address_2 in N:\home\localhost\www\13kopeek\catalog\controller\checkout\confirm.php on line 148Notice: Undefined index: postcode in N:\home\localhost\www\13kopeek\catalog\controller\checkout\confirm.php on line 150
Вопрос решён. Там ещё необходимо внести изменения в несколько других файлов. Не знаю как на каких версиях, но для 1541 надо.
у меня та же версия, в какие файлы нужно вести изменение?
Владислав а какие именно изменения нужно внести на OcStore 1.5.4.1 ?
ДД, очень нужное действие для сайта и для пользователей, но застрял на правке файла guest.php не могу понять что не так, все данные ввел на странице сайта, но когда жмешь дальше не переходит на след шаг. Подскажите что можно сделать?
Включите отображение ошибок и увидите на что ругается движок, сможете копать в нужном направлении.
Каждый раз после иправления выдает новую. Я так понимаю что для OcStore 1.5.4.1 своя специфика?
Каждая версия может иметь свои нюансы, которые необходимо учитывать.
Друзья, нашел модуль в котором можно просто отключить ненужные поля в заказе ))) кому нужно можно скачать тут https://opencartforum.com/files/file/1054-nastraivaemye-polia-registratcii/
а у меня пишет Notice: Undefined index: postcode in C:\home\localhost\www\brelok\catalog\controller\checkout\register.php on line 191, если её закомментировать то ошибки продолжаются.
Если Вы решили скрыть индекс из оформления заказа, то прошерстите все файлы, которые содержат упоминание индекса и закомментируйте строки с индексом. А то, что ошибки продолжаются, значит остались места в коде, которые необходимо или удалить или закомментировать. И движку отдельное спасибо за то, что он подсказывает с чем необходимо разобраться.
Спасибо, попробую заново. А никто не писал как не удалить какие то пункты, а добавить , отчество например и сделать его обязательным?
Ура!!!
Благодаря Вашим советам — получилось!!
Немного посидела, почитала комменты (у меня тоже ошибка выскакивала) — и разобралась!
Спасибо!!
Анна, спасибо за комментарий! Приятно читать подобные отзывы: не смотря на возникающие сложности, человек разбирается и получает результат!
Подскажите пожалуйста, как сделать сайт вообще без регистрации? чтобы покупки совершались только в гостевом режиме.
Ксения, посмотрите запись «OpenCart — оформление заказа — убираем ненужные шаги», в первом шаге разбирается именно этот вопрос.
Спасибо огромное за статью! Предельно ясно и доходчиво изложено.
Буду заглядывать.
Спасибо. Буду рада)
Большущее спасибо за полезную статью, именно то, что нужно!!! Все очень понятно описано, проблем не возникло:) Остальные формы, где необходимо убрать поля делала по аналогии, все работает. Версия 1.5.4.1
И Вам спасибо за посещение блога и за отзыв!
Хотя все работает. Опен карт 1.5.4.1
Вот выводит ошибку
——————————————————————————
Notice: Undefined index: lastname in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 134Notice: Undefined index: fax in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 137Notice: Undefined index: lastname in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 143Notice: Undefined index: company in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 144Notice: Undefined index: address_1 in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 147Notice: Undefined index: address_2 in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 148Notice: Undefined index: city in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 149Notice: Undefined index: postcode in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 150Notice: Undefined index: zone in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 151Notice: Undefined index: zone_id in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 152Notice: Undefined index: country in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 153Notice: Undefined index: country_id in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 154Notice: Undefined index: address_format in /home/u604895815/public_html/catalog/controller/checkout/confirm.php on line 155
——————————————————————————
https://malaya.zz.mu
Правьте файл catalog/controller/checkout/confirm.php, в каких строках необходимо комментировать код, движок Вам сообщил.
после коммента файла сatalog/controller/checkout/confirm.php вылетает catalog/model/checkout/order.php cтрока 4. Коменчю 4 строку нате сохранения в базу.
Все правильно делаете, только в catalog/model/checkout/order.php cтрока 4 нужно комментить только те escape, на которые ругается движок
/*»‘, lastname = ‘» . $this->db->escape($data[‘lastname’]) .*/
/*»‘, fax = ‘» . $this->db->escape($data[‘fax’]) . */
/*»‘, payment_lastname = ‘» . $this->db->escape($data[‘payment_lastname’]) . «‘, payment_company = ‘» . $this->db->escape($data[‘payment_company’]) . «‘, payment_company_id = ‘» . $this->db->escape($data[‘payment_company_id’]) . «‘, payment_tax_id = ‘» . $this->db->escape($data[‘payment_tax_id’]) . */
и т.д.
У меня в order.php ругаестся на коменты, если закомментировать коменты то их не будет в письме и системе…
Здравствуйте, у меня вопрос, как можно сделать email не обязательным к заполнению, что бы пользователь мог его не заполнять (для тех у кого нету email)
Вот готовый хак для регистрации и оформления заказа. Версия 1.5.4.1
https://rghost.com/48385177
Андрей, чей хак? Если не Ваш,то ссылку на первоисточник неплохо было бы получить.
Сам делал
Тогда ок и спасибо за труд)
Можно ли выложить файлы квеста? 1.5.4.1.
К сожалению, на данный момент, у меня нет подобных изменений ни на одном из магазинов.
Jul, подскажите, пожалуйста, в чем может быть причина. Правила файл guest.php по вашей инструкции (до этого также убирала ненужные поля), после ввода оставшихся данных при нажатии на кнопку продолжить (в гостевом режиме), появлялась ошибка, что необходимо закомментировать еще строки. Следовала указаниям движка, самой последней предлагалось закомментировать строку this->response->setOutput(json_encode($json)); , примерно 370, почти в конце. после комментирования ошибка исчезла, но при нажатии на кнопку продолжить на следующий шаг опенкарт не пускает, рядом с кнопкой значок — точечки бегут по кругу — ожидание перехода дальше
Закомментировали лишнее — скрипт не выполняет свою работу.
Вроде бы всё делал по написаному , а при проверке оформит заказ с регистрацией и без выскакивает непонятное окно https://s1.ipicture.com/uploads/20130907/PMhhvn2H.jpg подскажите что делать?
У Вас не закомментированы факс, компания, tax.
версия 1.5.4.1
После всех операций и нажатия продолжить система ругается на строчку 237 файла guest.php (if ($country_info[‘postcode_required’] && (utf8_strlen($this->request….)
Если ее закоментить, сразу появляется ошибка по строке 258, которая имеет в себе еще тысячу строк текста… if (!$json) {
Если ее закоментить то все, пошло поехало, дальше придется коментить половину файла и в результате так и будут сыпаться ошибки… Что делать, где что искать =)
Mike, приведенный в статье код относится к 1.5.3.1, может немного разнится с более новой версией. Но, скорее всего, допустили ошибку в комментировании, надо проверять код и искать проблему.
Думаю лучше все таки прятать поля не с помощью комментария а с помощью стилей (оборачиваем поля в … ). При таком подходе поля из DOM не удаляются и серверный код может читать их значения (пустые или их можно заполнить чем то по умолчанию). Преимущество в том, что в серверной части можно будет не вносить никаких изменений. Ну или их будет на порядок меньше :)
Здравствуйте. После заполнения 2 шага, перехожу на следующий шаг и нажимаю изменить 2 шаг. Появляется выбор «Я хочу использовать существующий адрес» и » Я хочу использовать новый адрес». При нажатии » Я хочу использовать новый адрес» появляются ненужные поля. Подскажите как их убрать, в каких файлах править? Заранее спасибо.
Все нашел) Надо править в payment_address.tpl и payment_address.php
- PHP Notice: Undefined variable: entry_postcode in /var/www/user41964/data/www/shop.renault-24.com/catalog/view/theme/default/template/checkout/guest.tpl on line 62
— PHP Notice: Undefined variable: postcode in /var/www/user41964/data/www/shop.renault-24.com/catalog/view/theme/default/template/checkout/guest.tpl on line 63
— PHP Notice: Undefined index: lastname in /var/www/user41964/data/www/shop.renault-24.com/catalog/controller/checkout/guest.php on line 189
— PHP Notice: Undefined index: postcode in /var/www/user41964/data/www/shop.renault-24.com/catalog/controller/checkout/guest.php on line 237
что делать? помогите( Версия 1.5.5.1.1
У Вас незакомментированного «добра» на миллион. Разберитесь с теми строками, вывод которых Вам не нужен. Следуйте инструкции движка — то, на что он ругается и вызывает ошибку.
Откопал все файлы все заново сделал все работает,Автору БОЛЬШОЕ спасибо=)
вопрос конечно не по теме но все равно задам кто сталкивался вот с таким: Доставка по данному адресу невозможна. Свяжитесь с нами, и мы найдём решение проблемы!
Что это и как сделать что бы все работало нормально???
Заранее спасибо=)
Рада, что у Вас все получилось)
А что касается досавки, то зайдите в Дополнения-Доставка и проверьте статус того способа доставки, который Вам необходим в магазине. Такое сообщение движок выдает в том случае, когда отключена доставка.
А такой вопрос в каком файле убрать: Адрес (продолжение):
Заранее спасибо
Добрый день. следую вашим инструкциям, но не все получается. на движке 1.5.4.1 на 6 шаге вот что вылезает
Notice: Undefined index: fax in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: payment_company in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: payment_company_id in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: payment_tax_id in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: payment_address_2 in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: payment_postcode in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: shipping_company in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: shipping_address_2 in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4Notice: Undefined index: shipping_postcode in /home/peanutbu/peanutbutter.kiev.ua/www/catalog/model/checkout/order.php on line 4
ребят может кто нибудь уже готовые файлы выложить у кого все работает и при регистрации и при гостевом режиме? то вообще беда таких дел наворотил(((
Заранее спасибо большое
Все перепробовал, на все строчки которые гонит движок закоментировал, толку 0(((
Пожалуйста если у кого есть файлы готовые, и у кого все работает выложите пожалуйста.Заранее БОЛЬШОЕ спасибо=)
я уже оставлял комментарии по поводу ошибок минут 20 назад. так вот, кроме тех файлов, которые вы указали нужно еще 2 файла редактировать. это order.php и еще какой-то, который на 6 шаге подтверждение заказа.
Все хорошо но вот тут задумался а что если вообще убрать регистрацию при оформлении заказа, и оставить простую регистрацию, ну где есть личный кабинет и все такое) только вот как убрать регистрацию при оформлении заказа я разобрался а вот как убрать ненужные поля в Регистрации чего то не понятно( Если кто то уже делал выложите описание ну или в краце расскажите что и где удалять коментировать убирать) Заранее БОЛЬШОЕ спасибо=)
Всё работает, но в журнале ошибок постоянно вылазят ошибки:
2013-11-26 12:11:50 — PHP Notice: Undefined variable: entry_lastname in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 7
2013-11-26 12:11:50 — PHP Notice: Undefined variable: lastname in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 8
2013-11-26 12:11:50 — PHP Notice: Undefined variable: entry_fax in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 19
2013-11-26 12:11:50 — PHP Notice: Undefined variable: fax in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 20
2013-11-26 12:11:50 — PHP Notice: Undefined variable: entry_company in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 26
2013-11-26 12:11:50 — PHP Notice: Undefined variable: company in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 27
2013-11-26 12:11:50 — PHP Notice: Undefined variable: entry_company_id in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 44
2013-11-26 12:11:50 — PHP Notice: Undefined variable: company_id in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 45
2013-11-26 12:11:50 — PHP Notice: Undefined variable: entry_address_2 in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 58
2013-11-26 12:11:50 — PHP Notice: Undefined variable: address_2 in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 59
2013-11-26 12:11:50 — PHP Notice: Undefined variable: entry_postcode in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 66
2013-11-26 12:11:50 — PHP Notice: Undefined variable: postcode in N:\home\localhost\www\13kopeek\catalog\view\theme\13kopeek\template\checkout\guest.tpl on line 67
Т.е. везде где задокументированы строки по удаляемым полям выдаёт ошибки.
На сколько это критично ? И стоит ли это исправлять ?
Кстати в админ панели то же не мешало бы убрать те же обязательные поля. Иначе если вы получили заказ по телефону, а хотите вести учёт всех покупок в OpenCart, необходимо самостоятельно завести сделку и тут оно запрашивает инфу по полному кругу. Можно конечно зайти с сайта и как покупатель всё завести, но это не совсем удобно.
Так вот, если кто знает где править админку — поделитесь.
С ошибками в журнале ошибок всё просто решается: необходимо строки не документировать , а удалять и тогда журнал ошибок будет чистым.
Зделал все как сказано, а факс все равно остался.в чем проблема?
Помогите разобраться с guest.php на 1.5.4.1 — тоже ругается на 237 строку на 2м шаге. Вот сама 237 строка:
if ($country_info[‘postcode_required’] && (utf8_strlen($this->request->post[‘postcode’]) request->post[‘postcode’]) > 10)) {
Если ее комментю, то выдает ошибку на 258 строку.
Кроме того у меня в guest.php нет кода
if (isset($this->session->data[‘shipping_postcode’])) {
$this->data[‘postcode’] = $this->session->data[‘shipping_postcode’];
} else {
$this->data[‘postcode’] = »;
}
который нужно закомментить, но зато есть такой
if (isset($this->session->data[‘guest’][‘payment’][‘postcode’])) {
$this->data[‘postcode’] = $this->session->data[‘guest’][‘payment’][‘postcode’];
} elseif (isset($this->session->data[‘shipping_postcode’])) {
$this->data[‘postcode’] = $this->session->data[‘shipping_postcode’];
} else {
$this->data[‘postcode’] = »;
}
Нужно ли в нем комменить подусловие или комменить весь кусок или вообще не комменить его?
Здравствуйте, уже второй день не могу разобраться с обязательными полями, комментирую строки по поводу индекса в guest.php. потом выдает ошибку
Undefenied index postcode on line 246
вот код
245 if ($country_info) {
246 if ($country_info[‘postcode_required’] && (utf8_strlen($this->request->post[‘postcode’]) request->post[‘postcode’]) > 10)) {
247 $json[‘error’][‘postcode’] = $this->language->get(‘error_postcode’);
248 }
если я комментирую одну, либо все строки, неважно, пропадает второй шаг, и вместо него появляется сообщение
«Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION in Z:\home\ocstore\www\catalog\controller\checkout\guest.php on line 267″
Помогите пожалуйста разобраться, я уже забил на этот индекс, но при попытке убрать фамилию — после комментирования похожих строчек связаных с ней, тоже выдает эту ошибку. Я так понимаю из-за того что я убираю код, там какие-то нестыковки, но в программировании дуб дубом
Виталий, здесь главное условие — внимательность: зацепили какой-либо спецсимвол и полезут ошибки, закомментируете лишнюю или не ту строку и опять таки будут ошибки. У Вас ошибки из-за неправильно скрытого индекса + где-то оставили ненужный код, необходимо все перепроверить, пройти всеь процесс заново. Со стороны проблему не решишь, а вот Вы, имея код, сможете найти недочет, если будете идти точно по шагам.
Доброго времени суток!
Спасибо за статью, очень помогла.
Такой вопрос: возможно ли убрать поле e-mail из формы для гостей, но оставить поле для людей, желающих зарегистрироваться?
Как я понял, итог обрабатывается одним файлом /catalog/model/account/customer.php
следовательно, такое сделать нельзя?
Скрыл поле e-mail в гостевой анкете с помощью display:none; и поставил автозаполнение) Вопрос решен)
Как ты это сделал?? в каком файле??
Расскажите пожалуйста как это сделать
Здравствуйте! Спасибо за статью, всё получается, но поля убираются только при оформлении заказа, а при регистрации остаются, как можно их удалить оттуда?
Заранее спасибо:)
Я так поняла, Вы имеете ввиду не регистрацию при оформлении заказа (первый шаг с выбором), а независимую регистрацию, которую может пройти покупатель еще до каких-либо покупок? Если речь идет о ней, то править необходимо catalog\view\theme\default\template\affiliate\register.tpl и catalog\controller\affiliate\register.php.
SyntaxError: JSON.parse: unexpected character
Здравствуйте, подскажите, что это за ошибка и как ее править или уже по новой все файлы грузить, что-то не так сделал ошибка за ошибкой…
OK
Notice: Undefined index: postcode in /home/u/udacacaru/dacha/public_html/catalog/controller/checkout/guest.php on line 237{«error»:{«lastname»:»\u0424\u0430\u043c\u0438\u043b\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0442 1 \u0434\u043e 32 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»}}
Сергей, ошибки из-за неаккуратного комментирования/удаления кода. Просмотрите весь код внимательно, если не сможете проанализировать файлы «до и после», то придется проделать весь процесс заново, но уже внимательней, чтобы не нарушить целостность кода.
Здравствуйте помогите пожалуйста оставил в заказе имя и тел оформляю его проходит без ошибок но в админке в заказе не имя не тел нет только номер заказа ! Что я не так сделал заранее Благодарен
На не дефолтной теме аналогично?
Да.
После комментирования любой строки в register.tpl выходит ошибка,в чем дело?
Помимо register.tpl необходимо также править register.php.
Хороший блог! мне ещё мешали поля Страна и Регион, оказалось убрать их очень просто — нужно в guest.tpl выставить этим полям любые принудительные значения, чтоб дальше не ругалось на контролках, а потом просто скрыть поля загнав их в . Просто и удобно :) конечно есть минус, что в админке будет писаться страна и город, но это мелочи, которые тоже легко правятся
Добрый день! Что-то у меня проблема при оформлении заявки с регистрацией. Пробовала по разному, но постоянно какие-то глюки. Сначала выдает ошибку типа:
SyntaxError: JSON.parse: unexpected character
OK
Notice: Undefined index: postcode in E:\xampp\htdocs\Opencart\catalog\controller\checkout\register.php on line 190Notice: Undefined index: fax in E:\xampp\htdocs\Opencart\catalog\model\account\customer.php on line 14Notice: Undefined index: company in E:\xampp\htdocs\Opencart\catalog\model\account\customer.php on line 18Notice: Undefined index: company_id in E:\xampp\htdocs\Opencart\catalog\model\account\customer.php on line 18Notice: Undefined index: postcode in E:\xampp\htdocs\Opencart\catalog\model\account\customer.php on line 18[]
Исправляю строчку 190 вот так:
if ($country_info) {
/*if ($country_info[‘postcode_required’] && (utf8_strlen($this->request->post[‘postcode’]) request->post[‘postcode’]) > 10))*/ {
$json[‘error’][‘postcode’] = $this->language->get(‘error_postcode’);
}
После исправления строки 190, форма оформления заказа не переходит к следующему шагу. Другие строки пока не трогала.
Может ее как-то по другому надо комментировать???????
Помогите!!!
Этот момент решен — неправильно была закомментирована строка 190 в файле catalog\controller\checkout\register.php
добрый вечер!
подскажите пожалуйста что делать!
косяк в том,что у меня первоначально звездочка стояла на id company,я не обратил внимание на это(
делал все пошагово и «компания’ и «id company» удалил(
самая большая проблема в том что я сохранил только для зарегиных пользователей,а гостевой нет(
и заказ естсвенно перестал работать(
подскажите что можно сделать?можно ли скачать первоначальный файл откуда -нибудь?
Все получилось) спасибо Вам за статью!)
Вот и хорошо) Вам спасибо за отзыв!
Олег, скачайте архив с движком той версии, которую используете Вы, и зайлейте утерянный файл в необходимую папку на сервере. Скачать движок можно здесь.
Доброго времени суток! Версия CMS 1.5.5.1.1 Делал все по инструкции, (2 раза — 1раз на сайт с ранними редактирования,2-ой раз на чистую CMS), и каждый раз при при проверке заполнения полей, (оставлял пустыми и нажимал кнопку продолжить), появляется такая ошибка, вместо предупреждения об обязательном заполнении полей (красным текстом)
За ранее спасибо!
SyntaxError: JSON.parse: unexpected character
OK
Notice: Undefined index: postcode in Z:\home\osnova\www\catalog\controller\checkout\register.php on line 199{«error»:{«firstname»:»\u0418\u043c\u044f \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0442 1 \u0434\u043e 32 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»email»:»E-Mail \u0432\u0432\u0435\u0434\u0451\u043d \u043d\u0435\u0432\u0435\u0440\u043d\u043e!»,»telephone»:»\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 3 \u0434\u043e 32 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»address_1″:»\u0410\u0434\u0440\u0435\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 3 \u0434\u043e 128 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»city»:»\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0442 2 \u0434\u043e 128 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»zone»:»\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043e\u043d \/ \u043e\u0431\u043b\u0430\u0441\u0442\u044c»,»password»:»\u041f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 3 \u0434\u043e 20 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»warning»:»\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0441\u044f \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438: \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438!»}}
Доброго времени суток! Версия CMS 1.5.5.1.1 Делал все по инструкции, (2 раза — 1раз на сайт с ранними редактирования,2-ой раз на чистую CMS), и каждый раз при при проверке заполнения полей, (оставлял пустыми и нажимал кнопку продолжить), появляется такая ошибка*, вместо предупреждения об обязательном заполнении полей (красным текстом)
За ранее спасибо!
Oшибка*
Oшибка*
SyntaxError: JSON.parse: unexpected character
OK
Notice: Undefined index: postcode in Z:\home\osnova\www\catalog\controller\checkout\register.php on line 199{«error»:{«firstname»:»\u0418\u043c\u044f \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0442 1 \u0434\u043e 32 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»email»:»E-Mail \u0432\u0432\u0435\u0434\u0451\u043d \u043d\u0435\u0432\u0435\u0440\u043d\u043e!»,»telephone»:»\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 3 \u0434\u043e 32 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»address_1″:»\u0410\u0434\u0440\u0435\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 3 \u0434\u043e 128 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»city»:»\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0442 2 \u0434\u043e 128 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»zone»:»\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043e\u043d \/ \u043e\u0431\u043b\u0430\u0441\u0442\u044c»,»password»:»\u041f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 3 \u0434\u043e 20 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!»,»warning»:»\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0441\u044f \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438: \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438!»}}
Прошу прощения, у модератора за флуд ((
День добрый! Сделал по инструкции, оставил 3 шага, все работает, кроме последнего шага «Подтверждение заказа» (он не разворачивается), следовательно закончить оформление заказа не возможно. В чем может быть проблема?
https://i051.radikal.com/1403/33/54a47e8daeb3.jpg скрин-шот моей проблемы. Появилось после удаления индекса, хотя он и не был помечен звездочкой. Я закомментировала в файлах register.php и guest.php + удалила из register.tpl то, что касается индекса. Помогите, пожалуйста, справиться. Буду благодарна.
Прошу прощения, ocStore 1.5.5.1.1, шаблон bugdesing. Предыдущий урок по удалению лишних шагов из оформления заказа отлично сработал. Еще раз прошу у Вас помощи, заранее благодарна.
Не знаю, разобрались Вы с кодом или нет, на всякий случай отвечу по скрину: судя по нему у Вас не закомментированы/удалены postcode, fax, company и company id в тех файлах. которые в ошибке показал движок. Открывайте данные файлы и ищите нужный код на тех строках, что засветились в ошибке.
Здравствуйте, а как убрать те же самые поля, только для уже зарегистрированных пользователей, если они делают заказ уже авторизовавшись на сайте?
Добрый день, отличный сайт, правда даже при копировании текста из ваших файлов guest.tpl и guest.php все равно выдает ту же ошибку что и когда я делаю все по инструкции для раздела регистрация в оформлении заказа «SyntaxError:Unexpected token < OK Notice:Undefined index:postcode in/var/ ….»
а при регистрации в оформлении заказа «SyntaxError:Unexpected token < OK Notice:Undefined index:lastname in/var/ ….»
1.5.5.1.1
Заранее спасибо
Файлы, выложенные мною, касаются старой версии (1.5.3.1), так что они, естественно, к свежей версии не подойдут. У Вас же проблема в индексе и фамилии, только в каком файле не скажу — путь Вы прописали неполный. Но мой ответ и ни к чему — движок и так указывает путь для решения проблемы.
Для Open cart 1.5.6 можно поступить следующим образом. В файле, например, catalog/controller/checkout/guest.php изменить условия для не нужных Вам полей, а в файле catalog/view/theme/default/template/checkout/guest.tpl, соответственно, строки, указывающие на эти не нужные поля, закрыть с помощью display:none.
Например, необходимо убрать поле ФАМИЛИЯ. В php файле в контроллере корректируем строку
if ((utf8_strlen($this->request->post[‘lastname’]) request->post[‘lastname’]) > 32)) (строка приблизительно 189), вместо цифр 3 и 32 проставляем 0 и 0 (т.е. вместо требования ввести информацию, состоящую из букв от 3 до 32, появляется требование ввести информацию из 0 символов — т.е. поле может быть пустым). А в tpl файле в view делаем следующее
*
<input type="text" name="lastname" value="» class=»large-field» />
Правка кода минимальна.
В php файле такая строка
if ((utf8_strlen($this->request->post[‘lastname’]) request->post[‘lastname’]) > 32))
Извините, код не прошел.
в первом случае строка *if ((utf8_strlen($this->request->post[‘lastname’]) request->post[‘lastname’]) > 32))*
и далее в tpl файле
*
*
<input type="text" name="lastname" value="» class=»large-field» />
*
julia, заключите код в теги /pre lang=»php»>
Жаль конечно, но на своем шаблоне так и не смог настроить, два вечера просидел и все равно выдает ошибки.
Здравствуйте, еще раз попытаюсь объяснить.
Для Open cart 1.5.6 можно поступить следующим образом. В файле catalog/controller/checkout/guest.php изменить условия для не нужных Вам полей, а в файле catalog/view/theme/default/template/checkout/guest.tpl, соответственно, строки, указывающие на эти не нужные поля, закрыть с помощью display:none.
Например, необходимо убрать поле ФАМИЛИЯ. В php файле в контроллере корректируем строку
Меняем цифры 3 и32 на 0 и 0. (т.е. вместо требования ввести информацию, состоящую из букв от 3 до 32, появляется требование ввести информацию из 0 символов – т.е. поле может быть пустым). А в tpl файле во view делаем следующее
Т.е. просто отключаем отображение поля.
julia, заключите код в теги /pre lang=”php”> Первый и последний слеш измените на положенные скобки.
И все равно код полностью не проходит. Но, думаю, идея понятна
у меня на 1,5,6 все получилось. действовала строго по инструкции. оставила только Имя, почту и телефон .
спасибо.
а как увеличить высоту одного из полей?
Правда, подскажите, хочу что бы поле адрес было не однострочное, а многострочное, как это реализовать?
Необходимо полю с адресом придать свой id (файл checkout.tpl) и затем в stylesheet.css ему, кроме ширины, которая на данный момент для всех полей равна 300 px, прописать и нужную высоту.
Огромное спасибо, обязательно попробую
Класс! Все сработало! Спасибо вам за статью. Очень подробно и доходчиво написано. )
Вот и хорошо, что все получилось)
Убрал обязательное поле email, получается такая картина:
Если покупатель заполнил email — заказ в админке появляется, админу на мыло приходит уведомление о новом заказе.
Если покупатель не заполнил email — заказ в админке появляется, админу на мыло уведомление о новом заказе не приходит.
Как исправить? Что бы админку всегда уведомление на почту приходило…
homelocalhostwwwcatalogviewthemeupstoretemplatecheckoutregister.tpl on line 7 и еще выдает ошибки при попытке нажать купить
ПОМОГИТЕ homelocalhostwwwcatalogviewthemeupstoretemplatecheckoutregister.tpl on line 7 и еще выдает ошибки при попытке нажать купить
Ошибка в 7 строчке файла register.tpl
ищите там! возможно, что- то неправильно закомментировали
Я лично так и шёл по подсказкам движка- он сам показывает где ошибка- в какой строке! и к удивлению получилось то, что требовалось!))) Спасибо Автору за это!
Здравствуйте! Есть ли возможность віложить схему, как «удалить» все поля оформлении заказа (без регистрации), оставив только «Телефон»? Хотелось бы самому поиграться с этим, но боюсь, что потом, если что, назад вернуть будет сложно:).
добрый день, спасибо за статьи — помогают. Столкнулся с такой проблемой, при замене строк вылазит ошибка… При комментировании customer.php 28 line даже не пускает регистрироваться..( версия 1.5.5.1.2.
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
OK
Parse error: syntax error, unexpected ‘;’ in /home/virtwww/…………/http/catalog/model/account/customer.php on line 23
До момента работы с файлом register.php и ФИО всё шло как по маслу. Почему то почтовый индекс уже был необязательным и мне не пришлось лезть в register.php. Но при первом же закоментировании элементов в этом файле при заходе в корзину появляется надпись: Internal server Error. В чём моя ошибка?
Вроде нашёл ответ: почему то при правке файлов regidter.php и guest.php когда я комментирую строки таким образом при заходе в корзину выдаётся ошибка internal server error, когда я не комментирую, а удаляю строки всё проходит успешно… Не знаю почему так)
Может надо как нибудь по другому комментировать?
а как вы комментируете? так /* */???
<!—
*
<input type="text" name="postcode" value="» class=»large-field» />
—>
<input type="hidden" name="postcode" value="» />
только так получилось. иначе сыпет ошибки, типа не хватает параметров
Кто-то может сказать, как убрать Пароль (с подтверждением) из «Шаг 2″ ?
Вопрос уже не актуальный. Отвечать не обязательно.
Спасибо, большое за столь нужные советы и неоценимую помощь! Ничего лишнего все в тему!!! Столкнулся с проблемой: Подскажите, как мне не просто убрать поле email- а сделать его необязательным?
где-то намудрил с редактированием кода, теперь при заказе товара всё ок, пишет заказ создан, но в списке заказов новые не появляются.
Не подскажите в каком файле намудрил?
Добрый день, с помощью этой статьи https://jul-collection.com/opencart-i-snova-pro-uproshhennoe-oformlenie-zakaza-na-odnoy-stranitse.html
я поставил quickcheckout.
У меня вопрос, как сделать все тоже самое но на этом модуле для guest ?
Василий, в комментариях к статье о quickcheckout, есть ответ на Ваш вопрос. Посмотрите комментарий Афанасия, он довольно подробно описал способ скрытия ненужных полей.
Добрый вечер. Спасибо за статью, очень помогла. Но ни как не могу понять как сделать что бы все шаги были на одной странице, что бы не нажимать «продолжит», а сразу заполнить все поля и завершить оформление. Такое вообще возможно?
Добрый,
в этом случае логично использовать модуль упрощенного заказа, можете посмотреть модуль Quick Checkout.
Здравствуйте, прошу Вашей помощи. После правки файла регистрации возникла ошибка. Она заключается в следующем: после нажатия кнопки зарегестрировать вылазиет такая ошибка Notice: Undefined index: fax in C:\xampp\htdocs\ocart\catalog\model\account\customer.php on line 14Notice: Undefined index: company in C:\xampp\htdocs\ocart\catalog\model\account\customer.php on line 18Notice: Undefined index: company_id in C:\xampp\htdocs\ocart\catalog\model\account\customer.php on line 18Notice: Undefined index: tax_id in C:\xampp\htdocs\ocart\catalog\model\account\customer.php on line 18Notice: Undefined index: address_2 in C:\xampp\htdocs\ocart\catalog\model\account\customer.php on line 18Notice: Error: Unknown column ‘company’ in ‘field list’
Error No: 1054
INSERT INTO oc_address SET customer_id = ‘8’, firstname = ‘саша иванов’, company = », company_id = », tax_id = », address_1 = ’18-10-328′, address_2 = », city = ‘Варна’, postcode = ‘20002’, country_id = ’33’, zone_id = ‘481’ in C:\xampp\htdocs\ocart\system\database\mysql.php on line 50. Но регистрация происходит, то есть просто возвращаешься назад и входишь в свой аккаунт. Очень прошу помощи.
Спасибо, этот как раз то что нужно. Форма должна быть более удобной
Здравствуйте. Большое спасибо за Ваши уроки. Очень нужна ваша помощь. При оформлении заказа или регистрации появляется ошибка, и невозможно выбрать регионы, они как-будто исчезли. Что можно сделать и где копать?
https://aldit-ua.com.ua/index.php?route=account/register
SyntaxError: Unexpected token <OK{"country_id":"220","name":"\u0423\u043a\u0440\u0430\u0438\u043d\u0430","iso_code_2":"UA","iso_code_3":"UKR","address_format":"","postcode_required":"0","zone":[{"zone_id":"3501","country_id":"220","name":"\u0412\u0438\u043d\u043d\u0438\u0446\u0430","code":"VI","status":"1"},{"zone_id":"3484","country_id":"220","name":"\u0414\u043d\u0435\u043f\u0440\u043e\u043f\u0435\u0442\u0440\u043e\u0432\u0441\u043a","code":"DN","status":"1"},{"zone_id":"3485","country_id":"220","name":"\u0414\u043e\u043d\u0435\u0446\u043a","code":"DO","status":"1"},{"zone_id":"3505","country_id":"220","name":"\u0416\u0438\u0442\u043e\u043c\u0438\u0440","code":"ZH","status":"1"},
Это часть текста ошибки.
Допустили ошибку при комментировании/удалении кода. Где копать заочно не скажу, проверяйте код с самого начала.
Может просто заменить файл из стандартного движка? Где лежат файлы стран и регионов?
Добрый день!
После процедур по упрощению заказа, описанных в ваших статьях корзина при оформлении заказа без регистрации выдает ошибки.
Notice: Indirect modification of overloaded property ControllerCheckoutConfirm::$data has no effect in /var/www/inetmoney/data/www/inetmoney.in/catalog/controller/checkout/confirm.php on line 12Notice: Undefined index: payment in /var/www/inetmoney/data/www/inetmoney.in/catalog/controller/checkout/confirm.php on line 504Notice: Indirect modification of overloaded property ControllerCheckoutConfirm::$data has no effect in /var/www/inetmoney/data/www/inetmoney.in/catalog/controller/checkout/confirm.php on line 851
Теперь по-порядку: Notice: Indirect modification of overloaded property ControllerCheckoutConfirm::$data has no effect in /var/www/inetmoney/data/www/inetmoney.in/catalog/controller/checkout/confirm.php on line 12
$this->data[‘settings’] = $settings
Notice: Undefined index: payment in /var/www/inetmoney/data/www/inetmoney.in/catalog/controller/checkout/confirm.php on line 504
$payment_address = $this->session->data[‘guest’][‘payment’];
Notice: Indirect modification of overloaded property ControllerCheckoutConfirm::$data has no effect in /var/www/inetmoney/data/www/inetmoney.in/catalog/controller/checkout/confirm.php on line 851
$this->data[‘redirect’] = $redirect;
помогите пожалуйста!
Такой метод подходил для старых версий движка, не для 2.0.
Здравствуйте! Я все сделал по пунктам как описано на сайте, но после ввода необходимых данных и нажав кнопку «продолжить», выдает ошибку
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
OK
Notice: Undefined index: postcode in C:\OpenServer\domains\localhost\World-LEDs\catalog\controller\checkout\guest.php on line 237Notice: Undefined index: fax in C:\OpenServer\domains\localhost\World-LEDs\catalog\controller\checkout\guest.php on line 264Notice: Undefined index: company in C:\OpenServer\domains\localhost\World-LEDs\catalog\controller\checkout\guest.php on line 268Notice: Undefined index: company_id in C:\OpenServer\domains\localhost\World-LEDs\catalog\controller\checkout\guest.php on line 269Notice: Undefined index: postcode in C:\OpenServer\domains\localhost\World-LEDs\catalog\controller\checkout\guest.php on line 273[]
Подскажите пожалуйста как это исправить?
Понятно что нужно править файл quest.php, только не могу понять что имено.
Основные ошибки убрал осталась только одна которую я не понимаю
Notice: Undefined index: postcode in C:\OpenServer\domains\localhost\World-LEDs\catalog\controller\checkout\guest.php on line 237[]
Строки 236-239:
if ($country_info) {
if ($country_info[‘postcode_required’] && (utf8_strlen($this->request->post[‘postcode’]) request->post[‘postcode’]) > 10)) {
$json[‘error’][‘postcode’] = $this->language->get(‘error_postcode’);
}
Все, спасибо, разобрался))) Нужно было закоментировать вот это:
/*if ($country_info[‘postcode_required’] && (utf8_strlen($this->request->post[‘postcode’]) request->post[‘postcode’]) > 10)) {
$json[‘error’][‘postcode’] = $this->language->get(‘error_postcode’);
}*/
Вы молодец, многие при виде ошибок опускают руки и заявляют, что ничего не работает! Главное, что разобрались с ошибками и устранили проблему.
Всем привет! Во решил продолжить упрощать форму оформления заказа. Затормозил меня пункт по удалению полей » Страна» и «Область». Все сделал по описанию данной задачи на сайте https://napositive.com.ua/ubiraem-nenuzhnye-shagi-oformleniya-zakaza-ili-bystryj-zakaz-opencart/#comment-2316 . Но после проделанной работы выскакивает ошибка:
Notice: Undefined index: shipping_address in C:\OpenServer\domains\localhost\World-LEDs\catalog\controller\checkout\guest.php on line 316[]
Файл quest.php строка 316:
if ($this->session->data[‘guest’][‘shipping_address’]) {
Решил я закомментировать /*[‘shipping_address’]*/ , выдает еще кучу ошибок, которые я тоже закомментировал после чего меня пропустило на следующий шаг и оформление заказа было завершено, НО в панели управления оформленный заказ никак не отображается. Уже второй день пытаюсь разобраться (я не особо понимаю PHP, на уровне делетанта, но имею некое представление о программировании) но ничего не могу понять. Поршу помочь кому не сложно, в данном вопросе.
Подскажите пожалуйста как все вышеописанное сделать на OpenCart 2.0
Заранее благодарен.
Максим https://allwebstuff.info/%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7-opencart-2/#comment-67
Здравствуйте! Спасибо за ваши статьи! Написано очень доступным языком. Очень много чего исправила и изменила в своем магазине по вашим статьям. Но так изменила, что поняла, сделать необязательным поле телефон в гостевом заказе было лишним. Как теперь вернуть, ума не приложу((( В файле guest.php вроде бы все как положено:
if ((utf8_strlen($this->request->post[‘telephone’]) request->post[‘telephone’]) > 32)) {
$json[‘error’][‘telephone’] = $this->language->get(‘error_telephone’); }
Подскажите, пожалуйста, как исправить данную ситуацию?
Удивляюсь как это у вас так хорошо получается писать, я бы так не смогла, продолжайте писать очень интересно читать.
Спасибо!
Юлия, добрый день !
В свое время скрыл в оформлении Фамилию, Город и Индекс, никаких ошибок, все хорошо.
Единственный недостаток который теперь заметил — после оформления заказа покупателю высылается письмо с информацией о заказе и вот там появились ошибки:
Цитирую строки полностью:
Дата добавления: 21pm31UTC_f2015Fri, 21 Aug 2015 16:34:18 +000008pm31_18042015Fri, 21 Aug 2015 16:34:18 +000031
Адрес оплаты
Михаил ??????? ?? ???????
Проектируемый проезд
?? ?????? 000000
Адрес доставки
Михаил ??????? ?? ???????
Проектируемый проезд
?? ?????? 000000
*Дата добавления: какое-то безумие, хотелось бы вычистить все лишнее кроме собственно даты и времени.
*Адрес оплаты:
знаки вопроса в первой строке — бывшая фамилия,
знаки вопроса и нули в третьей строке — это бывший город и индекс.
Плюс тоже самое получается если печатаешь счет по сделанному заказу, куча «?» и «0».
Подскажите пожалуйста как и где это все можно скрыть.
Всем привет, автору особый, прикольный бложик, читаю взахлёб, таких интересных статей я ещё не видел, и дизайн норм
Спасибо автору! Доходчиво, особенно для того, кто в движке копается в первый раз. Но, к сожалению, указанных пунктов не достаточно, чтобы полностью изжить «лишние строки». Придется еще подправить некоторое количество файлов, чтобы изжить их. Например, если клиент захочет сменить адрес доставки. Ну и в тому подобных местах. Но принцип понятен. Жаль только, что очень много править приходится.
Если ручная правка файлов утомительна и само собой не окончательна, можно воспользоваться модулем упрощенного оформления заказа, в нем то и поправить все необходимые поля — легче и проще будет.
«я верю только себе» ;). После указанных правок приходится править еще и еще. Ошибки вылезают в совершенно неожиданных местах. Например, совершенно неожиданно, если в новое поле ФИО ввести короткое имя (2-3 буквы, одно слово), вылезает ошибка. Но вроде все пофиксили.
С модулями пока не хочу связываться.
Здравствуйте, Юлия, я так понял? подскажите, у меня не получается оформить заказ без регистрации, есть принтскрин с ошибкой, не знаю, какк его сюда прикрепить
Здравствуйте. У меня возникли сложности с удалением ненужных полей и шагов. Всё вроде получилось. Визуально все лишние поля и шаги исчезли, но при нажатии «Продолжить» (переход со 2 на 6 шаг) Появляется огромная куча ошибок. Сделал скрин, но прикрепить сюда не могу.. . Работаю на денвере и не со стандартным шаблоном. Может в этом загвоздка?.. Помогите, пожалуйста
Еще, если это играет роль, стоит VQ мод. И все 5 строк с ошибками в файле vq2-catalog_controller_checkout_guest.php
Пока что я изменял оформление заказа только в гостевом режиме
Всё, уже разобрался) Главное делать бэкап и не боятся что то менять). Спасибо огромное за статью!) Желаю Вам и вашему блогу дальнейших успехов). OpenCart 1.5.6.1
Рада, что разобрались с ошибками! И спасибо за позитивный отзыв)
Добры день.
Спасибо за инструкцию.
Не могли бы вы подсказать, как скрыть 3 шаг регистрации «адрес доставки» и исправить нумерацию последующих шагов?.
Дело в том, что я решила совсем скрыть чекбокс «адрес доставки совпадает…», т.к. в 99% случаев он совпадает, да и вообще, мне незачем знать какой-то другой адрес клиента и путать его этим.
А еще хотелось бы перенести поля заполнения адреса в более логичный порядок.
Но я не могу понять, как правильно переносить выпадающие списки, т.к. там тьма кода и какие куски вырезать для переноса не понятно.
Решила вопрос проще. Отменила доставку товаров в их карточках и эти шаги сами пропали.
Помогите, пожалуйста!! Наверное проблема из-за тех полей, которые обязательные,
я решил просто попробовать на примере lastname
я закомментировал его в httpdocs/catalog/view/theme/default/template/checkout/guest.tpl и оно исчезло
потом иду в controller/checkout/guest.php и комментирую там
не пропускает
еще проблема может быть в том, что то что в источнике находятся примерно в двух экземлярах то что нужно закрмментировать в одном и том же файле и по поводу этого там ни слова
и как вариант в версии движка 1.5.1.3 что-то должно делаться подругому
потому что я все делаю как пишете вы, уже не один десяток раз я пробовал делать, из раза в раз такая же проблема. Надежда только на вашу помощь.
К сожалению, если с кодом не справляетесь, то значит этот способ не для Вас. Попробуйте использовать готовый модуль, который сокращает оформление заказа.
Подскажите пожалуйста как при оформление заказа удалить все 6 шагов оставить только имя и телефон , так же с регистрпцией убрать все не нужное .,
Для таких целей стоит перейти со стандартного оформления просто на использование модуля быстрый заказ, а корзину вовсе скрыть.
Доброго вечера. Можете подсказать как удалить лишние поля при оформлении ставил такой плаг easy_checkout_v0.0.7 вот в нем где индекс город страны убрать можно?) спасибо за хороший блог!)
Дорый вечер,
этот модуль приходилось ранее использовать, но давно с ним уже не работала, да и нигде нет установленного. НО, насколько я помню, сам разработчик детально описал что и как там можно скрыть без ущерба для модуля и магазина.
На первый взгляд метод неплохой, поля убираются. Но потом вылазят баги, я например столкнулся с проблемой редактирования заказа в админке, там убрать поля у меня не получилось.
Скажите пожалуйста, как убрать строчку с email, так чтобы, приходило оповещение о заказе на почту. Спасибо :-)
Объясните пожалуйста как это сделать: «Скрыл поле e-mail в гостевой анкете с помощью display:none; и поставил автозаполнение) Вопрос решен)». Спасиииииииибо!
Юлечка, спасибо Вам большое за вашу работу и выложенные статьи! всё получилось! У меня вопрос. Скажите, где можно удалить ненужные строки непосредственно в панели управления администратора, или хотя бы снять обязательность? Напишите путь если не сложно! Спасибо!
Спасибо, Надежда, за приятный отзыв!
Для того, чтобы чтобы в админке можно было править заказы, после проделанных изменений, необходимо править admin/controller/sale/order.php, если версия до 2.х.
Спасибо большое за оперативный ответ! Удачи Вам!