콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
6315 화면

Hi, I want to create a custom module and I need to remove the mandatory fields on the checkout address page. I just want to use [name, email]. How can I remove the mandatory ["street", "city", "country_id"]?


def _get_mandatory_fields_billing(self, country_id=False):
req = ["name", "email", "street", "city", "country_id"]
if country_id:
country = request.env['res.country'].browse(country_id)
if country.state_required:
req += ['state_id']
if country.zip_required:
req += ['zip']
return req

def _get_mandatory_fields_shipping(self, country_id=False):
req = ["name", "street", "city", "country_id"]
if country_id:
country = request.env['res.country'].browse(country_id)
if country.state_required:
req += ['state_id']
if country.zip_required:
req += ['zip']
return req
아바타
취소
작성자

It worked! Thank you so much :D

베스트 답변

You can override both methods in website_sale controller as below:

from odoo.addons.website_sale.controllers.main import WebsiteSale


class WebsiteSale(WebsiteSale):

def _get_mandatory_fields_billing(self, country_id=False):
req = ["name", "email"]
return req

def _get_mandatory_fields_shipping(self, country_id=False):
req = ["name", "email"]
return req


아바타
취소

This does not seem to work on Odoo 16. Although it does add additional required fields to the lists, it doesn't seem to over write it

[checkout_form_validate](https://github.com/odoo/odoo/blob/16.0/addons/website_sale/controllers/main.py#L974) seems to add additional ones, but it still seems that the previously required fields, like phone number, are still in the array.

관련 게시물 답글 화면 활동
0
3월 25
1192
1
8월 25
2187
2
8월 25
251
4
1월 25
2586
2
10월 24
1628