Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
6210 มุมมอง

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.

Related Posts ตอบกลับ มุมมอง กิจกรรม
0
มี.ค. 25
1119
1
ส.ค. 24
2113
4
ม.ค. 25
2495
2
ต.ค. 24
1535
0
มิ.ย. 24
1314