Página 1 de 1

Alternar Imagem Destaque do Produto

Enviado: 31 Dez 2015, 19:52
por ofelipecohen
Olá, pessoal! Como vão?
Sou novo no OpenCart, e ainda estou boiando, rs. Dei uma pesquisada, mas não encontrei nada sobre minha dúvida.

Seguinte: estou montando uma loja de camisetas, e desejo criar o departamento feminino e masculino. Ao cadastrar 1 produto, quero que ele apareça nas 2 categorias, mas que a foto principal seja diferente. Que na masculina apareça a foto de homem, e na feminino de mulher. Mas que ao clicar, o link seja para o mesmo produto. Entendem?

Tem um exemplo na http://www.chicorei.com que é desse jeito. Tem uma sessão masculino somente com fotos de homens usando as camisetas, e na feminina as mulheres. Mas quando clicamos, abre 1 único produto.

Como não sei se me expressei corretamente, coloquei um exemplo nessa imagem OLHEM:

Imagem

Alguém sabe como fazer isso?
Muito obrigado!

Abraços e feliz ano novo ;)

Re: Alternar Imagem Destaque do Produto

Enviado: 02 Jan 2016, 19:01
por valdeir2000
Dá para fazer da seguinte forma, você cadastra dois produtos e utiliza uma modificação que quando o cliente entrar no Produto Masculino e quiser escolher a versão Feminina, a modificação fará o carregamento da outra página. Não sei se deu para entender muito bem, mas qualquer coisa me envia um e-mail que te passo uma demonstração da modificação.

Re: Alternar Imagem Destaque do Produto

Enviado: 04 Jan 2016, 17:12
por ofelipecohen
Puts, sendo assim terei que cadastrar tudo duplicado? Queria uma forma de modificar apenas a imagem principal de acordo com a categoria clicada.

Re: Alternar Imagem Destaque do Produto

Enviado: 05 Jan 2016, 09:52
por ofelipecohen
Alguém? :?

Re: Alternar Imagem Destaque do Produto

Enviado: 06 Jan 2016, 02:06
por valdeir2000
Sim. Teria. Na verdade você nem levaria tanto tempo, bastaria utilizar o recurso de duplicar do próprio OpenCart.

Essa é uma modificação mais simples e rápida, mas não teria problema em desenvolver uma que faça EXATAMENTE o que você quer. Mas teria que começar do zero e custo com certeza seria mais elevado.

Se você sabe o básico de programação, você poderia criar uma aba onde o cliente poderia enviar uma imagem para cada categoria. E no front-end você poderia utilizar o código
Código: Selecionar todos
$this->request->get['category_path']; //Se não me engano
para capturar em qual categoria o cliente está acessando e a parti daí exibir a imagem.

Re: Alternar Imagem Destaque do Produto

Enviado: 06 Jan 2016, 15:10
por leandrorppo
Você pode cadastrar na primeira imagem a foto do homem vestindo a camiseta e na segunda imagem (adicional) a da mulher e depois listar conforme a categoria a segunda imagem para feminino e primeira para masculino.

Acho que esse seria o caminho mais curto para conseguir o que quer, a parte mais difícil será fazer com que liste a imagem adicional.

Re: Alternar Imagem Destaque do Produto

Enviado: 06 Jan 2016, 19:56
por ofelipecohen
Obrigadão, Leandro! Já começou a acender uma luz aqui, rs.

Tentei colocar exatamente o seu código, mas deu erro.
Tenho que alterar qual parte?

Vou mostrar qual é o código exato da página:
Código: Selecionar todos
<?php echo $header; ?>
<div id="container" class="container j-container">
  <ul class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
    <?php } ?>
  </ul>
  <div class="row"><?php echo $column_left; ?><?php echo $column_right; ?>
    <?php if ($column_left && $column_right) { ?>
    <?php $class = 'col-sm-6'; ?>
    <?php } elseif ($column_left || $column_right) { ?>
    <?php $class = 'col-sm-9'; ?>
    <?php } else { ?>
    <?php $class = 'col-sm-12'; ?>
    <?php } ?>
    <div id="content" class="<?php echo $class; ?>">
      <h1 class="heading-title"><?php echo $heading_title; ?></h1>
      <?php echo $content_top; ?>
      <?php if ($thumb || $description) { ?>
      <div class="category-info">
        <?php if ($thumb) { ?>
        <div class="image"><img width="<?php echo $this->journal2->settings->get('config_image_width'); ?>" height="<?php echo $this->journal2->settings->get('config_image_height'); ?>" src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></div>
        <?php } ?>
        <?php if ($description) { ?>
        <?php echo $description; ?>
        <?php } ?>
      </div>
      <?php } ?>
      <?php if($this->journal2->settings->get('refine_category') === 'grid'): ?>
      <div class="refine-images">
        <?php foreach ($this->journal2->settings->get('refine_category_images', array()) as $category): ?>
        <div class="refine-image <?php echo Journal2Utils::getProductGridClasses($this->journal2->settings->get('refine_category_images_per_row'), $this->journal2->settings->get('site_width', 1024), $this->journal2->settings->get('config_columns_count')); ?>">
          <a href="<?php echo $category['href']; ?>"><img style="display: block" width="<?php echo $this->journal2->settings->get('refine_image_width', 175); ?>" height="<?php echo $this->journal2->settings->get('refine_image_height', 175); ?>" src="<?php echo $category['thumb']; ?>" alt="<?php echo $category['name']; ?>"/><span class="refine-category-name"><?php echo $category['name']; ?></span></a>
        </div>
        <?php endforeach; ?>
        <script>
          Journal.equalHeight($(".refine-images .refine-image"), '.refine-category-name');
        </script>
      </div>
      <?php endif; ?>
      <?php if($this->journal2->settings->get('refine_category') === 'carousel'): ?>
      <div id="refine-images" class="owl-carousel">
        <?php foreach ($this->journal2->settings->get('refine_category_images', array()) as $category): ?>
        <div class="refine-image">
          <a href="<?php echo $category['href']; ?>"><img style="display: block" width="<?php echo $this->journal2->settings->get('refine_image_width', 175); ?>" height="<?php echo $this->journal2->settings->get('refine_image_height', 175); ?>" src="<?php echo $category['thumb']; ?>" alt="<?php echo $category['name']; ?>"/><span class="refine-category-name"><?php echo $category['name']; ?></span></a>
        </div>
        <?php endforeach; ?>
      </div>
      <?php
        $grid = Journal2Utils::getItemGrid($this->journal2->settings->get('refine_category_images_per_row'), $this->journal2->settings->get('site_width', 1024), $this->journal2->settings->get('config_columns_count'));
      $grid = array(
      array(0, (int)$grid['xs']),
      array(470, (int)$grid['sm']),
      array(760, (int)$grid['md']),
      array(980, (int)$grid['lg']),
      array(1100, (int)$grid['xl'])
      );
      ?>
      <script>
        (function () {
          var opts = $.parseJSON('<?php echo json_encode($grid); ?>');
          jQuery("#refine-images").owlCarousel({
            itemsCustom:opts,
            autoPlay: <?php echo $this->journal2->settings->get('refine_carousel_autoplay') ? '4000' : 'false' ; ?>,
          touchDrag: <?php echo $this->journal2->settings->get('refine_carousel_touchdrag') ? 'true' : 'false' ; ?>,
          stopOnHover: <?php echo $this->journal2->settings->get('refine_carousel_pause_on_hover') ? 'true' : 'false'; ?>,
          navigation:true,
                  scrollPerPage:true,
                  navigationText : false,
                  paginationSpeed:400,
                  margin:13
        });
        Journal.equalHeight($("#refine-images .refine-image"), '.refine-category-name');
        })();
      </script>
      <?php endif; ?>
      <?php if($this->journal2->settings->get('refine_category') === 'text'): ?>
      <?php if ($categories) { ?>
      <h2 class="refine"><?php echo $text_refine; ?></h2>
      <div class="category-list">
        <ul>
          <?php foreach ($categories as $category) { ?>
          <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
          <?php } ?>
        </ul>
      </div>
      <?php } ?>
      <?php endif; ?>

      <?php if ($products) { ?>

      <div class="product-filter">
        <div class="display">
          <a onclick="Journal.gridView()" class="grid-view"><?php echo $this->journal2->settings->get("category_grid_view_icon", $button_grid); ?></a>
          <a onclick="Journal.listView()" class="list-view"><?php echo $this->journal2->settings->get("category_list_view_icon", $button_list); ?></a>
        </div>
        <div class="product-compare"><a href="<?php echo $compare; ?>" id="compare-total"><?php echo $text_compare; ?></a></div>
        <div class="limit"><b><?php echo $text_limit; ?></b>
          <select onchange="location = this.value;">
            <?php foreach ($limits as $limits) { ?>
            <?php if ($limits['value'] == $limit) { ?>
            <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
            <?php } ?>
            <?php } ?>
          </select>
        </div>
        <div class="sort"><b><?php echo $text_sort; ?></b>
          <select onchange="location = this.value;">
            <?php foreach ($sorts as $sorts) { ?>
            <?php if ($sorts['value'] == $sort . '-' . $order) { ?>
            <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
            <?php } ?>
            <?php } ?>
          </select>
        </div>
      </div>

      <div class="row main-products product-list" data-grid-classes="<?php echo $this->journal2->settings->get('product_grid_classes'); ?> display-<?php echo $this->journal2->settings->get('product_grid_wishlist_icon_display'); ?> <?php echo $this->journal2->settings->get('product_grid_button_block_button'); ?>">
        <?php foreach ($products as $product) { ?>
        <div class="product-list-item xs-100 sm-100 md-100 lg-100 xl-100">
          <div class="product-thumb <?php echo isset($product['labels']) && is_array($product['labels']) && isset($product['labels']['outofstock']) ? 'outofstock' : ''; ?>">
            <div class="image">
              <a href="<?php echo $product['href']; ?>" <?php if(isset($product['thumb2']) && $product['thumb2']): ?> class="has-second-image" style="background: url('<?php echo $product['thumb2']; ?>') no-repeat;" <?php endif; ?>>
                  <img class="lazy first-image" width="<?php echo $this->journal2->settings->get('config_image_width'); ?>" height="<?php echo $this->journal2->settings->get('config_image_height'); ?>" src="<?php echo $this->journal2->settings->get('product_dummy_image'); ?>" data-src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" />
              </a>
              <?php if (isset($product['labels']) && is_array($product['labels'])): ?>
              <?php foreach ($product['labels'] as $label => $name): ?>
              <?php if ($label === 'outofstock'): ?>
              <img class="outofstock" <?php echo Journal2Utils::getRibbonSize($this->journal2->settings->get('out_of_stock_ribbon_size')); ?> style="position: absolute; top: 0; left: 0" src="<?php echo Journal2Utils::generateRibbon($name, $this->journal2->settings->get('out_of_stock_ribbon_size'), $this->journal2->settings->get('out_of_stock_font_color'), $this->journal2->settings->get('out_of_stock_bg')); ?>" alt="" />
              <?php else: ?>
              <span class="label-<?php echo $label; ?>"><b><?php echo $name; ?></b></span>
              <?php endif; ?>
              <?php endforeach; ?>
              <?php endif; ?>
              <?php if($this->journal2->settings->get('product_grid_wishlist_icon_position') === 'image' && $this->journal2->settings->get('product_grid_wishlist_icon_display', '') === 'icon'): ?>
                  <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_wishlist; ?>"><i class="wishlist-icon"></i><span class="button-wishlist-text"><?php echo $button_wishlist;?></span></a></div>
                  <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_compare; ?>"><i class="compare-icon"></i><span class="button-compare-text"><?php echo $button_compare;?></span></a></div>
              <?php endif; ?>
            </div>
            <div class="product-details">
              <div class="caption">
                <h4 class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4>
                <p class="description"><?php echo $product['description']; ?></p>
                <?php if ($product['rating']) { ?>
                <div class="rating">
                  <?php for ($i = 1; $i <= 5; $i++) { ?>
                  <?php if ($product['rating'] < $i) { ?>
                  <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span>
                  <?php } else { ?>
                  <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span>
                  <?php } ?>
                  <?php } ?>
                </div>
                <?php } ?>
                <?php if ($product['price']) { ?>
                <p class="price">
                  <?php if (!$product['special']) { ?>
                  <?php echo $product['price']; ?>
                  <?php } else { ?>
                  <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new" <?php echo isset($product['date_end']) && $product['date_end'] ? "data-end-date='{$product['date_end']}'" : ""; ?>><?php echo $product['special']; ?></span>
                  <?php } ?>
                  <?php if ($product['tax']) { ?>
                  <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
                  <?php } ?>
                </p>
                <?php } ?>
              </div>
              <div class="button-group">
                <?php if (Journal2Utils::isEnquiryProduct($this, $product['product_id'])): ?>
                <div class="cart enquiry-button">
                  <a href="javascript:Journal.openPopup('<?php echo $this->journal2->settings->get('enquiry_popup_code'); ?>', '<?php echo $product['product_id']; ?>');" data-clk="addToCart('<?php echo $product['product_id']; ?>');" class="button hint--top" data-hint="<?php echo $this->journal2->settings->get('enquiry_button_text'); ?>"><?php echo $this->journal2->settings->get('enquiry_button_icon') . '<span class="button-cart-text">' . $this->journal2->settings->get('enquiry_button_text') . '</span>'; ?></a>
                </div>
                <?php else: ?>
                <div class="cart <?php echo isset($product['labels']) && is_array($product['labels']) && isset($product['labels']['outofstock']) ? 'outofstock' : ''; ?>">
                  <a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button hint--top" data-hint="<?php echo $button_cart; ?>"><i class="button-left-icon"></i><span class="button-cart-text"><?php echo $button_cart; ?></span><i class="button-right-icon"></i></a>
                </div>
                <?php endif; ?>
                <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_wishlist; ?>"><i class="wishlist-icon"></i><span class="button-wishlist-text"><?php echo $button_wishlist;?></span></a></div>
                <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_compare; ?>"><i class="compare-icon"></i><span class="button-compare-text"><?php echo $button_compare;?></span></a></div>
              </div>
            </div>
          </div>
        </div>
        <?php } ?>
      </div>
      <div class="row pagination">
        <div class="col-sm-6 text-left links"><?php echo $pagination; ?></div>
        <div class="col-sm-6 text-right results"><?php echo $results; ?></div>
      </div>
      <?php } ?>
      <?php if (!$categories && !$products) { ?>
      <p><?php echo $text_empty; ?></p>
      <div class="buttons">
        <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary button"><?php echo $button_continue; ?></a></div>
      </div>
      <?php } ?>
      <?php echo $content_bottom; ?></div>
    </div>
    <script>Journal.applyView('<?php echo $this->journal2->settings->get("product_view", "grid"); ?>');</script>
    <?php if ($this->journal2->settings->get('show_countdown', 'never') !== 'never'): ?>
    <script>Journal.enableCountdown();</script>
    <?php endif; ?>
</div>
<?php
$nome = "$heading_title"; //$heading_title é a variável que tem o nome da categoria
$cat = "Masculino"; // Terá que ter uma categoria com o nome "Masculino" cadastrada
$cat2 = "Feminino"; // Terá que ter uma categoria com o nome "Feminino" cadastrada
if($nome == $cat) {
Carregará Image 1
} elseif($nome == $cat2){
Carregará Image 2   
} else {
Carregará image 1
}
?>
<?php echo $footer; ?>

Re: Alternar Imagem Destaque do Produto

Enviado: 06 Jan 2016, 21:43
por leandrorppo
De nada Felipe, o código está apenas com a estrutura, tem muito caminho pela frente, tem que fazer com que a imagem adicional seja listada na categoria e depois colocar a variável dela, isso que fiz foi só um exemplo.