Swatches não funciona no Magento 1.9.3

Fui ativar o swatches numa loja com Magento 1.9.3.2 e ele não aparecia no frontend, verificada todas as configurações do atributo e a habilitação do swatches no admin, mas só aparecia o dropbox e não aparecia os boxes ou imagens que foram colocadas em “media/wysiwyg/swatches/”, o nome das imagens em minúsculo e o mesmo nome no atributo, mas nada de funcionar, testando numa instalação nova com o tema rwd funcionava.
O meu tema NÃO tem swatches nele, este post não pode ser usado se seu tema contempla o swatches e ele não estiver funcionando.

Pesquisando no google achei um post que foi o início da pesquisa, este abaixo:

https://community.magento.com/t5/Magento-1-x-Technical-Issues/Not-valid-template-file/td-p/13584

Depois de muito googar vou resumir aqui os passos que executei e consegui ter sucesso, sempre faça backup antes de alterações/implementações na sua loja.

Na pasta rwd temos os .phtml e .js, temos que copiar para o nosso tema, assim:

copie toda pasta app/design/frontend/rwd/default/template/configurableswatches para o seu tema app/design/frontend/PACKAGE/THEME/template/

copie de forma recursiva toda a pasta skin/frontend/rwd/default/js/configurableswatches/ para o mesmo local do seu tema, skin/frontend/PACKAGE/THEME/js/

copie app/design/frontend/rwd/default/template/catalog/layer/state.phtml para  app/design/frontend/PACKAGE/THEME/template/catalog/layer/state.phtml

Neste fonte teremos que fazer uma alteração depois.

Agora teremos que fazer 2 alterações no catalog.xml do seu tema, a primeira assim:

fonte: app/design/frontend/PACKAGE/THEME/layout/catalog.xml

colocar estas duas linhas

<block type=”core/text_list” name=”product.info.options.configurable.renderers” as=”attr_renderers” />
<block type=”core/text_list” name=”product.info.options.configurable.after” as=”after” />

na referência product.info.options.wrapper como mostrado num pedaço abaixo.

    <reference name="product.info.options.wrapper">
        <block type="catalog/product_view_type_configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="catalog/product/view/type/options/configurable.phtml">

        <block type="core/text_list" name="product.info.options.configurable.renderers" as="attr_renderers" />
        <block type="core/text_list" name="product.info.options.configurable.after" as="after" />
       </block>
    </reference>
</PRODUCT_TYPE_configurable>

Os números de linhas acima não correspondem as do arquivo catalog.xml.

Agora a segunda é colocar product_options.js em <catalog_product_view translate=”label”>
A linha a ser inserida é esta:
<action method=”addJs”><script>varien/product_options.js</script></action>
Veja parte do arquivo abaixo, os números de linhas não servem de referência.

   <catalog_product_view translate="label">
        <label>Catalog Product View (Any)</label>
        <!-- Mage_Catalog -->
        <reference name="root">
            <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
        </reference>
        <reference name="head">
            <action method="addJs"><script>varien/product.js</script></action>
            <action method="addJs"><script>varien/configurable.js</script></action>

            <action method="addJs"><script>varien/product_options.js</script></action>

            <action method="addItem"><type>js_css</type><name>calendar/calendar-win2k-1.css</name><params/><!--<if/><condition>can_load_calendar_js</condition>--></action>
....
....

Agora temos que mudar o .phtml que copiamos do rwd acima, em:
app/design/frontend/PACKAGE/THEME/template/catalog/layer/state.phtml

<?php
$_filters = $this->getActiveFilters();
//$_renderers = $this->getParentBlock()->getChild('state_renderers')->getSortedChildren();
$_renderers = $this->getParentBlock()->getChild('state_renderers');
?>
<?php if(!empty($_filters)): ?>
<div class="currently">
....
....

comentei e dupliquei a linha 36 (linha do arquivo fonte) e editei a 37, como acima.

Limpar cache e reload no frontend, agora ao acessar o produto, aparecem as imagens de cores, que foi o atributo usado.

Caso queira colocar todo o swatches num tema aconselho ver o seguinte post:

https://magento.stackexchange.com/questions/45948/how-to-use-magento-1-9-1-0-configurable-swatches-in-default-package-theme-or-a

Espero ter ajudado,

Alfredo Letti

Desabilitar/Remover comparar produto no Magento
Novo status criado não deixa o pedido aparecer no painel de cliente

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *