diff --git a/models/baseModels/Invoice/Invoice.ts b/models/baseModels/Invoice/Invoice.ts
index 4deca408..42d1b944 100644
--- a/models/baseModels/Invoice/Invoice.ts
+++ b/models/baseModels/Invoice/Invoice.ts
@@ -48,7 +48,7 @@ import { AppliedCouponCodes } from '../AppliedCouponCodes/AppliedCouponCodes';
 import { CouponCode } from '../CouponCode/CouponCode';
 import { SalesInvoice } from '../SalesInvoice/SalesInvoice';
 import { SalesInvoiceItem } from '../SalesInvoiceItem/SalesInvoiceItem';
-import { PriceListItem } from '../PriceList/PriceListItem';
+import { PricingRuleItem } from '../PricingRuleItem/PricingRuleItem';
 
 export type TaxDetail = {
   account: string;
@@ -1332,7 +1332,7 @@ export abstract class Invoice extends Transactional {
         item: item.item as string,
         unit: item.unit as string,
       },
-    })) as PriceListItem[];
+    })) as PricingRuleItem[];
 
     return docs.map((doc) => doc.parent) as string[];
   }
diff --git a/models/baseModels/InvoiceItem/InvoiceItem.ts b/models/baseModels/InvoiceItem/InvoiceItem.ts
index 1f0f4ed1..39f5a124 100644
--- a/models/baseModels/InvoiceItem/InvoiceItem.ts
+++ b/models/baseModels/InvoiceItem/InvoiceItem.ts
@@ -17,9 +17,9 @@ import { safeParseFloat } from 'utils/index';
 import { Invoice } from '../Invoice/Invoice';
 import { Item } from '../Item/Item';
 import { StockTransfer } from 'models/inventory/StockTransfer';
-import { PriceList } from '../PriceList/PriceList';
 import { isPesa } from 'fyo/utils';
 import { PricingRule } from '../PricingRule/PricingRule';
+import { getItemRateFromPriceList } from 'models/helpers';
 
 export abstract class InvoiceItem extends Doc {
   item?: string;
@@ -629,7 +629,10 @@ async function getItemRate(doc: InvoiceItem): Promise<Money | undefined> {
   let priceListRate: Money | undefined;
 
   if (doc.fyo.singles.AccountingSettings?.enablePriceList) {
-    priceListRate = await getItemRateFromPriceList(doc);
+    priceListRate = await getItemRateFromPriceList(
+      doc,
+      doc.parentdoc?.priceList as string
+    );
   }
 
   if (priceListRate) {
@@ -675,43 +678,6 @@ async function getItemRateFromPricingRule(
   return pricingRuleDoc.discountRate;
 }
 
-async function getItemRateFromPriceList(
-  doc: InvoiceItem
-): Promise<Money | undefined> {
-  const priceListName = doc.parentdoc?.priceList;
-  const item = doc.item;
-  if (!priceListName || !item) {
-    return;
-  }
-
-  const priceList = await doc.fyo.doc.getDoc(
-    ModelNameEnum.PriceList,
-    priceListName
-  );
-
-  if (!(priceList instanceof PriceList)) {
-    return;
-  }
-
-  const unit = doc.unit;
-  const transferUnit = doc.transferUnit;
-  const plItem = priceList.priceListItem?.find((pli) => {
-    if (pli.item !== item) {
-      return false;
-    }
-
-    if (transferUnit && pli.unit !== transferUnit) {
-      return false;
-    } else if (unit && pli.unit !== unit) {
-      return false;
-    }
-
-    return true;
-  });
-
-  return plItem?.rate;
-}
-
 function getDiscountedTotalBeforeTaxation(
   rate: Money,
   quantity: number,
diff --git a/models/helpers.ts b/models/helpers.ts
index 942179a1..3963e207 100644
--- a/models/helpers.ts
+++ b/models/helpers.ts
@@ -33,6 +33,9 @@ import { ValidationError } from 'fyo/utils/errors';
 import { isPesa } from 'fyo/utils';
 import { numberSeriesDefaultsMap } from './baseModels/Defaults/Defaults';
 import { safeParseFloat } from 'utils/index';
+import { PriceList } from './baseModels/PriceList/PriceList';
+import { InvoiceItem } from './baseModels/InvoiceItem/InvoiceItem';
+import { SalesInvoiceItem } from './baseModels/SalesInvoiceItem/SalesInvoiceItem';
 
 export function getQuoteActions(
   fyo: Fyo,
@@ -947,6 +950,43 @@ export async function getPricingRule(
   return pricingRules;
 }
 
+export async function getItemRateFromPriceList(
+  doc: InvoiceItem | SalesInvoiceItem,
+  priceListName: string
+): Promise<Money | undefined> {
+  const item = doc.item;
+  if (!priceListName || !item) {
+    return;
+  }
+
+  const priceList = await doc.fyo.doc.getDoc(
+    ModelNameEnum.PriceList,
+    priceListName
+  );
+
+  if (!(priceList instanceof PriceList)) {
+    return;
+  }
+
+  const unit = doc.unit;
+  const transferUnit = doc.transferUnit;
+  const plItem = priceList.priceListItem?.find((pli) => {
+    if (pli.item !== item) {
+      return false;
+    }
+
+    if (transferUnit && pli.unit !== transferUnit) {
+      return false;
+    } else if (unit && pli.unit !== unit) {
+      return false;
+    }
+
+    return true;
+  });
+
+  return plItem?.rate;
+}
+
 export function filterPricingRules(
   pricingRuleDocsForItem: PricingRule[],
   sinvDate: Date,
diff --git a/src/pages/POS/POS.vue b/src/pages/POS/POS.vue
index 1fe2467e..bfaac791 100644
--- a/src/pages/POS/POS.vue
+++ b/src/pages/POS/POS.vue
@@ -126,6 +126,7 @@ import {
   getPricingRule,
   removeFreeItems,
   getAddedLPWithGrandTotal,
+  getItemRateFromPriceList,
 } from 'models/helpers';
 import {
   POSItem,
@@ -460,6 +461,17 @@ export default defineComponent({
         item: item.name,
       });
 
+      if (this.sinvDoc.priceList) {
+        let itemData = this.sinvDoc.items?.filter(
+          (val) => val.item == item.name
+        ) as SalesInvoiceItem[];
+
+        itemData[0].rate = await getItemRateFromPriceList(
+          itemData[0],
+          this.sinvDoc.priceList
+        );
+      }
+
       await this.applyPricingRule();
       await this.sinvDoc.runFormulas();
     },