GithubHelp home page GithubHelp logo

nosto / nosto-magento2-cmp Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 1.54 MB

Submodule of https://github.com/nosto/nosto-magento2

Home Page: http://nosto.com

License: BSD 3-Clause "New" or "Revised" License

PHP 97.06% HTML 2.60% Shell 0.34%
ecommerce magento magento2 magento2-module nosto personalization

nosto-magento2-cmp's People

Contributors

dairbuirabass avatar mridang avatar olsi-qose avatar supercid avatar vmlintu-nosto avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nosto-magento2-cmp's Issues

Implement pagination for CMP

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Remove redundant internal full page cache busting

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.

Add support for Nosto CMP in Graphql / headless

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.

Refactor StateAwareCategoryService::getPersonalisationResult() not to return null

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

Add sorting order tagging

Is your feature request related to a problem? Please describe.
It will make debugging easier when the version is known.

Improve CategoryMapping cache

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

Avoid execution of CM on search page

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

Improve the way custom fields are passed to the query

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

Clean debugCmp method

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Support subcategory filtering in CMP

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

Define page size used in CM request

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

Wrong script type for CMP mapping

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution
Change type to application/json

Improve exceptions to ensure that messages are understandable.

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

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.

Product\Collection is used from other modules.

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

Helper method isCategorySortingEnabled return false

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

Disable FPC for catalog page only

Magento 2 version(s) used: x.y.z
Extension version(s) affected: x.y.z

Description

How to reproduce

Magento 2 mode

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

Current category is not set when doing text search

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

Default max product limit doesn't work

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Sorting is not working in all cases

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.

Add overridable URL fragment

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

Clean/refactor search utility

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Add JSON map of categories

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.

Array to string conversion bug in the Sortby plugin

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

Refactor usage of storeManager in the plugin

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

Multi-select facet is not supported

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.

image

``

How to reproduce

Magento 2 mode

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

Handle category pages with the option to view all products

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

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.

Filter numbers are incorrect when using CMP

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

  • Developer
  • Production

Full page cache

  • Enabled
  • Disabled

Possible Solution

Additional context

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.