Como alterar a estrutura do diretório Magento para imagens durante a importação
-
12-12-2019 - |
Pergunta
O que estou tentando fazer é alterar a estrutura de pastas padrão das imagens importadas.Por exemplo, quando você importa uma imagem, o magento padroniza a estrutura de diretórios para a primeira e segunda letras da imagem para criar a estrutura de diretórios em /media/catalog/product/X/Y/XYimage.jpg
Quero poder modificar o núcleo para permitir alterá-lo para algo como:/media/catalog/product/sku/xyz/skuxyzimage.jpg Portanto, as três primeiras letras são o nível superior do diretório e as próximas três letras são o segundo nível do diretório.
Solução 2
Esta é uma solução simples e testou apenas mais de 60 mil produtos.instale Magmi (Pesquise no Google). Navegue até \magmi\plugins\extra\itemprocessors\imageprocessor
abrir imageitattributeemprocessor.php
com seu editor favorito, acesse e substitua 496 por 505 por esta pequena modificação.
$i1 = $bimgfile[0];
$i2 = $bimgfile[1];
$i3 = $bimgfile[2];
$i4 = $bimgfile[3];
$i5 = $bimgfile[4];
$i6 = $bimgfile[5];
// magento image value (relative to media catalog)
$impath = "/$i1$i2$i3/$i4$i5$i6/$bimgfile";
// target directory;
$l2d = "media/catalog/product/$i1$i2$i3/$i4$i5$i6";
Como você pode ver, escolhi $impath para configurar minha estrutura como"/$i1$i2$i3/$i4$i5$i6/$bimgfile"
Sku123456.jpg traduzido seria media/catalog/product/sku/123/sku123456.jpg
Desculpe pelo desenho grosseiro (eu sou novo nisso) sempre lembre -se de que se você atualize o Magmi, isso pode ser escrito, portanto sempre faça backup de seus arquivos.
Outras dicas
Retrocedendo o código
Mage_Catalog_Model_Product::addImageToMediaGallery
Mage_Catalog_Model_Product_Attribute_Backend_Media::addImage
Varien_File_Uploader::getDispretionPath
Parece que o caminho é construído aqui.Como você não pode substituir um arquivo Varien de um módulo personalizado, você terá que copiar o arquivo para app/code/local/Varien/File/Uploader.php
.Lá você pode alterar a forma como o caminho é construído.
No entanto, nesse caso, isso não afetará apenas os produtos.Você pode querer substituir Mage_Catalog_Model_Product_Attribute_Backend_Media::addImage
de um módulo personalizado para limitar o escopo das alterações apenas aos produtos.Então, em vez de ligar Mage_Core_Model_File_Uploader::getDispretionPath
on-line 286
você pode querer alterar essa linha para chamar um método personalizado para retornar o caminho.