Jump to content

Id do produto no XML do PagSeguro


Recommended Posts

Salve galera.

 

No XML de retorno do módulo do PagSeguro, eu tenho o campo id do produto (items->item->id). Segundo a documentação do site de pagamentos, esse id é fornecido pelo meu e-commerce, no caso, o Prestashop. Onde eu encontro esses ids no banco de dados? Estou fazendo uma integração, e preciso deles para identificar o produto comprado pelo cliente..

 

Exemplo de um XML:

<transaction>
<date>2013-02-05T12:20:15.000-02:00</date>
<code>0ACABBC4-F4EC-4CCD-8C5E-4322630B72A5</code>
<reference>PRS-67</reference>
<type>1</type>
<status>1</status>
<lastEventDate>2013-02-05T12:20:50.000-02:00</lastEventDate>
<paymentMethod>
 <type>2</type>
 <code>202</code>
</paymentMethod>
<grossAmount>599.30</grossAmount>
<discountAmount>0.00</discountAmount>
<feeAmount>30.31</feeAmount>
<netAmount>568.99</netAmount>
<extraAmount>0.00</extraAmount>
<installmentCount>1</installmentCount>
<itemCount>2</itemCount>
<items>
 <item>
  <id>5111151c225b7</id>
  <description>iPod Nano - Color : Black, Disk space : 16Go</description>
  <quantity>1</quantity>
  <amount>527.91</amount>
 </item>
 <item>
  <id>FRETE</id>
  <description>Frete</description>
  <quantity>1</quantity>
  <amount>71.39</amount>
 </item>
</items>
<sender>
...

 

Valeu!

Link to comment
Share on other sites

É só procurar por id_product nas várias tabelas da sua base de dados, sendo que existem várias tabelas que o utilizam, pelo que a tabela a usar vai depender do contexto em que vai precisar dele, mas pode começar pela tabela onde o mesmo é criado ps_product

Link to comment
Share on other sites

É só procurar por id_product nas várias tabelas da sua base de dados, sendo que existem várias tabelas que o utilizam, pelo que a tabela a usar vai depender do contexto em que vai precisar dele, mas pode começar pela tabela onde o mesmo é criado ps_product

Eu já fucei em todas as tabelas, não encontro esse código. Percebi também que ele varia pela compra. Quero dizer, se eu comprar o mesmo produto novamente, o código muda.

Link to comment
Share on other sites

Desculpa mas eu não tinha reparado na formatação do id a que se referia no xml e esse id do xml não é o id_product, pois contem letras, a não ser que o número esteja codificado e precise ser descodificado primeiro.

 

<reference>PRS-67</reference>

 

Verifique se este valor é igual ao campo reference ou supplier_reference na tabela ps_product da sua base de dados.

 

Se não encontrar é porque a referência não está relacionada com o produto, mas se encontrar você não fica com o problema totalmente resolvido, pois estes campos não são obrigatórios no preenchimento de um produto, pelo que podem estar vazios.

  • Like 1
Link to comment
Share on other sites

Desculpa mas eu não tinha reparado na formatação do id a que se referia no xml e esse id do xml não é o id_product, pois contem letras, a não ser que o número esteja codificado e precise ser descodificado primeiro.

 

 

 

Verifique se este valor é igual ao campo reference ou supplier_reference na tabela ps_product da sua base de dados.

 

Se não encontrar é porque a referência não está relacionada com o produto, mas se encontrar você não fica com o problema totalmente resolvido, pois estes campos não são obrigatórios no preenchimento de um produto, pelo que podem estar vazios.

Para todos os meus produtos, o campo reference está vazio, e o supplier_reference está null. Isso é alguma coisa do módulo do PagSeguro, que manipula a id do produto de alguma forma. O problema é que não existe documentação, e eu estou olhando nos códigos para tentar achar uma luz.

 

Obrigado pela ajuda, exadra37. Se alguém souber de algo, agradeço.

Link to comment
Share on other sites

Pra que você precisaria da ID do produto no PagSeguro?

Se você recebe o retorno que aquele pedido está pago, basta acessar o pedido do cliente e conferir os produtos que ele comprou...

 

É interessante informar sempre qual a versão do PrestaShop, pois as referências de pedido mudam a partir da versão 1.5.X.

 

Att

 

Daniel Valente

PrestaBR

  • Like 1
Link to comment
Share on other sites

Pra que você precisaria da ID do produto no PagSeguro?

Se você recebe o retorno que aquele pedido está pago, basta acessar o pedido do cliente e conferir os produtos que ele comprou...

 

É interessante informar sempre qual a versão do PrestaShop, pois as referências de pedido mudam a partir da versão 1.5.X.

 

Att

 

Daniel Valente

PrestaBR

Preciso dessa id para fazer o cadastro no Moodle, assim que o cliente comprar o curso. A loja na qual estou trabalhando é de ensino à distância. Estou com o problema parcialmente resolvido, estou testando no prestashop mais novo, o 1.5.3 e a biblioteca do PagSeguro funciona melhor, a descrição é exata, e estou conseguindo puxar o código a partir da descrição.

Link to comment
Share on other sites

Como eu falei, basta identificar o pedido autorizado no retorno do PagSeguro.

Os produtos e suas respectivas IDs estarão no pedido.

As informações que temos na página de retorno são exatamente as mesmas da API de notificações, na qual estamos focando. Essas ids são enviadas, de alguma forma que ainda não descobrimos, pela própria biblioteca, o PagSeguro apenas as retorna para mim.

Link to comment
Share on other sites

Olá, Uchiha

Acho que você ainda não entendeu...

 

Se você recebe o retorno do pedido (id do pedido ou do carrinho) no XML (algo como $xml->id_order), pode localizar os produtos relacionados na loja utilizando uma classe do PrestaShop (Cart ou Order):

 

Mais ou menos assim:

   $cart = new Cart(intval($xml->id_order));
   $products = $cart->getProducts();

 

 

Depois você pode usar essas variáveis no moodle ou em qualquer outra função.

 

Boa sorte

Link to comment
Share on other sites

Olá, Uchiha

Acho que você ainda não entendeu...

 

Se você recebe o retorno do pedido (id do pedido ou do carrinho) no XML (algo como $xml->id_order), pode localizar os produtos relacionados na loja utilizando uma classe do PrestaShop (Cart ou Order):

 

Mais ou menos assim:

$cart = new Cart(intval($xml->id_order));
$products = $cart->getProducts();

 

 

Depois você pode usar essas variáveis no moodle ou em qualquer outra função.

 

Boa sorte

Ah, entendi. Desconhecia essa classe Cart. Vou dar uma olhada. Obrigado.

Link to comment
Share on other sites

×
×
  • Create New...