2013-03-28 9 views
5

Jestem stoi jeden problem, gdy chcę, aby wyświetlić najnowsze produkty dla użytkownika guest, czy jest jakiś sposób, aby pokazać niedawno Pokaż produkt za gościem,Jak zdobyć Ostatnio Zobacz produkt Do gość w Magento

wsparcie

Magento Ostatnio Zobacz produkt dla zarejestrowanych użytkowników, ale za gość Jak pokazać Ostatnio zobaczyć produkty danego gość ...

czekam na odpowiedź rodzaju,

nadzieję, że trochę odpowiedź w tej sprawie.

Z góry dziękuję.

+0

myślę, że można to zrobić zmieniając pliki podstawowe ... masz wypróbowany w ten sposób? –

+0

Tak. Też potrzebuję tej funkcjonalności. – Indian

+0

oh dziękuję za życzliwą reakcję zrobiłem to, ale Magento nie obsługuje ostatnio widok produktu dla gościa użytkownika – drsndodiya

Odpowiedz

2

tutaj jest Phtml

<?php if ($_products = $this->getRecentlyViewedProducts()): 
$ids = ''; 
foreach ($_products as $_item) { 
    $ids .= $_item->getId() . ';'; 
} 
?> 
<div class="lftHeading"> 
<span 
     style="text-transform:capitalize;background:url(<?php echo $this->getSkinUrl('css/images/clo_left_heading_bullet2.gif') ?>) top left no-repeat;" 
     >recently viewed</span> 
</div> 
<div class="innerRgtMenu recently_viewed_block"> 
<table id="recently-viewed-items"> 
    <?php $i = 0; foreach ($_products as $_item): if ($i == 3) { 
    continue; 
} ?> 
    <?php $product = $_item ?> 
    <tr> 
     <td><a style="border:1px solid #DDDDDD;float:left;margin:5px;padding:5px;" 
       href="<?php echo $this->getProductUrl($_item, array('_nosid' => true)) ?>" class="product-image"><img 
       src="<?php echo $this->helper('catalog/image')->init($product, 'thumbnail')->resize(50) ?>" 
       width="50" alt="<?php echo $this->escapeHtml($_item->getName()) ?>"/></a></td> 
     <td><a style="position:relative;top:3px;font-size:11px;" 
       href="<?php echo $this->getProductUrl($_item, array('_nosid' => true)) ?>"><?php echo $this->escapeHtml($_item->getName()) ?></a> 
     </td> 

    </tr> 
    <?php $i++; 
endforeach; ?> 
</table> 
<div style="margin: 5px 0px 5px 2px; text-align: center; width: 140px;"> 
    <input type="button" class="button recently_viewed_btn" value="<?php echo $this->__('Email These To Me') ?> " 
      onClick="email_recently('<?php echo $ids; ?>')"/> 
</div> 
<div style="margin:5px;"> 
    <a href="<?php echo $this->getBaseUrl() ?>recently-viewed-items/"><?php echo $this->__('See All Recently Viewed') ?></a> 
</div> 
<script type="text/javascript">decorateList('recently-viewed-items');</script> 

a plik php

class Mage_Reports_Block_Product_Viewed extends Mage_Reports_Block_Product_Abstract 
{ 
const XML_PATH_RECENTLY_VIEWED_COUNT = 'catalog/recently_products/viewed_count'; 

/** 
* Viewed Product Index model name 
* 
* @var string 
*/ 
protected $_indexName  = 'reports/product_index_viewed'; 

/** 
* Retrieve page size (count) 
* 
* @return int 
*/ 
public function getPageSize() 
{ 
    if ($this->hasData('page_size')) { 
     return $this->getData('page_size'); 
    } 
    return Mage::getStoreConfig(self::XML_PATH_RECENTLY_VIEWED_COUNT); 
} 

/** 
* Added predefined ids support 
*/ 
public function getCount() 
{ 
    $ids = $this->getProductIds(); 
    if (!empty($ids)) { 
     return count($ids); 
    } 
    return parent::getCount(); 
} 

/** 
* Prepare to html 
* check has viewed products 
* 
* @return string 
*/ 
protected function _toHtml() 
{ 
    if (!$this->getCount()) { 
     return ''; 
    } 
    $this->setRecentlyViewedProducts($this->getItemsCollection()); 
    return parent::_toHtml(); 
} 
} 

jeśli to nie zadziała dla gości - spróbuj zmienić ostatnie f namaszczenie w pliku php do

protected function _toHtml() 
{ 
/* if ($this->_hasViewedProductsBefore() === false) { 
     return ''; 
    } */ 

    $this->setDisplayMinimalPrice('1'); 
    $collection = $this->_getRecentProductsCollection(); 

    $hasProducts = (bool)count($collection); 
//  if (is_null($this->_hasViewedProductsBefore())) { 
//   Mage::getSingleton('reports/session')->setData('viewed_products', $hasProducts); 
//  } 
    if ($hasProducts) { 
     $this->setRecentlyViewedProducts($collection); 
    } 

    return parent::_toHtml(); 
} 
+0

Dziękuję za życzliwą reakcję, która mi pomoże, ale nie wyświetli ostatnio obejrzanych produktów, gdy zamknę przeglądarkę i wrócę, czy jest jakaś opcja! – drsndodiya

+0

Nie jestem pewien. czy wypróbowałeś ostatnio dodaną funkcję? – TaganPablo

+0

te produkty są zapisywane w sesji, więc może właśnie sesja wygasła – TaganPablo

0

o ile mi wiadomo - powinno to działać dobrze dla gości. przynajmniej to działa na moim miejscu oto jak kładę, że na stronie:

<block type="reports/product_viewed" name="reports.product.recently.viewed" template="reports/recently_viewed.phtml" /> 
+0

Witaj, mój przyjacielu, myślę, że recenlty_viewed.phtml plik nie jest tam w Magento 1702, proszę skopiuj/wklej swój plik recent_viewed.phtml tutaj, aby Mogę się zorientować, jak ustawisz w swojej witrynie. – drsndodiya

2

Blok Ostatnio oglądane produkty działa dobrze bez żadnych modyfikacji kodu w Magento 1.6-1.9.2.2
Jeśli blok nie jest pokazany trzeba sprawdzić:

  1. Blok został prawidłowo dodany do strony w widocznym kontenerze (domyślnie blok został dodany do prawego paska bocznego)
  2. Log jest włączony. Sprawdzić System-> konfiguracja> System-> Opcje dziennika "Włącz log" = Tak
  3. Rebuild Index "Kategoria produktu" (catalog_category_product)
Powiązane problemy