https://sw6.liamoria.de/navigation/99748dc87d2b4e80ae2bbc9636c9a6b5

Exceptions

Shopware\Core\Content\Product\SalesChannel\SalesChannelProductEntity::getCalculatedPrice(): Return value must be of type Shopware\Core\Checkout\Cart\Price\Struct\CalculatedPrice, null returned

  • Exception
  • Logs
  • Stack Trace

TypeError

  1.         return $this->calculatedPrices;
  2.     }
  3.     public function getCalculatedPrice(): CalculatedPrice
  4.     {
  5.         return $this->calculatedPrice;
  6.     }
  7.     public function setCalculatedPrice(CalculatedPrice $calculatedPrice): void
  8.     {
  9.         $this->calculatedPrice $calculatedPrice;
in vendor/twig/twig/src/Extension/CoreExtension.php -> getCalculatedPrice (line 1607)
  1.     }
  2.     // Some objects throw exceptions when they have __call, and the method we try
  3.     // to call is not supported. If ignoreStrictCheck is true, we should return null.
  4.     try {
  5.         $ret $object->$method(...$arguments);
  6.     } catch (\BadMethodCallException $e) {
  7.         if ($call && ($ignoreStrictCheck || !$env->isStrictVariables())) {
  8.             return;
  9.         }
  10.         throw $e;
  1.                 return $object->$getter();
  2.             }
  3.             return twig_get_attribute($env$source$object$item$arguments$type$isDefinedTest$ignoreStrictCheck$sandboxed$lineno);
  4.         } catch (\Throwable $e) {
  5.             return twig_get_attribute($env$source$object$item$arguments$type$isDefinedTest$ignoreStrictCheck$sandboxed$lineno);
  6.         } finally {
  7.             FieldVisibility::$isInTwigRenderingContext false;
  8.         }
  9.     }
  10. }
  1.             if (sw_get_attribute($this->env$this->source$context["product"], "priceRange", [], "any"falsefalsefalse1)) {
  2.                 echo sw_escape_filter($this->envsw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->source$context["product"], "calculatedListingPrice", [], "any"falsefalsefalse1), "to", [], "any"falsefalsefalse1), "unitPrice", [], "any"falsefalsefalse1), "html"nulltrue);
  3.             } elseif ((twig_length_filter($this->envsw_get_attribute($this->env$this->source$context["product"], "calculatedPrices", [], "any"falsefalsefalse1)) == 1)) {
  4.                 echo sw_escape_filter($this->envsw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->source$context["product"], "calculatedPrices", [], "any"falsefalsefalse1), "first", [], "any"falsefalsefalse1), "unitPrice", [], "any"falsefalsefalse1), "html"nulltrue);
  5.             } else {
  6.                 echo sw_escape_filter($this->envsw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->source$context["product"], "calculatedPrice", [], "any"falsefalsefalse1), "unitPrice", [], "any"falsefalsefalse1), "html"nulltrue);
  7.             }
  8.             echo "\",\"position\":\"";
  9.             echo sw_escape_filter($this->env, (sw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->sourcesw_get_attribute($this->env$this->source, ($context["page"] ?? null), "cmsPage", [], "any"falsefalsefalse1), "sections", [], "any"falsefalsefalse1), "blocks", [], "any"falsefalsefalse1), "filterBySectionPosition", [=> "main"], "method"falsefalsefalse1), "slots", [], "any"falsefalsefalse1), "getSlot", [=> "content"], "method"falsefalsefalse1), "data", [], "any"falsefalsefalse1), "listing", [], "any"falsefalsefalse1), "criteria", [], "any"falsefalsefalse1), "offset", [], "any"falsefalsefalse1) + sw_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse1)), "html"nulltrue);
  10.             echo "\",\"id\":\"";
  11.             echo sw_escape_filter($this->envsw_get_attribute($this->env$this->source$context["product"], "productNumber", [], "any"falsefalsefalse1), "html"nulltrue);
in vendor/twig/twig/src/Template.php -> doDisplay (line 394)
  1.     }
  2.     protected function displayWithErrorHandling(array $context, array $blocks = [])
  3.     {
  4.         try {
  5.             $this->doDisplay($context$blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
in vendor/twig/twig/src/Template.php -> displayWithErrorHandling (line 367)
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = [])
  4.     {
  5.         $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks$blocks));
  6.     }
  7.     public function render(array $context)
  8.     {
  9.         $level ob_get_level();
in vendor/twig/twig/src/Template.php -> display (line 379)
  1.             ob_start();
  2.         } else {
  3.             ob_start(function () { return ''; });
  4.         }
  5.         try {
  6.             $this->display($context);
  7.         } catch (\Throwable $e) {
  8.             while (ob_get_level() > $level) {
  9.                 ob_end_clean();
  10.             }
  1.     public function render(array $context = []): string
  2.     {
  3.         // using func_get_args() allows to not expose the blocks argument
  4.         // as it should only be used by internal code
  5.         return $this->template->render($context\func_get_args()[1] ?? []);
  6.     }
  7.     public function display(array $context = [])
  8.     {
  9.         // using func_get_args() allows to not expose the blocks argument
TemplateWrapper->render(array('context' => object(SalesChannelContext), 'page' => object(NavigationPage), 'swagSecurity' => object(State), 'hrefLang' => object(HreflangCollection), 'appShopId' => '2XsZwWSXf2erlJzK', 'themeIconConfig' => array(), 'trustedshops' => array('tsAvailableProductDeliveryTime' => 'default', 'tsProductRatingStarsStarSize' => 15, 'tsProductRatingStarsHideEmptyRatings' => false, 'tsExpertRichSnippetsCode' => '<script type="application/ld+json">{ "@context": "http://schema.org", "@type": "Organization", "name": "%shopname%", "aggregateRating" : { "@type": "AggregateRating", "ratingValue" : "%result%", "bestRating" : "%max%", "ratingCount" : "%count%" }}</script>', 'tsReviewStickerExpertMode' => false, 'tsTrustbadgeExpertMode' => false, 'tsRichSnippetsPageTypeStart' => false, 'tsExpertReviewStickerCode' => '<script type="text/javascript">(function() { _tsRatingConfig = { tsid: \'%tsid%\', variant: \'testimonial\', theme: \'light\', reviews: \'5\', betterThan: \'3.0\', richSnippets: \'off\', backgroundColor: \'#ffdc0f\', linkColor: \'#000000\', quotationMarkColor: \'#FFFFFF\', fontFamily: \'Arial\', reviewMinLength: \'10\' }; var scripts = document.getElementsByTagName(\'SCRIPT\'), me = scripts[scripts.length - 1]; var _ts = document.createElement(\'SCRIPT\'); _ts.type = \'text/javascript\'; _ts.async = true; _ts.src = \'//widgets.trustedshops.com/reviews/tsSticker/tsSticker.js\'; me.parentNode.insertBefore(_ts, me); _tsRatingConfig.script = _ts;})();</script>', 'tsProductReviewsTabExpertMode' => false, 'tsProductReviewsTabName' => 'Trusted Shops Bewertungen', 'tsId' => 'X7F655A51F142087B9BF21D63258B319E', 'tsReviewStickerBackgroundColor' => '#ffdc0f', 'tsProductRatingStarsStarColor' => '#FFDC0F', 'tsReviewStickerMinRating' => 3, 'tsExpertTrustbadeCode' => '<script type="text/javascript">(function () { var _tsid = \'%tsid%\'; _tsConfig = { \'yOffset\': \'0\', /* offset from page bottom */ \'variant\': \'default\', /* reviews, default, custom, custom_reviews */ \'customElementId\': \'\', /* required for variants custom and custom_reviews */ \'trustcardDirection\': \'\', /* for custom variants: topRight, topLeft, bottomRight, bottomLeft */ \'customBadgeWidth\': \'\', /* for custom variants: 40 - 90 (in pixels) */ \'customBadgeHeight\': \'\', /* for custom variants: 40 - 90 (in pixels) */ \'disableResponsive\': \'false\', /* deactivate responsive behaviour */ \'disableTrustbadge\': \'false\', /* deactivate Trustbadge® */ \'responsive\': { \'variant\': \'\', /* floating, custom */ \'customElementId\': \'\' /* required for variant custom */ } }; var _ts = document.createElement(\'script\'); _ts.type = \'text/javascript\'; _ts.charset = \'utf-8\'; _ts.async = true; _ts.src = \'//widgets.trustedshops.com/js/\' + _tsid + \'.js\'; var __ts = document.getElementsByTagName(\'script\')[0]; __ts.parentNode.insertBefore(_ts, __ts);})();</script>', 'tsProductRatingStarsExpertMode' => false, 'tsTrustbadgeVariant' => 'reviews', 'tsAvailableProductDeliveryTimeDays' => 4, 'tsExpertProductRatingStarsJquerySelector' => '', 'tsProductReviewsTabActive' => false, 'tsExpertProductReviewsTabJquerySelector' => '', 'tsProductRatingStarsDetailsActive' => false, 'tsProductReviewsTabStarSize' => 15, 'tsNotAvailableProductDeliveryTime' => 'default', 'tsRichSnippetsActive' => false, 'tsProductReviewsTabBackgroundColor' => '#FFFFFF', 'tsTrustbadgeOffsetY' => 0, 'tsNotAvailableProductDeliveryTimeDays' => 10, 'tsRichSnippetsExpertMode' => false, 'tsExpertReviewStickerJquerySelector' => '', 'tsProductReviewsTabStarColor' => '#FFDC0F', 'tsProductRatingStarsCategoryActive' => false, 'tsReviewStickerActive' => true, 'tsRichSnippetsPageTypeProduct' => false, 'tsProductReviewsTabBorderColor' => '#0DBEDC', 'tsReviewStickerReviewCount' => 5, 'tsRichSnippetsPageTypeCategory' => false, 'tsProductRatingStarsFontSize' => 12, 'tsExpertProductRatingStarsCode' => '<script type="text/javascript" src="//widgets.trustedshops.com/reviews/tsSticker/tsProductStickerSummary.js"></script><script type="text/javascript">(function() { var summaryBadge = new productStickerSummary(); summaryBadge.showSummary( { \'tsId\': "%tsid%", \'sku\': [\'%sku%\'], \'element\': \'#ts_product_widget_position\', \'starColor\' : \'#FFDC0F\', \'starSize\' : \'14px\', \'fontSize\' : \'12px\', \'showRating\' : \'true\' , \'scrollToReviews\' : \'false\' , \'enablePlaceholder\': \'true\' } );})();</script>', 'tsExpertProductReviewsTabCode' => '<script type="text/javascript">(function () { _tsProductReviewsConfig = { tsid: \'%tsid%\', sku: [\'%sku%\'], variant: \'productreviews\', borderColor: \'#0DBEDC\', backgroundColor: \'#ffffff\', element: \'#ts_product_sticker\', locale: \'%locale%\', starColor: \'#FFDC0F\', starSize: \'15px\', richSnippets: \'off\', ratingSummary: \'false\', maxHeight: \'1200px\', hideEmptySticker: \'false\', introtext: \'What our customers say about us:\' /* optional */ }; var scripts = document.getElementsByTagName(\'SCRIPT\'), me = scripts[scripts.length - 1]; var _ts = document.createElement(\'SCRIPT\'); _ts.type = \'text/javascript\'; _ts.async = true; _ts.charset = \'utf-8\'; _ts.src =\'//widgets.trustedshops.com/reviews/tsSticker/tsProductSticker.js\'; me.parentNode.insertBefore(_ts, me); _tsProductReviewsConfig.script = _ts;})();</script>', 'tsProductReviewsActive' => true, 'tsReviewStickerFontType' => 'Arial'), 'cutvertCartCrossselling' => array(), 'mollie_applepaydirect_enabled' => false, 'mollie_applepaydirect_restrictions' => array(), 'mollie_subscriptions_enabled' => true, 'cutvertEventList' => object(NavigationPage), 'cutvertNavigationId' => '99748dc87d2b4e80ae2bbc9636c9a6b5', 'cutvertSeoConfig' => array('sundayClose' => '', 'wednesdayOpen' => '', 'sundayOpen' => '', 'thursdayClose' => '', 'saturdayOpen' => '', 'mondayOpen' => '08:00', 'mondayClose' => '18:00', 'street' => '', 'instagram' => '', 'twitter' => '', 'tuesdayClose' => '', 'fridayOpen' => '', 'country' => '', 'postalCode' => '', 'tuesdayOpen' => '', 'facebook' => '', 'state' => '', 'wednesdayClose' => '', 'fridayClose' => '', 'saturdayClose' => '', 'thursdayOpen' => '', 'houseNumber' => '', 'youtube' => '', 'telnumber' => ''))) in custom/plugins/WbmTagManagerEcomm/src/Services/DataLayerRenderer.php (line 54)
  1.         $dataLayer $this->fillValues($properties);
  2.         try {
  3.             $template $this->twig->createTemplate($dataLayer);
  4.             $dataLayer $template->render($this->getVariables($route));
  5.             $dataLayer preg_replace('/[[:cntrl:]]/'''$dataLayer);
  6.             $dataLayer json_decode($dataLayertrue);
  7.             if (json_last_error() > 0) {
  8.                 throw new \Exception(json_last_error_msg(), 1620985321);
  9.             }
DataLayerRenderer->renderDataLayer('frontend.navigation.page') in custom/plugins/WbmTagManagerEcomm/src/Subscriber/StorefrontRenderSubscriber.php (line 67)
  1.         } else {
  2.             $parameters $event->getParameters();
  3.             $modules $this->modules->getModules();
  4.             if (array_key_exists($route$modules)) {
  5.                 $dataLayer $this->dataLayerRenderer->setVariables($route$parameters)->renderDataLayer($route);
  6.                 $dataLayer $dataLayer->getDataLayer($route);
  7.             }
  8.         }
  9.         if (!$event->getRequest()->isXmlHttpRequest()) {
  1.         $this->called true;
  2.         $this->priority $dispatcher->getListenerPriority($eventName$this->listener);
  3.         $e $this->stopwatch->start($this->name'event_listener');
  4.         ($this->optimizedListener ?? $this->listener)($event$eventName$dispatcher);
  5.         if ($e->isStarted()) {
  6.             $e->stop();
  7.         }
  1.         foreach ($listeners as $listener) {
  2.             if ($stoppable && $event->isPropagationStopped()) {
  3.                 break;
  4.             }
  5.             $listener($event$eventName$this);
  6.         }
  7.     }
  8.     /**
  9.      * Sorts the internal list of listeners for the given event by priority.
  1.         } else {
  2.             $listeners $this->getListeners($eventName);
  3.         }
  4.         if ($listeners) {
  5.             $this->callListeners($listeners$eventName$event);
  6.         }
  7.         return $event;
  8.     }
  1.      *
  2.      * @return TEvent
  3.      */
  4.     public function dispatch($event, ?string $eventName null): object
  5.     {
  6.         $event $this->dispatcher->dispatch($event$eventName);
  7.         if (!$event instanceof FlowEventAware) {
  8.             return $event;
  9.         }
  1.      *
  2.      * @return TEvent
  3.      */
  4.     public function dispatch($event, ?string $eventName null): object
  5.     {
  6.         $event $this->dispatcher->dispatch($event$eventName);
  7.         if (EnvironmentHelper::getVariable('DISABLE_EXTENSIONS'false)) {
  8.             return $event;
  9.         }
  1.         $this->definitionRegistry $definitionRegistry;
  2.     }
  3.     public function dispatch($event, ?string $eventName null): object
  4.     {
  5.         $event $this->dispatcher->dispatch($event$eventName);
  6.         if (Feature::isActive('FEATURE_NEXT_17858')) {
  7.             return $event;
  8.         }
  1.                 }
  2.                 $this->dispatch($nested$name);
  3.             }
  4.         }
  5.         return $this->dispatcher->dispatch($event$eventName);
  6.     }
  7.     /**
  8.      * @param callable $listener can not use native type declaration @see https://github.com/symfony/symfony/issues/42283
  9.      */
  1.         try {
  2.             $this->beforeDispatch($eventName$event);
  3.             try {
  4.                 $e $this->stopwatch->start($eventName'section');
  5.                 try {
  6.                     $this->dispatcher->dispatch($event$eventName);
  7.                 } finally {
  8.                     if ($e->isStarted()) {
  9.                         $e->stop();
  10.                     }
  11.                 }
  1.         } else {
  2.             $inheritedView $this->getTemplateFinder()->find($view);
  3.             $event = new StorefrontRenderEvent($inheritedView$parameters$request$salesChannelContext);
  4.         }
  5.         $this->container->get('event_dispatcher')->dispatch($event);
  6.         $iconCacheEnabled $this->getSystemConfigService()->get('core.storefrontSettings.iconCache');
  7.         /** @deprecated tag:v6.5.0 - icon cache will be true by default. */
  8.         if ($iconCacheEnabled || (Feature::isActive('v6.5.0.0') && $iconCacheEnabled === null)) {
  1.     {
  2.         $page $this->navigationPageLoader->load($request$context);
  3.         $this->hook(new NavigationPageLoadedHook($page$context));
  4.         return $this->renderStorefront('@Storefront/storefront/page/content/index.html.twig', ['page' => $page]);
  5.     }
  6.     /**
  7.      * @Since("6.0.0.0")
  8.      * @HttpCache()
  1.         $this->dispatcher->dispatch($eventKernelEvents::CONTROLLER_ARGUMENTS);
  2.         $controller $event->getController();
  3.         $arguments $event->getArguments();
  4.         // call controller
  5.         $response $controller(...$arguments);
  6.         // view
  7.         if (!$response instanceof Response) {
  8.             $event = new ViewEvent($this$request$type$response);
  9.             $this->dispatcher->dispatch($eventKernelEvents::VIEW);
  1.     public function handle(Request $requestint $type HttpKernelInterface::MAIN_REQUESTbool $catch true)
  2.     {
  3.         $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  4.         try {
  5.             return $this->handleRaw($request$type);
  6.         } catch (\Exception $e) {
  7.             if ($e instanceof RequestExceptionInterface) {
  8.                 $e = new BadRequestHttpException($e->getMessage(), $e);
  9.             }
  10.             if (false === $catch) {
  1.         $this->boot();
  2.         ++$this->requestStackSize;
  3.         $this->resetServices true;
  4.         try {
  5.             return $this->getHttpKernel()->handle($request$type$catch);
  6.         } finally {
  7.             --$this->requestStackSize;
  8.         }
  9.     }
  1.         if (!IpUtils::checkIp('127.0.0.1'$trustedProxies)) {
  2.             Request::setTrustedProxies(array_merge($trustedProxies, ['127.0.0.1']), Request::getTrustedHeaderSet());
  3.         }
  4.         try {
  5.             return $kernel->handle($request$type$catch);
  6.         } finally {
  7.             // restore global state
  8.             Request::setTrustedProxies($trustedProxies$trustedHeaderSet);
  9.         }
  10.     }
  1.         if ($this->surrogate) {
  2.             $this->surrogate->addSurrogateCapability($request);
  3.         }
  4.         // always a "master" request (as the real master request can be in cache)
  5.         $response SubRequestHandler::handle($this->kernel$requestHttpKernelInterface::MAIN_REQUEST$catch);
  6.         /*
  7.          * Support stale-if-error given on Responses or as a config option.
  8.          * RFC 7234 summarizes in Section 4.2.4 (but also mentions with the individual
  9.          * Cache-Control directives) that
  1.         // avoid that the backend sends no content
  2.         $subRequest->headers->remove('If-Modified-Since');
  3.         $subRequest->headers->remove('If-None-Match');
  4.         $response $this->forward($subRequest$catch);
  5.         if ($response->isCacheable()) {
  6.             $this->store($request$response);
  7.         }
  1.         }
  2.         if (null === $entry) {
  3.             $this->record($request'miss');
  4.             return $this->fetch($request$catch);
  5.         }
  6.         if (!$this->isFreshEnough($request$entry)) {
  7.             $this->record($request'stale');
  1.                 reload the cache by fetching a fresh response and caching it (if possible).
  2.             */
  3.             $this->record($request'reload');
  4.             $response $this->fetch($request$catch);
  5.         } else {
  6.             $response $this->lookup($request$catch);
  7.         }
  8.         $this->restoreResponseBody($request$response);
  9.         if (HttpKernelInterface::MAIN_REQUEST === $type) {
  1.             && $container->getParameter('shopware.http.cache.enabled');
  2.         if ($enabled && $container->has(CacheStore::class)) {
  3.             $kernel = new HttpCache($kernel$container->get(CacheStore::class), null, ['debug' => $this->debug]);
  4.         }
  5.         $response $kernel->handle($transformed$type$catch);
  6.         // fire event to trigger runtime events like seo url headers
  7.         $event = new BeforeSendResponseEvent($transformed$response);
  8.         $container->get('event_dispatcher')->dispatch($event);
in vendor/shopware/core/HttpKernel.php -> doHandle (line 79)
  1.     }
  2.     public function handle(Request $request$type HttpKernelInterface::MASTER_REQUEST$catch true): HttpKernelResult
  3.     {
  4.         try {
  5.             return $this->doHandle($request, (int) $type, (bool) $catch);
  6.         } catch (DBALException $e) {
  7.             $connectionParams self::getConnection()->getParams();
  8.             $message str_replace([$connectionParams['url'], $connectionParams['password'], $connectionParams['user']], '******'$e->getMessage());
HttpKernel->handle(object(Request)) in public/index.php (line 74)
  1. if ($_SERVER['COMPOSER_PLUGIN_LOADER'] ?? $_SERVER['DISABLE_EXTENSIONS'] ?? false) {
  2.     $kernel->setPluginLoader(new \Shopware\Core\Framework\Plugin\KernelPluginLoader\ComposerPluginLoader($classLoader));
  3. }
  4. $result $kernel->handle($request);
  5. $result->getResponse()->send();
  6. $kernel->terminate($result->getRequest(), $result->getResponse());