На опыте проекта в котором я участвовал: один промокод для одного товара или группы товаров. Тогда вы сможете этот промокод написать хоть на стене в подъезде и люди смогут его активировать. А если каждый раз генерировать новый промо-код, то это дополнительное действие со стороны пользователя (запрос промокода) + генерирование и сохранение его в базу, да и не факт, что им воспользуются.