BasketController :: basketIndex
Request
GET Parameters
None
POST Parameters
None
Uploaded Files
None
Request Attributes
| Key | Value |
|---|---|
| _controller | "Ops\OpsFrontendBundle\Controller\BasketController::basketIndex" |
| _firewall_context | "security.firewall.map.context.secured_area" |
| _redirected | true |
| _remove_csp_headers | true |
| _route | "basket_index" |
| _route_params | [] |
| _security_firewall_run | "_security_secured_area" |
| _stopwatch_token | "9b2628" |
Request Headers
| Header | Value |
|---|---|
| accept | "*/*" |
| accept-encoding | "gzip, br, zstd, deflate" |
| cookie | "sf_redirect=%7B%22token%22%3A%22008e5e%22%2C%22route%22%3A%22basket_campaignsIndex%22%2C%22method%22%3A%22GET%22%2C%22controller%22%3A%7B%22class%22%3A%22Ops%5C%5COpsFrontendBundle%5C%5CController%5C%5CBasketController%22%2C%22method%22%3A%22basketcampaignsIndex%22%2C%22file%22%3A%22%5C%2Fhome%5C%2Fcelloglas%5C%2Fpublic_html%5C%2Fdev.celloglas.co.uk%5C%2Fopsfrontendbundle%5C%2FOpsFrontendBundle%5C%2Fsrc%5C%2FController%5C%2FBasketController.php%22%2C%22line%22%3A408%7D%2C%22status_code%22%3A302%2C%22status_text%22%3A%22Found%22%7D" |
| host | "dev.celloglas.co.uk" |
| referer | "https://dev.celloglas.co.uk/basket-campaigns" |
| user-agent | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" |
| x-php-ob-level | "0" |
Request Content
Request content not available (it was retrieved as a resource).
Response
Response Headers
| Header | Value |
|---|---|
| cache-control | "no-cache, private" |
| content-type | "text/html; charset=UTF-8" |
| date | "Sat, 06 Dec 2025 03:38:28 GMT" |
| x-debug-exception | "Variable%20%22restrictdelivery%22%20does%20not%20exist." |
| x-debug-exception-file | "%2Fhome%2Fcelloglas%2Fpublic_html%2Fdev.celloglas.co.uk%2Fopsfrontendbundle%2FOpsFrontendBundle%2Fsrc%2Ftemplates%2Fbasket%2Fbasket.html.twig:694" |
| x-debug-token | "ee8baa" |
| x-debug-token-link | "https://dev.celloglas.co.uk/_profiler/f8b4f7" |
| x-previous-debug-token | "f8b4f7" |
| x-robots-tag | "noindex" |
Cookies
Request Cookies
| Key | Value |
|---|---|
| sf_redirect | "{"token":"008e5e","route":"basket_campaignsIndex","method":"GET","controller":{"class":"Ops\\OpsFrontendBundle\\Controller\\BasketController","method":"basketcampaignsIndex","file":"\/home\/celloglas\/public_html\/dev.celloglas.co.uk\/opsfrontendbundle\/OpsFrontendBundle\/src\/Controller\/BasketController.php","line":408},"status_code":302,"status_text":"Found"}" |
Response Cookies
No response cookies
Session 11
Session Metadata
| Key | Value |
|---|---|
| Created | "Sat, 06 Dec 25 03:38:28 +0000" |
| Last used | "Sat, 06 Dec 25 03:38:28 +0000" |
| Lifetime | 0 |
Session Attributes
No session attributes
Session Usage
11
Usages
Stateless check enabled
| Usage |
|---|
Ops\OpsFrontendBundle\Services\SessionIdleHandler:59
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/Services/SessionIdleHandler.php"
"line" => 59
"function" => "start"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelRequest"
"class" => "Ops\OpsFrontendBundle\Services\SessionIdleHandler"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 159
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Ops\OpsFrontendBundle\Services\SessionIdleHandler:60
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/Services/SessionIdleHandler.php"
"line" => 60
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelRequest"
"class" => "Ops\OpsFrontendBundle\Services\SessionIdleHandler"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 159
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Ops\OpsFrontendBundle\Controller\BasketController:301
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/Controller/BasketController.php"
"line" => 301
"function" => "remove"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 183
"function" => "basketIndex"
"class" => "Ops\OpsFrontendBundle\Controller\BasketController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Ops\OpsFrontendBundle\Controller\BasketController:310
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/Controller/BasketController.php"
"line" => 310
"function" => "has"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 183
"function" => "basketIndex"
"class" => "Ops\OpsFrontendBundle\Controller\BasketController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage:41
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/security-core/Authentication/Token/Storage/UsageTrackingTokenStorage.php"
"line" => 41
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/twig-bridge/AppVariable.php"
"line" => 92
"function" => "getToken"
"class" => "Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Extension/CoreExtension.php"
"line" => 1629
"function" => "getUser"
"class" => "Symfony\Bridge\Twig\AppVariable"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/e7/e75f826dbdda8af99c1d908d7b16a5a8.php"
"line" => 63
"function" => "getAttribute"
"class" => "Twig\Extension\CoreExtension"
"type" => "::"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 360
"function" => "doDisplay"
"class" => "__TwigTemplate_903d10893dae6ebff62fafd6c3716a34"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/bd/bd1e7465763b6059ca206e8fecfbf543.php"
"line" => 176
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 360
"function" => "doDisplay"
"class" => "__TwigTemplate_aa6bb062262021b7e95b9def56dad025"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/0a/0a273146f78a448236ec80001ce03cb9.php"
"line" => 74
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 360
"function" => "doDisplay"
"class" => "__TwigTemplate_1c74ee171c0c337555bb0b95f29f7b19"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/17/172379f0c55c251e6d8010b22c2bd1fb.php"
"line" => 56
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 360
"function" => "doDisplay"
"class" => "__TwigTemplate_a94874e4b1eee4b2e706c668ceb75053"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 335
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/TemplateWrapper.php"
"line" => 38
"function" => "render"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Environment.php"
"line" => 307
"function" => "render"
"class" => "Twig\TemplateWrapper"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 431
"function" => "render"
"class" => "Twig\Environment"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 436
"function" => "doRenderView"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 250
"function" => "doRender"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/Controller/BasketController.php"
"line" => 312
"function" => "render"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 183
"function" => "basketIndex"
"class" => "Ops\OpsFrontendBundle\Controller\BasketController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Twig\Extension\CoreExtension:1629
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Extension/CoreExtension.php"
"line" => 1629
"function" => "get"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/17/172379f0c55c251e6d8010b22c2bd1fb.php"
"line" => 205
"function" => "getAttribute"
"class" => "Twig\Extension\CoreExtension"
"type" => "::"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 430
"function" => "block_body"
"class" => "__TwigTemplate_a94874e4b1eee4b2e706c668ceb75053"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/bd/bd1e7465763b6059ca206e8fecfbf543.php"
"line" => 188
"function" => "yieldBlock"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 360
"function" => "doDisplay"
"class" => "__TwigTemplate_aa6bb062262021b7e95b9def56dad025"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/0a/0a273146f78a448236ec80001ce03cb9.php"
"line" => 74
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 360
"function" => "doDisplay"
"class" => "__TwigTemplate_1c74ee171c0c337555bb0b95f29f7b19"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/var/cache/dev/twig/17/172379f0c55c251e6d8010b22c2bd1fb.php"
"line" => 56
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 360
"function" => "doDisplay"
"class" => "__TwigTemplate_a94874e4b1eee4b2e706c668ceb75053"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Template.php"
"line" => 335
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/TemplateWrapper.php"
"line" => 38
"function" => "render"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/twig/twig/src/Environment.php"
"line" => 307
"function" => "render"
"class" => "Twig\TemplateWrapper"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 431
"function" => "render"
"class" => "Twig\Environment"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 436
"function" => "doRenderView"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 250
"function" => "doRender"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/Controller/BasketController.php"
"line" => 312
"function" => "render"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 183
"function" => "basketIndex"
"class" => "Ops\OpsFrontendBundle\Controller\BasketController"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:68
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 68
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:69
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 69
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:70
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 70
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:71
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 71
"function" => "all"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:72
[
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 72
"function" => "getFlashBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php"
"line" => 5
"args" => [
"/home/celloglas/public_html/dev.celloglas.co.uk/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Flashes
Flashes
No flash messages were created.
Server Parameters
Server Parameters
Defined in .env
| Key | Value |
|---|---|
| API_CLIENTID | "0" |
| API_COMPANY | "celloglas" |
| API_DOMAIN | "https://print-ops.com" |
| API_KEY_PUBLIC | "SiXNebjX5mTkLZldxfDG0rK4GqiSddKkksPCdd" |
| APP_ENV | "dev" |
| APP_SECRET | "2ca64f8d83b9e89f5f19d672841d6bb8" |
| CDN_DOMAIN | "https://ops.celloglas.co.uk" |
| COMPANY_NAME | "Celloglas Mirri" |
| CONTACT_EMAIL | "thealefactory@celloglas.co.uk" |
| EWZ_RECAPTCHA_SECRET | "6LetkCEqAAAAADh5nWVJNwbrOIoC8_pkbz3ej_ro" |
| EWZ_RECAPTCHA_SITE_KEY | "6LetkCEqAAAAAMKALOSBhpt4iUUkLWFir0GYhnp-" |
| GOOGLE_MAPS_KEY | "AIzaSyC_R7ekthtQ0Xa8u0orlv9ugiS79a3Qf_w" |
| GOOGLE_RECAPTCHA_SECRET | "6LetkCEqAAAAADh5nWVJNwbrOIoC8_pkbz3ej_ro" |
| GOOGLE_RECAPTCHA_SITE_KEY | "6LetkCEqAAAAAMKALOSBhpt4iUUkLWFir0GYhnp-" |
| HAS_BLOG | "1" |
| LOCK_DSN | "flock" |
| MAILER_DSN | "native://default" |
| SITE_DESC | "Bristol Printers JamJar Print for all your printing needs: flyers, leaflets, business cards, posters, etc. Best for prices, quality and service." |
| TWITTER_HANDLE | "@celloglas" |
Defined as regular env variables
| Key | Value |
|---|---|
| APP_DEBUG | "1" |
| CONTEXT_DOCUMENT_ROOT | "/home/celloglas/public_html/dev.celloglas.co.uk/public" |
| CONTEXT_PREFIX | "" |
| DOCUMENT_ROOT | "/home/celloglas/public_html/dev.celloglas.co.uk/public" |
| FCGI_ROLE | "RESPONDER" |
| GATEWAY_INTERFACE | "CGI/1.1" |
| H2PUSH | "off" |
| H2_PUSH | "off" |
| H2_PUSHED | "" |
| H2_PUSHED_ON | "" |
| H2_STREAM_ID | "5" |
| H2_STREAM_TAG | "698545-14-5" |
| HOME | "/home/celloglas" |
| HTTP2 | "on" |
| HTTPS | "on" |
| HTTP_ACCEPT | "*/*" |
| HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate" |
| HTTP_COOKIE | "sf_redirect=%7B%22token%22%3A%22008e5e%22%2C%22route%22%3A%22basket_campaignsIndex%22%2C%22method%22%3A%22GET%22%2C%22controller%22%3A%7B%22class%22%3A%22Ops%5C%5COpsFrontendBundle%5C%5CController%5C%5CBasketController%22%2C%22method%22%3A%22basketcampaignsIndex%22%2C%22file%22%3A%22%5C%2Fhome%5C%2Fcelloglas%5C%2Fpublic_html%5C%2Fdev.celloglas.co.uk%5C%2Fopsfrontendbundle%5C%2FOpsFrontendBundle%5C%2Fsrc%5C%2FController%5C%2FBasketController.php%22%2C%22line%22%3A408%7D%2C%22status_code%22%3A302%2C%22status_text%22%3A%22Found%22%7D" |
| HTTP_HOST | "dev.celloglas.co.uk" |
| HTTP_REFERER | "https://dev.celloglas.co.uk/basket-campaigns" |
| HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" |
| PATH | "/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin" |
| PHP_SELF | "/index.php" |
| QUERY_STRING | "" |
| REDIRECT_H2PUSH | "off" |
| REDIRECT_H2_PUSH | "off" |
| REDIRECT_H2_PUSHED | "" |
| REDIRECT_H2_PUSHED_ON | "" |
| REDIRECT_H2_STREAM_ID | "5" |
| REDIRECT_H2_STREAM_TAG | "698545-14-5" |
| REDIRECT_HTTP2 | "on" |
| REDIRECT_HTTPS | "on" |
| REDIRECT_SSL_TLS_SNI | "dev.celloglas.co.uk" |
| REDIRECT_STATUS | "200" |
| REDIRECT_UNIQUE_ID | "aTOlNHO2ZnBYpvABHGxPyAACQhM" |
| REDIRECT_URL | "/basket" |
| REMOTE_ADDR | "216.73.216.50" |
| REMOTE_PORT | "55901" |
| REQUEST_METHOD | "GET" |
| REQUEST_SCHEME | "https" |
| REQUEST_TIME | 1764992308 |
| REQUEST_TIME_FLOAT | 1764992308.6535 |
| REQUEST_URI | "/basket" |
| SCRIPT_FILENAME | "/home/celloglas/public_html/dev.celloglas.co.uk/public/index.php" |
| SCRIPT_NAME | "/index.php" |
| SERVER_ADDR | "109.169.71.252" |
| SERVER_ADMIN | "webmaster@dev.celloglas.co.uk" |
| SERVER_NAME | "dev.celloglas.co.uk" |
| SERVER_PORT | "443" |
| SERVER_PROTOCOL | "HTTP/2.0" |
| SERVER_SIGNATURE | "" |
| SERVER_SOFTWARE | "Apache" |
| SSL_TLS_SNI | "dev.celloglas.co.uk" |
| SYMFONY_DOTENV_PATH | "/home/celloglas/public_html/dev.celloglas.co.uk/.env" |
| SYMFONY_DOTENV_VARS | "APP_ENV,APP_SECRET,MAILER_DSN,GOOGLE_RECAPTCHA_SITE_KEY,GOOGLE_RECAPTCHA_SECRET,EWZ_RECAPTCHA_SITE_KEY,EWZ_RECAPTCHA_SECRET,API_DOMAIN,API_KEY_PUBLIC,API_COMPANY,COMPANY_NAME,CDN_DOMAIN,API_CLIENTID,CONTACT_EMAIL,HAS_BLOG,GOOGLE_MAPS_KEY,TWITTER_HANDLE,SITE_DESC,LOCK_DSN" |
| UNIQUE_ID | "aTOlNHO2ZnBYpvABHGxPyAACQhM" |
| USER | "celloglas" |
| argc | 0 |
| argv | [] |
| proxy-nokeepalive | "1" |
Sub Requests 1
ErrorController (token = f8b4f7)
| Key | Value |
|---|---|
| _controller | "error_controller" |
| _stopwatch_token | "3157f3" |
| exception | Twig\Error\RuntimeError {#621 #message: "Variable "restrictdelivery" does not exist." #code: 0 #file: "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/templates/basket/basket.html.twig" #line: 694 -lineno: 694 -name: "@ops_frontend_bundle/basket/basket.html.twig" -rawMessage: "Variable "restrictdelivery" does not exist." -sourcePath: "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/templates/basket/basket.html.twig" -sourceCode: """ {% extends 'template.html.twig' %}\n \n {% block htmltitle %}Shopping Basket - {{ company_name }}{% endblock %}\n {% block metadesc %}{% endblock %}\n {% block metakeywords %}{% endblock %}\n \n {% block extrameta %}\n {% endblock %}\n {% block css %}\n <style>\n #worldpay{\n display: none;\n }\n </style>\n <link rel='stylesheet' href='https://payments.worldpay.com/resources/hpp/integrations/embedded/css/hpp-embedded-integration-library.css'/>\n \n {% endblock %}\n {% block headjavascripts %}\n <script src='https://payments.worldpay.com/resources/hpp/integrations/embedded/js/hpp-embedded-integration-library.js'></script>\n {% endblock %}\n \n {% block body %}\n {% if app.session.get('basket') is null or app.session.get('basket') == false %}\n <div id="section-basketempty" class="row my-5">\n <div class="col-12 text-center my-5">\n It looks like your basket is empty<br><br>\n <button class="btn btn-dark btn-md goto-referer">\n <span class="icon me-3 d-inline-block" style="width: 20px; fill: white">\n <svg class="icon-btn-cart" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663">\n <use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket.svg') }}#icon-basket">\n \n </use>\n </svg>\n </span>\n CONTINUE SHOPPING\n </button>\n </div>\n </div>\n {% else %}\n {% if formAddress is not null %}\n <div id="editAddress" class="container mb-5" style="display: none">\n <h2>Address</h2>\n {{ form_start(formAddress, { 'attr' : {'id': 'editAddressAjax', 'class': 'login row g-3' } }) }}\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_firstname) }}\n {{ form_label(formAddress.address_firstname) }}\n {{ form_widget(formAddress.address_firstname, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_lastname) }}\n {{ form_label(formAddress.address_lastname) }}\n {{ form_widget(formAddress.address_lastname, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_add1) }}\n {{ form_label(formAddress.address_add1) }}\n {{ form_widget(formAddress.address_add1, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_add2) }}\n {{ form_label(formAddress.address_add2) }}\n {{ form_widget(formAddress.address_add2, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_add3) }}\n {{ form_label(formAddress.address_add3) }}\n {{ form_widget(formAddress.address_add3, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_city) }}\n {{ form_label(formAddress.address_city) }}\n {{ form_widget(formAddress.address_city, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_county) }}\n {{ form_label(formAddress.address_county) }}\n {{ form_widget(formAddress.address_county, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_countrycode) }}\n {{ form_label(formAddress.address_countrycode) }}\n {{ form_widget(formAddress.address_countrycode, {'required': true,'attr': {'class': 'form-select'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_postcode) }}\n {{ form_label(formAddress.address_postcode) }}\n {{ form_widget(formAddress.address_postcode, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-12 text-center">\n <button class="btn btn-default show-windows" data-windowid="mainTab" type="button">Cancel</button>\n {{ form_widget(formAddress.address_add, {'attr': {'class': 'btn btn-default show-windows', 'data-windowid': 'mainTab'}}) }}\n </div>\n {{ form_rest(formAddress) }}\n {{ form_end(formAddress) }}\n </div>\n {% endif %}\n <div id="mainTab" class="container basket-mainTab">\n <form name="orderForm" id="orderForm" method="post" class="login">\n <input type="hidden" name="total" id="orderTotal">\n <div id="step-checkout-icons" class="row text-center px-md-4 mb-4 justify-content-around">\n <div class="step cart tab col-2 active">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket.svg') }}#icon-basket"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">1. Shopping<br>Basket</h5>\n </div>\n <div class="step checkout tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.094 48.094"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-delivery.svg') }}#icon-delivery"></use></svg>\n \n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">2. Checkout<br>and Delivery</h5>\n </div>\n <div class="step payment tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25'><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-pound.svg') }}#icon-pound"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">3. Payment</h5>\n </div>\n <div class="tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.047 59.977"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-complete.svg') }}#icon-complete"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">4. Order<br>Complete</h5>\n </div>\n <div class="tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13.142 16.008"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-upload.svg') }}#icon-upload"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">5. Artwork<br>Upload</h5>\n </div>\n \n </div>\n <div class="row justify-content-center mb-5">\n <div class="col-sm-11">\n <div class="progress active" role="progressbar" aria-valuemin="0" aria-valuemax="100">\n <div class="progress-bar progress-bar-striped progress-bar-animated bg-success" style="width:20%;" id="progressbar"></div>\n </div>\n </div>\n </div>\n \n {% if productpage_proof == 1 %}\n <div class="section-intro full-width mb-4">\n <div class="container">\n <div class="row">\n <div class="col-md-4">\n <h3>If you select to have a proof</h3>\n </div>\n <div class="col-md-8">\n <div>\n <p>If you select to have a proof, please be aware that production won’t start until we have received a sign off so please keep an eye on your email.<br>If you don’t select a proof, then your items will be printed as supplied and {{ company_name }} won’t be liable for any errors in your artwork.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n {% endif %}\n \n \n <h3 class="title hidden pull-right" id="basketPageTimer"></h3>\n <div id="basket" class="basket-products-wrapper"></div>\n <div class="cart-collaterals">\n <div class="row justify-content-end g-3 mb-3">\n {% if app.user %}\n {# basket steps #}\n <div class="col-md-4 section-step-cart">\n <div class="card bg-light h-100">\n <div class="card-header">\n Discount Code\n </div>\n <div class="card-body">\n <div class="row">\n <div class="col-sm-8">\n <input type="text" id="promoCode" class="form-control">\n </div>\n <div class="col-sm-4">\n <button class="btn btn-primary btn-block apply-promo" type="button"><span>APPLY</span></button>\n </div>\n </div>\n {% if app.session.get('appliedPromo') is defined %}\n {% if app.session.get('appliedPromo') is not null %}\n {% set addedpromos = [] %}\n {% set addedpromoids = [] %}\n {% for promo in app.session.get('appliedPromo') %}\n {% if promo[1].promoid not in addedpromoids %}\n {% set addedpromoids = addedpromoids|merge([promo[1].promoid]) %}\n {% set addedpromos = addedpromos|merge([promo[1]]) %}\n {% endif %}\n {% endfor %}\n <div class="margin-top" id="promosList">\n <h5 id="promoheader" style="display: {% if addedpromos|length > 0 %}block{% else %}none{% endif %}">Active Codes</h5>\n {% for promo in addedpromos %}\n <p class='label-success' id="promorow{{ promo.promoid }}">{{ promo.friendlyname }}<button class="btn btn-xs pull-right remove-promo" type="button" data-promoid="{{ promo.promoid }}"><i class="fa fa-times"></i></button></p>\n {% endfor %}\n </div>\n {% else %}\n <div class="margin-top" id="promosList">\n <h5 id="promoheader" style="display: none">Active Codes</h5>\n </div>\n {% endif %}\n {% else %}\n <div class="margin-top" id="promosList">\n <h5 id="promoheader" style="display: none">Active Codes</h5>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n <div class="col-md-4 section-step-cart">\n <div class="card bg-light h-100">\n <div class="card-header">\n Extra Information\n </div>\n <div class="card-body">\n <label class="form-label" for="customerPo">Customer Purchase Order</label>\n <input id="customerPo" type="text" name="customerPo" class="form-control mb-4">\n <label class="form-label" for="orderNotes">Order Notes</label>\n <textarea id="orderNotes" class="form-control" name="orderNotes"></textarea>\n </div>\n </div>\n </div>\n {# Checkout steps #}\n <div class="col-md-4 section-step-checkout" style="display: none">\n <div class="card bg-light h-100">\n <div class="card-header">Invoice Address</div>\n <div class="card-body">\n <div class="icheck-primary">\n <input type="radio" name="invoiceAddress" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid == app.user.invoiceaddress.addressid %} checked {% endif %} required value="{{ app.user.invoiceaddress.addressid }}" id="addressInvoiceDefault">\n <label for="addressInvoiceDefault"><span></span>Default Address</label>\n </div>\n <div class="selectedInvoiceAddress" id="invoiceAddress{{ app.user.invoiceaddress.addressid }}" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid != app.user.invoiceaddress.addressid %}style="display: none" {% endif %}>\n {{ app.user.invoiceaddress.firstname }} {{ app.user.invoiceaddress.lastname }}<br>\n {{ app.user.invoiceaddress.add1 }}\n {% if app.user.invoiceaddress.add2 is not empty %}<br>{{ app.user.invoiceaddress.add2 }} {% endif %}\n {% if app.user.invoiceaddress.add3 is not empty %}<br>{{ app.user.invoiceaddress.add3 }} {% endif %}\n <br>{{ app.user.invoiceaddress.city }}<br>{{ app.user.invoiceaddress.postcode|upper }}<br>{{ app.user.invoiceaddress.country.country }}<br>\n <button type="button" data-addressid="{{ app.user.invoiceaddress.addressid }}" title="Edit this address" class="btn btn-default btn-dark basketEditButtons edit-address my-3"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n \n {% for address in app.user.addresses %}\n {% if address.visible == 1 and address.addressid != app.user.invoiceaddress.addressid %}\n <div class="icheck-primary">\n <input type="radio" name="invoiceAddress" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid == address.addressid %} checked {% endif %} required value="{{ address.addressid }}" id="addressInvoiceSelect{{ address.addressid }}">\n <label for="addressInvoiceSelect{{ address.addressid }}"><span></span>{{ address.firstname }} {{ address.lastname }} - {{ address.postcode }}</label>\n </div>\n <div class="selectedInvoiceAddress" id="invoiceAddress{{ address.addressid}}" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid != address.addressid %}style="display: none"{% endif %}>\n {{ address.firstname }} {{ address.lastname }}<br>\n {{ address.add1 }}\n {% if address.add2 is not empty %}<br>{{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}<br>{{ address.add3 }} {% endif %}\n <br>{{ address.city }}<br>{{ address.postcode|upper }}<br>{{ address.country.country }}<br>\n <button type="button" data-addressid="{{ address.addressid }}" title="Edit this address" class="btn btn-default btn-dark basketEditButtons edit-address my-3"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n {% endif %}\n {% endfor %}\n <br><button type="button" class="btn btn-primary add-address">Add New Address</button>\n </div>\n </div>\n </div>\n <div class="col-md-4 section-step-checkout" style="display: none">\n <div class="card bg-light h-100" id="deliveryInfo">\n <div class="card-header" id="deliveryTitle">Delivery Address</div>\n {% if restrictdelivery == 0 %}\n <div class="card-body">\n <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is null %}checked{% endif %} required value="0" id="addressCollection">\n <label for="addressCollection"><span></span>Collection</label>\n </div>\n <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %}\n {% if app.session.get('deliveryAddress').addressid == app.user.invoiceaddress.addressid %}\n checked\n {% endif %}{% endif %} required value="{{ app.user.invoiceaddress.addressid }}" id="addressDelivery{{ app.user.invoiceaddress.addressid }}">\n <label for="addressDelivery{{ app.user.invoiceaddress.addressid }}"><span></span>Default Address</label>\n </div>\n <div class="selectedDeliveryAddress mb-3" id="deliveryAddress{{ app.user.invoiceaddress.addressid }}" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %}\n {% if app.session.get('deliveryAddress').addressid != app.user.invoiceaddress.addressid %}\n style="display: none"\n {% endif %}\n {% endif %}>\n {{ app.user.invoiceaddress.firstname }} {{ app.user.invoiceaddress.lastname }}<br>\n {{ app.user.invoiceaddress.add1 }}\n {% if app.user.invoiceaddress.add2 is not empty %}<br>{{ app.user.invoiceaddress.add2 }} {% endif %}\n {% if app.user.invoiceaddress.add3 is not empty %}<br>{{ app.user.invoiceaddress.add3 }} {% endif %}\n <br>{{ app.user.invoiceaddress.city }}<br>{{ app.user.invoiceaddress.postcode|upper }}<br>{{ app.user.invoiceaddress.country.country }}<br>\n <button type="button" data-addressid="{{ app.user.invoiceaddress.addressid }}" title="Edit this address" class="btn btn-default btn-dark my-3 basketEditButtons edit-address"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n {% for address in app.user.addresses %}\n {% if address.visible == 1 and address.addressid != app.user.invoiceaddress.addressid %}\n <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid == address.addressid %} checked {% endif %} {% endif %}required value="{{ address.addressid }}" id="addressDeliverySelect{{ address.addressid }}">\n <label for="addressDeliverySelect{{ address.addressid }}"><span></span>{{ address.firstname }} {{ address.lastname }} - {{ address.postcode }}</label>\n <div class="selectedDeliveryAddress" id="deliveryAddress{{ address.addressid }}" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid != address.addressid %}style="display: none"{% endif %}{% endif %}>\n {{ address.firstname }} {{ address.lastname }}<br>\n {{ address.add1 }}\n {% if address.add2 is not empty %}<br>{{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}<br>{{ address.add3 }} {% endif %}\n <br>{{ address.city }}<br>{{ address.postcode|upper }}<br>{{ address.country.country }}<br>\n <button type="button" data-addressid="{{ address.addressid}}" title="Edit this address" class="btn btn-default btn-dark my-3 basketEditButtons edit-address"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n </div>\n {% endif %}\n {% endfor %}\n <span id="deliveryInfoNew"></span>\n <button type="button" class="btn btn-primary add-address mb-3">Add New Address</button><br>\n <label class="form-label mt-4" for="deliveryNotes">Delivery Notes</label><br>\n <textarea class="form-control" name="deliveryNotes"></textarea>\n </div>\n {% else %}\n <div class="card-body">\n <div class="info">\n Your delivery options are limited as you are buying a personalised product from your company portal. If you need this delivered elsewhere then please speak to your purchasing manager to add approved addresses.\n </div>\n <select name="deliveryAddress" required class="form-control">\n <option value="">Select Delivery Address</option>\n {% for address in restrictaddresses %}\n {% if address.visible != 0 %}\n <option value="{{ address.addressid }}">{{ address.add1 }}\n {% if address.add2 is not empty %}, {{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}, {{ address.add3 }} {% endif %}\n , {{ address.city }} {{ address.postcode|upper }} - {{ address.country.country }}</option>\n {# <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid == address.addressid %} checked {% endif %} {% endif %}required value="{{ address.addressid }}" id="addressDeliverySelect{{ address.addressid }}">\n <label for="addressDeliverySelect{{ address.addressid }}"><span></span>{{ address.firstname }} {{ address.lastname }} - {{ address.postcode }}</label>\n <div class="selectedDeliveryAddress" id="deliveryAddress{{ address.addressid }}" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid != address.addressid %}style="display: none"{% endif %}{% endif %}>\n {{ address.firstname }} {{ address.lastname }}<br>\n {{ address.add1 }}\n {% if address.add2 is not empty %}<br>{{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}<br>{{ address.add3 }} {% endif %}\n <br>{{ address.city }}<br>{{ address.postcode|upper }}<br>{{ address.country.country }}<br>\n </div>\n </div>#}\n {% endif %}\n {% endfor %}\n </select>\n <span id="deliveryInfoNew"></span>\n <label class="form-label mt-4" for="deliveryNotes">Delivery Notes</label><br>\n <textarea class="form-control" name="deliveryNotes"></textarea>\n </div>\n {% endif %}\n </div>\n </div>\n {# Payment steps #}\n <div class="col-md-4 section-step-payment" style="display: none">\n <div class="card bg-light h-100" id="artworkInfo">\n <div class="card-header">Artwork Info</div>\n <div class="card-body">\n <div class="icheck-primary">\n <input type="radio" name="artworkMethod" required value="online" checked id="artworkOnline">\n <label for="artworkOnline"><span></span>Upload Online</label>\n </div>\n <div class="icheck-primary">\n <input type="radio" name="artworkMethod" required value="email" id="artworkEmail">\n <label for="artworkEmail"><span></span>Send via email</label>\n </div>\n <div class="icheck-primary">\n <input type="radio" name="artworkMethod" required value="post" id="artworkPost">\n <label for="artworkPost"><span></span>Send via post</label>\n </div>\n </div>\n </div>\n </div>\n <div class="col-md-4 section-step-payment" style="display: none">\n <div class="card bg-light h-100" id="paymentInfo">\n <div class="card-header">Payment Method</div>\n <div class="card-body">\n {% if basket_payment_online == 1 %}\n <div class="icheck-primary">\n <input type="radio" name="paymentMethod" required value="Online" id="paymentOnline" checked>\n <label for="paymentOnline"><span></span>Pay Online</label>\n </div>\n {% endif %}\n {% if basket_payment_bacs == 1 %}\n <div class="icheck-primary">\n <input type="radio" name="paymentMethod" required value="BACS" id="paymentBacs">\n <label for="paymentBacs"><span></span>Pay by BACS</label>\n </div>\n {% endif %}\n {#<div class="icheck-primary" style="display: none;">\n <input type="radio" name="paymentMethod" required value="payoncollection" id="payonCollection">\n <label for="payonCollection"><span></span>Pay on Collection</label>\n </div>#}\n {% if app.user.hascreditterms == 1 and basket_payment_credit == 1 %}\n <div class="icheck-primary">\n <input type="radio" name="paymentMethod" required value="Credit" id="paymentCredit">\n <label for="paymentCredit"><span></span>Charge to Credit Account</label>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n {% endif %}\n <div class="col-md-4 text-center text-md-end order-first order-md-last">\n <div class="card bg-light h-100">\n <div class="card-header">Basket Totals</div>\n <div class="card-body">\n <table class="table cartTotal align-middle" style="margin-left: auto;margin-right: auto">\n <tbody>\n <tr class="cart-subtotal">\n <th>Subtotal</th>\n <td><h5 class="m-0">£<span class="amount subtotal fw-bold"></span></h5></td>\n </tr>\n <tr class="cart-subtotal">\n <th>Delivery</th>\n <td><h5 class="m-0">£<span class="amount deliveryCharge fw-bold">{% if app.session.get('deliveryCharge') == 'Personal' or app.session.get('deliveryCharge') is not defined %}{% if restrictdelivery == 1 %}{% else %}Please call us{% endif %}{% else %}{{ app.session.get('deliveryCharge')|number_format(2,'.','') }}{% endif %}</span></h5></td>\n </tr>\n <tr class="cart-subtotal">\n <th>VAT</th>\n <td><h5 class="m-0">£<span class="amount vat fw-bold"></span></h5></td>\n </tr>\n <tr class="cart-subtotal cart-discount" style="display: none;">\n <th>Discount</th>\n <td><h5 class="m-0">£<span class="amount discountval fw-bold"></span></h5></td>\n </tr>\n <tr class="order-total">\n <th>Total</th>\n <td>\n <h3 class="m-0"><strong class="amount">£<span class="total fw-bold"></span></strong></h3>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n {% if not app.user %}\n <div class="row justify-content-center section-step-cart">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <button class="btn btn-primary btn-checkout goto-referer" type="button">CONTINUE SHOPPING</button>\n </div>\n <div class="col-sm-6 text-center text-sm-end mb-4">\n <button class="btn btn-primary btn-checkout modal-login" type="button">PROCEED TO CHECKOUT</button>\n </div>\n </div>\n {% endif %}\n {% if app.user %}\n {% if basket_displaytandcs == 1%}\n <div class="row section-step-cart">\n <div class="col-12">\n <h5 class="m-0">Terms and Conditions</h5>\n <h6>Please read and scroll to continue</h6>\n <div class="terms-conditions">\n <textarea readonly id="termsandconditions" rows="12">\n {{ termsandconditions|raw }}\n </textarea>\n </div>\n </div>\n </div>\n {% endif %}\n {% if basket_displaytandcs == 1 or basket_requiretandcs == 1 %}\n <div class="row section-step-cart justify-content-center mb-3">\n {% if basket_displaytandcs == 1%}\n <div class="col-12">\n <a href="{{ path('downloadFile', {filename: 'standard_terms.pdf'}) }}" target="_blank">Download Terms & Conditions PDF</a>\n </div>\n {% endif %}\n {% if basket_requiretandcs == 1%}\n <div class="col-6 col-sm-7 pt-md terms-conditions-checkbox">\n <div class="form-check form-switch">\n <input type="checkbox" id="tandc" class="form-check-input cursor-pointer" role="switch" {% if basket_displaytandcs == 1%}disabled{% endif %}/>\n <label class="form-check-label" for="tandc" style="font-size: 1em;">I agree with the <a href="{{ path('downloadFile', {filename: 'standard_terms.pdf'}) }}" target="_blank">Terms & Conditions</a> {% if basket_displaytandcs == 1%}(Please read and scroll to continue){% endif %}</label>\n </div>\n </div>\n {% endif %}\n </div>\n {% endif %}\n <div class="row section-step-cart">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <a class="btn btn-primary btn-checkout" href="{{ referer }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket.svg') }}#icon-basket"></use></svg></span>CONTINUE SHOPPING</a>\n </div>\n <div class="col-sm-6 text-center text-sm-end cart_totals mb-4">\n <button class="btn btn-primary btn-checkout alt wc-forward no-margin basket-step" type="button" data-step="checkout"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26.374 21.786"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket-check.svg') }}#icon-basket-check"></use></svg></span>PROCEED TO CHECKOUT</button>\n </div>\n </div>\n <div class="row section-step-checkout" style="display: none">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <button class="btn btn-primary btn-checkout basket-step" type="button" data-step="cart"><i class="far fa-fw fa-chevron-left"></i> BACK</button>\n </div>\n <div class="col-sm-6 text-center text-sm-end cart_totals mb-4">\n <button class="btn btn-primary btn-checkout alt wc-forward basket-step" type="button" data-step="payment" id="proceedtoPaymentButton"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-pound.svg') }}#icon-pound"></use></svg></span>PROCEED TO PAYMENT</button>\n </div>\n </div>\n \n <div class="row section-step-payment" style="display: none">\n <div id="worldpay">\n <h4 class="mb-3">Customer Payment Details</h4>\n <div class="row g-3">\n <div class="col-sm-6">\n <label class="form-label" for="customer_firstname">First Name</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_firstname" name="customer_firstname" maxlength="50" value="{{ app.user.invoiceaddress.firstname }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_lastname">Last Name</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_lastname" name="customer_lastname" maxlength="50" value="{{ app.user.invoiceaddress.lastname }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_add1">Address 1</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_add1" name="customer_add1" value="{{ app.user.invoiceaddress.add1 }}">\n \n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_add2">Address 2</label>\n <input class="form-control" type="text" id="customer_add2" name="customer_add2" value="{{ app.user.invoiceaddress.add2 }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_add3">Address 3</label>\n <input class="form-control" type="text" id="customer_add3" name="customer_add3" value="{{ app.user.invoiceaddress.add3 }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_city">City</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_city" name="customer_city" value="{{ app.user.invoiceaddress.city }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_county">County</label>\n <input class="form-control" type="text" id="customer_county" name="customer_county" value="{{ app.user.invoiceaddress.county }}">\n \n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_postcode">Postcode</label>\n <input class="form-control" type="text" id="customer_postcode" name="customer_postcode" value="{{ app.user.invoiceaddress.postcode }}">\n \n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_countrycode">Country</label>\n <select class="form-select" id="customer_countrycode" name="customer_countrycode">\n {% include '@ops_frontend_bundle/blocks/countrycodes.html.twig' %}\n </select>\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_email">Email</label><span class="required">*</span>\n <input class="form-control" type="email" id="customer_email" name="customer_email" value="{{ app.user.email }}">\n </div>\n </div>\n </div>\n {% if basket_payment_bacs == 1 %}\n <div id="bacsdetails" style="display: none">\n <div class="row">\n <div class="col-sm-12">\n <p>To make payment please find our details below these can also be found at the bottom of your confirmation email<br>\n Terms and Conditions apply.<br>\n {{ bacsdetails|raw }}\n </p>\n </div>\n </div>\n </div>\n {% endif %}\n </div>\n <div class="row section-step-payment section-margin-top" style="display: none">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <button class="btn btn-primary btn-checkout basket-step" type="button" data-step="checkout"><i class="far fa-fw fa-chevron-left"></i> BACK</button>\n </div>\n <div class="col-sm-6 text-center text-sm-end cart_totals mb-4">\n <button class="btn btn-primary btn-checkout alt wc-forward" type="submit"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.047 59.977"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-complete.svg') }}#icon-complete"></use></svg></span>PLACE ORDER</button>\n </div>\n </div>\n {% endif %}\n </div>\n </form>\n </div>\n {% endif %}\n \n <div id='custom-html'></div>\n <a href='#' id='custom-trigger' class="hidden">Click me</a>\n {% endblock%}\n \n {% block javascripts %}\n <script src="{{ path('packedJs',{'filename':'basket.js'}) }}?v=1"></script>\n <script>\n const entries = performance.getEntriesByType("navigation");\n entries.forEach((entry) => {\n if (entry.type === "back_forward") {\n location.reload(true);\n }\n });\n \n {% if appliedPromo is defined %}\n company.appliedPromo = '{{ appliedPromo|json_encode| raw }}';\n {% endif %}\n \n \n $(document).ready(function() {\n $("#editAddressAjax").on("submit", function(e){\n e.preventDefault();\n let data = {};\n $(this).serializeArray().forEach((object)=>{\n data[object.name] = object.value;\n });\n \n $.ajax({\n type: "POST",\n url: '{{ path('address') }}',\n data: data,\n beforeSend: function() {\n $.blockUI({\n message : '<i class="fa fa-spinner fa-spin"></i> Saving details...'\n });\n },\n success: function(data) {\n $.unblockUI();\n \n let addressHtml = data.firstname + ' ' + data.lastname+'<br>'+\n data.add1;\n if(data.add2 !== null) {\n addressHtml += '<br>'+data.add2;\n }\n if(data.add3 !== null) {\n addressHtml += '<br>'+data.add3;\n }\n addressHtml += '<br>'+data.city+'<br>'+data.postcode+'<br>'+data.country.country+'<br>';\n addressHtml += '<button type="button" data-addressid="'+data.addressid+'" title="Edit this address" class="btn btn-default btn-dark my-3 basketEditButtons edit-address"><i class="far fa-fw fa-pencil"></i> Edit Address</button>';\n \n company.showWindows('mainTab');\n \n if($('#deliveryAddress'+data.addressid).length){\n //update\n $('#deliveryAddress'+data.addressid).html(addressHtml);\n $("label[for='addressDeliverySelect"+data.addressid+"']").html('<span></span>'+ data.firstname + ' ' + data.lastname+' - '+data.postcode);\n }\n else{\n //add it\n $('#deliveryInfoNew').before('<div class="icheck-primary"><input type="radio" name="deliveryAddress" required value="'+data.addressid+'" id="addressDeliverySelect'+data.addressid+'"><label for="addressDeliverySelect'+data.addressid+'"><span></span>'+data.firstname+' '+data.lastname+' - '+data.postcode+'</label><div class="selectedDeliveryAddress" id="deliveryAddress'+data.addressid+'" style="display: none">'+addressHtml+'</div></div>');\n \n $('input[type=radio][name=deliveryAddress]').on('change',function() {\n company.changeDeliveryAddress(this.value);\n \n if(parseInt(this.value) === 0){\n $('#payonCollection').parent().css('display','block');\n }\n else {\n $('#payonCollection').parent().css('display','none');\n }\n });\n \n $('#addressDeliverySelect'+data.addressid).click();\n //$('input[name="deliveryAddress"]').trigger('change');\n }\n \n company.notification("Your address has been updated.", "success");\n },\n error: function(res) {\n $.unblockUI();\n company.notification(res.responseText,'error');\n }\n });\n })\n \n {% if app.user %}\n $('#customer_countrycode').val('{{ app.user.invoiceaddress.countrycode }}');\n {% endif %}\n var complete_order_options = {\n success: function(data) {\n $.unblockUI();\n if(data.msg === 'login'){\n company.modalLogin();\n }\n if(data.msg === 'reference'){\n window.location.href = ('{{ url('basket_3Dform') }}');\n }\n if(data.msg === 'ok'){\n window.location.href = ('{{ url('basket_complete') }}');\n }\n \n },\n beforeSend: function() {\n $.blockUI({\n message : '<i class="fa fa-spinner fa-spin"></i> Placing order...'\n });\n },\n error: function (data) {\n $.unblockUI();\n var error = JSON.parse(data.responseText);\n company.notification(error.message, "error");\n },\n url: '{{ path('basket_checkout') }}',\n type: 'POST',\n clearForm: false,\n resetForm: false\n };\n $("#orderForm").ajaxForm(complete_order_options);\n \n company.buildBasket('{{ basket|json_encode|url_encode }}');\n \n $('[name=deliveryAddress]').on('change',function() {\n company.changeDeliveryAddress(this.value);\n \n if(parseInt(this.value) === 0){\n $('#payonCollection').parent().css('display','block');\n }\n else {\n $('#payonCollection').parent().css('display','none');\n }\n });\n {% if restrictdelivery == 1 %}\n company.restrictdelivery = 1;\n {% endif %}\n $('input[type=radio][name=invoiceAddress]').on('change',function() {\n company.changeInvoiceAddress(this.value);\n });\n \n $('input[type=radio][name=paymentMethod]').on('change',function() {\n var worldpay = $('#worldpay');\n var bacsdetails = $('#bacsdetails');\n var customer_name = $("#customer_name");\n var customer_add1 = $("#customer_add1");\n var customer_city = $("#customer_city");\n var customer_email = $("#customer_email");\n var customer_email2 = $("#customer_email2");\n \n if(this.value === "Online"){\n worldpay.show().removeClass('animated fadeOutRight').addClass('animated fadeInLeft');\n customer_name.prop('required',true);\n customer_add1.prop('required',true);\n customer_city.prop('required',true);\n customer_email.prop('required',true);\n customer_email2.prop('required',false);\n }\n else{\n worldpay.removeClass('animated fadeInLeft').addClass('animated fadeOutRight');\n setTimeout(function(){ worldpay.hide(); }, 800);\n customer_name.prop('required',false);\n customer_add1.prop('required',false);\n customer_city.prop('required',false);\n customer_email.prop('required',false);\n customer_email2.prop('required',false);\n }\n \n if(this.value === 'BACS'){\n bacsdetails.show().removeClass('animated fadeOutRight').addClass('animated fadeInLeft');\n }\n else{\n bacsdetails.removeClass('animated fadeInLeft').addClass('animated fadeOutRight');\n setTimeout(function(){ bacsdetails.hide(); }, 800);\n }\n });\n \n $('#termsandconditions').scroll(function () {\n if ($(this).scrollTop() + $(this).innerHeight() +2 >= $(this)[0].scrollHeight) {\n $('#tandc').attr('disabled',false);\n }\n });\n \n company.addAddressListeners();\n company.showWindowListeners();\n company.basketPageListeners();\n });\n </script>\n {% endblock %} """ : { { __TwigTemplate_a94874e4b1eee4b2e706c668ceb75053->{closure} … › |
| logger | Symfony\Bridge\Monolog\Processor\DebugProcessor {#122 -records: [ 2 => [ [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.665+00:00" "message" => "Matched route "{route}"." "priority" => 200 "priorityName" => "INFO" "context" => [ "route" => "basket_index" "route_parameters" => [ "_route" => "basket_index" "_controller" => "Ops\OpsFrontendBundle\Controller\BasketController::basketIndex" ] "request_uri" => "https://dev.celloglas.co.uk/basket" "method" => "GET" ] "channel" => "request" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.669+00:00" "message" => "Checking for authenticator support." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_name" => "secured_area" "authenticators" => 1 ] "channel" => "security" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.669+00:00" "message" => "Checking support on authenticator." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_name" => "secured_area" "authenticator" => "Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.669+00:00" "message" => "Authenticator does not support the request." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_name" => "secured_area" "authenticator" => "Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.670+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Ops\OpsFrontendBundle\Services\SessionIdleHandler::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.674+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.674+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Ops\OpsFrontendBundle\Services\TwigGlobalsExtension::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.674+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.675+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.675+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.675+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1764992308 "timestamp_rfc3339" => "2025-12-06T03:38:28.688+00:00" "message" => "Uncaught PHP Exception Twig\Error\RuntimeError: "Variable "restrictdelivery" does not exist." at basket.html.twig line 694" "priority" => 500 "priorityName" => "CRITICAL" "context" => [ "exception" => Twig\Error\RuntimeError {#621 #message: "Variable "restrictdelivery" does not exist." #code: 0 #file: "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/templates/basket/basket.html.twig" #line: 694 -lineno: 694 -name: "@ops_frontend_bundle/basket/basket.html.twig" -rawMessage: "Variable "restrictdelivery" does not exist." -sourcePath: "/home/celloglas/public_html/dev.celloglas.co.uk/opsfrontendbundle/OpsFrontendBundle/src/templates/basket/basket.html.twig" -sourceCode: """ {% extends 'template.html.twig' %}\n \n {% block htmltitle %}Shopping Basket - {{ company_name }}{% endblock %}\n {% block metadesc %}{% endblock %}\n {% block metakeywords %}{% endblock %}\n \n {% block extrameta %}\n {% endblock %}\n {% block css %}\n <style>\n #worldpay{\n display: none;\n }\n </style>\n <link rel='stylesheet' href='https://payments.worldpay.com/resources/hpp/integrations/embedded/css/hpp-embedded-integration-library.css'/>\n \n {% endblock %}\n {% block headjavascripts %}\n <script src='https://payments.worldpay.com/resources/hpp/integrations/embedded/js/hpp-embedded-integration-library.js'></script>\n {% endblock %}\n \n {% block body %}\n {% if app.session.get('basket') is null or app.session.get('basket') == false %}\n <div id="section-basketempty" class="row my-5">\n <div class="col-12 text-center my-5">\n It looks like your basket is empty<br><br>\n <button class="btn btn-dark btn-md goto-referer">\n <span class="icon me-3 d-inline-block" style="width: 20px; fill: white">\n <svg class="icon-btn-cart" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663">\n <use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket.svg') }}#icon-basket">\n \n </use>\n </svg>\n </span>\n CONTINUE SHOPPING\n </button>\n </div>\n </div>\n {% else %}\n {% if formAddress is not null %}\n <div id="editAddress" class="container mb-5" style="display: none">\n <h2>Address</h2>\n {{ form_start(formAddress, { 'attr' : {'id': 'editAddressAjax', 'class': 'login row g-3' } }) }}\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_firstname) }}\n {{ form_label(formAddress.address_firstname) }}\n {{ form_widget(formAddress.address_firstname, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_lastname) }}\n {{ form_label(formAddress.address_lastname) }}\n {{ form_widget(formAddress.address_lastname, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_add1) }}\n {{ form_label(formAddress.address_add1) }}\n {{ form_widget(formAddress.address_add1, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_add2) }}\n {{ form_label(formAddress.address_add2) }}\n {{ form_widget(formAddress.address_add2, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_add3) }}\n {{ form_label(formAddress.address_add3) }}\n {{ form_widget(formAddress.address_add3, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_city) }}\n {{ form_label(formAddress.address_city) }}\n {{ form_widget(formAddress.address_city, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_county) }}\n {{ form_label(formAddress.address_county) }}\n {{ form_widget(formAddress.address_county, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_countrycode) }}\n {{ form_label(formAddress.address_countrycode) }}\n {{ form_widget(formAddress.address_countrycode, {'required': true,'attr': {'class': 'form-select'}}) }}\n </div>\n <div class="col-sm-6">\n {{ form_errors(formAddress.address_postcode) }}\n {{ form_label(formAddress.address_postcode) }}\n {{ form_widget(formAddress.address_postcode, {'attr': {'class': 'form-control'}}) }}\n </div>\n <div class="col-12 text-center">\n <button class="btn btn-default show-windows" data-windowid="mainTab" type="button">Cancel</button>\n {{ form_widget(formAddress.address_add, {'attr': {'class': 'btn btn-default show-windows', 'data-windowid': 'mainTab'}}) }}\n </div>\n {{ form_rest(formAddress) }}\n {{ form_end(formAddress) }}\n </div>\n {% endif %}\n <div id="mainTab" class="container basket-mainTab">\n <form name="orderForm" id="orderForm" method="post" class="login">\n <input type="hidden" name="total" id="orderTotal">\n <div id="step-checkout-icons" class="row text-center px-md-4 mb-4 justify-content-around">\n <div class="step cart tab col-2 active">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket.svg') }}#icon-basket"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">1. Shopping<br>Basket</h5>\n </div>\n <div class="step checkout tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 66.094 48.094"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-delivery.svg') }}#icon-delivery"></use></svg>\n \n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">2. Checkout<br>and Delivery</h5>\n </div>\n <div class="step payment tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25'><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-pound.svg') }}#icon-pound"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">3. Payment</h5>\n </div>\n <div class="tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.047 59.977"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-complete.svg') }}#icon-complete"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">4. Order<br>Complete</h5>\n </div>\n <div class="tab col-2">\n <div class="step-checkout-icon icon justify-content-center d-flex mb-md-2">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13.142 16.008"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-upload.svg') }}#icon-upload"></use></svg>\n </div>\n <h5 class="step-checkout-label d-flex justify-content-center">5. Artwork<br>Upload</h5>\n </div>\n \n </div>\n <div class="row justify-content-center mb-5">\n <div class="col-sm-11">\n <div class="progress active" role="progressbar" aria-valuemin="0" aria-valuemax="100">\n <div class="progress-bar progress-bar-striped progress-bar-animated bg-success" style="width:20%;" id="progressbar"></div>\n </div>\n </div>\n </div>\n \n {% if productpage_proof == 1 %}\n <div class="section-intro full-width mb-4">\n <div class="container">\n <div class="row">\n <div class="col-md-4">\n <h3>If you select to have a proof</h3>\n </div>\n <div class="col-md-8">\n <div>\n <p>If you select to have a proof, please be aware that production won’t start until we have received a sign off so please keep an eye on your email.<br>If you don’t select a proof, then your items will be printed as supplied and {{ company_name }} won’t be liable for any errors in your artwork.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n {% endif %}\n \n \n <h3 class="title hidden pull-right" id="basketPageTimer"></h3>\n <div id="basket" class="basket-products-wrapper"></div>\n <div class="cart-collaterals">\n <div class="row justify-content-end g-3 mb-3">\n {% if app.user %}\n {# basket steps #}\n <div class="col-md-4 section-step-cart">\n <div class="card bg-light h-100">\n <div class="card-header">\n Discount Code\n </div>\n <div class="card-body">\n <div class="row">\n <div class="col-sm-8">\n <input type="text" id="promoCode" class="form-control">\n </div>\n <div class="col-sm-4">\n <button class="btn btn-primary btn-block apply-promo" type="button"><span>APPLY</span></button>\n </div>\n </div>\n {% if app.session.get('appliedPromo') is defined %}\n {% if app.session.get('appliedPromo') is not null %}\n {% set addedpromos = [] %}\n {% set addedpromoids = [] %}\n {% for promo in app.session.get('appliedPromo') %}\n {% if promo[1].promoid not in addedpromoids %}\n {% set addedpromoids = addedpromoids|merge([promo[1].promoid]) %}\n {% set addedpromos = addedpromos|merge([promo[1]]) %}\n {% endif %}\n {% endfor %}\n <div class="margin-top" id="promosList">\n <h5 id="promoheader" style="display: {% if addedpromos|length > 0 %}block{% else %}none{% endif %}">Active Codes</h5>\n {% for promo in addedpromos %}\n <p class='label-success' id="promorow{{ promo.promoid }}">{{ promo.friendlyname }}<button class="btn btn-xs pull-right remove-promo" type="button" data-promoid="{{ promo.promoid }}"><i class="fa fa-times"></i></button></p>\n {% endfor %}\n </div>\n {% else %}\n <div class="margin-top" id="promosList">\n <h5 id="promoheader" style="display: none">Active Codes</h5>\n </div>\n {% endif %}\n {% else %}\n <div class="margin-top" id="promosList">\n <h5 id="promoheader" style="display: none">Active Codes</h5>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n <div class="col-md-4 section-step-cart">\n <div class="card bg-light h-100">\n <div class="card-header">\n Extra Information\n </div>\n <div class="card-body">\n <label class="form-label" for="customerPo">Customer Purchase Order</label>\n <input id="customerPo" type="text" name="customerPo" class="form-control mb-4">\n <label class="form-label" for="orderNotes">Order Notes</label>\n <textarea id="orderNotes" class="form-control" name="orderNotes"></textarea>\n </div>\n </div>\n </div>\n {# Checkout steps #}\n <div class="col-md-4 section-step-checkout" style="display: none">\n <div class="card bg-light h-100">\n <div class="card-header">Invoice Address</div>\n <div class="card-body">\n <div class="icheck-primary">\n <input type="radio" name="invoiceAddress" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid == app.user.invoiceaddress.addressid %} checked {% endif %} required value="{{ app.user.invoiceaddress.addressid }}" id="addressInvoiceDefault">\n <label for="addressInvoiceDefault"><span></span>Default Address</label>\n </div>\n <div class="selectedInvoiceAddress" id="invoiceAddress{{ app.user.invoiceaddress.addressid }}" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid != app.user.invoiceaddress.addressid %}style="display: none" {% endif %}>\n {{ app.user.invoiceaddress.firstname }} {{ app.user.invoiceaddress.lastname }}<br>\n {{ app.user.invoiceaddress.add1 }}\n {% if app.user.invoiceaddress.add2 is not empty %}<br>{{ app.user.invoiceaddress.add2 }} {% endif %}\n {% if app.user.invoiceaddress.add3 is not empty %}<br>{{ app.user.invoiceaddress.add3 }} {% endif %}\n <br>{{ app.user.invoiceaddress.city }}<br>{{ app.user.invoiceaddress.postcode|upper }}<br>{{ app.user.invoiceaddress.country.country }}<br>\n <button type="button" data-addressid="{{ app.user.invoiceaddress.addressid }}" title="Edit this address" class="btn btn-default btn-dark basketEditButtons edit-address my-3"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n \n {% for address in app.user.addresses %}\n {% if address.visible == 1 and address.addressid != app.user.invoiceaddress.addressid %}\n <div class="icheck-primary">\n <input type="radio" name="invoiceAddress" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid == address.addressid %} checked {% endif %} required value="{{ address.addressid }}" id="addressInvoiceSelect{{ address.addressid }}">\n <label for="addressInvoiceSelect{{ address.addressid }}"><span></span>{{ address.firstname }} {{ address.lastname }} - {{ address.postcode }}</label>\n </div>\n <div class="selectedInvoiceAddress" id="invoiceAddress{{ address.addressid}}" {% if app.session.get('invoiceAddress') is defined and app.session.get('invoiceAddress').addressid != address.addressid %}style="display: none"{% endif %}>\n {{ address.firstname }} {{ address.lastname }}<br>\n {{ address.add1 }}\n {% if address.add2 is not empty %}<br>{{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}<br>{{ address.add3 }} {% endif %}\n <br>{{ address.city }}<br>{{ address.postcode|upper }}<br>{{ address.country.country }}<br>\n <button type="button" data-addressid="{{ address.addressid }}" title="Edit this address" class="btn btn-default btn-dark basketEditButtons edit-address my-3"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n {% endif %}\n {% endfor %}\n <br><button type="button" class="btn btn-primary add-address">Add New Address</button>\n </div>\n </div>\n </div>\n <div class="col-md-4 section-step-checkout" style="display: none">\n <div class="card bg-light h-100" id="deliveryInfo">\n <div class="card-header" id="deliveryTitle">Delivery Address</div>\n {% if restrictdelivery == 0 %}\n <div class="card-body">\n <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is null %}checked{% endif %} required value="0" id="addressCollection">\n <label for="addressCollection"><span></span>Collection</label>\n </div>\n <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %}\n {% if app.session.get('deliveryAddress').addressid == app.user.invoiceaddress.addressid %}\n checked\n {% endif %}{% endif %} required value="{{ app.user.invoiceaddress.addressid }}" id="addressDelivery{{ app.user.invoiceaddress.addressid }}">\n <label for="addressDelivery{{ app.user.invoiceaddress.addressid }}"><span></span>Default Address</label>\n </div>\n <div class="selectedDeliveryAddress mb-3" id="deliveryAddress{{ app.user.invoiceaddress.addressid }}" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %}\n {% if app.session.get('deliveryAddress').addressid != app.user.invoiceaddress.addressid %}\n style="display: none"\n {% endif %}\n {% endif %}>\n {{ app.user.invoiceaddress.firstname }} {{ app.user.invoiceaddress.lastname }}<br>\n {{ app.user.invoiceaddress.add1 }}\n {% if app.user.invoiceaddress.add2 is not empty %}<br>{{ app.user.invoiceaddress.add2 }} {% endif %}\n {% if app.user.invoiceaddress.add3 is not empty %}<br>{{ app.user.invoiceaddress.add3 }} {% endif %}\n <br>{{ app.user.invoiceaddress.city }}<br>{{ app.user.invoiceaddress.postcode|upper }}<br>{{ app.user.invoiceaddress.country.country }}<br>\n <button type="button" data-addressid="{{ app.user.invoiceaddress.addressid }}" title="Edit this address" class="btn btn-default btn-dark my-3 basketEditButtons edit-address"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n {% for address in app.user.addresses %}\n {% if address.visible == 1 and address.addressid != app.user.invoiceaddress.addressid %}\n <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid == address.addressid %} checked {% endif %} {% endif %}required value="{{ address.addressid }}" id="addressDeliverySelect{{ address.addressid }}">\n <label for="addressDeliverySelect{{ address.addressid }}"><span></span>{{ address.firstname }} {{ address.lastname }} - {{ address.postcode }}</label>\n <div class="selectedDeliveryAddress" id="deliveryAddress{{ address.addressid }}" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid != address.addressid %}style="display: none"{% endif %}{% endif %}>\n {{ address.firstname }} {{ address.lastname }}<br>\n {{ address.add1 }}\n {% if address.add2 is not empty %}<br>{{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}<br>{{ address.add3 }} {% endif %}\n <br>{{ address.city }}<br>{{ address.postcode|upper }}<br>{{ address.country.country }}<br>\n <button type="button" data-addressid="{{ address.addressid}}" title="Edit this address" class="btn btn-default btn-dark my-3 basketEditButtons edit-address"><i class="far fa-fw fa-pencil"></i> Edit Address</button>\n </div>\n </div>\n {% endif %}\n {% endfor %}\n <span id="deliveryInfoNew"></span>\n <button type="button" class="btn btn-primary add-address mb-3">Add New Address</button><br>\n <label class="form-label mt-4" for="deliveryNotes">Delivery Notes</label><br>\n <textarea class="form-control" name="deliveryNotes"></textarea>\n </div>\n {% else %}\n <div class="card-body">\n <div class="info">\n Your delivery options are limited as you are buying a personalised product from your company portal. If you need this delivered elsewhere then please speak to your purchasing manager to add approved addresses.\n </div>\n <select name="deliveryAddress" required class="form-control">\n <option value="">Select Delivery Address</option>\n {% for address in restrictaddresses %}\n {% if address.visible != 0 %}\n <option value="{{ address.addressid }}">{{ address.add1 }}\n {% if address.add2 is not empty %}, {{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}, {{ address.add3 }} {% endif %}\n , {{ address.city }} {{ address.postcode|upper }} - {{ address.country.country }}</option>\n {# <div class="icheck-primary">\n <input type="radio" name="deliveryAddress" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid == address.addressid %} checked {% endif %} {% endif %}required value="{{ address.addressid }}" id="addressDeliverySelect{{ address.addressid }}">\n <label for="addressDeliverySelect{{ address.addressid }}"><span></span>{{ address.firstname }} {{ address.lastname }} - {{ address.postcode }}</label>\n <div class="selectedDeliveryAddress" id="deliveryAddress{{ address.addressid }}" {% if app.session.get('deliveryAddress') is defined and app.session.get('deliveryAddress') is not null %} {% if app.session.get('deliveryAddress').addressid != address.addressid %}style="display: none"{% endif %}{% endif %}>\n {{ address.firstname }} {{ address.lastname }}<br>\n {{ address.add1 }}\n {% if address.add2 is not empty %}<br>{{ address.add2 }} {% endif %}\n {% if address.add3 is not empty %}<br>{{ address.add3 }} {% endif %}\n <br>{{ address.city }}<br>{{ address.postcode|upper }}<br>{{ address.country.country }}<br>\n </div>\n </div>#}\n {% endif %}\n {% endfor %}\n </select>\n <span id="deliveryInfoNew"></span>\n <label class="form-label mt-4" for="deliveryNotes">Delivery Notes</label><br>\n <textarea class="form-control" name="deliveryNotes"></textarea>\n </div>\n {% endif %}\n </div>\n </div>\n {# Payment steps #}\n <div class="col-md-4 section-step-payment" style="display: none">\n <div class="card bg-light h-100" id="artworkInfo">\n <div class="card-header">Artwork Info</div>\n <div class="card-body">\n <div class="icheck-primary">\n <input type="radio" name="artworkMethod" required value="online" checked id="artworkOnline">\n <label for="artworkOnline"><span></span>Upload Online</label>\n </div>\n <div class="icheck-primary">\n <input type="radio" name="artworkMethod" required value="email" id="artworkEmail">\n <label for="artworkEmail"><span></span>Send via email</label>\n </div>\n <div class="icheck-primary">\n <input type="radio" name="artworkMethod" required value="post" id="artworkPost">\n <label for="artworkPost"><span></span>Send via post</label>\n </div>\n </div>\n </div>\n </div>\n <div class="col-md-4 section-step-payment" style="display: none">\n <div class="card bg-light h-100" id="paymentInfo">\n <div class="card-header">Payment Method</div>\n <div class="card-body">\n {% if basket_payment_online == 1 %}\n <div class="icheck-primary">\n <input type="radio" name="paymentMethod" required value="Online" id="paymentOnline" checked>\n <label for="paymentOnline"><span></span>Pay Online</label>\n </div>\n {% endif %}\n {% if basket_payment_bacs == 1 %}\n <div class="icheck-primary">\n <input type="radio" name="paymentMethod" required value="BACS" id="paymentBacs">\n <label for="paymentBacs"><span></span>Pay by BACS</label>\n </div>\n {% endif %}\n {#<div class="icheck-primary" style="display: none;">\n <input type="radio" name="paymentMethod" required value="payoncollection" id="payonCollection">\n <label for="payonCollection"><span></span>Pay on Collection</label>\n </div>#}\n {% if app.user.hascreditterms == 1 and basket_payment_credit == 1 %}\n <div class="icheck-primary">\n <input type="radio" name="paymentMethod" required value="Credit" id="paymentCredit">\n <label for="paymentCredit"><span></span>Charge to Credit Account</label>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n {% endif %}\n <div class="col-md-4 text-center text-md-end order-first order-md-last">\n <div class="card bg-light h-100">\n <div class="card-header">Basket Totals</div>\n <div class="card-body">\n <table class="table cartTotal align-middle" style="margin-left: auto;margin-right: auto">\n <tbody>\n <tr class="cart-subtotal">\n <th>Subtotal</th>\n <td><h5 class="m-0">£<span class="amount subtotal fw-bold"></span></h5></td>\n </tr>\n <tr class="cart-subtotal">\n <th>Delivery</th>\n <td><h5 class="m-0">£<span class="amount deliveryCharge fw-bold">{% if app.session.get('deliveryCharge') == 'Personal' or app.session.get('deliveryCharge') is not defined %}{% if restrictdelivery == 1 %}{% else %}Please call us{% endif %}{% else %}{{ app.session.get('deliveryCharge')|number_format(2,'.','') }}{% endif %}</span></h5></td>\n </tr>\n <tr class="cart-subtotal">\n <th>VAT</th>\n <td><h5 class="m-0">£<span class="amount vat fw-bold"></span></h5></td>\n </tr>\n <tr class="cart-subtotal cart-discount" style="display: none;">\n <th>Discount</th>\n <td><h5 class="m-0">£<span class="amount discountval fw-bold"></span></h5></td>\n </tr>\n <tr class="order-total">\n <th>Total</th>\n <td>\n <h3 class="m-0"><strong class="amount">£<span class="total fw-bold"></span></strong></h3>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n {% if not app.user %}\n <div class="row justify-content-center section-step-cart">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <button class="btn btn-primary btn-checkout goto-referer" type="button">CONTINUE SHOPPING</button>\n </div>\n <div class="col-sm-6 text-center text-sm-end mb-4">\n <button class="btn btn-primary btn-checkout modal-login" type="button">PROCEED TO CHECKOUT</button>\n </div>\n </div>\n {% endif %}\n {% if app.user %}\n {% if basket_displaytandcs == 1%}\n <div class="row section-step-cart">\n <div class="col-12">\n <h5 class="m-0">Terms and Conditions</h5>\n <h6>Please read and scroll to continue</h6>\n <div class="terms-conditions">\n <textarea readonly id="termsandconditions" rows="12">\n {{ termsandconditions|raw }}\n </textarea>\n </div>\n </div>\n </div>\n {% endif %}\n {% if basket_displaytandcs == 1 or basket_requiretandcs == 1 %}\n <div class="row section-step-cart justify-content-center mb-3">\n {% if basket_displaytandcs == 1%}\n <div class="col-12">\n <a href="{{ path('downloadFile', {filename: 'standard_terms.pdf'}) }}" target="_blank">Download Terms & Conditions PDF</a>\n </div>\n {% endif %}\n {% if basket_requiretandcs == 1%}\n <div class="col-6 col-sm-7 pt-md terms-conditions-checkbox">\n <div class="form-check form-switch">\n <input type="checkbox" id="tandc" class="form-check-input cursor-pointer" role="switch" {% if basket_displaytandcs == 1%}disabled{% endif %}/>\n <label class="form-check-label" for="tandc" style="font-size: 1em;">I agree with the <a href="{{ path('downloadFile', {filename: 'standard_terms.pdf'}) }}" target="_blank">Terms & Conditions</a> {% if basket_displaytandcs == 1%}(Please read and scroll to continue){% endif %}</label>\n </div>\n </div>\n {% endif %}\n </div>\n {% endif %}\n <div class="row section-step-cart">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <a class="btn btn-primary btn-checkout" href="{{ referer }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket.svg') }}#icon-basket"></use></svg></span>CONTINUE SHOPPING</a>\n </div>\n <div class="col-sm-6 text-center text-sm-end cart_totals mb-4">\n <button class="btn btn-primary btn-checkout alt wc-forward no-margin basket-step" type="button" data-step="checkout"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26.374 21.786"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-basket-check.svg') }}#icon-basket-check"></use></svg></span>PROCEED TO CHECKOUT</button>\n </div>\n </div>\n <div class="row section-step-checkout" style="display: none">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <button class="btn btn-primary btn-checkout basket-step" type="button" data-step="cart"><i class="far fa-fw fa-chevron-left"></i> BACK</button>\n </div>\n <div class="col-sm-6 text-center text-sm-end cart_totals mb-4">\n <button class="btn btn-primary btn-checkout alt wc-forward basket-step" type="button" data-step="payment" id="proceedtoPaymentButton"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-pound.svg') }}#icon-pound"></use></svg></span>PROCEED TO PAYMENT</button>\n </div>\n </div>\n \n <div class="row section-step-payment" style="display: none">\n <div id="worldpay">\n <h4 class="mb-3">Customer Payment Details</h4>\n <div class="row g-3">\n <div class="col-sm-6">\n <label class="form-label" for="customer_firstname">First Name</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_firstname" name="customer_firstname" maxlength="50" value="{{ app.user.invoiceaddress.firstname }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_lastname">Last Name</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_lastname" name="customer_lastname" maxlength="50" value="{{ app.user.invoiceaddress.lastname }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_add1">Address 1</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_add1" name="customer_add1" value="{{ app.user.invoiceaddress.add1 }}">\n \n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_add2">Address 2</label>\n <input class="form-control" type="text" id="customer_add2" name="customer_add2" value="{{ app.user.invoiceaddress.add2 }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_add3">Address 3</label>\n <input class="form-control" type="text" id="customer_add3" name="customer_add3" value="{{ app.user.invoiceaddress.add3 }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_city">City</label><span class="required">*</span>\n <input class="form-control" type="text" id="customer_city" name="customer_city" value="{{ app.user.invoiceaddress.city }}">\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_county">County</label>\n <input class="form-control" type="text" id="customer_county" name="customer_county" value="{{ app.user.invoiceaddress.county }}">\n \n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_postcode">Postcode</label>\n <input class="form-control" type="text" id="customer_postcode" name="customer_postcode" value="{{ app.user.invoiceaddress.postcode }}">\n \n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_countrycode">Country</label>\n <select class="form-select" id="customer_countrycode" name="customer_countrycode">\n {% include '@ops_frontend_bundle/blocks/countrycodes.html.twig' %}\n </select>\n </div>\n <div class="col-sm-6">\n <label class="form-label" for="customer_email">Email</label><span class="required">*</span>\n <input class="form-control" type="email" id="customer_email" name="customer_email" value="{{ app.user.email }}">\n </div>\n </div>\n </div>\n {% if basket_payment_bacs == 1 %}\n <div id="bacsdetails" style="display: none">\n <div class="row">\n <div class="col-sm-12">\n <p>To make payment please find our details below these can also be found at the bottom of your confirmation email<br>\n Terms and Conditions apply.<br>\n {{ bacsdetails|raw }}\n </p>\n </div>\n </div>\n </div>\n {% endif %}\n </div>\n <div class="row section-step-payment section-margin-top" style="display: none">\n <div class="col-sm-6 text-center text-sm-start mb-4">\n <button class="btn btn-primary btn-checkout basket-step" type="button" data-step="checkout"><i class="far fa-fw fa-chevron-left"></i> BACK</button>\n </div>\n <div class="col-sm-6 text-center text-sm-end cart_totals mb-4">\n <button class="btn btn-primary btn-checkout alt wc-forward" type="submit"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.047 59.977"><use href="{{ asset('opsfrontendbundle/assets/images/icons/icon-complete.svg') }}#icon-complete"></use></svg></span>PLACE ORDER</button>\n </div>\n </div>\n {% endif %}\n </div>\n </form>\n </div>\n {% endif %}\n \n <div id='custom-html'></div>\n <a href='#' id='custom-trigger' class="hidden">Click me</a>\n {% endblock%}\n \n {% block javascripts %}\n <script src="{{ path('packedJs',{'filename':'basket.js'}) }}?v=1"></script>\n <script>\n const entries = performance.getEntriesByType("navigation");\n entries.forEach((entry) => {\n if (entry.type === "back_forward") {\n location.reload(true);\n }\n });\n \n {% if appliedPromo is defined %}\n company.appliedPromo = '{{ appliedPromo|json_encode| raw }}';\n {% endif %}\n \n \n $(document).ready(function() {\n $("#editAddressAjax").on("submit", function(e){\n e.preventDefault();\n let data = {};\n $(this).serializeArray().forEach((object)=>{\n data[object.name] = object.value;\n });\n \n $.ajax({\n type: "POST",\n url: '{{ path('address') }}',\n data: data,\n beforeSend: function() {\n $.blockUI({\n message : '<i class="fa fa-spinner fa-spin"></i> Saving details...'\n });\n },\n success: function(data) {\n $.unblockUI();\n \n let addressHtml = data.firstname + ' ' + data.lastname+'<br>'+\n data.add1;\n if(data.add2 !== null) {\n addressHtml += '<br>'+data.add2;\n }\n if(data.add3 !== null) {\n addressHtml += '<br>'+data.add3;\n }\n addressHtml += '<br>'+data.city+'<br>'+data.postcode+'<br>'+data.country.country+'<br>';\n addressHtml += '<button type="button" data-addressid="'+data.addressid+'" title="Edit this address" class="btn btn-default btn-dark my-3 basketEditButtons edit-address"><i class="far fa-fw fa-pencil"></i> Edit Address</button>';\n \n company.showWindows('mainTab');\n \n if($('#deliveryAddress'+data.addressid).length){\n //update\n $('#deliveryAddress'+data.addressid).html(addressHtml);\n $("label[for='addressDeliverySelect"+data.addressid+"']").html('<span></span>'+ data.firstname + ' ' + data.lastname+' - '+data.postcode);\n }\n else{\n //add it\n $('#deliveryInfoNew').before('<div class="icheck-primary"><input type="radio" name="deliveryAddress" required value="'+data.addressid+'" id="addressDeliverySelect'+data.addressid+'"><label for="addressDeliverySelect'+data.addressid+'"><span></span>'+data.firstname+' '+data.lastname+' - '+data.postcode+'</label><div class="selectedDeliveryAddress" id="deliveryAddress'+data.addressid+'" style="display: none">'+addressHtml+'</div></div>');\n \n $('input[type=radio][name=deliveryAddress]').on('change',function() {\n company.changeDeliveryAddress(this.value);\n \n if(parseInt(this.value) === 0){\n $('#payonCollection').parent().css('display','block');\n }\n else {\n $('#payonCollection').parent().css('display','none');\n }\n });\n \n $('#addressDeliverySelect'+data.addressid).click();\n //$('input[name="deliveryAddress"]').trigger('change');\n }\n \n company.notification("Your address has been updated.", "success");\n },\n error: function(res) {\n $.unblockUI();\n company.notification(res.responseText,'error');\n }\n });\n })\n \n {% if app.user %}\n $('#customer_countrycode').val('{{ app.user.invoiceaddress.countrycode }}');\n {% endif %}\n var complete_order_options = {\n success: function(data) {\n $.unblockUI();\n if(data.msg === 'login'){\n company.modalLogin();\n }\n if(data.msg === 'reference'){\n window.location.href = ('{{ url('basket_3Dform') }}');\n }\n if(data.msg === 'ok'){\n window.location.href = ('{{ url('basket_complete') }}');\n }\n \n },\n beforeSend: function() {\n $.blockUI({\n message : '<i class="fa fa-spinner fa-spin"></i> Placing order...'\n });\n },\n error: function (data) {\n $.unblockUI();\n var error = JSON.parse(data.responseText);\n company.notification(error.message, "error");\n },\n url: '{{ path('basket_checkout') }}',\n type: 'POST',\n clearForm: false,\n resetForm: false\n };\n $("#orderForm").ajaxForm(complete_order_options);\n \n company.buildBasket('{{ basket|json_encode|url_encode }}');\n \n $('[name=deliveryAddress]').on('change',function() {\n company.changeDeliveryAddress(this.value);\n \n if(parseInt(this.value) === 0){\n $('#payonCollection').parent().css('display','block');\n }\n else {\n $('#payonCollection').parent().css('display','none');\n }\n });\n {% if restrictdelivery == 1 %}\n company.restrictdelivery = 1;\n {% endif %}\n $('input[type=radio][name=invoiceAddress]').on('change',function() {\n company.changeInvoiceAddress(this.value);\n });\n \n $('input[type=radio][name=paymentMethod]').on('change',function() {\n var worldpay = $('#worldpay');\n var bacsdetails = $('#bacsdetails');\n var customer_name = $("#customer_name");\n var customer_add1 = $("#customer_add1");\n var customer_city = $("#customer_city");\n var customer_email = $("#customer_email");\n var customer_email2 = $("#customer_email2");\n \n if(this.value === "Online"){\n worldpay.show().removeClass('animated fadeOutRight').addClass('animated fadeInLeft');\n customer_name.prop('required',true);\n customer_add1.prop('required',true);\n customer_city.prop('required',true);\n customer_email.prop('required',true);\n customer_email2.prop('required',false);\n }\n else{\n worldpay.removeClass('animated fadeInLeft').addClass('animated fadeOutRight');\n setTimeout(function(){ worldpay.hide(); }, 800);\n customer_name.prop('required',false);\n customer_add1.prop('required',false);\n customer_city.prop('required',false);\n customer_email.prop('required',false);\n customer_email2.prop('required',false);\n }\n \n if(this.value === 'BACS'){\n bacsdetails.show().removeClass('animated fadeOutRight').addClass('animated fadeInLeft');\n }\n else{\n bacsdetails.removeClass('animated fadeInLeft').addClass('animated fadeOutRight');\n setTimeout(function(){ bacsdetails.hide(); }, 800);\n }\n });\n \n $('#termsandconditions').scroll(function () {\n if ($(this).scrollTop() + $(this).innerHeight() +2 >= $(this)[0].scrollHeight) {\n $('#tandc').attr('disabled',false);\n }\n });\n \n company.addAddressListeners();\n company.showWindowListeners();\n company.basketPageListeners();\n });\n </script>\n {% endblock %} """ : { { __TwigTemplate_a94874e4b1eee4b2e706c668ceb75053->{closure} … › |