2013-03-28 10 views
5

Sono di fronte a un problema quando voglio visualizzare i prodotti più recenti per l'utente ospite, c'è qualche modi per mostrare recente Visualizzate i utente guest,Come arrivare Recentemente Visualizzate i Utente ospite In Magento

supporto

Magento Recentemente Visualizzate i utente registrato Ma per utente ospite Come Mostra Visualizzazione recentemente prodotti da quel particolare Ospite ...

sto aspettando per la vostra cortese risposta,

Spero di avere qualche risposta su questo.

Grazie in anticipo.

+0

Penso che si può fare modificando i file core ... avete provato in questo modo ?? –

+0

Sì. Ho anche bisogno di questa funzionalità. – Indian

+0

oh grazie per la tua gentile risposta l'ho fatto ma magento non supporta il prodotto vista di recente per l'utente ospite – drsndodiya

risposta

2

qui è 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> 

e file 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(); 
} 
} 

se non funziona per gli ospiti - prova a cambiare l'ultima f unzione nel file php per Prodotti

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

Grazie per la cortese risposta mi aiuta, ma non visualizzerò prodotti di recente vista una volta che chiudo il mio browser e torno indietro c'è qualche opzione per quello! – drsndodiya

+0

non sono sicuro. hai provato l'ultima funzione che ho aggiunto? – TaganPablo

+0

questi prodotti vengono salvati in sessione, quindi forse solo la sessione è scaduta – TaganPablo

0

per quanto ne so - dovrebbe funzionare bene per gli ospiti. almeno funziona sul mio sito ecco come ho messo su una pagina:

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

Ciao amico mio credo che il file recenlty_viewed.phtml non sia lì in Magento 1702 ti piaccia copi/incolla il tuo file recent_viewed.phtml qui in modo che posso avere un'idea di come hai impostato nel tuo sito. – drsndodiya

2

Block visti di recente funziona bene senza alcuna modifica il codice in Magento 1.6-1.9.2.2
Se il blocco non viene visualizzato è necessario controllare:

  1. blocco è correttamente aggiunto alla pagina nel contenitore visibile (per impostazione predefinita il blocco è stato aggiunto alla barra laterale destra)
  2. Il registro è abilitato. Controllare Sistema-> Configurazione-> Sistema-> opzione Log "Enable Log" = Sì
  3. Ricostruisci indice "Categoria di prodotto" (catalog_category_product)
Problemi correlati