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.

Foi útil?

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\imageprocessorabrir 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

  1. Mage_Catalog_Model_Product::addImageToMediaGallery
  2. Mage_Catalog_Model_Product_Attribute_Backend_Media::addImage
  3. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top