Я не уверен, что это отвечает на первую часть вашего вопроса, но вот что я видел для второй части (в данном случае на молодежных хоккейных турнирах):
Фотограф огрызается во время игр. После каждой игры все кадры размещаются на сервере. Любой желающий приобрести фотографии может просматривать на одном из нескольких ноутбуков, подключенных к серверу, отмечая имя файла и игру любых фотографий, которые он хочет приобрести. Когда все будет готово, они передают список фотографий помощнику фотографа, который берет деньги и печатает фотографии.
Эта система имеет преимущества, заключающиеся в том, что фотографу не нужно идентифицировать каждого человека на фотографиях, и фотографии доставляются на месте.
Я понимаю, что это не программное решение, но оно работает хорошо. Недостатком является вложение в оборудование (сервер, ноутбуки и действительно хороший фотопринтер).