# Upgrade to the latest version of Bagisto

To upgrade your current version to the latest version of Bagisto, you need to follow some steps,

  • First, you need to download the latest version of Bagisto.

  • You can download Bagisto from the following links,

  • After downloading the Bagisto zip file, you need to extract where you want to deploy it.

  • After extract the file, you need to go to the root folder of the extracted folder and run the below command in the terminal.

    composer create-project
    
  • After the command has been executed, now go to your .env file, provide your old project database credentials for which you want to upgrade Bagisto, and run the following command,

    php artisan optimize
    
    # -- OR
    
    php artisan config:cache
    
  • Now, your new changes have been cached and now your project is ready to run the migrate command,

    php artisan migrate
    

    WARNING

    Here we have not provided you the seeder command because the seeder command always resets all the settings, categories and etc. If some tables need default settings then we advise you to add manually.

  • Now, its time to create a symlink so that public assets can be linked to storage,

    php artisan storage:link
    
  • Copy all the content of the previous version's folder (e.g. old-project/storage/app/public) to the latest version's folder (e.g. new-project/storage/app/public).

    TIP

    If your existing project also depends on some local storage, or you have changed some paths, or you want previous logs also then make sure you add all those also.

  • Once this is finished run the following command to publish your new files,

    php artisan vendor:publish --all
    

    WARNING

    Don't use the --force flag, this will reset all your views. Use only when you know what you are doing.

You are now at the latest version. Still, we want to mention that if you have done a lot of customizations then that portion of compatibility should be handled at your end.

# Bagisto Changes

# These are the changes from the version 1.3.3 to 1.4.0

# Added one composer dependency (High Severity)

  • Added diglactic/laravel-breadcrumbs for breadcrumbs in the frontend shop. Make sure to run the composer install, if you are upgrading the existing project.
  • Moved all the old APIs to a separate package i.e. bagisto/legacy-api. If you are getting exceptions then just go to bootstrap/cache and delete all the files and then run composer install. After the installation, run php artisan optimize.

# Changes from the datagrid (High Severity)

# Revamped admin theme (High Severity)

  • Added a new admin theme with features of multi-locale switcher, real time notification for admin upon order creation or updation and dark theme for admin panel.

# Changes in factories (Medium Severity)

  • Dropped laravel legacy factories dependencies and refactored all models to use Laravel 8 class factories. If you have used it in modules try to upgrade or just install the dependency when needed.

# Changes in routes (Medium Severity)

  • In admin, shop and velocity packages, this file packages/Webkul/<package-name>/src/Http/routes.php is moved to packages/Webkul/<package-name>/src/Routes/web.php this path. So if you are upgrading the existing project just make sure the provider registry is updated.

# These are the changes from the version 1.3.1 to 1.3.2

# Changes from the web vital (Medium Severity)

  • For the velocity theme, the velocity.js file is divided into two files i.e. velocity-core.js and the velocity.js file. In velocity-core.js, all core dependencies like jQuery, bootstrap js, Vue js are added and in velocity.js all the components are present which is bootstrapped by the velocity-core.js.

  • All these components are minified now, quantity-changer, mini-cart, slider-component, and searchbar-component.

  • These components are added hot-categories, popular-categories, sidebar-header, right-side-header and mobile-header.

  • In velocity.js, this component VueToast has been removed. As no traces were found in the core. If you are using this then make sure you add it to your module dependencies.

  • This folder i.e. packages/Webkul/Velocity/src/Resources/views/shop/UI is completely removed. The files inside this folder contain the components which are already minified so not needed. Make sure if you included these files in your modules, use the direct component rather than including the file.

  • In this folder i.e. packages/Webkul/Velocity/src/Resources/views/shop/layouts/particals three files (compare.blade.php, wishlist.blade.php and search-bar.blade.php) are given. All these files are having individual components. For compare.blade.php and wislist.blade.php, you can use the isText prop to disable the text for mobile.

  • Reference PR: #5020 (opens new window)

# Changes from security fixes (High Severity)

  • These routes i.e. address.delete, customer.orders.cancel, customer.review.delete, customer.review.deleteall, shop.movetowishlist, customer.wishlist.add, customer.wishlist.remove and customer.wishlist.removeall methods are changed from GET to DELETE and POST respectively. GET is only use for retrieving data.

  • Maybe if you forgot to change then surely this will impact your project. Make sure it should be updated and also run php artisan optimize command.

  • Reference PR: #4996 (opens new window), #4998 (opens new window) and #5052 (opens new window)

# Downloadable product medias are moved to private disk (Medium Severity)

  • If someone facing broken downloadale links, this is because of the privatization of the paid links, in this case move your downloadable links folder to a private disk, and the broken link got fixed.

  • If still broken then take a reference from the below PR and adjust the storage data.

  • Reference PR: #4966 (opens new window)

# Changes from invoice prefixes (Medium Severity)

  • Moved sequencer class from shop package to sales package, as orders and invoices are part of the sales. This will not impact as there is only one key and that one is in the repository.

  • Enhanced and scaled the Sequencer class.

  • As per the existing project perspective, increment_id by default is going null, so for displaying portion it will first check increment_id if not found then it will give the actual id.

  • In the core config, moved all the invoice settings to the new tab name Invoice Settings so make sure reset the value for the Invoice Slip Design.

  • Reference PR: #4956 (opens new window)

# Changes from .env (Low Severity)

  • Just capitalized the fixer_api_key in .env to have consistency and .env standard.

  • If you have this key in your .env and you are using this just make sure you capitalize your key also.