tabella_utenti
id_utente - contatore
nome_utente - testo
...
email_utente - testo
tabella_prodotti
id_prodotto - contatore
...
quantita_prodotto - numerico
tabella_avvisi
id_avviso - contatore
id_utente - numerico
id_prodotto - numerico
Nella pagina che visualizza il prodotto, se la quantità di prodotto disponibile è minore di 1 allora fai apparire il tasto (o link) da premere per registrarsi ed essere informati via email appena il prodotto torna ad essere disponibile.
La pagina informautente.asp prende l'id del prodotto dalla queryString e l'id dell'utente dal cookies o dalla session e inserisce i dati nella tabella tabella_avvisi
codice:
idProd = request.queryString("idProd")
idUtente = session("id_utente") ' oppure request.cookies("nomeCookies")("id_utente")
...
...
sql1 = "SELECT id_utente, id_prodotto FROM tabella_avvisi WHERE id_utente = " & idUtente & " AND id_prodotto = " & idProd
set rs = conn.execute(sql1)
if not rs.eof then
response.write "La notifica per questo prodotto è già attiva"
else
sql2 = "INSERT INTO tabella_avvisi (id_utente, id_prodotto) VALUES(" & idUtente & ", " & idProd & ")"
conn.execute(sql2)
response.write "Verrai informato via email appena il prodotto tornerà disponibile"
end if
rs.close
set rs = nothing
...
...
Nel tuo sistema di Admin, ogni volta che modifichi un prodotto, se il suo valore di quantita_prodotto diviene superiore a 0, allora fai partire l'email di notifica verso tutti gli utenti che l'hanno richiesta. Ovviamente ad ogni notifica effettuata dovrai eliminare il record dalla tabella_avvisi.
codice:
...
...
if rs("quantita_prodotto") > 0 then
sql2 = "SELECT * FROM tabella_avvisi WHERE id_prodotto = " & rs("id_prodotto")
set rs2 = conn.execute(sql2)
if not rs2eof then
do until rs2.eof
id_avviso = rs2("id_avviso")
id_utente = rs2("id_utente")
id_prodotto = rs2("id_prodotto")
sql3 = "SELECT nome_utente, email_utente FROM tabella_utenti WHERE id_utente = " & id_utente
set rs3 = conn.execute(sql3)
if not rs3.eof then
nome_utente = rs3("nome_utente")
email_utente = rs3("email_utente")
end if
sql4 = "SELECT nome_prodotto FROM tabella_prodotti WHERE id_prodotto = " & id_prodotto
set rs4 = conn.execute(sql4)
if not rs4.eof then
nome_prodotto = rs4("nome_prodotto")
end if
rs4.close
set rs4 = nothing
set mail = server.createObject("CDONTS.newMail")
mail.To = email_utente
mail.From = "admin@tuosito.it"
mail.Subject = "Avviso disponibilità prodotto " & nome_prodotto
mail.Body = "Gentile " & nome_utente & ", " &_
"ti informiamo che il prodotto " & nome_prodotto &_
" è di nuovo disponibile." &_
"Saluti"
mail.send
set mail = nothing
sql5 = "DELETE * FROM tabella_avvisi WHERE id_avviso = " & id_avviso
conn.execute(sql5)
rs2.moveNext
loop
end if
rs2.close
set rs2 = nothing
end if
...
...