✨ Enhancements and features
- [project-base] repeat order improvements by @grossmannmartin in #2876
- [project-base] improve error handling for friendly URL pages based on API status codes by @sebaholesz in #2973
- [project-base] customer's user cart is now overwritten with the incoming cart if logged in 3rd order step by @sebaholesz in #2978
- [project-base] add Related Products tab section by @tvikito in #2885
- [project-base] added USPs to product detail page by @sebaholesz in #2887
- [project-base] added logic for ordering GTM events by @sebaholesz in #2921
- [project-base] SEO categories with ignored filters by @sebaholesz in #2891
- [shopsys] added ability to schedule each feed for specific time same way as crons by @TomasLudvik in #2922
- [framework] annotation fixer: get property type from typehint when the annotation is missing by @vitek-rostislav in #2934
- [framework] handle image resizing by image proxy by @vitek-rostislav in #2924
- [framework] order info is now asynchronously sent to Heureka after order is created by @vitek-rostislav in #2936
- [shopsys] product recalculation and export is now done by queue by @grossmannmartin in #2917
- [project-base] more file types are now allowed to upload in wysiwyg editor by @grossmannmartin in #2948
- [frontend-api] add Category ID to CategoryHierarchyItem by @vitek-rostislav in #2962
- [framework] product recalculations priority queue by @vitek-rostislav in #2981
- [shopsys] added hreflang feature by @grossmannmartin in #2970
- [shopsys] emails are now sent via queue by @grossmannmartin in #2998
- [shopsys] moved Persoo feeds to Luigi's Box feeds by @TomasLudvik in #3014
- [project-base] improved product edit in grapesjs by @grossmannmartin in #3008
- [frontend-api] added ability to change a payment in an order by @vitek-rostislav in #2952
- [shopsys] added hreflang links to flag detail page by @grossmannmartin in #3022
- [shopsys] rewritten Persoo bundle to Luigi's Box bundle by @TomasLudvik in #3037
- [shopsys] Luigi's Box brand feed by @TomasLudvik in #3045
- [shopsys] Luigi's Box now searches through all the searchable entities by @TomasLudvik in #3047
- [shopsys] added personalization to Luigi's Box search by @tvikito in #3044
- [shopsys] product filters are now provided from Luigi's Box by @TomasLudvik in #3074
- [shopsys] add customer option for Verified by Customers Heureka by @tvikito in #3098
- [luigis-box] recommended products by @TomasLudvik in #3099
- [luigis-box] added parameter filter to Luigi's Box search by @TomasLudvik in #3110
- [project-base] Order summary transport & payment rounding price item by @KennyDaren in #2835
- [framework] set products for export to elastic after changing quantity after completing, editing, or deleting order by @sspooky13 in #2587
- [project-base] Add instant skeletons by @tvikito in #2863
- [shopsys] added core for dispatch/consume system by @grossmannmartin in #2907
- [project-base] add additional skeletons by @tvikito in #2906
- [shopsys] added dead letter queue by @grossmannmartin in #2958
- [project-base] add scroll to cart order pick up place popup by @tvikito in #2979
- [project-base] last visited products by @TomasGottvald in #2716
- [framework] entity changes log by @RostislavKreisinger in #2980
- [project-base] add swipe handlers to our products slider by @tvikito in #2996
- [project-base] add hreflang links to Head by @tvikito in #3005
- [frontend-api] add display timezone to SettingsQuery by @vitek-rostislav in #2977
- [project-base] recommended products skeleton by @sebaholesz in #3138
- [project-base] breadcrumb without url is no longer a link by @grossmannmartin in #2881
🐛 Bug Fixes
- [framework] fixed access to nullable country by @stanoMilan in #2370
- [project-base] fixed undefined window error by @sebaholesz in #2882
- [project-base] improvements of product list in grapesjs by @grossmannmartin in #2879
- [project-base] fixed ProductsQuery Gatling simulation to wait for http response by @TomasLudvik in #2908
- [project-base] search on search page is now not called if search query is empty by @sebaholesz in #2895
- [framework] RedisClientFacade::contains() now throws exception when Redis is in multimode by @vitek-rostislav in #2915
- [shopsys] improved storefront translations cache invalidation by @grossmannmartin in #2949
- [project-base] fix broken drag and drop in GrapesJS in Safari by @sebaholesz in #2966
- [framework] admin: fixed flag filter in product advanced search by @TomasLudvik in #2989
- [project-base] grapesjs product catnums field is now text input by @grossmannmartin in #2994
- [project-base] resolve unwanted links and http iframe in datafixtures by @pk16011990 in #2751
- [frontend-api] FE API Advert.catgories field returns visible categories only by @malyMiso in #2701
- [shopsys] unset variant is now automatically exported by @grossmannmartin in #3016
- [framework] added unique constraint to cart by @grossmannmartin in #3017
- [shopsys] luigis box product feed now correctly exports all products by @TomasLudvik in #3028
- [project-base] added missing cron instances to deploy-project.sh by @TomasLudvik in #3036
- [project-base] removed duplicate update payment mutation call on order payment confirmation page by @sebaholesz in #3025
- [project-base] fixed non-working sentry logging on SF by @sebaholesz in #3034
- [shopsys] renamed blog article publishedAt elastic field to fix elasticsearch migration by @grossmannmartin in #3038
- [shopsys] hotfix: locked php-cs-fixer in version lower than 3.50 as new version causes errors in tests with current easy-coding-standards by @TomasLudvik in #3042
- [framework] ensure proper entity name is used within getClassMetadata call by @vitek-rostislav in #3068
- [shopsys] adverts restricted by theirs display dates are now correctly displayed at specified dates by @TomasLudvik in #3065
- [project-base] fixed wrong PageType for articles in search by @TomasLudvik in #3062
- [shopsys] move migration 20200219145345 by @stanoMilan in #2975
- [shopsys] unified composer conflicts by @TomasLudvik in #3082
- [framework] tweaks and fixes in moved migrations by @vitek-rostislav in #3097
- [project-base] cart and product lists are not refetched while auth loading is active by @sebaholesz in #3096
- [frontend-api] fixed ordering of search results by @TomasLudvik in #3111
- [shopsys] fixed saving empty article by @TomasLudvik in #3113
- [frontend-api] applied promo code is now taken into account in priceByTransportQuery and priceByPaymentQuery by @vitek-rostislav in #3118
- [frontend-api] addProductToListMutation: ensure new product list is created with non-conflicting uuid by @vitek-rostislav in #3126
- [frontend-api] cart is now correctly created for current customer user when carts are merged by @TomasLudvik in #3112
- [project-base] fix main variants in last visited products by @vitek-rostislav in #3139
- [project-base] cart hydration fix by @sebaholesz in #3142
- [framework] fix sending emails with attachments by @vitek-rostislav in #3146
- [project-base] add equal spacing to the Category page by @tvikito in #2900
- [project-base] fix sizes of product actions buttons by @tvikito in #2896
- [project-base] fix Comparison for not logged in users by @tvikito in #2905
- [project-base] fix set default delivery address country by @tvikito in #2902
- [project-base] fix router server access error on PageGuard by @tvikito in #2909
- [project-base] fix Cart list unit text by @tvikito in #2910
- [project-base] Add display Transport and Payment description on desktop by @tvikito in #2930
- [project-base] fix GrapesJS by @tvikito in #2927
- [framework] fixed migration namespace by @grossmannmartin in #2954
- [framework] fixed running cron module when memory limit set to -1 by @grossmannmartin in #2956
- [shopsys] fixed feed generation during request by @grossmannmartin in #2959
- [project-base] fix Search results Blog Article link type by @tvikito in #2961
- [project-base] fix Breadcrumbs navigation on customer order page by @tvikito in #2974
- [project-base] fix Add to cart popup product navigation by @tvikito in #2976
- [project-base] fix image sizes by @tvikito in #2968
- [framework] fix of the framework package by @vitek-rostislav in #3029
- [project-base] fix tests for singledomain application by @vitek-rostislav in #3030
- [project-base] fix SEO page title and heading H1 14.0 by @tvikito in #3109
- [framework] messenger: prevent errors when MESSENGER_TRANSPORT_DSN is empty by @vitek-rostislav in #3114
- [project-base] friendly url fixes (v14.0) by @vitek-rostislav in #3125
🔨 Developer experience and refactoring
- [project-base] Transport and payment page fetching state refactoring by @sebaholesz in #2807
- [project-base] auth (loading) improvements by @sebaholesz in #2897
- [project-base] category data fetching logic improvements by @sebaholesz in #2893
- [project-base] cypress refactoring by @sebaholesz in #3023
- [project-base] add possibility to change SF error verbosity for development by @sebaholesz in #2990
- [project-base] added more verbose error messages when using logException on SF by @sebaholesz in #3018
- [project-base] Improvements to Storefront typings by @sebaholesz in #3009
- [shopsys] added test to keep elasticsearch converter and mapping in sync by @grossmannmartin in #2880
- [project-base] removed unnecessary default value for domainConfig by @sebaholesz in #2888
- [shopsys] graphql validation errors now contain violation list in the additional data and allow change the log level by @grossmannmartin in #2889
- [project-base] Refactoring of various error-related matters on SF by @sebaholesz in #2871
- [shopsys] all commands are now named via attribute by @grossmannmartin in #2912
- [shopsys] replaced custom application bootstraping with symfony/runtime by @grossmannmartin in #2914
- [framework] [frontend-api] universal product list by @vitek-rostislav in #2901
- [project-base] stores tests enhancements by @vitek-rostislav in #2951
- [shopsys] Elasticsearch: defined structure for ID by @sspooky13 in #2495
- [shopsys] all relevant entities are now created with factory by @grossmannmartin in #3004
- [shopsys] fixed type annotation on collections by @grossmannmartin in #3000
- [shopsys] removed unused tsvector columns by @grossmannmartin in #3007
- [shopsys] split ElasticsearchIndexException into separate ones by @TomasLudvik in #3003
- [project-base] usps are now relevant and only on few products by @grossmannmartin in #3006
- [shopsys] removed entity's and dataobject's property typehints and typehints from getter/setter by @grossmannmartin in #3001
- [framework] change monolog error context key for cron error messages by @malyMiso in #2933
- [storefront] added basic Symfony Toolbar for XHR request to easy opening profiler directly from storefront by @TomasLudvik in #2997
- [framework] feed modules are now removed if appropriate feed no longer exists by @TomasLudvik in #3024
- [shopsys] removed no longer used functionality of measuring scripts by @TomasLudvik in #3122
- [shopsys] Add Prettier and ESlint plugins by @tvikito in #2874
- [shopsys] markdown format ensured by prettier by @grossmannmartin in #2892
- [project-base] refactor ProductVariantsTable by @tvikito in #2899
- [project-base] remove Heading component by @tvikito in #2894
- [project-base] removed error logging for GTM safe push by @sebaholesz in #2920
- [shopsys] stock and store management moved to shopsys/framework package by @grossmannmartin in #2918
- [shopsys] remove backend API by @vitek-rostislav in #2937
- [project-base] upgrade Node.js and PNPM by @tvikito in #2931
- [project-base] package.json fix to minors by @sebaholesz in #2923
- [shopsys] removed read model package by @grossmannmartin in #2935
- [shopsys] removed preorder and vendor delivery date features by @grossmannmartin in #2942
- [framework] remove constant.js by @vitek-rostislav in #2969
- [project-base] replace lightgallery with custom gallery by @tvikito in #2995
- [shopsys] Upgraded to PHP 8.3 by @grossmannmartin in #3002
- [project-base] update repo dependencies by @tvikito in #3010
- [framework] remove enums from the packages by @vitek-rostislav in #3073
- [coding-standards] removed disallowed PHP 4 constructor type sniff by @grossmannmartin in #2986
- [project-base] fixed entity extension test by @grossmannmartin in #3011
- [shopsys] forbidden private visibility now takes into account constructor property promotion by @grossmannmartin in #2944
- [shopsys] monorepo coding standards: ensure all packages use the same cyclomatic complexity setting by @vitek-rostislav in #2938
📖 Documentation
- [shopsys] improved upgrade instructions for read-model removal by @grossmannmartin in #2947
- [shopsys] added upgrade note for product recalculations via queue by @grossmannmartin in #2955
- [shopsys] added documentation about asynchronous processing by @grossmannmartin in #2988
- [shopsys] enhancement of the stylistics of the documentation and some texts by @pk16011990 in #2798
- [shopsys] upgrade notes: add information about Docker version for image proxy by @vitek-rostislav in #2957
- [shopsys] upgrade notes: info about moved functionalities by @vitek-rostislav in #2984
- [project-base] upgrade notes: add missing info about rabbit on GitlabCI by @vitek-rostislav in #3063
🚀 Performance
- [shopsys] increase speed of Product creation by @TomasLudvik in #2903
- [framework] CategoryTreeSorting.init jquery UI performance by @malyMiso in #3013
- [shospys] improved feed memory usage, iterated crons are now able to sleep before memory overflow and improved feed generation logging by @TomasLudvik in #2945
☁️ Infrastructure
- [shopsys] added composer security check to GitHub Actions by @TomasLudvik in #2839
- [shopsys] Packetery and GoPay are now enabled on review server by @TomasLudvik in #2869
- [shopsys] added translations dump check by @TomasLudvik in #2868
- [shopsys] test project-base with only one domain on GitHub actions by @TomasLudvik in #2877
- [shopsys] project-base now checks also Storefront checks and runs Storefront with one domain in one domain check by @TomasLudvik in #2886
- [shopsys] prepared infrastructure for rabbitmq by @grossmannmartin in #2898
- [project-base] added messenger configuration to deployed application by @grossmannmartin in #2904
- [shopsys] commands not used during installation, standards checking and running tests are now run on GitHub Actions to ensure all our commands are passing by @TomasLudvik in #2875
- [shopsys] docker-compose: remove img proxy container name for CI review by @vitek-rostislav in #2943
- [shopsys] docker-compose: add rabbitMQ container for cypress tests on gitlab CI by @vitek-rostislav in #2950
- [project-base] messages are now consumed on gitlab ci review by @grossmannmartin in #2953
- [monorepo] alpha branch is now automatically split and deployed by @grossmannmartin in #2982
- [shopsys] GitHub actions now use default_branch set in repository instead of variable by @TomasLudvik in #2985
- [project-base] fixed path to codeception logs in project-base by @TomasLudvik in #2991
- [shopsys] run review job is now killed after 10 minutes by @grossmannmartin in #2913
- [releaser] UpdateUpgradeReleaseWorker: update instructions by @vitek-rostislav in #2932
- [shopsys] replace versions in alpha branch is now independent of the original version by @grossmannmartin in #2992
- [project-base] fixed consumer deployment by @grossmannmartin in #3019
- [shopsys] bump version of upload/download artifact actions by @grossmannmartin in #3021
New Contributors
- @KennyDaren made their first contribution in #2835
Full Changelog: v13.0.0...v14.0.0