From f6671dd4595af3c1075b27925f10c457854cecf8 Mon Sep 17 00:00:00 2001 From: IT Fixcomart Date: Tue, 15 Nov 2022 17:35:23 +0700 Subject: Fitur crud cart dan wishlist Update struktur response product --- indoteknik_api/models/__init__.py | 1 + indoteknik_api/models/product_product.py | 19 +++++++++++++++++++ indoteknik_api/models/product_template.py | 14 +------------- 3 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 indoteknik_api/models/product_product.py (limited to 'indoteknik_api/models') diff --git a/indoteknik_api/models/__init__.py b/indoteknik_api/models/__init__.py index bca7d9fe..25f6997f 100644 --- a/indoteknik_api/models/__init__.py +++ b/indoteknik_api/models/__init__.py @@ -1,4 +1,5 @@ from . import blog_post from . import product_pricelist +from . import product_product from . import product_template from . import x_manufactures \ No newline at end of file diff --git a/indoteknik_api/models/product_product.py b/indoteknik_api/models/product_product.py new file mode 100644 index 00000000..a1f22068 --- /dev/null +++ b/indoteknik_api/models/product_product.py @@ -0,0 +1,19 @@ +from odoo import models + + +class ProductTemplate(models.Model): + _inherit = 'product.product' + + def api_single_response(self, product_product): + product_pricelist_default_discount_id = self.env['ir.config_parameter'].get_param('product.pricelist.default_discount_id') + product_pricelist_default_discount_id = int(product_pricelist_default_discount_id) + data = { + 'id': product_product.id, + 'code': product_product.default_code or '', + 'name': product_product.display_name, + 'price': self.env['product.pricelist'].compute_price(product_pricelist_default_discount_id, product_product.id), + 'stock': product_product.qty_stock_vendor, + 'weight': product_product.weight, + 'attributes': [x.name for x in product_product.product_template_attribute_value_ids], + } + return data \ No newline at end of file diff --git a/indoteknik_api/models/product_template.py b/indoteknik_api/models/product_template.py index 8ced0374..b616a773 100644 --- a/indoteknik_api/models/product_template.py +++ b/indoteknik_api/models/product_template.py @@ -24,23 +24,11 @@ class ProductTemplate(models.Model): data_with_detail = { 'image': base_url + 'api/image/product.template/image_512/' + str(product_template.id) if product_template.image_512 else '', 'display_name': product_template.display_name, - 'variants': [], + 'variants': [self.env['product.product'].api_single_response(variant) for variant in product_template.product_variant_ids], 'description': product_template.website_description or '', 'solr_flag': product_template.solr_flag, 'product_rating': product_template.product_rating, } - for variant in product_template.product_variant_ids: - data_with_detail['variants'].append({ - 'id': variant.id, - 'code': variant.default_code or '', - 'name': variant.display_name, - 'price': self.env['product.pricelist'].compute_price(product_pricelist_default_discount_id, variant.id), - 'stock': variant.qty_stock_vendor, - 'weight': variant.weight, - 'attributes': [x.name for x in variant.product_template_attribute_value_ids], - 'solr_flag': product_template.solr_flag, - 'product_rating': product_template.product_rating, - }) data.update(data_with_detail) return data -- cgit v1.2.3