I'll definitely second (or third) having shopkeepers not buy things they can't reasonably expect to sell. If anything, it can be done as simply as a stored variable (or list) for what items the shopkeeper specializes in. If they don't match up with what the player tries to sell them, "Sorry, but...