При регистрации на сайте пользователь заполняет профиль поле адрес. Затем при оформлении покупки ему предлагается заполнить адрес ещё раз.
Как сделать, чтобы при оформлении покупки пользователю отображались не пустые поля для заполнения, а ранее заполненный адрес?
Как сделать, чтобы при оформлении покупки пользователю отображались не пустые поля для заполнения, а ранее заполненный адрес?
Главные вкладки
Лучший ответ
Загружайте адрес указанный при регистрации в поле адреса при оформлении покупки
Комментарии
Загружайте адрес указанный при регистрации в поле адреса при оформлении покупки
Как это сделать?
Чтобы ответить на этот вопрос, сначала нужно узнать:
1) Как реализован ввод адреса при регистрации
2) Какую систему для коммерции вы используете. Commerce, Basic Cart, или, может быть, самопис
В коммерс адрес - это поля профиля. Не учётки, а профиль, создаваемого через модуль Profile. Альтерить форму чекаута не так то просто, т.к. профиль там - это один элемент формы. Надо искать либо контриб, либо информацию о том, как это должно делаться.
Из коробки в коммерсе все есть.
В профиле - вывод поля адрес (регистрация/edit), настройки коммерс...
И все автоматом будет подставляться.
Через кастом, тоже не сложно все реализовать (form_alter + #default_value)
В Уберкарте тоже из коробки все есть.
Вопрос только в том: как заставить пользователей регистрироваться либо заходить в магазин под своей учеткой.
История покупок, скидки. Много чего
Кэшбэк сейчас в тренде.
Похоже только gun_dose в теме.
Впрочем, оказалось, что в последней версии Commerce 8.x-2.14 эта проблема была исправлена. Об этом здесь https://www.drupal.org/project/commerce/issues/2844920
Да, ещё нужно дать права для пользователей на просмотр и возможно редактирование собственных профилей.
В этой версии Commerce на странице редактирования профиля появляется галочка о том, что профиль используется в Commerce. Кстати галочка устанавливается сама после обновления модуля, и она почему-то погашена, то есть не съёмная.
В общем, обновление модуля с Commerce 8.x-2.13 до Commerce 8.x-2.14 решило проблему.
Но тут у меня появился ещё один вопрос!
Оказалось, что модуль Commerce не отображается на странице /admin/reports/updates и соответственно не проверяется на наличие доступных обновлений. Почему? Как исправить?
У коммерса есть зависимости, которые ставятся только композером. Скорее всего, поэтому через админку его и нельзя обновить.
А остальные модули можно через админку обновлять, которые композером поставлены?
Я не знаю. Вообще, если пользоваться гитом и настраивать всё, как принято, то при обновлении через админку изменения не попадут в репозиторий. А это как-то не очень.
Допустим обновлю модули из админки. Потом нажму git add .
Неужели не попадет в репозиторий?
Или когда через Композер обновляешь он что-то Гиту сообщает?
Да, новая версия модуля прописывается в composer.lock файле, чтобы потом на проде установиться после команды composer install
Сам код контриба в репозитории не хранится, только версии в composer.lock
Ниче не понял. Т.е. можно или нельзя?
Можно, если сайт без composer и нельзя, если сайт с composer. Так понятно?
Понятно.
Т.е. все таки Композер Гиту при обновлении модуля что-то сообщает.
А если администратор сайта по незнанию все таки обновит, то что?
Не что-то, а новую версию в файле composer.lock, я же писал выше.
Если администратор обновит что-то на проде, то бить его палкой по рукам. Если обновит на локалке, то при следующем деплое на прод этот модуль на проде не обновится, да и всё. Нужно будет всё таки обновить его как положено через composer.
Понял. Забыл что контриб модули в гитигноре.
А если обносит на продакшене? Должна же быть composer команда, которая обновляет все lock-и?
С большой вероятностью composer update просто отвалится из-за недостатка оперативки)