boxalino / plugin-magento2 Goto Github PK
View Code? Open in Web Editor NEWboxalino plugin for Magento 2
boxalino plugin for Magento 2
for example in www\app\code\Boxalino\Intelligence\view\frontend\templates\script.phtml
:
<h4 class="product-title">Products</h4>
It seems as if for delta indexing, the required table boxalino_indexer_delta_cl
is missing and not setup during the installation (InstallSchema) / upgrade (UpdateSchema) of the extension. additionally, there's no code that monitors changes on the products (i.e. no afterSave
plugin/observers ^).
from my understanding of the indexer code, the delta indexer is therefore currently defunct and not working at all.
^ please try not to use mysql triggers - these present massive performance hits when loading lot of data (f.e. during m1 -> m2 product migration and data imports)
http://mysite.com/catalogsearch/result/index/?bx_category_id=8&q=futter
-> click on "zurück"
1 exception(s):
Exception #0 (Exception): Notice: Trying to get property of non-object in /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php on line 131
Exception #0 (Exception): Notice: Trying to get property of non-object in /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php on line 131
what is the intent of the "Zurück" link anyway? it is obsolete as there's already the close button (X). can this be removed in a config setting or template override?
Boxalino should provide a mode that simulates a native magento Product collection with proper supports the native Layered Navigation filtering.
currently, only manually filter facets are supported which try (but hardly succeed) to replicate the native look & feel. I think it would benefit boxalino greatly if it could be marketed as a drop-in replacement of the default search, and just feed the data into the standard magento search result collections.
Such a mode wold not prevent additional search result enhancements like top filters or even a self-defined left filters like the current implementation if the customer chooses to. It would allow the leveraging of existing magento functionality and extensions.
Our customer currently has 100+ attributes defined on the products that can & should be used in the search results. Duplicating their search-related configurations for the current "boxalino facet filters" is just not feasible.
xxx@devel:/var/www/users/xxx/src/scripts$ ./magento.sh setup:di:compile
Compilation was started.
Interception cache generation... 6/7 [========================>---] 85% 10 mins 314.0 MiBErrors during configuration scanning:
Errors during configuration scanning:
Thrift\Factory\TProtocolFactory
Invalid Factory for nonexistent class Thrift\Factory\TProtocol in file /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Lib/Thrift/Server/TForkingServer.php
Invalid Factory for nonexistent class Thrift\Factory\TProtocol in file /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Lib/Thrift/Server/TForkingServer.php
Invalid Factory for nonexistent class Thrift\Factory\TProtocol in file /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Lib/Thrift/Server/TServer.php
Invalid Factory for nonexistent class Thrift\Factory\TProtocol in file /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Lib/Thrift/Server/TServer.php
Invalid Factory for nonexistent class Thrift\Factory\TProtocol in file /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Lib/Thrift/Server/TSimpleServer.php
Invalid Factory for nonexistent class Thrift\Factory\TProtocol in file /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Lib/Thrift/Server/TSimpleServer.php
Errors during compilation:
Boxalino\Intelligence\Block\BxRecommendationBlock
Incorrect dependency in class Boxalino\Intelligence\Block\BxRecommendationBlock in /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Block/BxRecommendationBlock.php
\Magento\Framework\App\Config\ScopeConfigInterface already exists in context object
\Magento\Framework\Registry already exists in context object
\Magento\Widget\Model\Template\Filter::filter()
is the function that is called during a cms block's _toHtml()
call with the block's content and can be used in a DI Plugin to avoid having to override the default magento Block class.
the plugin could use beforeFilter() to check the content and set the appropriate bxRecommendation settings.
for this particular search term, the search result page differs vastly from the search preview page. on the preview, multiple products are previewed, whereas on the search result page, only the first product (the one without proper price) is shown, again with broken pricing and no layered navigation:
the latest commits broke the recommendation blocks on cms pages:
Fehler beim Filtern der Vorlage: no variant provided in choice response for variant id 1
indexer:reindex boxalino_indexer:
Boxalino Exporter indexer process unknown error:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'ce.entity_type_id' in 'where clause', query was: SELECT `ce`.`entity_id`, `ce`.`attribute_id`, `ce`.`value`, `ea`.`attribute_code` FROM `customer_entity_varchar` AS `ce`
LEFT JOIN `eav_attribute` AS `ea` ON ce.attribute_id = ea.attribute_id WHERE (ce.entity_type_id = 1) AND (ce.entity_id IN (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008)) AND (ce.attribute_id IN('245')) UNION ALL SELECT `ce`.`entity_id`, 18 AS `attribute_id`, `ce`.`email` AS `value`, `ea`.`attribute_code` FROM `customer_entity` AS `ce`
LEFT JOIN `eav_attribute` AS `ea` ON ea.attribute_id = 18 WHERE (ce.entity_id IN (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008))
there seems currently no way to configure the Category view separately from the Search Result view - enabling the Filter and Left Facets on the Search config page will also enable them on the category view.
you can configure categories to show products only (default), products + content (description + cms block) or content only (description + cms block). in our case, the main categories do not show products (and no navigation), and the page content is loaded from a cms block, for example:
<p>Bacon ipsum dolor amet rump brisket filet mignon capicola tail biltong, meatball tri-tip tongue picanha. Meatball tail bresaola filet mignon brisket fatback ham porchetta alcatra ham hock pig kielbasa short ribs beef ribs beef.</p>
{{block class="Boxalino\Intelligence\Block\BxRecommendationBlock" template="Boxalino_Intelligence::product/recommendation.phtml" widget="category_new" context="70" title="Recommendation"}}
<p>Bacon ipsum dolor amet rump brisket filet mignon capicola tail biltong, meatball tri-tip tongue picanha. Meatball tail bresaola filet mignon brisket fatback ham porchetta alcatra ham hock pig kielbasa short ribs beef ribs beef.</p>
70
is the category id. having the BxRecommendationBlock inside the linked category cms block results in the following exception:
1 exception(s):
Exception #0 (Exception): no variant provided in choice response for variant id 0
Exception #0 (Exception): no variant provided in choice response for variant id 0
#0 /var/www/users/customer/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php(21): com\boxalino\bxclient\v1\BxChooseResponse->getChoiceIdResponseVariant(0)
#1 /var/www/users/customer/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php(120): com\boxalino\bxclient\v1\BxChooseResponse->getChoiceResponseVariant('navigation')
#2 /var/www/users/customer/src/www/app/code/Boxalino/Intelligence/Helper/P13n/Adapter.php(527): com\boxalino\bxclient\v1\BxChooseResponse->getFacets('navigation')
#3 /var/www/users/customer/src/www/app/code/Boxalino/Intelligence/Block/Slider.php(54): Boxalino\Intelligence\Helper\P13n\Adapter->getFacets()
#4 [internal function]: Boxalino\Intelligence\Block\Slider->getSliderValues()
#5 /var/www/users/customer/src/www/vendor/magento/framework/View/TemplateEngine/Php.php(82): call_user_func_array(Array, Array)
#6 /var/www/users/customer/src/www/app/code/Boxalino/Intelligence/view/frontend/templates/slider.phtml(2): Magento\Framework\View\TemplateEngine\Php->__call('getSliderValues', Array)
#7 /var/www/users/customer/src/www/vendor/magento/framework/View/TemplateEngine/Php.php(59): include('/var/www/users/...')
#8 /var/www/users/customer/src/www/vendor/magento/framework/View/Element/Template.php(255): Magento\Framework\View\TemplateEngine\Php->render(Object(Boxalino\Intelligence\Block\Slider), '/var/www/users/...', Array)
#9 /var/www/users/customer/src/www/vendor/magento/framework/View/Element/Template.php(279): Magento\Framework\View\Element\Template->fetchView('/var/www/users/...')
#10 /var/www/users/customer/src/www/vendor/magento/framework/View/Element/AbstractBlock.php(659): Magento\Framework\View\Element\Template->_toHtml()
#11 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(542): Magento\Framework\View\Element\AbstractBlock->toHtml()
#12 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(518): Magento\Framework\View\Layout->_renderBlock('catalog.bxSlide...')
#13 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Layout->renderNonCachedElement('catalog.bxSlide...')
#14 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(208): Magento\Framework\View\Layout\Interceptor->___callPlugins('renderNonCached...', Array, Array)
#15 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('catalog.bxSlide...')
#16 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('catalog.bxSlide...', true)
#17 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('catalog.bxSlide...')
#18 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('before.body.end')
#19 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Layout->renderNonCachedElement('before.body.end')
#20 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(208): Magento\Framework\View\Layout\Interceptor->___callPlugins('renderNonCached...', Array, Array)
#21 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('before.body.end')
#22 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('before.body.end', true)
#23 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('before.body.end')
#24 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('page.wrapper')
#25 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Layout->renderNonCachedElement('page.wrapper')
#26 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(208): Magento\Framework\View\Layout\Interceptor->___callPlugins('renderNonCached...', Array, Array)
#27 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('page.wrapper')
#28 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('page.wrapper', true)
#29 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('page.wrapper')
#30 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('root')
#31 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Layout->renderNonCachedElement('root')
#32 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(208): Magento\Framework\View\Layout\Interceptor->___callPlugins('renderNonCached...', Array, Array)
#33 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('root')
#34 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('root', true)
#35 /var/www/users/customer/src/www/vendor/magento/framework/View/Layout.php(938): Magento\Framework\View\Layout\Interceptor->renderElement('root')
#36 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Layout->getOutput()
#37 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(494): Magento\Framework\View\Layout\Interceptor->___callPlugins('getOutput', Array, Array)
#38 /var/www/users/customer/src/www/vendor/magento/framework/View/Result/Page.php(243): Magento\Framework\View\Layout\Interceptor->getOutput()
#39 /var/www/users/customer/src/www/vendor/magento/framework/View/Result/Layout.php(164): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))
#40 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#41 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', Array)
#42 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'renderResult', Object(Magento\Framework\View\Result\Page\Interceptor), Array, 'result-varnish-...')
#43 /var/www/users/customer/src/www/vendor/magento/module-page-cache/Model/Controller/Result/VarnishPlugin.php(74): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#44 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\PageCache\Model\Controller\Result\VarnishPlugin->aroundRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Closure), Object(Magento\Framework\App\Response\Http\Interceptor))
#45 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'renderResult', Object(Magento\Framework\View\Result\Page\Interceptor), Array, 'result-builtin-...')
#46 /var/www/users/customer/src/www/vendor/magento/module-page-cache/Model/Controller/Result/BuiltinPlugin.php(67): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#47 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(142): Magento\PageCache\Model\Controller\Result\BuiltinPlugin->aroundRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Closure), Object(Magento\Framework\App\Response\Http\Interceptor))
#48 /var/www/users/customer/src/www/var/generation/Magento/Framework/View/Result/Page/Interceptor.php(130): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array)
#49 /var/www/users/customer/src/www/vendor/magento/framework/App/Http.php(139): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#50 /var/www/users/customer/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\App\Http->launch()
#51 /var/www/users/customer/src/www/var/generation/Magento/Framework/App/Http/Interceptor.php(26): Magento\Framework\App\Http\Interceptor->___callPlugins('launch', Array, Array)
#52 /var/www/users/customer/src/www/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http\Interceptor->launch()
#53 /var/www/users/customer/src/www/pub/index.php(42): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#54 {main}
most probably this is due to the missing layered navigation, judging by the exception happening while getting (navigation?) slider values. another reason might be that BxReccommendationBlock does not properly setup the values, as isCmsPage
is not set to true
when instantiated in such a category cms block: $this->isCmsPage = $request->getModuleName() == 'cms' ? true : false;
cms page content:
{{block class="Boxalino\Intelligence\Block\BxRecommendationBlock" template="Boxalino_Intelligence::product/recommendation.phtml" widget="category_rec" context="659" title="Category 1"}}
{{block class="Boxalino\Intelligence\Block\BxRecommendationBlock" template="Boxalino_Intelligence::product/recommendation.phtml" widget="category_rec" context="70" title="Category 2"}}
both blocks will show the same 4 products from category 659. it seems that the BxRecommendation class only uses "widget" as array key, thus not actually make two queries.
We do not use Boxalino on our category pages, the DI
<preference for="Magento\Catalog\Model\Layer\State" type="Boxalino\Intelligence\Block\State" />
breaks our category filtering/navigating.
currently all searches (f.e. /catalogsearch/result/?q=futter
) result in the following exception
1 exception(s):
Exception #0 (com\boxalino\p13n\api\thrift\P13nServiceException): java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy11.choose(Unknown Source)
at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.boxalino.p13n.impl.ThriftExceptionConverter.invoke(ThriftExceptionConverter.java:33)
at com.sun.proxy.$Proxy11.choose(Unknown Source)
at com.boxalino.p13n.api.thrift.P13nService$Processor$choose.getResult(P13nService.java:480)
at com.boxalino.p13n.api.thrift.P13nService$Processor$choose.getResult(P13nService.java:464)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.thrift.server.TServlet.doPost(TServlet.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at com.boxalino.p13n.web.P13nServlet.service(P13nServlet.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.boxalino.common.util.monitoring.RequestMonitorProxy.invokeInternal(RequestMonitorProxy.java:43)
at com.boxalino.p13n.util.RequestMonitorProxyWithHistory.invoke(RequestMonitorProxyWithHistory.java:53)
... 32 more
Caused by: java.lang.RuntimeException: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: undefined field: "products_bit_size"
at com.boxalino.p13n.solr.MultiSolrQueryExecutor$1.call(MultiSolrQueryExecutor.java:58)
at com.boxalino.p13n.solr.MultiSolrQueryExecutor$1.call(MultiSolrQueryExecutor.java:48)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
... 3 more
Caused by: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: undefined field: "products_bit_size"
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:425)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at com.boxalino.p13n.solr.MultiSolrQueryExecutor$1.call(MultiSolrQueryExecutor.java:53)
... 7 more
Exception #0 (com\boxalino\p13n\api\thrift\P13nServiceException): java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy11.choose(Unknown Source)
at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.boxalino.p13n.impl.ThriftExceptionConverter.invoke(ThriftExceptionConverter.java:33)
at com.sun.proxy.$Proxy11.choose(Unknown Source)
at com.boxalino.p13n.api.thrift.P13nService$Processor$choose.getResult(P13nService.java:480)
at com.boxalino.p13n.api.thrift.P13nService$Processor$choose.getResult(P13nService.java:464)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.thrift.server.TServlet.doPost(TServlet.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at com.boxalino.p13n.web.P13nServlet.service(P13nServlet.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.boxalino.common.util.monitoring.RequestMonitorProxy.invokeInternal(RequestMonitorProxy.java:43)
at com.boxalino.p13n.util.RequestMonitorProxyWithHistory.invoke(RequestMonitorProxyWithHistory.java:53)
... 32 more
Caused by: java.lang.RuntimeException: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: undefined field: "products_bit_size"
at com.boxalino.p13n.solr.MultiSolrQueryExecutor$1.call(MultiSolrQueryExecutor.java:58)
at com.boxalino.p13n.solr.MultiSolrQueryExecutor$1.call(MultiSolrQueryExecutor.java:48)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
... 3 more
Caused by: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: undefined field: "products_bit_size"
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:425)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at com.boxalino.p13n.solr.MultiSolrQueryExecutor$1.call(MultiSolrQueryExecutor.java:53)
... 7 more
#0 /var/www/users/xxx/src/www/app/code/Boxalino/Intelligence/Lib/P13nService.php(152): com\boxalino\p13n\api\thrift\P13nService_choose_result->read(Object(Thrift\Protocol\TCompactProtocol))
this seems to be server side - maybe the plugin should fallback gracefully to the magento internal full text search in such cases?
when the "context" parameter is not specified in the category cms block, the current logic pulls the category id from the registry, making $context an array.
this results in a later error:
`Fehler beim Filtern der Vorlage: Warning: strlen() expects parameter 1 to be string, array given in /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Lib/Thrift/StringFunc/Core.php on line 36`
it seems to me currently the category
scenario expects a single value $context
and not an array - changing $context[] = $this->registry->registry('current_category')->getId();
to $context = $this->registry->registry('current_category')->getId();
fixes the problem.
I guess the idea of a category array context would be to allow multiple categories to be selected as context, i.e. something like context="70, 79"
and a real solution would therefor fix the issue at a later workflow stage where a string instead of an array is expected.
currently if the bx webservice is not reachable or too slow, the plugin waits far too long, essentially filling up all available php-fpm and thereafter all apache2/nginx processes and thus crashing the site.
in my opinion: for recommendations anything over 2s and for search anything over 10s should result in an exception with a following fallback (see #45). best would be configurable timeouts.
/catalogsearch/result/?q=40606.01
:
product page:
/p-g7116458-h-s-kk-conrad-ultra-trense-original/
/catalogsearch/result/?q=702455
returns wrong product (SKU 702452) and not the parent product /p-g2267169-leoveties-1kg/
Admin > System > Indexer throws an exception now:
1 exception(s):
Exception #0 (Magento\Framework\Exception\LocalizedException): Invalid XML in file /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/etc/mview.xml:
Element 'view': Duplicate key-sequence ['boxalino_indexer'] in unique identity-constraint 'uniqueViewId'.
Line: 16
Element 'view': Duplicate key-sequence ['boxalino_indexer'] in unique identity-constraint 'uniqueViewId'.
Line: 30
Element 'view': Duplicate key-sequence ['boxalino_indexer'] in unique identity-constraint 'uniqueViewId'.
Line: 44
the reason being that the same indexer is defined 4 times. i think the intention was to define the mview for the additional new indexers added in the latest commits, the ids therefore should be renamed to "boxalino_index_products", "boxalino_index_customers", "boxalino_index_transactions" and their classes/fields corrected.
"boxalino_index_products", "boxalino_index_customers", "boxalino_index_transactions" are missing
Boxalino/Intelligence/etc/crontab.xml will automatically run a full, product, customer and transaction reindex around midnight. on shops with large user & transaction base this will interfer with regular cron runs in the night - a mid sized shop installation currently takes over 3hrs for 1 full boxalino reindex, now this is doubled...
I suggest do only keep the delta update automatically running in the crontab.xml and advice customers to "manually" run the appropriate boxalino reindexers at a time of their choosing.
here's an example of a selected native magento layered navigation facet:
on the search result page, the selected facet (f.e. a brand) is missing above "Alles löschen". there is no visual indication that a brand has been selected on the search https://mysite.com/catalogsearch/result/index/?bx_products_brand=Hill%27s&q=futter
additionally, "Alles löschen" should only appear if the user actually made a filter selection.
Currently, blocks and elements are added / changed even if the configuration is disabled (f.e. Left Facets, Filter). magento supports conditionally applying the changes through the "ifconfig" attribute.
all products show the same related products and topseller, in the very same order, even after clearing cache. all products show dog the same dog products...
same for the cart upsell and the cms recommendation blocks.
part of the problem might be: the context used for the bx engine querying is not saved in the blocks cache key. but then again, after clearing the cache I'd expect to see a different set of related products when reloading...
during our site development in the last few weeks, there were several moments where there were exceptions thrown inside the boxalino intelligence plugin: bad configurations, unknown bx widget name, network problems, timeouts, webservice errors due to new attributes, webservice errors due to missing attribute values etc. in all these cases, the website was at best severely cripled or not working at all due to missing proper error handling.
the plugin should:
here's a quick example for the Crossell class:
/**
* @param bool $execute
* @return $this|array|null
*/
public function getItems($execute = true){
if($this->bxHelperData->isCrosssellEnabled()){
try {
$config = $this->_scopeConfig->getValue('bxRecommendations/cart', $this->scopeStore);
$products = array();
foreach ($this->getQuote()->getAllItems() as $item) {
$product = $item->getProduct();
if ($product) {
$products[] = $product;
}
}
$choiceId = (isset($config['widget']) && $config['widget'] != "") ? $config['widget'] : 'basket';
$entity_ids = $this->p13nHelper->getRecommendation(
$choiceId,
'basket',
$config['min'],
$config['max'],
$products,
$execute
);
if(!$execute){
return null;
}
if ((count($entity_ids) == 0)) {
$entity_ids = array(0);
}
$items = $this->factory->create()
->addFieldToFilter('entity_id', $entity_ids)->addAttributeToSelect('*');
$items->load();
foreach ($items as $product) {
$product->setDoNotUseCategoryId(true);
}
return $items;
}
catch (\Exception $ex)
{
// report
}
}
return parent::getItems();
}
<preference for="Magento\Cms\Block\Widget\Block" type="Boxalino\Intelligence\Block\CmsWidgetBlock" />
class does not exist in the repository
Fatal error: Uncaught Error: Cannot instantiate abstract class Magento\Framework\App\Action\AbstractAction in /var/www/users/xxx/src/www/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:93
Stack trace:
#0 /var/www/users/xxx/src/www/vendor/magento/framework/ObjectManager/Factory/Compiled.php(88): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('Magento\\Framewo...', Array)
#1 /var/www/users/xxx/src/www/vendor/magento/framework/ObjectManager/Factory/Compiled.php(130): Magento\Framework\ObjectManager\Factory\Compiled->create('Magento\\Framewo...')
#2 /var/www/users/xxx/src/www/vendor/magento/framework/ObjectManager/Factory/Compiled.php(67): Magento\Framework\ObjectManager\Factory\Compiled->get('Magento\\Framewo...')
#3 /var/www/users/xxx/src/www/vendor/magento/framework/ObjectManager/ObjectManager.php(57): Magento\Framework\ObjectManager\Factory\Compiled->create('Boxalino\\Intell...', Array)
#4 /var/www/users/xxx/src/www/vendor/magento/framework/View in /var/www/users/xxx/src/www/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 93
ok: https://oursite.com/catalogsearch/result/?q=Komodo&bx_discountedPrice=3.50-5.50
exception: https://oursite.com/catalogsearch/result/?q=Komodo&bx_discountedPrice=3.50-3.50
1 exception(s):
Exception #0 (Exception): Notice: Trying to get property of non-object in /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php on line 131
Exception #0 (Exception): Notice: Trying to get property of non-object in /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php on line 131
#0 /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php(131): Magento\Framework\App\ErrorHandler->handler(8, 'Trying to get p...', '/var/www/users/...', 131, Array)
#1 /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Helper/P13n/Adapter.php(462): com\boxalino\bxclient\v1\BxChooseResponse->getFacets('search')
#2 /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Model/FilterList.php(78): Boxalino\Intelligence\Helper\P13n\Adapter->getFacets()
#3 /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Model/FilterList.php(58): Boxalino\Intelligence\Model\FilterList->getBxFacets()
#4 /var/www/users/xyz/src/www/vendor/magento/module-layered-navigation/Block/Navigation.php(63): Boxalino\Intelligence\Model\FilterList->getFilters(Object(Magento\Catalog\Model\Layer\Search\Interceptor))
#5 /var/www/users/xyz/src/www/vendor/magento/framework/View/Element/AbstractBlock.php(264): Magento\LayeredNavigation\Block\Navigation->_prepareLayout()
#6 /var/www/users/xyz/src/www/vendor/magento/framework/View/Layout/Generator/Block.php(139): Magento\Framework\View\Element\AbstractBlock->setLayout(Object(Magento\Framework\View\Layout\Interceptor))
#7 /var/www/users/xyz/src/www/vendor/magento/framework/View/Layout/GeneratorPool.php(86): Magento\Framework\View\Layout\Generator\Block->process(Object(Magento\Framework\View\Layout\Reader\Context), Object(Magento\Framework\View\Layout\Generator\Context))
#8 /var/www/users/xyz/src/www/vendor/magento/framework/View/Layout.php(327): Magento\Framework\View\Layout\GeneratorPool->process(Object(Magento\Framework\View\Layout\Reader\Context), Object(Magento\Framework\View\Layout\Generator\Context))
#9 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Layout->generateElements()
#10 /var/www/users/xyz/src/www/var/generation/Magento/Framework/View/Layout/Interceptor.php(91): Magento\Framework\View\Layout\Interceptor->___callPlugins('generateElement...', Array, Array)
#11 /var/www/users/xyz/src/www/vendor/magento/framework/View/Layout/Builder.php(129): Magento\Framework\View\Layout\Interceptor->generateElements()
#12 /var/www/users/xyz/src/www/vendor/magento/framework/View/Page/Builder.php(55): Magento\Framework\View\Layout\Builder->generateLayoutBlocks()
#13 /var/www/users/xyz/src/www/vendor/magento/framework/View/Layout/Builder.php(65): Magento\Framework\View\Page\Builder->generateLayoutBlocks()
#14 /var/www/users/xyz/src/www/vendor/magento/framework/View/Page/Config.php(197): Magento\Framework\View\Layout\Builder->build()
#15 /var/www/users/xyz/src/www/vendor/magento/framework/View/Page/Config.php(207): Magento\Framework\View\Page\Config->build()
#16 /var/www/users/xyz/src/www/vendor/magento/framework/App/View.php(170): Magento\Framework\View\Page\Config->publicBuild()
#17 /var/www/users/xyz/src/www/vendor/magento/framework/App/View.php(114): Magento\Framework\App\View->loadLayoutUpdates()
#18 /var/www/users/xyz/src/www/vendor/magento/module-catalog-search/Controller/Result/Index.php(90): Magento\Framework\App\View->loadLayout()
#19 /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Controller/IndexController.php(67): Magento\CatalogSearch\Controller\Result\Index->execute()
#20 /var/www/users/xyz/src/www/var/generation/Boxalino/Intelligence/Controller/IndexController/Interceptor.php(24): Boxalino\Intelligence\Controller\IndexController->execute()
#21 /var/www/users/xyz/src/www/vendor/magento/framework/App/Action/Action.php(102): Boxalino\Intelligence\Controller\IndexController\Interceptor->execute()
#22 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))
#23 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(70): Boxalino\Intelligence\Controller\IndexController\Interceptor->___callParent('dispatch', Array)
#24 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Boxalino\\Intell...', 'dispatch', Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Array, 'contextPlugin')
#25 /var/www/users/xyz/src/www/vendor/magento/module-store/App/Action/Plugin/Context.php(106): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#26 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Store\App\Action\Plugin\Context->aroundDispatch(Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#27 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Boxalino\\Intell...', 'dispatch', Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Array, 'customer-app-ac...')
#28 /var/www/users/xyz/src/www/vendor/magento/module-customer/Model/App/Action/ContextPlugin.php(61): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#29 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Customer\Model\App\Action\ContextPlugin->aroundDispatch(Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#30 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Boxalino\\Intell...', 'dispatch', Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Array, 'storeCheck')
#31 /var/www/users/xyz/src/www/vendor/magento/module-store/App/Action/Plugin/StoreCheck.php(44): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#32 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Store\App\Action\Plugin\StoreCheck->aroundDispatch(Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#33 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Boxalino\\Intell...', 'dispatch', Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Array, 'tax-app-action-...')
#34 /var/www/users/xyz/src/www/vendor/magento/module-tax/Model/App/Action/ContextPlugin.php(91): Boxalino\Intelligence\Controller\IndexController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#35 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(142): Magento\Tax\Model\App\Action\ContextPlugin->aroundDispatch(Object(Boxalino\Intelligence\Controller\IndexController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#36 /var/www/users/xyz/src/www/var/generation/Boxalino/Intelligence/Controller/IndexController/Interceptor.php(39): Boxalino\Intelligence\Controller\IndexController\Interceptor->___callPlugins('dispatch', Array, Array)
#37 /var/www/users/xyz/src/www/vendor/magento/framework/App/FrontController.php(55): Boxalino\Intelligence\Controller\IndexController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#38 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#39 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#40 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'requestPreproce...')
#41 /var/www/users/xyz/src/www/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(94): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#42 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#43 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#44 /var/www/users/xyz/src/www/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#45 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#46 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#47 /var/www/users/xyz/src/www/vendor/magento/module-page-cache/Model/App/FrontController/VarnishPlugin.php(55): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#48 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\PageCache\Model\App\FrontController\VarnishPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#49 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#50 /var/www/users/xyz/src/www/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(73): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#51 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(142): Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#52 /var/www/users/xyz/src/www/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#53 /var/www/users/xyz/src/www/vendor/magento/framework/App/Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#54 /var/www/users/xyz/src/www/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\App\Http->launch()
#55 /var/www/users/xyz/src/www/var/generation/Magento/Framework/App/Http/Interceptor.php(26): Magento\Framework\App\Http\Interceptor->___callPlugins('launch', Array, Array)
#56 /var/www/users/xyz/src/www/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http\Interceptor->launch()
#57 /var/www/users/xyz/src/www/pub/index.php(42): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#58 {main}
url: /catalogsearch/result/?q=welches+futter+ist+das+richige%3F
1 exception(s):
Exception #0 (Exception): Notice: Undefined offset: 1 in /var/www/users/qualipet2/src/www/app/code/Boxalino/Intelligence/Block/Result.php on line 107
Fehler beim Filtern der Vorlage: Notice: Trying to get property of non-object in /var/www/users/xyz/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php on line 55
for example https://mysite.com/catalogsearch/result/?q=g-677
1 exception(s):
Exception #0 (Exception): Notice: Trying to get property of non-object in /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php on line 131
Exception #0 (Exception): Notice: Trying to get property of non-object in /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php on line 131
#0 /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Lib/BxChooseResponse.php(131): Magento\Framework\App\ErrorHandler->handler(8, 'Trying to get p...', '/srv/httpd/test...', 131, Array)
#1 /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Helper/P13n/Adapter.php(462): com\boxalino\bxclient\v1\BxChooseResponse->getFacets('search')
#2 /srv/httpd/test/src/www/app/code/Boxalino/Intelligence/Model/FilterList.php(78): Boxalino\Intelligence\Helper\P13n\Adapter->getFacets()
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.