Magento - konfigurowalne obrazy opcji produktu

Obecnie pracuję nad uzyskaniem obrazów dla opcji produktu pojawiających się na mojej pierwszej kompilacji magento. mamTO zorientowali się, że produkt jest w pakiecie, tak:

Otrzymuję adresy URL powiązanych obrazów (na przykład próbek), gdy budowane są opcje wyboru. Teraz próbuję zrobić to samo z konfigurowalnymi produktami, ale nie wydaje się to być tak proste.

Konfigurowalne produkty są zbudowane z prostych produktów, które reprezentują każdą iterację dostępnych opcji. Świetny. Mogę oczywiście przesyłać obrazy dla każdego prostego produktu, co byłoby dobrym początkiem rozwiązania tego problemu.

Na przykład: krzesło ma 3 opcje tapicerki i 2 podłokietniki (6 prostych produktów). W przypadku krzesła 2 / b ładuję próbkę 2 tapicerki i próbkę podłokietnika b i odpowiednio je naklejam. Kiedy opcje zostaną zbudowane, łapię adresy URL związane z każdym prostym produktem według ich etykiety (może chwytając wszystkie obrazy dla tej etykiety i usuwając duplikaty lub coś?) ...

W Magento widzę:

Wtheme / catalog / product / view / type / option / configurationable.phtml

<?php foreach($_attributes as $_attribute): ?>
    ..// 
    <select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
        <option><?php echo $this->__('Choose an Option...') ?></option>
    </select>
    ..//
</div>
<?php endforeach; ?>
<script type="text/javascript">
    var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
</script>

W przeciwieństwie do pakietu konfigurowalny produkt select / options jest wstrzykiwany na stronę za pomocą javascript (wjs/varien/configurable.js). Ta klasa jest wtedy zależnagetJsonConfig() aby dostarczyć wszystkie informacje po tym.

W tym momencie wydaje mi się, że powinienem być w stanie uzyskać prostą informację o url produktu z tego obiektu. Nie widzę logiki zajmującej się obrazami w configureable.js.Jak uzyskać dostęp do tych adresów URL i powiązanie ich z wybranymi opcjami?

Każda rada dotycząca tego, jak powinienem postępować, byłaby świetna.

Twoje zdrowie

... również: To naprawdę wydaje się być absolutnie wymaganą funkcjonalnością. Dlaczego magento nie wspierałby takich rzeczy z pudełka?

aktualizacja

W końcu zorientowałem się, dla osób zainteresowanych czymś podobnym.

Moja pierwsza metoda radzenia sobie z tym - pobieranie obrazów z produktów podrzędnych działało do pewnego stopnia, ale stało się skomplikowane przy próbie pobrania unikalnych adresów URL obrazów dla wielu zestawów atrybutów. Oznaczało to również konieczność dostarczenia obrazu dla każdej opcji w prostym produkcie, a więc - wiele niepotrzebnej pracy.

Skończyło się na używaniudarmowa wtyczka (z pewnymi modyfikacjami) zasugerował @Greg Demetrick. Jest to całkiem solidny mały moduł, który pozwala powiązać adresy URL obrazków z dowolną opcją atrybutu / a także kilka metod ich pobierania.

Moje ostateczne rozwiązanie wygląda trochę tak:

catalog / product / view / type / options / configurationable.phtml:

<?php foreach($_attributes as $_attribute): ?>

  // markup for the attribute

    <script type="text/javascript">
        //<![CDATA[
        var attribute_data_<?php echo $_attribute->getAttributeId() ?> = {};
            attribute_data_<?php echo $_attribute->getAttributeId() ?>.id = '<?php echo $_attribute->getAttributeId() ?>';
            attribute_data_<?php echo $_attribute->getAttributeId() ?>.title = '<?php echo $_attribute->getLabel() ?>';
            attribute_data_<?php echo $_attribute->getAttributeId() ?>.data = {};
        <?php 
        $a = Mage::getModel('eav/config')->getAttribute('catalog_product', $_attribute->getAttributeId() );
        $helper = Mage::helper('attributeoptionimage');
        foreach ( $a->getSource()->getAllOptions(true) as $option): ?>
            attribute_data_<?php echo $_attribute->getAttributeId() ?>.data.option_<?php echo $option['value'] ?> = {};
            attribute_data_<?php echo $_attribute->getAttributeId() ?>.data.option_<?php echo $option['value'] ?>.val = '<?php echo $option['value'] ?>';
            attribute_data_<?php echo $_attribute->getAttributeId() ?>.data.option_<?php echo $option['value'] ?>.imageurl = '<?php echo $helper->getAttributeOptionImage($option['value']); ?>';
            attribute_data_<?php echo $_attribute->getAttributeId() ?>.data.option_<?php echo $option['value'] ?>.imgtitle = '<?php echo $option['label']; ?>';
        <?php endforeach; ?>
        //]]>
    </script>

    <?php endforeach; ?>

Zostanie to wydrukowane w znaczniku, jeden zestaw dla każdego atrybutu. Który działa dobrze, ale zwraca wszystkie opcje atrybutu, zamiast tylko opcji wybranych dla produktu (dane, które są dostępne)getJsonConfig() obiekt został zapisany). Więc po prostu testuję mojeattribute_data_xxx sprzeciwić sięspConfigi wyślij unikalne opcje dopasowania wraz z moim skryptem kontrolera.

RozsuwalnygetJsonConfig pobrać adresy URL atrybutów prawdopodobnie również działały ...

Niezależnie od przypadku - kluczowym punktem było skojarzenie adresów URL obrazów z opcjami atrybutów (zamiast produktów).

Twoje zdrowie

questionAnswers(2)

yourAnswerToTheQuestion