Ir al contenido
Menú
Se marcó esta pregunta
303 Vistas

Im doing a post code check at odoo17 and when i validate them i go to the pay view and the payment methods dont appear the demo one neither any help pls?

    @http.route(['/shop/payment'], type='http', auth="public", website=True, csrf=False)

    def payment(self, **post):

        """

        Validar que los productos en el carrito no se envíen a códigos postales restringidos

        antes de proceder con el pago.

        """

        order = request.website.sale_get_order()

        if not order:

            return request.redirect('/shop/cart')


        # Obtener el código postal del cliente

        customer_zip = order.partner_shipping_id.zip

        if not customer_zip:

            return request.render("manufacturer_inventory.minimum_order_popup", {

                'error_message': "Por favor, introduce un código postal válido antes de proceder con el pago.",

            })


        # Validar productos contra códigos postales restringidos

        restricted_products = []

        for line in order.order_line:

            restricted_zips = line.product_id.restricted_zip_codes.mapped('name')

            if customer_zip in restricted_zips:

                restricted_products.append(line.product_id.name)


        if restricted_products:

            return request.render("manufacturer_inventory.minimum_order_popup", {

                'error_message': (

                    f"No se puede realizar el envío de los siguientes productos a tu código postal {customer_zip}: "

                    f"{', '.join(restricted_products)}."

                ),

            })


        # Si no hay restricciones, continuar con el flujo de pago normal

        return request.render("website_sale.payment", self.checkout_values(order))

Avatar
Descartar