OFFLINE-GmbH / oc-mall-plugin

:convenience_store: E-commerce solution for October CMS
https://offline-gmbh.github.io/oc-mall-plugin
MIT License
168 stars 112 forks source link

Incompatibility with RainLab.User 3.0 #1147

Open cyril-design opened 2 months ago

cyril-design commented 2 months ago

Hi. Since I updated RainLab.User 3.0 and Mall 3.3 I've got an error: Authentication user provider [user] is not defined. ~/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php line 39

I've tried with a simple layout with the cart component. Idem with Products page in backend.

And in the Users page in backend:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.offline_mall_customer_group_id' in 'where clause' (SQL: select `users`.*, (select name from `offline_mall_customer_groups` where `users`.`offline_mall_customer_group_id` = `offline_mall_customer_groups`.`id`) as `customer_group`, (select name from `user_groups` where `users`.`primary_group_id` = `user_groups`.`id`) as `primary_group` from `users` limit 20 offset 0)

Thanks !

PHP: 8.2 October CMS: v3.6.22 Rainlab User: v3.0.5 Offline Mall: v3.3.1 Laravel Framework: 9.52.16

tobias-kuendig commented 2 months ago

Could yo uplease post the full stack trace? Thank you!

cyril-design commented 2 months ago

Thanks:

Stack trace:
#0 my-app/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php(125): Illuminate\Auth\AuthManager->createUserProvider('users')
#1 my-app/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php(96): Illuminate\Auth\AuthManager->createSessionDriver('web', Array)
#2 my-app/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php(70): Illuminate\Auth\AuthManager->resolve('web')
#3 my-app/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php(340): Illuminate\Auth\AuthManager->guard()
#4 my-app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(338): Illuminate\Auth\AuthManager->__call('getUser', Array)
#5 [internal function]: Illuminate\Support\Facades\Facade::__callStatic('getUser', Array)
#6 my-app/plugins/offline/mall/classes/user/Auth.php(16): call_user_func_array(Array, Array)
#7 my-app/plugins/offline/mall/classes/traits/UserSpecificPrice.php(13): OFFLINE\Mall\Classes\User\Auth::__callStatic('getUser', Array)
#8 my-app/plugins/offline/mall/classes/traits/PriceAccessors.php(52): OFFLINE\Mall\Models\Product->getUserSpecificPrice(Object(OFFLINE\Mall\Models\Price))
#9 my-app/plugins/offline/mall/classes/traits/PriceAccessors.php(74): OFFLINE\Mall\Models\Product->priceRelation(Object(OFFLINE\Mall\Models\Currency), 'prices', NULL)
#10 my-app/plugins/offline/mall/models/product/_price.htm(1): OFFLINE\Mall\Models\Product->price()
#11 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#12 my-app/modules/system/traits/ViewMaker.php(103): Backend\Classes\Controller->makeFileContents('/Users/crea11/S...', Array)
#13 my-app/modules/backend/widgets/lists/partials/_column_partial.php(14): Backend\Classes\Controller->makePartial('$/offline/mall/...', Array)
#14 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#15 my-app/modules/system/traits/ViewMaker.php(103): Backend\Classes\WidgetBase->makeFileContents('/Users/crea11/S...', Array)
#16 my-app/modules/backend/widgets/Lists.php(1757): Backend\Classes\WidgetBase->makePartial('_column_partial', Array)
#17 my-app/modules/backend/widgets/Lists.php(1273): Backend\Widgets\Lists->evalPartialTypeValue(Object(OFFLINE\Mall\Models\Product), Object(Backend\Classes\ListColumn), Object(Illuminate\Support\Collection))
#18 my-app/modules/backend/widgets/lists/partials/_list_body_row.php(27): Backend\Widgets\Lists->getColumnValue(Object(OFFLINE\Mall\Models\Product), Object(Backend\Classes\ListColumn))
#19 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#20 my-app/modules/system/traits/ViewMaker.php(103): Backend\Classes\WidgetBase->makeFileContents('/Users/crea11/S...', Array)
#21 my-app/modules/backend/widgets/lists/partials/_list_body_rows.php(2): Backend\Classes\WidgetBase->makePartial('_list_body_row', Array)
#22 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#23 my-app/modules/system/traits/ViewMaker.php(103): Backend\Classes\WidgetBase->makeFileContents('/Users/crea11/S...', Array)
#24 my-app/modules/backend/widgets/lists/partials/_list.php(20): Backend\Classes\WidgetBase->makePartial('_list_body_rows')
#25 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#26 my-app/modules/system/traits/ViewMaker.php(103): Backend\Classes\WidgetBase->makeFileContents('/Users/crea11/S...', Array)
#27 my-app/modules/backend/widgets/lists/partials/_list-container.php(2): Backend\Classes\WidgetBase->makePartial('_list')
#28 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#29 my-app/modules/system/traits/ViewMaker.php(103): Backend\Classes\WidgetBase->makeFileContents('/Users/crea11/S...', Array)
#30 my-app/modules/backend/widgets/Lists.php(233): Backend\Classes\WidgetBase->makePartial('_list-container')
#31 my-app/modules/backend/behaviors/listcontroller/partials/_container.php(10): Backend\Widgets\Lists->render()
#32 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#33 my-app/modules/backend/classes/ControllerBehavior.php(134): Backend\Classes\Controller->makeFileContents('/Users/crea11/S...', Array)
#34 my-app/modules/system/traits/ViewMaker.php(103): Backend\Classes\ControllerBehavior->makeFileContents('/Users/crea11/S...', Array)
#35 my-app/modules/backend/behaviors/ListController.php(459): Backend\Classes\ControllerBehavior->makePartial('_container', Array)
#36 my-app/modules/backend/behaviors/ListController.php(446): Backend\Behaviors\ListController->listMakePartial('container', Array)
#37 [internal function]: Backend\Behaviors\ListController->listRender()
#38 my-app/vendor/october/rain/src/Extension/ExtendableTrait.php(504): call_user_func_array(Array, Array)
#39 my-app/vendor/october/rain/src/Extension/Extendable.php(55): October\Rain\Extension\Extendable->extendableCall('listRender', Array)
#40 my-app/plugins/offline/mall/controllers/products/index.htm(1): October\Rain\Extension\Extendable->__call('listRender', Array)
#41 my-app/modules/system/traits/ViewMaker.php(272): include('/Users/crea11/S...')
#42 my-app/modules/system/traits/ViewMaker.php(117): Backend\Classes\Controller->makeFileContents('/Users/crea11/S...')
#43 my-app/modules/backend/classes/Controller.php(406): Backend\Classes\Controller->makeView('index')
#44 my-app/modules/backend/classes/Controller.php(274): Backend\Classes\Controller->execPageAction('index', Array)
#45 my-app/modules/backend/classes/BackendController.php(137): Backend\Classes\Controller->run('index', Array)
#46 my-app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Backend\Classes\BackendController->run('offline/mall/pr...')
#47 my-app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction('run', Array)
#48 my-app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Backend\Classes\BackendController), 'run')
#49 my-app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#50 my-app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\Routing\Route->run()
#51 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#52 my-app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#53 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#54 my-app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#55 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#56 my-app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#57 my-app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest(Object(Illuminate\Http\Request), Object(Illuminate\Session\Store), Object(Closure))
#58 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#59 my-app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#60 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#61 my-app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#62 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#63 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#64 my-app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(797): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#65 my-app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#66 my-app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#67 my-app/vendor/october/rain/src/Router/CoreRouter.php(32): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#68 my-app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): October\Rain\Router\CoreRouter->dispatch(Object(Illuminate\Http\Request))
#69 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#70 my-app/plugins/rainlab/debugbar/middleware/InjectDebugbar.php(31): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#71 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): RainLab\Debugbar\Middleware\InjectDebugbar->handle(Object(Illuminate\Http\Request), Object(Closure))
#72 my-app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#73 my-app/vendor/october/rain/src/Foundation/Http/Middleware/CheckForMaintenanceMode.php(23): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#74 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): October\Rain\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#75 my-app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#76 my-app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#77 my-app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#78 my-app/index.php(42): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#79 ~/.composer/vendor/laravel/valet/server.php(110): require('/Users/crea11/S...')
#80 {main}
SamBrishes commented 2 months ago

Hello,

And in the Users page in backend:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.offline_mall_customer_group_id' in [...]

doesn't seem to be a v3 specific issue, more of a migration / upgrade one. The column already existed before + neither RainLab.User nor OFFLINE.Mall removed or re-installed the related table...

  1. While upgrading RainLab.User, did you possibly uninstalled the v2 version of the plugin beforehand or rollback' the migrations?
  2. Did you already had a previous version of the Mall plugin installed, or was it a completely fresh installation?

You could theoretically re-install OFFLINE.Mall, but this would destroy all tables (including customers, products, orders, and so on...) using php artisan plugin:refresh OFFLINE.Mall.

Sincerely,\ Sam.

cyril-design commented 2 months ago

Thanks for your time Sam.

  1. I have just done a October:update (before Mall v3.1: Rainlab.user cannot be upgrade to major version)
  2. Our app runs Mall plugin since about 2 years

Production app runs ok with Mall v3.1 and Rainlab.User v2. I have mirrored prod app on an another local machine and I have got the same problems when I update Mall + User

Have you encountered any other similar problems?

Thanks !