Odoo18-Base/addons/website_sale_collect/models/product_template.py
2025-01-06 10:57:38 +07:00

35 lines
1.4 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
from odoo.addons.website_sale_collect import utils
class ProductTemplate(models.Model):
_inherit = 'product.template'
def _get_additionnal_combination_info(self, product_or_template, quantity, date, website):
""" Override of `website_sale` to add information on whether Click & Collect is enabled and
on the in-store stock of the product. """
res = super()._get_additionnal_combination_info(
product_or_template, quantity, date, website
)
if (
bool(website.sudo().in_store_dm_id) # Click & Collect is enabled.
and product_or_template.is_product_variant
and product_or_template.is_storable
):
res['show_click_and_collect_availability'] = True
order_sudo = website.sale_get_order()
if (
order_sudo
and order_sudo.carrier_id.delivery_type == 'in_store'
and order_sudo.pickup_location_data
): # Get stock values for the product variant in the selected store.
res['in_store_stock'] = utils.format_product_stock_values(
product_or_template.sudo(), order_sudo.pickup_location_data['id']
)
else:
res['in_store_stock'] = {}
return res