Okay, I think he needs to build the following.
Basically a LCD which is mounted on the front of the shelf and shows the current price. When a price-change occurs in the back-of-house system, they modulate the lights in the store in a manner which isn't really noticable to the human eye. However, a sensor mounted inside his gadget detects the light being modulated and updates it's display to reflect the new price.
This has already been done commercially although I don't know how sucessful it is, or if it is in widespread use. Basically, they update the price labels ( the LCD display on the shelf ) 30 minutes before they update the price at the register. This gets around the situation whereby people see it at one price and it is another when they get to the register. Depending upon local statutes they may need to change the register price immediately if the new price is lower than the previous price.
He's going to need a few things with this.
The LCD label ( for want of a better term ) is going to need a small micro which can drive the LCD glass, and decode the output from whatever his opto sensor is. It will also need some form of EEPROM to store the current price in case of power-fail or whatever. Ideally, it should probably be solar powered, with a current drain that would allow it to run from incandescent lighting.
On the transmitter / receiver, I'd cheat and use IR. Use the excuse that there are to many variables inplaying with the existing in-store lighting and you are concerned about the overall safety etc. They should buy that one
Design a simple RS-422 receiver module which can decode the serial data stream and pulse it out to the IR LEDs. Put these in the roof every 12 feet or so. It should still work out cheaper than any method of playing with the in-store lights.
In the Labeling LCD, you will need a small micro with some onboard EEPROM. Try to run it from a 32khz crystal to save power. A simple photo-transistor should be able to work as your detector, or at worst case a full IR reciever module.
Your Labeling LCD should also have an ID code so that it can be addressed by the back-of house system.
When a price change comes though, it would consist of a simple multi-byte message something along the lines of <label_id_code> <new_price> A label would only update or change the price if the message was addressed to it.