Jump to content
vpess

App VB6 - Integração ERP com Website Prestashop

Recommended Posts

Bom dia,

 

Preciso que me dêem uma ajuda.

 

Comecei uma aplicação em VB6 que faz a integração de produtos, categorias.  

 

Algo simples, onde só tem de configurar um ficheiro .ini com os dados do servidor sql e mysql. Depois existe um ecrã onde definimos os filtros:

2mferfn.jpg

 

Acontece que estou a ter dificuldade com as imagens. Queria fazer o upload de todas as imagens para uma pasta ftp e depois mapeava o nome da imagem com o id.

 

Mas estive a estudar o processo do prestashop e é um pouco complicado. Ele cria pastas e subpastas. Por exemplo.: id 100 - cria a pasta

 

1->

     0->

          0 ->

                 100.jpg

 

 

Não existe maneira de mapear só o url com o id?

 

Estou a usar a versão  1.6.0.6.

 

 

Obrigado 

Share this post


Link to post
Share on other sites

Quando vc., adiciona um produto ele é adicionado ao banco de dados com um id.- Este ID mapea todos os outros dados com o produto (imagens, pedidos, acessórios, features, combinacoes, etc, etc.)

 

Vc. vai ter que primeiramente verificar o ID que foi reservado no banco de dados para depois poder mapear o resto a este ID. O URL na verdade contém o ID do produto se vc. desativar o URL amigável (verifique vc. mesmo desativando Frindly urls). També o URL da imagem contém o ID se desativar URL amigável.

Share this post


Link to post
Share on other sites

Quando vc., adiciona um produto ele é adicionado ao banco de dados com um id.- Este ID mapea todos os outros dados com o produto (imagens, pedidos, acessórios, features, combinacoes, etc, etc.)

 

Vc. vai ter que primeiramente verificar o ID que foi reservado no banco de dados para depois poder mapear o resto a este ID. O URL na verdade contém o ID do produto se vc. desativar o URL amigável (verifique vc. mesmo desativando Frindly urls). També o URL da imagem contém o ID se desativar URL amigável.

Boas,

 

Antes demais obrigado pela resposta.

 

Eu tenho uma pasta local que se chama "imagens" que esta ligada ao ERP. As imagens estão mapeadas com o produtos pelo campo reference.

 

Depois na bd prestashop, posso pegar o id ou o campo reference. 

 

O que me causa mais problema é o prestashop criar tantas pastas. Não dá para configurar de forma a que coloque todas as imagens numa só pasta "imagens" por exemplo.

 

Pois por exemplo para uma foto de id - 10, o prestashop vai criar uma pasta com nome 1 e depois uma subpasta com nome 0. E ai coloca a imagem com o nome 10.jpg. 

 

Não da para simplificar isto??

Edited by vpess (see edit history)

Share this post


Link to post
Share on other sites

Infelizmente nao, pois todos os módulos e features ligados ao core usam o mesmo processo. Se vc. for alterar entao vai dar bagunca e módulos que for comprar ou instalar mais tarde nao mais funcionarao sem adaptacao. É melhor vc. aprender o processo e integrar o mesmo no seu processo.

Share this post


Link to post
Share on other sites

Infelizmente nao, pois todos os módulos e features ligados ao core usam o mesmo processo. Se vc. for alterar entao vai dar bagunca e módulos que for comprar ou instalar mais tarde nao mais funcionarao sem adaptacao. É melhor vc. aprender o processo e integrar o mesmo no seu processo.

 

Não tem ai algum topico que ajude a perceber a rotina das imagens. 

Share this post


Link to post
Share on other sites

Talvez lhe sirva: http://doc.prestashop.com/display/PS15/Chapter+9+-+Image+management

 

A possibilidade que vc. tem é de pegar um tamanho só de uma imagem e mapear esta imagem (por ex. 1.jpg)

 

1.jpg é a imagem tamanho "normal" ou seja o tamanho que vc. carregou ao servidor para o produto com ID 1 e se encontra na pasta /img/p/1. o produto com ID 10 já vai na pasta /img/p/1/0 - a imagem "normal" seria 10.jpg lá naquela pasta.

 

Já se um produto tiver mais do que uma imagem complica tudo, pois as imagens vao ser encontradas em outras pastas. Sendo que a segunda imagem do produto com ID 1 pode estar na pasta /img/p/6/6 por exemplo se for a imagem de ID 6, ou seja a sexta imagem que foi carregada ou servidro. Quando uma imagem é carregada ao servidor ela recebe um ID próprio com o valor "auto_increment" e é escrita na tabela ps_product_attribute_image.

 

A ID da imagem para o produto é escrita na tabela ps_image. Vc. retirando de lá o mapeamento deverá acessar às imagens corretas. Mas somente se o produto nao tem combinacoes/attributos com imagens próprias.

Share this post


Link to post
Share on other sites

Talvez lhe sirva: http://doc.prestashop.com/display/PS15/Chapter+9+-+Image+management

 

A possibilidade que vc. tem é de pegar um tamanho só de uma imagem e mapear esta imagem (por ex. 1.jpg)

 

1.jpg é a imagem tamanho "normal" ou seja o tamanho que vc. carregou ao servidor para o produto com ID 1 e se encontra na pasta /img/p/1. o produto com ID 10 já vai na pasta /img/p/1/0 - a imagem "normal" seria 10.jpg lá naquela pasta.

 

Já se um produto tiver mais do que uma imagem complica tudo, pois as imagens vao ser encontradas em outras pastas. Sendo que a segunda imagem do produto com ID 1 pode estar na pasta /img/p/6/6 por exemplo se for a imagem de ID 6, ou seja a sexta imagem que foi carregada ou servidro. Quando uma imagem é carregada ao servidor ela recebe um ID próprio com o valor "auto_increment" e é escrita na tabela ps_product_attribute_image.

 

A ID da imagem para o produto é escrita na tabela ps_image. Vc. retirando de lá o mapeamento deverá acessar às imagens corretas. Mas somente se o produto nao tem combinacoes/attributos com imagens próprias.

Boas,

 

Eu fiz esse processo, mas não funcionou.

 

Eu peguei o id de um produto para testar, ou seja:

 

id produto -  1571

 

 

Depois dentro da pasta img -> p

 

criei as pastas 1->5->7->1

 

e coloquei a imagem 1571.jpg

 

 

 A tabela ps_product_attribute_image e a tabela ps_image estão vazias. ou seja não existe mapeamento.

Share this post


Link to post
Share on other sites

ps_product_attribute deverá estar vazia se nao existier combinacoes de produto. Isto está correto. ps_image nao deve estar vazia, mas sim conter: id_product=1571, e id_image sejá lá qual for, pois isto é auto-incrmente e nao necessáriamente corresponde à 1571.

 

Na tabela ps_image vc. encontra o mapeamento produto à imagem do produto.

 

Veja o exemplo do meu banco de dados anexo.

 

 

post-741527-0-89427800-1401203825_thumb.jpg

Share this post


Link to post
Share on other sites

ps_product_attribute deverá estar vazia se nao existier combinacoes de produto. Isto está correto. ps_image nao deve estar vazia, mas sim conter: id_product=1571, e id_image sejá lá qual for, pois isto é auto-incrmente e nao necessáriamente corresponde à 1571.

 

Na tabela ps_image vc. encontra o mapeamento produto à imagem do produto.

 

Veja o exemplo do meu banco de dados anexo.

Boas,

 

Mas nesse caso as imagens ficam na pasta id image ou id produto? 

 

Sabe qual a rotina que o prestashop usa para verificar e criar as pastas? Assim eu aproveitava e tentava migrar esse codigo para visual basic 6.

 

 

Muito obrigado por toda a atenção.

Share this post


Link to post
Share on other sites

As imagens ficam no FTP na pasta /img/p

 

p=product

 

No banco de dados a imagem do produto, se nao for combinacao (camista tamanho G ou camiseta tamanho G, cor azul e tiver imagem própria) é mapeada em ps_images.

 

Se o produto tiver combinacao (camiseta tamnho G ou camiseta tamnho G, cor azul tiver uma imgem própria com a cor azul por ex. enta é mapeada em ps_product_attribute_image que por sua vez é mapeado com a tabela ps_product_attribute

Share this post


Link to post
Share on other sites

Quanto a rotina. Estude os ficheiros

 

/classes/Image.php

/clases/ImageManager.php

/controllers/admin/AdminImagesCpontroller.php

 

Todas as imagens a serem escritas primeiramente vao para a pasta /tmp em /img/tmp, para depois serem escritas de lá em sua pasta própria com o tamanho próprio. Se o processor falhar, as imagens podem ser regeneradas e sao tiradas desta pasta /img/tmp.

Share this post


Link to post
Share on other sites

As imagens ficam no FTP na pasta /img/p

 

 

Mas é essa parte que nao estou a perceber. Ficam na raiz da pasta "p", ou dentro da pasta "p" são criadas as tais subpastas de acordo com o id??

 

É que facilitava-me muito de desse para colocar todas as imagens juntas.

 

14tynnq.jpg

Share this post


Link to post
Share on other sites

Nas subpastas, como acima descrito. Na pasta da raíz /img/p nao existe nenhuma imagem (a nao ser no sistema antigo (legacy) que já nao mais é aplicado em Prestashop desde a versao 1.5.) A partir de PS 1.5. fica assim:

 

img/p/1/2/3/123.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More