Chave de URL da categoria pai do conjunto de importação de produto Magento CSV para uso na página de categoria da lista de catálogo

magento.stackexchange https://magento.stackexchange.com//questions/29927

Pergunta

-- Atualizar --

Acho que o problema está na visualização da lista de categorias.Ele gera o link do produto para o produto, para a página, em loop.

Eu consigo obter as categorias de produtos e usá-las para construir o URL.

Estou pensando que terei que definir qual deles desejo que seja o pai em um atributo adicional e, em seguida, verificar esse atributo para a chave de URL da categoria que desejo usar.

Alguma sugestão sobre a melhor maneira de fazer isso?

-- Atualizar --

Percebi que o problema parece ser devido à maneira como o magento cria sua chave de URL para um produto com base no ID de categoria mais alto das categorias às quais ele pertence.

O maior ID de categoria define a chave de URL.

Então, se eu tiver produto1 na categoria1, categoria2 e categoria3;Quero a chave de URL da categoria1 (ou seja,site.com/category1/product1), mas se a categoria3 tiver um ID maior que a categoria1, a chave do URL será site.com/category3/product1, mesmo quando você navegar para site.com/category1 o link será para site.com/ categoria3/produto1.

Eu poderia removê-lo de categorias adicionais com ID mais alto, mas essa não é a solução ideal.

Existe alguma maneira de definir a chave de URL completa?ou há algum lugar onde eu possa forçar a preferência da chave de URL de uma determinada categoria?

-- Original --

Estou tentando importar produtos e categorias via CSV.

Tenho esse processo funcionando e tudo é importado sem gerar erro.

Tenho meus produtos pertencentes a 1 a 3 categorias.

Na importação, a chave de url da maioria dos produtos está correta, apenas parece haver alguns aleatórios que não obtêm a chave de url do primeiro pai (categoria).

Parecia que inicialmente todos estavam usando o último, então mudei a ordem para ser invertida.

Isso corrigiu quase todos eles, mas aqueles que são configurados praticamente da mesma forma e deveriam ter a mesma chave de URL pai estão usando aleatoriamente uma das outras categorias como chave de URL.

Tentei deletar tudo (Produtos e Categorias), limpei meu armazenamento em cache.Verifiquei se as reescritas de URL foram removidas e tentei importar novamente.

Eu obtenho o mesmo resultado.

Não parece haver nenhum vínculo com a visibilidade, já que um que está incorreto é definido como 4 e outro é 1 (o que eu esperaria que 1 estivesse errado se qualquer um dos dois).

Tenho a maioria das categorias inativas e quero lançar categorias adicionais após o lançamento.

Eu acho que daria preferência às categorias visíveis, mas aquela em que quero aparecer é visível e é colocada em uma categoria inativa.

Não tenho certeza do que mais pode causar isso.Ou onde mais procurar o problema.Não vejo nada que indique por que esses produtos específicos são diferentes.Mas cada vez que importo, os mesmos caem na categoria errada.

Qualquer ajuda seria muito apreciada.Se alguém pudesse pelo menos me indicar a direção certa.

Posso dar exemplos mais específicos se necessário, não queria confundir mais as coisas do que já estão.

Foi útil?

Solução

Na tentativa de não ter URLs duplicados, mas vincular categorias adicionais ao produto em outra categoria, com um URL, acabei resolvendo esse problema da seguinte maneira.

Criei um atributo de produto adicional, parent_url_key.

Em meu script de importação, adicionei a chave de URL pai preferencial para cada produto neste valor.

Na visualização Lista de produtos por categoria, em vez de apenas usar:

$_product->getProductUrl()

Fiz isso para criar o URL do meu produto:

$url = $_product->getProductUrl();
if($categoryParent = $_product->getResource()->getAttribute('parent_url_key')) {
    $categoryParentVal = $categoryParent->getFrontend()->getValue($_product);
    if($categoryParentVal) {
        $url = $this->getUrl($categoryParentVal).basename($url);
    }
}

Dessa forma, ele verifica um pai definido ou usa a categoria atual se for indefinida.

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