How did I upgrade dxmoto.com from Magento 2.2.3 to 2.3.5?

Step 1

bin/magento maintenance:enable

Step 2

I replaced the the root’s composer.json file with the file from Magento 2.3.5.
Then I declared already installed third-party packages in the require section of the file:

"require": {
	"amasty/base": "1.10.0",
	"amasty/finder": "1.10.1",
	"baldwin/magento2-module-url-data-integrity-checker": "v1.0.0",
	"bitexpert/magento2-force-customer-login": "*",
	"elgentos/regenerate-catalog-urls": "0.2.0",
	"emipro/socialshare": "1.0.1",
	"firebear/importexport": "3.4.2",
	"m2e/ebay-amazon-magento2": "1.4.3",
	"mageplaza/module-smtp": "1.3.1",
	"mirasvit/module-core": "1.2.110",
	"mirasvit/module-dashboard": "1.2.41",
	"mirasvit/module-report": "1.3.92",
	"mirasvit/module-report-api": "1.0.37",
	"mirasvit/module-report-builder": "1.0.24",
	"mirasvit/module-reports": "1.3.31",
	"shoppingfeed/magento2-manager": "0.32.0",
	"thanhdv2811/magento-2-currency-convert": "1.0.1",
	"vdshop/aliexpress": "1.4.2"
}

The vdshop/aliexpress package was installed to the vendor folder and enabled in app/etc/config.php, but not declared in the root’s composer.json file.
I added it there: Declare used packages in composer.json

Step 3

rm -rf composer.lock
composer update

Step 4

«Cannot process definition to array for type enum» on bin/magento setup:upgrade

Step 5

  1. «Duplicate key name ‘MAGEPLAZA_BRAND_OPTION_ID_STORE_ID’» on bin/magento setup:upgrade
  2. «Duplicate key name ‘MAGEPLAZA_SHOPBYBRAND_CATEGORY_URL_KEY’» on bin/magento setup:upgrade
  3. «Duplicate key name ‘MAGEPLAZA_SHOPBYBRAND_BRAND_CATEGORY_OPTION_ID_CAT_ID’» on bin/magento setup:upgrade
  4. «Can’t write; duplicate key in table» on ALTER TABLE mageplaza_shopbybrand_brand_category

Step 6

composer require dxmoto/core:*

It is my custom module which fixes the following issues:

  1. The «Customer Login» screen has a wrong appearance in Magento 2.3.5
  2. Ess_M2ePro: «Argument 3 passed to Magento\Cms\Model\Wysiwyg\CompositeConfigProvider::__construct() must be of the type array, null given»
  3. Amasty_Finder: «Broken reference: the ‘amasty.finder.5’ element cannot be added as child to ‘content’, because the latter doesn’t exist»
  4. Intermediate breadcrumbs are missing on frontend product pages in Magento 2.3.5
  5. «Broken reference: the ‘catalog.compare.sidebar’ element cannot be added as child to ‘sidebar.additional’, because the latter doesn’t exist»
  6. «Broken reference: the ‘sidebar.container’ element cannot be added as child to ‘sidebar.main’, because the latter doesn’t exist»
  7. «Broken reference: the ‘skip_gallery_before’ tries to reorder itself towards ‘product.info.media.image’, but their parents are different: ‘skip_gallery_before.wrapper’ and ‘product.info.media’ respectively.»
  8. «Broken reference: the ‘skip_gallery_after’ tries to reorder itself towards ‘product.info.media.image’, but their parents are different: ‘skip_gallery_after.wrapper’ and ‘product.info.media’ respectively.»

Step 7

  1. «Declaration of BoostMyShop\AdvancedStock\Model\ResourceModel\LowStock\Collection::_getSelectCountSql should be compatible with Magento\Catalog\Model\ResourceModel\Product\Collection::_getSelectCountSql»
  2. «Declaration of BoostMyShop\AdvancedStock\Model\ResourceModel\StockMovement\Collection::_getSelectCountSql should be compatible with Magento\Catalog\Model\ResourceModel\Product\Collection::_getSelectCountSql»
  3. «Declaration of BoostMyShop\Supplier\Model\ResourceModel\ProductSupplier\All::_getSelectCountSql should be compatible with Magento\Catalog\Model\ResourceModel\Product\Collection::_getSelectCountSql»
  4. «Declaration of BoostMyShop\Supplier\Model\ResourceModel\Replenishment\Collection::_getSelectCountSql should be compatible with Magento\Catalog\Model\ResourceModel\Product\Collection::_getSelectCountSql»
  5. «Declaration of BoostMyShop\Supplier\Model\ResourceModel\Supplier\Product\All::_getSelectCountSql should be compatible with Magento\Catalog\Model\ResourceModel\Product\Collection::_getSelectCountSql»
  6. «Declaration of BoostMyShop\Supplier\Model\ResourceModel\Transit\Collection:: _getSelectCountSql should be compatible with Magento\Catalog\Model\ResourceModel\Product\Collection::_getSelectCountSql»

Step 8

redis-cli flushall
bin/magento setup:upgrade
bin/magento cache:enable

Step 9

I disabled the preinstalled Magento’s crapware.

Step 10

«Wrong file» on opening any frontend product page in Windows (I does not affect the production Linux-based server, but I always do an upgrade on my local workstation first, which is Windows-based).
It also fixes the issue: Product images are not shown on Windows in the «Recommended» and «Our Featured Products» blocks of the home page after the Magento 2.2.3 → 2.3.5 upgrade

Step 11

Step 12

Magento 2.3.5: «Refused to load the stylesheet … because it violates the following Content Security Policy directive: “style-src getfirebug.com ‘self’ ‘unsafe-inline’”. Note that ‘style-src-elem’ was not explicitly set, so ‘style-src’ is used as a fallback.»

Step 13

The product name is duplicated under the product image on the frontend product pages in Magento 2.3.5

Step 14

A watermark is shown with a wrong transparency on the frontend product pages in Magento 2.3.5

Step 15

The MageComp logo is rendered as a text instead of an image in the Magento backend

Step 16

Removing the «PayPal Credit» block from the mini-cart

Step 17

BoostMyShop_OrderPreparation: «Unknown column ‘main_table.in_progress_ids’ in ‘field list’»

Step 18

rm -rf var/di var/generation generated/*
bin/magento setup:di:compile
bin/magento cache:clean
rm -rf pub/static/*
bin/magento setup:static-content:deploy \
	--area adminhtml \
	--theme Magento/backend \
	-f en_US
bin/magento setup:static-content:deploy \
	--area frontend \
	--theme Infortis/ultimo \
	-f en_US
bin/magento cache:clean
bin/magento maintenance:disable

Step 19

bin/magento config:set advancedstock/general/disable_log 1
bin/magento cache:clean

It fixes the issues:

  1. advancedstock_inventory_core.log is growing fast.
  2. advancedstock_general.log is growing fast
  3. advancedstock_inventory.log is growing fast