İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
6039 Görünümler

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
Avatar
Vazgeç
Üretici

It worked! Thank you so much :D

En İyi Yanıt

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


Avatar
Vazgeç

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.

İlgili Gönderiler Cevaplar Görünümler Aktivite
0
Mar 25
1023
1
Ağu 24
1963
4
Oca 25
2361
2
Eki 24
1396
0
Haz 24
1203