Giter Club home page Giter Club logo

magento-alsoviewed's Introduction

Magento Also Viewed Products

Magento module that displays products, viewed by visitors, who viewed this product. It can also show recommendations based on viewed, compared and shopping cart products (see widget section).

Also Viewed products in RWD tabs

Please read the wiki if you are searching for installation or integration instructions.

How it works?

Every time the client is looking at some product, module update relations between this and other viewed products. Day after day relations count are grows and they become more accurate.

Can I control the relations?

Yes, store administrator can manually create, change relation sort order or even disable relation to hide it from the frontend.

Configuration

Configuration screenshot

Module configuration provides ability to show Also Viewed Products in one of the following containers:

  • Left or Right column
  • Product additional information

Please note, that your theme is responsible to output the required container.

Each of the sections has options that allows to configure title, list mode, products count, columns count (in case of grid mode) and image dimensions.

  • Perfomance

    Allows to improve cron process stability by setting Relations count to process per one query. You may need to decrease this value, if you found the "Got a packet bigger than 'max_allowed_packet' bytes" error in Magento log.

  • Log settings

    Allows to make module much more accurate by ignoring search crawlers and bots activity.

    You may also ignore specified IP addresses.

Widget

Widget screenshot

Widget provides ability to recommend products on any page by additional activities:

  • Recently Viewed Products
  • Recently Compared Products
  • Shopping Cart products

The main features

  • 100% free and open source
  • High perfomance
  • Simple and clean design
  • Responsive css

Module functionality relies on cron. Make sure you configure it properly.

magento-alsoviewed's People

Contributors

agatanga[bot] avatar vovayatsyuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

magento-alsoviewed's Issues

error message from exception.log

Hi, I got a lot of this error message in recent.
Could you let me know how to solve it?

2017-04-13T03:45:02+00:00 ERR (3): 
exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`yavva_alsoviewed_relation`, CONSTRAINT `FK_YAVVA_ALSOVIEWED_RELATION_RELATED_PRD_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`related_product_id`) REFERENCES `catalog_product_entity` (`en)' in /usr/share/nginx/html/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /usr/share/nginx/html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /usr/share/nginx/html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /usr/share/nginx/html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /usr/share/nginx/html/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
#4 /usr/share/nginx/html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ya...', Array)
#5 /usr/share/nginx/html/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `ya...', Array)
#6 /usr/share/nginx/html/lib/Varien/Db/Adapter/Pdo/Mysql.php(2036): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `ya...', Array)
#7 /usr/share/nginx/html/app/code/community/Yavva/Alsoviewed/Model/Resource/Relation.php(43): Varien_Db_Adapter_Pdo_Mysql->insertOnDuplicate('yavva_alsoviewe...', Array, Array)
#8 /usr/share/nginx/html/app/code/community/Yavva/Alsoviewed/Model/Observer.php(52): Yavva_Alsoviewed_Model_Resource_Relation->updateRelations(Array)
#9 [internal function]: Yavva_Alsoviewed_Model_Observer->processLog(Object(Mage_Cron_Model_Schedule))
#10 /usr/share/nginx/html/app/code/core/Mage/Cron/Model/Observer.php(326): call_user_func_array(Array, Array)
#11 /usr/share/nginx/html/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer->_processJob(Object(Mage_Cron_Model_Schedule), Object(Mage_Core_Model_Config_Element))
#12 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(1358): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
#13 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#14 /usr/share/nginx/html/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array)
#15 /usr/share/nginx/html/cron.php(78): Mage::dispatchEvent('default')
#16 {main}

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`yavva_alsoviewed_relation`, CONSTRAINT `FK_YAVVA_ALSOVIEWED_RELATION_RELATED_PRD_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`related_product_id`) REFERENCES `catalog_product_entity` (`en), query was: INSERT INTO `yavva_alsoviewed_relation` (`product_id`,`related_product_id`,`weight`) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?) ON DUPLICATE KEY UPDATE `weight` = weight + VALUES(weight)' in /usr/share/nginx/html/lib/Zend/Db/Statement/Pdo.php:235
Stack trace:
#0 /usr/share/nginx/html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /usr/share/nginx/html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#2 /usr/share/nginx/html/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
#3 /usr/share/nginx/html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ya...', Array)
#4 /usr/share/nginx/html/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `ya...', Array)
#5 /usr/share/nginx/html/lib/Varien/Db/Adapter/Pdo/Mysql.php(2036): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `ya...', Array)
#6 /usr/share/nginx/html/app/code/community/Yavva/Alsoviewed/Model/Resource/Relation.php(43): Varien_Db_Adapter_Pdo_Mysql->insertOnDuplicate('yavva_alsoviewe...', Array, Array)
#7 /usr/share/nginx/html/app/code/community/Yavva/Alsoviewed/Model/Observer.php(52): Yavva_Alsoviewed_Model_Resource_Relation->updateRelations(Array)
#8 [internal function]: Yavva_Alsoviewed_Model_Observer->processLog(Object(Mage_Cron_Model_Schedule))
#9 /usr/share/nginx/html/app/code/core/Mage/Cron/Model/Observer.php(326): call_user_func_array(Array, Array)
#10 /usr/share/nginx/html/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer->_processJob(Object(Mage_Cron_Model_Schedule), Object(Mage_Core_Model_Config_Element))
#11 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(1358): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
#12 /usr/share/nginx/html/app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#13 /usr/share/nginx/html/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array)
#14 /usr/share/nginx/html/cron.php(78): Mage::dispatchEvent('default')
#15 {main}

Request new feature

Ok want to help, cause this is amazing!

Firstly, i've installed this on a dev store, works great. BUT I really want to pre-load every product with the maximum slots. So for example, I've set that I want 5 products shown per product detail page. Currently without having a 'history' nothing is shown.

What I'd like to propose is a simple "Day 1" init which loads the positions. It would in order of priority look like this:

  1. Load current manual "Related Products" (if that is more than the 5 i need, stop)
    2a. Load similar named products (say my product name is ACME | Widget - A, I would text search for other products very similar to this, specifically if there exists ACME | Widget - B and ACME | Widget - C I want to give them high priority in the prepositioning) (if that is now more than required, stop)
    2b. For special marks trawling through entire order history and understand what was bought together and apply a weight for these associations
  2. If there is still nothing found above 1 and 2, then pick from the category the product is in (this can be a set a categories of course, and potentially give higher priority to brand / manufacturer)

Once everything is loaded the current code will make it dynamic and hopefully positions fine tune over time. But its great to be able to pre-load at the start without having a history. 1 and 2a would be a great start!!

I want to help, because this is a great module which bucks the trend against all these SaaS players.

Add alsoview to cms page

Hello, this module works great, but i have tried to put a widget on my homepage with all possible rules but there is no result, the block look always empty.
Is need to add the configuration in the local.xml file?

Request new feature

Are you planing add also-bought feature, I think your also-viewed is the best.
So I hope you could develope this feature in the future.

How "You May Also like" block Work?

The block "People who viewed this product also viewed" work based on other user Recent viewed products list, may i know how "You May Also like" block will Work?

Test with FPC module

It seems that I should stick to the gloabal predispatch event instead of catalog_controller_product_view.

Add backend interfaces

  • Separate grid page
  • Integrate into product edit page
  • Configuration
  • Separate relation edit page with ability to edit weight, position, status

block appear before eaytabs

Hello,

i just installed alsoviewed, the block appear before easytabs and not bellow,

is that an known issue? I have made something wrong with the configuration?

Lesti cache block problem

Hello again.

I have an alsoviewed widget in the homepage (via widget in the content editor), and i'm crazy trying to get the punch hole in the lesti cache.

With the AOE tool i can see that in the alsoviewed widget have three blocks one inside the other (product list, block, and finally widget). I have tried to put all of them like lazy and dynamic blocks in the lesti cache configuration, but magento never update the alsoviewed block when i change the session, add products to the cart, etc..

What i'm doing wrong? Is needed to put any refresh action in the configuration? Thank you very much.

Add ability to show also viewed products filtered by multiple ids

This could be used to show products based on array of viewed products, products from the cart, etc.

Configurable widget will have a field to indicate which types of products to use for block:

Show variants based on:

  • last viewed products
  • products from the cart

Block title: Based on your interests you may also like.

Does works the rencently viewed products feature?

I have an also viewed products widget in the home page, but it only appears when i have products in the cart. It's my particular problem?

The widget is configured in viewed, compared and cart mode. And there is no errors on my logs.

doesnt works with easytabs extension.

i am using easytabs with custom theme shoe_stores.

i have also placed the following code in local.xml file.. but nothing is chaged.

 <catalog_product_view>
      <reference name="product.info.additional">
          <action method="unsetChild"><name>alsoviewed.collateral.wrapper</name></action>
      </reference>
      <reference name="product.info.tabs">
          <action method="addTab" translate="title" module="alsoviewed" ifconfig="alsoviewed/content/enabled">
              <alias>alsoviewed.collateral.wrapper</alias>
              <title><![CDATA[You may also like]]></title>
          </action>
      </reference>
  </catalog_product_view>

i can only see the products listed above the easytabs instead of showing inside the tab.

Nothing appears in magento 1.9.2.4

I've installed the extension and set it up. My cron is running without any problems but when I go to the product page of my test product (I have created 4 test products) it doesn't show up.

I even tried making a static block containing a widget for also viewed recommendation and implemented this in my view but that will only echo the

tag and nothing else.

Do you happen to know what might be wrong? Could it be because I created one test product and copied this 4 times?

Or could something else be going on?

Ignore Crawlers & Specific IP Addresses

I'm thinking that I might want to ignore robots and maybe even specific IP addresses.

For robots, Would it be worth adding a setting in the module to enable or disable and then a regex field for users to put their own list of robots that is prepopulated. If so should we pre populate it with known robots?

As for ignoring specific IP addresses should it use the default developer ip restriction list or should it be its own setting in the module?

Thanks for the great extension.

Exception in exception.log magento

Hello,

great work you did with this module! But I got an error in the exception log:

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes, query was: INSERT INTO `yavva_alsoviewed_relation` (`product_id`,`related_product_id`,`weight`) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), ..[this goes on for like 800 rules].. (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?), (?, ?, ?) ON DUPLICATE KEY UPDATE `weight` = weight + VALUES(weight)' in /home/admin/domains/domain.nl/public_html/lib/Zend/Db/Statement/Pdo.php:235
Stack trace:
0 /home/admin/domains/domain.nl/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
1 /home/admin/domains/domain.nl/public_html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
2 /home/admin/domains/domain.nl/public_html/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
3 /home/admin/domains/domain.nl/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ya...', Array)
4 /home/admin/domains/domain.nl/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `ya...', Array)
5 /home/admin/domains/domain.nl/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(1934): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `ya...', Array)
6 /home/admin/domains/domain.nl/public_html/app/code/community/Yavva/Alsoviewed/Model/Resource/Relation.php(43): Varien_Db_Adapter_Pdo_Mysql->insertOnDuplicate('yavva_alsoviewe...', Array, Array)
7 /home/admin/domains/domain.nl/public_html/app/code/community/Yavva/Alsoviewed/Model/Observer.php(44): Yavva_Alsoviewed_Model_Resource_Relation->updateRelations(Array)
8 [internal function]: Yavva_Alsoviewed_Model_Observer->processLog(Object(Mage_Cron_Model_Schedule))
9 /home/admin/domains/domain.nl/public_html/app/code/core/Mage/Cron/Model/Observer.php(325): call_user_func_array(Array, Array)
10 /home/admin/domains/domain.nl/public_html/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer->_processJob(Object(Mage_Cron_Model_Schedule)

Do you know what causes this or is this a bug?

Best regards,
Sebastiaan

Ultimo tabs integration

Need to test following xml

<reference name="product.info.tabs">
    <action method="addTab" translate="title" module="alsoviewed">
        <alias>alsoviewed</alias>
        <title>You may also like</title>
        <block>alsoviewed/widget_products</block>
        <wrapper_template>yavva/alsoviewed/wrapper/collateral.phtml</wrapper_template>
        <mode>grid</mode>
        <products_count>4</products_count>
        <column_count>4</column_count>
        <image_width>170</image_width>
        <image_height>170</image_height>
    </action>
</reference>

Request new feature:Display Name in Single Line

Thanks for providing this very useful module.

Could you add this feature "Display Name in Single Line" like Ultimo theme provided?
You can find this option here.
Theme Settings / Category View (Grid Mode) / Display Selected Elements / Display Name in Single Line

If we enabled this, product name will only display in single line.
But in alsoviewed, product name displayed all words.
It makes next line can not align.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.