nosto / nosto-magento2-cmp Goto Github PK
View Code? Open in Web Editor NEWSubmodule of https://github.com/nosto/nosto-magento2
Home Page: http://nosto.com
License: BSD 3-Clause "New" or "Revised" License
Submodule of https://github.com/nosto/nosto-magento2
Home Page: http://nosto.com
License: BSD 3-Clause "New" or "Revised" License
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
Busting internal Magento FPC is not needed anymore as Nosto adds query parameters to category URLs.
Describe the solution you'd like
Remove redundant code.
Is your feature request related to a problem? Please describe.
It should be possible to fetch CMP results from M2 graphql API as well
Describe the solution you'd like
Introduce / define the Nosto sorting in Graphql schema and implement logic for using it.
Is your feature request related to a problem? Please describe.
Currently StateAwareCategoryService::getPersonalisationResult()
might return null, which leads to a lot of null checks across the code base.
Describe the solution you'd like
Refactor the class to not return null.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
It will make debugging easier when the version is known.
Is your feature request related to a problem? Please describe.
Currently the category mapping is a heavy operation. The block is cached, but anyway it needs to be generated foreach page.
Describe the solution you'd like
Let's use the CacheInterface and store the json data
Describe alternatives you've considered
Additional context
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
The CM code is being executed also on search pages. It fails both on ES and MySQL.
In ES it does not remove nosto_personalized
sort parameter, so the ES query fails.
In MySQL it fails to get the current_category
from the registry, as there is no category.
Fix the bug by checking that it's a category view page.
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
Is your feature request related to a problem? Please describe.
Filters that are not price, brand or category are all being grouped under custom field. The custom field is an array of key=>value format. We noticed that multiple values for the same key are being passed as different arrays having duplication of keys.
Describe the solution you'd like
Group all filters with the same key into one single array.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Add support for using Elasticsearch as a search engine
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Subcategories are currently not supported.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
Add a configuration for the user to define the page size used in CM.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Magento 2 version(s) used: 2.3.4
Extension version(s) affected: 2.0.0
Description
CMP mapping is not application/ld+json
. Should be simply application/json
.
How to reproduce
View page source on any page.
Magento 2 mode
Full page cache
Possible Solution
Change type to application/json
Magento 2 version(s) used: x.y.z
All
Description
Some of the exceptions that are thrown do not contain all the information about the errors.
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Go over all exceptions and ensure that each exception has all the parameters needed to build a descriptive message. Each exception should contain all the information needed to be able to debug it.
Additional context
None.
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
CMP module crashes as it expects Fulltext\Collection
to be used in the Toolbar.php class.
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
The helper method isCategorySortingEnabled
(https://github.com/Nosto/nosto-magento2-cmp/blob/master/Helper/Data.php#L74) returns false when no configuration value is present in database, even though the default value is specified in config.xml (https://github.com/Nosto/nosto-magento2-cmp/blob/master/etc/config.xml#L8)
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
Magento 2 version(s) used: 2.3.2
Extension version(s) affected: 1.0.0
Description
Call to a member function getDefaultSortBy() on null in ../Nosto/Cmp/Plugin/Catalog/Block/DefaultParameterResolver.php on line 96
How to reproduce
Search for a product throught text, the current category is not set in https://github.com/Nosto/nosto-magento2-cmp/blob/master/Plugin/Catalog/Block/DefaultParameterResolver.php#L95
Magento 2 mode
Full page cache
Possible Solution
Additional context
Magento 2 version(s) used: 2.3.3
Extension version(s) affected: 2.0.2
Description
Default max product limit is not working correctly.
How to reproduce
The node name in XML config should be nosto_cmp
instead of nosto
Magento 2 mode
Full page cache
Magento 2 version(s) used: 2.3.3
Extension version(s) affected: 5.0.1
Description
The sorting ny product ids is not applied properly on a category page.
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
We suspect that the user agent is not being passed in GraphQl calls, which should also contain the module version.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
When rendering the products in the category page under CMP, the product URL should be updated with a recognizable pattern in order for our client script to override it and put the attributes.
We should add ´#nosto_cmp´ to the product URLs
Is your feature request related to a problem? Please describe.
Currently the correct sorting is applied after the catalog results are returned from the ES query using another interceptor. https://github.com/Nosto/nosto-magento2-cmp/blob/develop/Plugin/Api/Search/SearchResultSorter.php#L66
Describe the solution you'd like
A better solution would be to sort the results in the ElasticSearch query.
Describe alternatives you've considered
Additional context
Move CategoryMerchandising::parseProductIds
to php-sdk. The logic is quite tied to the sdk than the CM module itself.
https://github.com/Nosto/nosto-magento2-cmp/blob/develop/Utils/CategoryMerchandising.php#L54
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Describe the solution you'd like
Create a mapping of categories in a JSON format and append it to the DOM.
The mapping will have key:value pair, exactly using the category string as key and the category url as a value.
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
The CM sorting is inverted when the results are served through Magento's GraphQl.
https://docs.nosto.com/magento-2/addons/cmp/guides/pwa-implementation#query-example
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
Fix array to string conversion for the Nosto sorting option in the admin catalog page
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Use a helper method to get the store instead of calling storeManager->getStore
in different places.
Describe alternatives you've considered
Additional context
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
The module does not support multi-select facets at the moment. When selecting two or more facets for the same key, they will end up being sent to nosto as a single value.
Our test instance does not support them on the storefront UI, but it can be overcome by passing it through query params in the url ?material[]=144&material[]=145
One problem that comes is the way the string value is passed through Magento. When parsing the filter, the values are concatenated in a string by a comma (e.x. Fleece,Cotton
). We could split the values by the comma, but it might also affect cases where the facet contains a comma in itself.
``
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
Magento 2 version(s) used: 2.4.0
Extension version(s) affected: 2.0.1
Description
When viewing all products on a category page the limit for Graphql call becomes zero or one.
How to reproduce
Enable possibility to view all products on a category page and test it against Nosto CMP.
Magento 2 mode
Full page cache
Possible Solution
Introduce a setting for configuring the max limit for products to be fetched from Nosto. Use this limit when page size is not set for a product collection.
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Use preference
for injecting ParamResolver
in di
Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z
Description
Number of product in filters is incorrect due to calculating aggregations on the subset of the category while using CMP.
Solution would be to use post_filter
on the elasticsearch query, so the aggregations will be correct.
How to reproduce
Magento 2 mode
Full page cache
Possible Solution
Additional context
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.