Jump to content

Как убрать раздел Адреса из оформления заказа


Recommended Posts

Адрес доставки нужен для расчёта стоимости, если у Вас доставка не зависит от адреса, то можете сделать следующие шаги:

1) Переопределяем класс classes/checkout/CheckoutAddressesStep.php
2) В методе handleRequest вставляем параметры переменной $requestParams, тем самым всегда у Вас к адресу клиента будет один и тот же адрес для всех.

$requestParams['id_address_delivery'] = 1; // ID адреса
$requestParams['id_address_invoice'] = 1; // ID адреса
$requestParams['confirm-addresses'] = true; // Ставим что адрес всегда валидный, то есть заполненый
$requestParams['use_same_invoice'] = true; 


3) Берём из админки любой адрес, а именно его ID или создаём новый и добавляем.

4) Скрываем шаг доставки, есть 2 способа:

  • переопределяем класс controllers/front/OrderController.php и комментируем шаг доставки (скриншот)
  • либо просто на странице оформления заказа скрываем стилями шаг доставки



Нужно протестировать и выбрать нужный способ.

Screenshot_8.thumb.png.33787dca6f167cc2c9864e2b0cfa30f9.png

 

Темы и модули на PrestaShop
 

 

  • Like 1
Link to comment
Share on other sites

On 8/5/2023 at 11:46 AM, Ewonta said:

Адрес доставки нужен для расчёта стоимости, если у Вас доставка не зависит от адреса, то можете сделать следующие шаги:

1) Переопределяем класс classes/checkout/CheckoutAddressesStep.php
2) В методе handleRequest вставляем параметры переменной $requestParams, тем самым всегда у Вас к адресу клиента будет один и тот же адрес для всех.

$requestParams['id_address_delivery'] = 1; // ID адреса
$requestParams['id_address_invoice'] = 1; // ID адреса
$requestParams['confirm-addresses'] = true; // Ставим что адрес всегда валидный, то есть заполненый
$requestParams['use_same_invoice'] = true; 


3) Берём из админки любой адрес, а именно его ID или создаём новый и добавляем.

4) Скрываем шаг доставки, есть 2 способа:

  • переопределяем класс controllers/front/OrderController.php и комментируем шаг доставки (скриншот)
  • либо просто на странице оформления заказа скрываем стилями шаг доставки



Нужно протестировать и выбрать нужный способ.

Screenshot_8.thumb.png.33787dca6f167cc2c9864e2b0cfa30f9.png

 

Темы и модули на PrestaShop
 

 

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

Link to comment
Share on other sites

Из админ-панели возможно только сформировать поля адреса клиента в зависимости от страны (скриншот 1) и задать обязательные поля у самих клиентов (скриншот 2), попробуйте поработать с этим.


Темы и модули на PrestaShop

Screenshot_2.png

Screenshot_3.png

Link to comment
Share on other sites

Если Вам нужно убрать поля в шаблоне, то это делается по адресу /themes/classic/templates/customer/_partials/address-form.tpl

Находим цикл перебора доступных полей и пропускаем нужное Вам поле, чтобы оно не отображалось.

 

{block name='form_field'}
  {if $field.name eq "alias"}
     {* Skipping the field display *}
  {elseif $field.name eq "address1"}
     {* Skipping the field display *}
  {else}
     {form_field field=$field}
  {/if}
{/block}

Просто в цикле добавляем нужное поле:

{elseif $field.name eq "address1"}

Тем самым, поля пропускаются и отображаются только нужные Вам.

Screenshot_4.png

  • Like 1
Link to comment
Share on other sites

А еще не в тему не подскажете как добавить кнопку в корзину около каждого товара в списке товаров. Примерно вот так но у каждого товара

2023-08-13_12-05-48.jpg

Link to comment
Share on other sites

  • 3 weeks later...
On 8/13/2023 at 11:16 AM, Ewonta said:

Если Вам нужно убрать поля в шаблоне, то это делается по адресу /themes/classic/templates/customer/_partials/address-form.tpl

Находим цикл перебора доступных полей и пропускаем нужное Вам поле, чтобы оно не отображалось.

 

{block name='form_field'}
  {if $field.name eq "alias"}
     {* Skipping the field display *}
  {elseif $field.name eq "address1"}
     {* Skipping the field display *}
  {else}
     {form_field field=$field}
  {/if}
{/block}

Просто в цикле добавляем нужное поле:

{elseif $field.name eq "address1"}

Тем самым, поля пропускаются и отображаются только нужные Вам.

Screenshot_4.png

Все вроде бы работало, но в соответствующие поля ничего не записываеться NULL. И в других местах начинаються проблемы. Как бы сделать чтобы было не NULL а ""  ?

Link to comment
Share on other sites

2 hours ago, wihr said:

Все вроде бы работало, но в соответствующие поля ничего не записываеться NULL. И в других местах начинаються проблемы. Как бы сделать чтобы было не NULL а ""  ?

 

Тогда Вам просто нужно не пропускать поля, а вставить скрытые, в этом случае, Вы можете вставить любую информацию.
 

{block name='form_field'}
  {if $field.name eq "alias"}
     {* Skipping the field display *}
  {elseif $field.name eq "address1"}
     <input type="hidden" name="address1" value="Всё что угодно" />
  {else}
     {form_field field=$field}
  {/if}
{/block}

 

Edited by Ewonta (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...