We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now


help idea needed

3xtr3m3d asked
Medium Priority
Last Modified: 2012-05-11
i was asked to make a system for shop which use barcode to identify goods.

problem i have is

the owner buys goods lets say a soap, he buys same brand soap from one dealer a price of 10$ then he buys same brand from another dealer for 12$

but this brand has one barcode.

so when generating a report regarding profits etc.. report will not 100% accurate due to those prices.

what is the way to solve this?

Watch Question

You must use (and store) an average cost price for the item, updated each time the item is purchased. Please let me know if you need more details.

Hello 3xtr3m3d,
 If you want it to be accurate then you will have to keep buying price each time a stock is added to the system / store and keep it in your database.

Avarage cost will not make it 100% accurate.  Storing buying price + stock amount is the only way to make it 100% accurate. 1 month from now, if those prices will change to $15 to - $17, putting an input on items page or stocks page where admin could define;

How many soap / product company bought
What was the buying price

 This way, you can also prepare more detailed statistics if it is needed. Such as if you also keep dates, company names etc,;

How much products were bought last month / week / year etc..
What was the cost of the items for the last month / week / year etc...

 You could keep adding more and more details, if you keep such details for each item / products is bought, this will definitely help you to have more accurate & detailed statistics.
If you are able to find out the basic price for the products(with out any additional charges and tax) , you can easily update the find the difference between all the dealers.This way you can fine tune your code to get the additional prices and add it at the end of the barcode reading. Check if this suggestion is helpful to you.

I would love for you to explain why average cost is not accurate for a profit report... we use it all the time and it is accurate! Our prices change all the time. You seem to be talking about purchase order history not profit reports.



Thanks all for the information and for the quick replies.

in this case owner buy same product from several dealers for several prices and sell all at a fixed price.

so when sell there is no way to select the dealer and if i put option to select dealer it will not Suitable right?

so keep a average buying price is good?
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Keeping average price is not good. Your statistics will not be accurate. If there is only 1 dealer or no dealer at all, I suggest you to keep exact buying price / cost in your database, each time a new stock is added.
Most Valuable Expert 2011
Author of the Year 2014

If you want an exact price, you must record an exact price.  Just because the UPC barcode is the same only means that the products are identical.  What I would do with this situation would be to create a table of vendors, barcodes, and prices.  Then you can easily see which vendor is giving you the best price.

Under the GAAP you are OK to report blended rates for the cost of commodity items.  But as a businessman you should try to get the lowest overall cost, price and other factors considered.


Thanks all and Thanks gavsmith

seems like gavsmith's suggestion is works accurate for calculate profit

Your welcome... and even though I knew what you meant with the profit report (and your question).

It is still important to create detailed purchase order history for reasons others have already mentioned.

Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.