Certo... então ajusto a ideia.
O comprador escolhe o produto e faz o pagamento. O smartcontract gera um codigo, que é passado ao vendedor via email ou formulário, com os dados de enviou.
O vendedor, com esse código, o vendedor sabe qual é o produto e que já foi pago, não sabendo a que transação blockchain se refere.
Funcionaria?
Existe um processador de pagamento externo, que faz chamadas em email, códigos externos ao blockchain, etc.
Você não está mais falando em um smartcontract, mas em processador de pagamento centralizado.
Nesse caso a privacidade torna-se ainda mais frágil, pois você expõe sua identidade ao processador de pagamento centralizado offchain. Q tem os dados de ambas as partes envolvidas.
Já existe necessidade de confiança na transação (no processador de pagamentos), que não deveria ter.
Edit: você pode resumir o processo todo a um contrato de um mixer na hora de realizar o pagamento. Isso só daria certo em altcoins extremamente baratas.. senão seria caro na hora de processar.