View Issue Details

IDProjectCategoryView StatusLast Update
0007245OXID Market ConnectMarket Connect - subpublic2021-06-09 12:06
ReporterQA 
PrioritynormalSeveritymajorReproducibilityalways
Status acknowledgedResolutionopen 
Product Version2.0.0 
Target VersionFixed in Version 
Summary0007245: Global performance filter has no functionality
Description(PR at the end, see Additional Information)

OMC has a so called performance filter, which can send messages and/or deactivate bad performing products. This filter can be configured per export, which works fine. The filter can also be defined globally under Einstellungen > Globale Filter > Performance-Filter. You can configure the settings and save it but it has no effect. If the limit is reached, nothing happens. Therefore I dived into the source code and was not able to find any clue the global performance filter is used.

Each time a OMC link is clicked the performance filter is checked in the tracking controller:
https://github.com/OXID-eSales/market-connect/blob/092488c16ca109ac2f8cc9d648a699a266983a1e/controllers/tracking.php#L184

One of the first checks is, if the performance filter setting is active in the currently active export:
https://github.com/OXID-eSales/market-connect/blob/092488c16ca109ac2f8cc9d648a699a266983a1e/controllers/tracking.php#L188

Then the logic goes on
- Incrementing the click.
- Verify if the limit is reached.
- Execute the action(s) based on the user selected options.

This complete logic is skipped, if the above mentioned if clause is false. Therefore the global performance filter has absolutely no effect. There is no increment of the clicks and no limit verification as well as resulting execution of the actions.
Steps To Reproduce1) Navigate to Einstellungen > Globale Filter > Performance-Filter.
2) Set up the performance filter:
- Set active.
- Limit to two clicks.
- Select "Automatically deactivate (without notification)".
- Fill in an e-mail.
- Hit the save button.
3) Create any export with at least one product.
4) Download the export.
5) Search for a product link.
6) Call this link a minimum of two times.
Nothing will happen.

Now do the same for an individual export:
1) Navigate to your export.
2) Click on tab "Filter" and choose "Performance-Filter".
3) Set up the performance filter:
- Set active.
- Limit to four clicks.
- Select "Automatically deactivate (without notification)".
- Fill in an e-mail.
- Hit the save button.
4) Call your link another two times.
The product will be automatically deactivated and listed in the "auf Artikel-Ebene" filter option. The product is marked with "Performancefilter".

The feature works fine on the individual export. It should work the same with the global filter, but with added mark at "Globaler Ausschluss". Unfortunately it does not.
Additional InformationThe logic needs to be adapted to not only ask for a export individual performance filter, but also for the global performance filter. There are two possible implementations:
1) Still save clicks per export and then sum up all clicks from each export as the global click amount.
2) Besides saving clicks per export, also count clicks in a global counter.

First implementation sounds cleaner, but you also have the chance to reactivate all products exkluded by the performance filter. This includes a reset of the clicks counter. With first implementation you have to clear all entries for each export. This may lead to a problem: Imagine there is a global performance filter limited to 200 clicks and an individual performance filter of a single export like Google Shopping limited to 100 clicks. The counters for product A may be on 200 globally and on 90 for Google Shopping. The product A will be excluded from export due to the global performance filter is triggered at 200 clicks. Then you reactivate product A and all counters for it get set to 0. Now it needs another 100 clicks on Google Shopping to be excluded while before it was only 10 additional clicks missing. This leads to the conclusion, that idea 2 is actually a better solution.

I did a PR addressing the issue. This adds the needed checks and logic as described above.
https://github.com/OXID-eSales/market-connect/pull/2
TagsSolution Provided

Activities

There are no notes attached to this issue.