Skip to Content
Menu
This question has been flagged
1 Reply
251 Views

Good afternoon comunity, im working od odoo17 and i want to create a popup in odoo17 to make a error appear there instead of rendering other page, any clues, this is the code i used to do it 

<?xml version="1.0" encoding="utf-8"?>

<odoo>

<template id="minimum_order_popup" name="Minimum Order Popup">

    <div class="modal fade show" id="minimumOrderModal" tabindex="-1" aria-labelledby="minimumOrderModalLabel" style="display: block;">

        <div class="modal-dialog">

            <div class="modal-content">

                <div class="modal-header">

                    <h5 class="modal-title" id="minimumOrderModalLabel">Error en la compra</h5>

                </div>

                <div class="modal-body">

                    <p>

                        <t t-esc="error_message" />

                    </p>

                </div>

                <div class="modal-footer">

                    <a href="/shop/cart" class="btn btn-primary">Volver al carrito</a>

                </div>

            </div>

        </div>

    </div>

    <script>

        // Mostrar el popup automáticamente al cargar la página

        document.addEventListener('DOMContentLoaded', function () {

            const errorModal = new bootstrap.Modal(document.getElementById('errorModal'));

            errorModal.show();

        });

    </script>

</template>

</odoo>


class WebsiteSaleInherit(WebsiteSale):


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

    def checkout(self, **post):

        """

        Validar que todos los productos en el carrito cumplan con el pedido mínimo

        antes de proceder al flujo de checkout.

        """

        order = request.website.sale_get_order()

        if order:

            for line in order.order_line:

                if line.product_id.minimum_order_qty > line.product_uom_qty:

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

                        'error_message': (

                            f"No puedes realizar la compra. El pedido mínimo para {line.product_id.name} "

                            f"es de {line.product_id.minimum_order_qty} unidades."

                        ),

                    })

        return super(WebsiteSaleInherit, self).checkout(**post)



Avatar
Discard
Best Answer

https://www.youtube.com/watch?v=qqRM3kZBq3A&list=PLGJz_t0i32BmPB1ud2CCl6_XEBm75YQgP&index=1&pp=gAQBiAQB

Avatar
Discard