In view of own activities related to Joomla 4 and Vitutemart, curious to learn whether smart search is scheduled in the first VM release for Joomla 4 as there only will be smart search in Joomla 4.
Due to our own activities - if not, you can try elastic search for VirtueMart:
https://www.kolo-park.cz
Our voluntary association looks for a free virtuemart plugin rather than a paid version for $ 59.90!
I do not speak your language ;D
QuoteOur voluntary association looks for a free virtuemart plugin rather than a paid version for $ 59.90!
as a voluntary organisation why are you even bothering to look at J4? J3 is fully supported for a till at least August 17, 2023 and it will be running on 1000's of websites for long after that.
There is nothing wrong performance or security wise with J3/VM3...
as for smart search the core VM search has nothing to do with the Joomla search ... I suppose a plugin will need to be developed to integrate VM into the Joomla Smart Search .. isn't it just a a pre-indexation of search terms etc?
I have played with J4 for quite a while now and are hard pressed to find a single advantage over J3 ... it's just different... with some newer libraries.. and IMHO a clonkier admin
Smart Search is a powerful search engine that would elevate the search functionality in VM.
I suggest the project leadership to consider that.
In view of own activities related to Joomla 4 and Virtuemart, curious to learn whether smart search is scheduled in the first VM release for Joomla 4 as there only will be smart search in Joomla 4 and therefore indispensable in considering a Joomla 3 migration.
Due to the implementation of VirtueMart on really big e-shops and experience with Elastic search, I am very worried that the implementation of Smart Search will be just another unfinished project that will not be used on really business sites.
I would be pleasantly surprised, if there was already a link to another DB for content indexing, then it might make a little sense.
Until then, it is useless to deal with this project, I would rather use Elastic Search.
Hello,
I am interested in this topic because in my company we are moving our site from joomla 3 to joomla 4, and we need the smart search to allow us to search the site in addition to content, virtuemart products and comments from the JComments plugin, which what if it could be done with the simple search of joomla 3.
Could you please tell me if there is already a plugin that allows smart search to add virtuemart products and JComments to the index? If not, how would it be possible to implement it on my site? what dou you recommend?
Thank you very much for your attention.
QuoteCould you please tell me if there is already a plugin that allows smart search to add virtuemart products and JComments to the index?
no
QuoteIf not, how would it be possible to implement it on my site? what dou you recommend?
hire developer
Is it really still so that after so long time there is no smart search plugin for vm or am I looking at wrong place?
I am also interested.
The old Joomla 3 search finds Virtuemart products. But the smart search of Joomla 4 doesn't.
A webshop really needs a search bar that covers the complete website. Using 2 search bars (1 for joomla article content and 1 for viruemart product search) is absurd.
Edit: I'm looking at this extension now to integrate: https://extensions.joomla.org/extension/search-a-indexing/site-search/geek-elasticsearch/ (https://extensions.joomla.org/extension/search-a-indexing/site-search/geek-elasticsearch/)
gek-elastic search we implemented on shop in 2016 with custom developping...
After 4 months we make off, because amazon DB cost 150 EUR per month.
Now we use Elastic search as Search Ready - https://www.searchready.cz - on the shop - www.karcher-satter.cz
Or Ajax Search from Rupostel - look at the www.zelenazeme.cz or www.cannadorra.hu
hmm, didn't knew rupostel had ajax search. I will contact him, I prefer Rupostel.
In the absence of a Virtuemart smart search option, I installed in Joomla 4: pkg-search-4.1.0. The module can be downloaded from https://github.com/joomla-extensions/search/releases/download/4.1.0/pkg-search-4.1.0.zip. The older version is present in Joomla 3. This offers us to search both in Joomla 4 and Virtuemart 4!
Quote from: pinochico on July 12, 2023, 22:34:05 PM
gek-elastic search we implemented on shop in 2016 with custom developping...
After 4 months we make off, because amazon DB cost 150 EUR per month.
Now we use Elastic search as Search Ready - https://www.searchready.cz - on the shop - www.karcher-satter.cz
Or Ajax Search from Rupostel - look at the www.zelenazeme.cz or www.cannadorra.hu
If you use dedicated server or VPS, you can free download Elasticsearch and install it to your server. It's totally free without any monthly cost.
You can use Searchly replace for AWS in case you are not able to install Elasticsearch to the server, Searchly is very reasonable price cloud Elasticsearch service.
FYI.
Since nobody wanted to do this, I've made it on my own.
Here is the github link to the package which contains all plugins needed to use the smart search aka finder:
https://github.com/Dudebaker/Virtuemart-Finder (https://github.com/Dudebaker/Virtuemart-Finder)
The Virtuemart-Core is missing some events, so these had to be done with an additional system plugin.
Maybe the Virtuemart dev-team can add these events (would only be 4 lines of code) and maybe they can use this package as base to add it to the Virtuemart-Package.
Thanks for your work! I've tested it in Joomla 5.1 and VM 4.2.8. Seems to work, it just runs into this error when there is characters in the product name like ß. Duplicate entry 'set weiss-de' for key 'idx_term_language'
But I think that is a Smart Search (Finder) issue, not per se your plug-in. Or maybe the collation setting. I've currently set it to: utf8mb4_unicode_520_ci
What I am missing however, is the incorporation of searching for SKU, GTIN and MPN. Currently I am using Custom Filters Pro search from Breakdesigns. Here you can also set the search to look in those fields. Would it be hard to implement this into your plug-in?
SKU and GTIN is already included in indexing.
I've now added MPN in v1.0.1.
And you're right, this issue seems to be a bug in the finder.
Thanks Dud3!
I urge @milbo to have a look at that and add the required event triggers.
Your plugin is great. But I just installed the latest version of VM (4.2.16) and upon save of products I am getting the following error. When I disabled the plugin plgVmCustomFinder the error was gone. I would appreciate your help.
An error has occurred.
0 Joomla\CMS\Event\Model\SaveEvent::onSetSubject(): Argument #1 ($value) must be of type object, string given, called in /home/depikabi/jmakdepika/libraries/src/Event/AbstractEvent.php on line 227
Call Stack
# Function Location
1 () JROOT/libraries/src/Event/Model/SaveEvent.php:42
2 Joomla\CMS\Event\Model\SaveEvent->onSetSubject() JROOT/libraries/src/Event/AbstractEvent.php:227
3 Joomla\CMS\Event\AbstractEvent->setArgument() JROOT/libraries/src/Event/AbstractEvent.php:115
4 Joomla\CMS\Event\AbstractEvent->__construct() JROOT/libraries/src/Event/AbstractImmutableEvent.php:51
5 Joomla\CMS\Event\AbstractImmutableEvent->__construct() JROOT/libraries/src/Event/Model/ModelEvent.php:55
6 Joomla\CMS\Event\Model\ModelEvent->__construct() JROOT/libraries/src/Application/EventAware.php:106
7 Joomla\CMS\Application\WebApplication->triggerEvent() JROOT/plugins/vmcustom/finder/finder.php:34
8 plgVmCustomFinder->plgVmAfterStoreProduct() JROOT/libraries/src/Plugin/CMSPlugin.php:289
9 Joomla\CMS\Plugin\CMSPlugin->Joomla\CMS\Plugin\{closure}() JROOT/libraries/vendor/joomla/event/src/Dispatcher.php:454
10 Joomla\Event\Dispatcher->dispatch() JROOT/libraries/src/Application/EventAware.php:111
11 Joomla\CMS\Application\WebApplication->triggerEvent() JROOT/administrator/components/com_virtuemart/helpers/vdispatcher.php:41
12 vDispatcher::trigger() JROOT/administrator/components/com_virtuemart/models/product.php:2903
13 VirtueMartModelProduct->store() JROOT/administrator/components/com_virtuemart/helpers/vmcontroller.php:178
14 VmController->save() JROOT/administrator/components/com_virtuemart/controllers/product.php:72
15 VirtuemartControllerProduct->save() JROOT/libraries/src/MVC/Controller/BaseController.php:730
16 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/administrator/components/com_virtuemart/virtuemart.php:77
17 require_once() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:71
18 Joomla\CMS\Dispatcher\LegacyComponentDispatcher::Joomla\CMS\Dispatcher\{closure}() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:73
19 Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch() JROOT/libraries/src/Component/ComponentHelper.php:361
20 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/AdministratorApplication.php:150
21 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT/libraries/src/Application/AdministratorApplication.php:195
22 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:306
23 Joomla\CMS\Application\CMSApplication->execute() JROOT/administrator/includes/app.php:58
24 require_once() JROOT/administrator/index.php:32
Quote from: depika on June 25, 2024, 20:13:56 PMYour plugin is great. But I just installed the latest version of VM (4.2.16) and upon save of products I am getting the following error. When I disabled the plugin plgVmCustomFinder the error was gone. I would appreciate your help.
An error has occurred.
0 Joomla\CMS\Event\Model\SaveEvent::onSetSubject(): Argument #1 ($value) must be of type object, string given, called in /home/depikabi/jmakdepika/libraries/src/Event/AbstractEvent.php on line 227
Call Stack
# Function Location
1 () JROOT/libraries/src/Event/Model/SaveEvent.php:42
2 Joomla\CMS\Event\Model\SaveEvent->onSetSubject() JROOT/libraries/src/Event/AbstractEvent.php:227
3 Joomla\CMS\Event\AbstractEvent->setArgument() JROOT/libraries/src/Event/AbstractEvent.php:115
4 Joomla\CMS\Event\AbstractEvent->__construct() JROOT/libraries/src/Event/AbstractImmutableEvent.php:51
5 Joomla\CMS\Event\AbstractImmutableEvent->__construct() JROOT/libraries/src/Event/Model/ModelEvent.php:55
6 Joomla\CMS\Event\Model\ModelEvent->__construct() JROOT/libraries/src/Application/EventAware.php:106
7 Joomla\CMS\Application\WebApplication->triggerEvent() JROOT/plugins/vmcustom/finder/finder.php:34
8 plgVmCustomFinder->plgVmAfterStoreProduct() JROOT/libraries/src/Plugin/CMSPlugin.php:289
9 Joomla\CMS\Plugin\CMSPlugin->Joomla\CMS\Plugin\{closure}() JROOT/libraries/vendor/joomla/event/src/Dispatcher.php:454
10 Joomla\Event\Dispatcher->dispatch() JROOT/libraries/src/Application/EventAware.php:111
11 Joomla\CMS\Application\WebApplication->triggerEvent() JROOT/administrator/components/com_virtuemart/helpers/vdispatcher.php:41
12 vDispatcher::trigger() JROOT/administrator/components/com_virtuemart/models/product.php:2903
13 VirtueMartModelProduct->store() JROOT/administrator/components/com_virtuemart/helpers/vmcontroller.php:178
14 VmController->save() JROOT/administrator/components/com_virtuemart/controllers/product.php:72
15 VirtuemartControllerProduct->save() JROOT/libraries/src/MVC/Controller/BaseController.php:730
16 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/administrator/components/com_virtuemart/virtuemart.php:77
17 require_once() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:71
18 Joomla\CMS\Dispatcher\LegacyComponentDispatcher::Joomla\CMS\Dispatcher\{closure}() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:73
19 Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch() JROOT/libraries/src/Component/ComponentHelper.php:361
20 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/AdministratorApplication.php:150
21 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT/libraries/src/Application/AdministratorApplication.php:195
22 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:306
23 Joomla\CMS\Application\CMSApplication->execute() JROOT/administrator/includes/app.php:58
24 require_once() JROOT/administrator/index.php:32
Noone is having this issue?
Sorry for the late answer... that had do to with newer Joomla 5 Versions and how they handle now the Finder-Events.
I've updated the package to v1.1.0:
Made compatible to Joomla 5.1.2
Removed all code-parts which where deprecated and would get removed with Joomla 6.
Hi,
I tried your plugin on Joomla 4 / Virtuemart 4, version 1.0.1.
My website is in French.
When I try to index content in the smart search component,I get this issue :
Table 'msyn_helium7.joo4_virtuemart_products_en_gb' doesn't exist
Can you help ?
Regards,
Catherine
Hi,
please ask support-questions only in one place, the prefered channel would be github (as you already done there).
Future communication will be there.
Greetings
Sorry yes, thank you :-)
I've overhauled the complete data receiving part - the Virtuemart Models are now used.
Customfields are now indexed if they have the search parameter enabled.
Breakdesign CustomFilter customfields are supported too.
Added a new plugin to allow you (or show you) how to access the indexing part and customize it to your needs.
More or less all Virtuemart product/category/manufacturer variables are there available.
https://github.com/Dudebaker/Virtuemart-Finder
Thanks for your work. Unfortunately I'm getting the following error, but only on products:
Invalid status line from script 'index.php': 0, referer: /administrator/index.php?option=com_finder&view=indexer&tmpl=component
It will still index up to 50 products (or 300, depending on the settings. Basically up to one batch). Manufacturers and category are all indexed without error.
Which Joomla/Virtuemart Versions do you have in use?
This error message does sadly not really say much.
Cannot reproduce this in shops with single language (german) or multilanguage (german default + english) with up to 20k products.
If you enable Joomla debugging you will get a second option on the Smart Search Index button "Index debugging".
Try this, select "Smart Search - Virtuemart Products" and enter a product id, then an underscore and then your language you would like to index (for example 1234_de-DE or 1234_en-GB).
Maybe here you get more informations.
Quote from: Dud3 on January 20, 2025, 06:38:14 AMI've overhauled the complete data receiving part - the Virtuemart Models are now used.
Customfields are now indexed if they have the search parameter enabled.
Breakdesign CustomFilter customfields are supported too.
Added a new plugin to allow you (or show you) how to access the indexing part and customize it to your needs.
More or less all Virtuemart product/category/manufacturer variables are there available.
https://github.com/Dudebaker/Virtuemart-Finder
Thank you for integrating Virtuemart product search into Joomla Smart Search (Finder). Product search works for me, but it gives results in the form of articles, not Virtuemart products. Tell me, do your plugins have settings to change the type of search results or do I have to edit the components\com_search\tmpl\search\default_results.php and components\com_search\tmpl\search\default_result.php files myself?