summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/solr/product_product.py
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-10-19 16:03:34 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-10-19 16:03:34 +0700
commit1292cb9fc57d972dec21a13df874099cf6d8bef2 (patch)
treefdf7c95c663d395b730f6d617429b900fc48485a /indoteknik_custom/models/solr/product_product.py
parent91d393eb699188b536c3c44d4460f6fed9596d3b (diff)
Fix product price calculation for solr
Diffstat (limited to 'indoteknik_custom/models/solr/product_product.py')
-rw-r--r--indoteknik_custom/models/solr/product_product.py46
1 files changed, 14 insertions, 32 deletions
diff --git a/indoteknik_custom/models/solr/product_product.py b/indoteknik_custom/models/solr/product_product.py
index 567e2a3e..e1342fc2 100644
--- a/indoteknik_custom/models/solr/product_product.py
+++ b/indoteknik_custom/models/solr/product_product.py
@@ -75,24 +75,12 @@ class ProductProduct(models.Model):
def _sync_price_to_solr(self):
solr_model = self.env['apache.solr']
+ TIER_NUMBERS = ['1_v2', '2_v2', '3_v2', '4_v2', '5_v2']
for variant in self:
- price_excl_after_disc = price_excl = discount = tax = 0
- flashsale_data = {}
+ flashsale_data = variant.with_context(price_for="web")._get_flashsale_price()
- if price_excl_after_disc == 0 or variant._get_website_price_after_disc_and_tax() < price_excl_after_disc:
- price_excl = variant._get_website_price_exclude_tax()
- price_excl_after_disc = variant._get_website_price_after_disc_and_tax()
- tax = variant._get_website_tax()
- discount = variant._get_website_disc(0)
- flashsale_data = variant.with_context(price_for="web")._get_flashsale_price()
-
- price_excl_v2 = variant._v2_get_website_price_exclude_tax()
- price_excl_after_disc_v2 = variant._v2_get_website_price_after_disc_and_tax()
- tax_v2 = variant._v2_get_website_tax()
-
- document = solr_model.get_doc('variants', variant.id)
- document.update({
+ flashsale_doc = {
"id": variant.id,
"flashsale_id_i": flashsale_data.get('flashsale_id', 0),
"flashsale_tag_s": flashsale_data.get('flashsale_tag', ''),
@@ -102,25 +90,19 @@ class ProductProduct(models.Model):
"flashsale_base_price_f": flashsale_data.get('flashsale_base_price', 0),
"flashsale_discount_f": flashsale_data.get('flashsale_discount', 0),
"flashsale_price_f": flashsale_data.get('flashsale_price', 0),
- "price_f": price_excl,
- "discount_f": discount,
- "price_discount_f": price_excl_after_disc,
- "tax_f": tax,
- "price_v2_f": price_excl_v2,
- "price_discount_v2_f": price_excl_after_disc_v2,
- "tax_v2_f": tax_v2,
- })
-
- for tier_number in [1, 2, 3, '1_v2', '2_v2', '3_v2', '4_v2', '5_v2']:
+ }
+
+ price_doc = {}
+
+ for tier_number in TIER_NUMBERS:
tier = variant._get_pricelist_tier(tier_number)
- document.update({
- f"discount_tier{tier_number}_f": tier.get(f'discount_tier{tier_number}', 0),
- f"price_tier{tier_number}_f": tier.get(f'price_tier{tier_number}', 0),
- })
-
- # for tier_number in [1, 2, 3, '1_v2', '2_v2', '3_v2', '4_v2', '5_v2']:
- # tier = tier_data[tier_number]
+ price_doc[f"discount_tier{tier_number}_f"] = tier.get(f'discount_tier{tier_number}', 0)
+ price_doc[f"price_tier{tier_number}_f"] = tier.get(f'price_tier{tier_number}', 0)
+ document = solr_model.get_doc('variants', variant.id)
+ document['id'] = variant.id
+ document.update(flashsale_doc)
+ document.update(price_doc)
document.update({"has_price_info_b": True})
self.solr().add(docs=[document], softCommit=True)