Cono golosinas cumpleaños
Serpentinas, matasuegras y cotillones para un ambiente alegre, muchos lápices de colores para un taller creativo, golosinas (palomitas, nubes de gominola, etc.), detallitos... ¡un sinfín de posibilidades para rellenar tus conos con regalos que harán las delicias de tus invitados!
Nos enorgullece presentar nuestra colección cápsula de cumpleaños creada conjuntamente con la emblemática marca de ropa infantil BONTON. Estas chispeantes creaciones combinan los colores vivos y los estampados de esta marca para niños con nuestra creatividad y saber hacer.
Con esta opción nuestros diseñadores revisan tu pedido y verifican lo siguiente:
- El texto: ortografía, gramática, estructura del texto (SÓLO en español y sin comprobar la información personal)
- La maquetación: edición de la personalización, formato del texto y tipografías
- Su(s) foto(s): calidad y posición de la foto
La opción control también es necesaria para realizar los siguientes cambios:
- Añadir su propio logotipo / iconos / código QR / mapa
- Eliminar o añadir un elemento al diseño existente (validado previamente después de habernos consultado)
- Cambiar un color de texto
- Añadir un texto en un alfabeto diferente (con símbolos que no reconoce nuestra personalización)
No se permiten cambios de motivos, colores, fondos, ilustraciones,... de los modelos por protección de derechos de autor.
En el caso de añadir logotipo, iconos,... o un texto en alfabeto diferente enviar, por favor, un mail a maquetacion@cottonbird.es indicando el nº de pedido y adjuntando el elemento de los mencionados en el mail (en el caso de los logotipos, iconos, etc. un fichero mínimo de 300p de resolución jpg, png o vectorizado).
El precio de la opción varía en función de la cantidad de productos en la cesta.
Con la opción control quédate tranquilo, nuestro equipo de maquetistas revisará vuestra creación y te informará si algún cambio es necesario.
MUY IMPORTANTE: si te enviamos una maqueta debéis mirar con atención la maqueta, datos personales, horarios, lugares y contenido de los textos,... todo para que sea la correcta.
Los tiempos de entrega comienzan a partir de la validación de la maqueta.
Puedes seleccionar esta opción en la página de la cesta.
Máquinas con la etiqueta C02 neutral
Distinción concedida a las empresas que han definido una estrategia para reducir las emisiones de CO2.
Tintas más ecológicas para el planeta
Nuestro taller sólo utiliza tintas certificadas compostables y biodegradables.
Una política papelera responsable
Nuestros papeles cuentan con la certificación FSC, proponemos papel con fibras 100% recicladas en una amplia selección de nuestros modelos.
¿Y mañana?
Las iniciativas de RSE forman parte de nuestro pensamiento cotidiano. Y como queremos ser siempre mejores, estamos felices de recibir tus comentarios y sugerencias.
Twig\Error\RuntimeError {#8604 -lineno: 6 -name: "@SyliusShop/StructuredData/_product.html.twig" -rawMessage: "An exception has been thrown during the rendering of a template ("Call to a member function getMinimumQuantity() on null")." -sourcePath: "/home/cottonbird/htdocs/front/releases/20260130092300Z/themes/CottonbirdB2C/templates/bundles/SyliusShopBundle/StructuredData/_product.html.twig" -sourceCode: """ {% import '@SyliusShop/StructuredData/Macro/structuredData.html.twig' as structuredData %}\n {% if product is not null %}\n {% set priceMinQuantity = get_product_variant_price(sylius.channel, product.getActiveVariants(sylius.channel).first, product.nature.minimumQuantity ) %}\n {% set totalPrice = priceMinQuantity is null ? 0 : priceMinQuantity['total'] %}\n {% set defaultAccessoryMinPrice = sylius.channel.code != constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_NL')\n and sylius.channel.code != constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_GB')\n ? get_default_accessory_min_price(sylius.channel, product.getActiveVariants(sylius.channel).first, product) : 0\n %}\n {% set price = sylius.channel.code == constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_NL')\n or sylius.channel.code == constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_GB')\n ? get_min_price(product) / 100 : (totalPrice / 100) + (defaultAccessoryMinPrice / 100)\n %}\n \n {{ structuredData.product(product,price) }}\n {% endif %}\n """ }
{% import '@SyliusShop/StructuredData/Macro/structuredData.html.twig' as structuredData %}{% if product is not null %}{% set priceMinQuantity = get_product_variant_price(sylius.channel, product.getActiveVariants(sylius.channel).first, product.nature.minimumQuantity ) %}{% set totalPrice = priceMinQuantity is null ? 0 : priceMinQuantity['total'] %}{% set defaultAccessoryMinPrice = sylius.channel.code != constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_NL')and sylius.channel.code != constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_GB')? get_default_accessory_min_price(sylius.channel, product.getActiveVariants(sylius.channel).first, product) : 0%}{% set price = sylius.channel.code == constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_NL')or sylius.channel.code == constant('App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_GB')? get_min_price(product) / 100 : (totalPrice / 100) + (defaultAccessoryMinPrice / 100) return $this->blocks; } public function display(array $context, array $blocks = []): void { foreach ($this->yield($context, $blocks) as $data) { echo $data; } } public function render(array $context): string ob_start(); } else { ob_start(function () { return ''; }); } try { $this->display($context); } catch (\Throwable $e) { while (ob_get_level() > $level) { ob_end_clean(); } yield from $this->template->yieldBlock($name, $context); } public function render(array $context = []): string { return $this->template->render($context); } /** * @return void */ * @throws SyntaxError When an error occurred during compilation * @throws RuntimeError When an error occurred during rendering */ public function render($name, array $context = []): string { return $this->load($name)->render($context); } /** * Displays a template. * if ($this->container->has('templating')) { @trigger_error('Using the "templating" service is deprecated since Symfony 4.3 and will be removed in 5.0; use Twig instead.', \E_USER_DEPRECATED); $content = $this->container->get('templating')->render($view, $parameters); } elseif ($this->container->has('twig')) { $content = $this->container->get('twig')->render($view, $parameters); } else { throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available. Try running "composer require symfony/twig-bundle".'); } if (null === $response) { $params = [ 'configuration' => $configuration, 'resource' => $resource, $this->metadata->getName() => $resource, ]; $response = $this->render($configuration->getTemplate(ResourceActions::SHOW . '.html'), $params); $boxType = $request->attributes->get('boxType') ?? ''; $response->setPublic(); $response->headers->set('Surrogate-Control', 'content="ESI/1.0"'); if (null !== $resource) { $this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS); $controller = $event->getController(); $arguments = $event->getArguments(); // call controller $response = $controller(...$arguments); // view if (!$response instanceof Response) { $event = new ViewEvent($this, $request, $type, $response, $event); $this->dispatcher->dispatch($event, KernelEvents::VIEW); $request->headers->set('X-Php-Ob-Level', (string) ob_get_level()); $this->requestStack->push($request); $response = null; try { return $response = $this->handleRaw($request, $type); } catch (\Throwable $e) { if ($e instanceof \Error && !$this->handleAllThrowables) { throw $e; } $this->boot(); ++$this->requestStackSize; $this->resetServices = true; try { return $this->getHttpKernel()->handle($request, $type, $catch); } finally { --$this->requestStackSize; } } ) { } public function run(): int { $response = $this->kernel->handle($this->request); if (Kernel::VERSION_ID >= 60400) { $response->send(false); if (\function_exists('fastcgi_finish_request') && !$this->debug) {$app = $app(...$args);exit( $runtime ->getRunner($app) ->run());<?phpuse App\Kernel;require_once dirname(__DIR__) . '/vendor/autoload_runtime.php';if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS'] = 'on'; $_SERVER['SERVER_PORT'] = 443; /** @var ChannelInterface $channel */ $channel = $this->channelContext->getChannel(); $salesUnitRequirement = $product->getSalesUnitRequirement($channel->getDefaultLocale()->getCode()); $minimumQuantity = $product->getNature()->getMinimumQuantity() ?? 1; $quantity = (int) \ceil($salesUnitRequirement * $productQuantity / $product->getPack($channel)); return \max($quantity, $minimumQuantity); } $defaultAccessoryPrice = 0; /** @var ProductVariantAccessoryInterface $accessory */ foreach ($variant->getDefaultAccessories() as $accessory) { if (!$accessory->getAccessory()->isUnsellable()) { $quantity = self::getAccessoryQuantiyForProductQuantity( $accessory->getAccessory(), $product->getMinimumQuantity(), ); $price = $this->productPriceCalculator->getMaxPriceByProductVariant( $accessory->getAccessory(), public function getDefaultAccessoryMinPriceForMinProductQuantity( ChannelInterface $channel, ProductVariantInterface $variant, ProductInterface $product, ): float { return $this->accessoryHelper->getDefaultAccessoryPriceForMinQuantityProduct($channel, $variant, $product); } public function getMinPriceWithCatalogPromotion(ProductInterface $product): array { /** @var ChannelInterface $channel */ yield " "; $context["totalPrice"] = (((null === (isset($context["priceMinQuantity"]) || array_key_exists("priceMinQuantity", $context) ? $context["priceMinQuantity"] : (function () { throw new RuntimeError('Variable "priceMinQuantity" does not exist.', 4, $this->source); })()))) ? (0) : (CoreExtension::getAttribute($this->env, $this->source, (isset($context["priceMinQuantity"]) || array_key_exists("priceMinQuantity", $context) ? $context["priceMinQuantity"] : (function () { throw new RuntimeError('Variable "priceMinQuantity" does not exist.', 4, $this->source); })()), "total", [], "array", false, false, false, 4))); // line 5 yield " "; $context["defaultAccessoryMinPrice"] = ((((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["sylius"]) || array_key_exists("sylius", $context) ? $context["sylius"] : (function () { throw new RuntimeError('Variable "sylius" does not exist.', 5, $this->source); })()), "channel", [], "any", false, false, false, 5), "code", [], "any", false, false, false, 5) != Twig\Extension\CoreExtension::constant("App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_NL")) && (CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, // line 6(isset($context["sylius"]) || array_key_exists("sylius", $context) ? $context["sylius"] : (function () { throw new RuntimeError('Variable "sylius" does not exist.', 6, $this->source); })()), "channel", [], "any", false, false, false, 6), "code", [], "any", false, false, false, 6) != Twig\Extension\CoreExtension::constant("App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_GB")))) ? ($this->extensions['App\Twig\Product\ProductExtension']->getDefaultAccessoryMinPriceForMinProductQuantity(CoreExtension::getAttribute($this->env, $this->source, // line 7(isset($context["sylius"]) || array_key_exists("sylius", $context) ? $context["sylius"] : (function () { throw new RuntimeError('Variable "sylius" does not exist.', 7, $this->source); })()), "channel", [], "any", false, false, false, 7), CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 7, $this->source); })()), "getActiveVariants", [CoreExtension::getAttribute($this->env, $this->source, (isset($context["sylius"]) || array_key_exists("sylius", $context) ? $context["sylius"] : (function () { throw new RuntimeError('Variable "sylius" does not exist.', 7, $this->source); })()), "channel", [], "any", false, false, false, 7)], "method", false, false, false, 7), "first", [], "any", false, false, false, 7), (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 7, $this->source); })()))) : (0)); // line 9 yield " "; $context["price"] = ((((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["sylius"]) || array_key_exists("sylius", $context) ? $context["sylius"] : (function () { throw new RuntimeError('Variable "sylius" does not exist.', 9, $this->source); })()), "channel", [], "any", false, false, false, 9), "code", [], "any", false, false, false, 9) == Twig\Extension\CoreExtension::constant("App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_NL")) || (CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, // line 10(isset($context["sylius"]) || array_key_exists("sylius", $context) ? $context["sylius"] : (function () { throw new RuntimeError('Variable "sylius" does not exist.', 10, $this->source); })()), "channel", [], "any", false, false, false, 10), "code", [], "any", false, false, false, 10) == Twig\Extension\CoreExtension::constant("App\\Entity\\Channel\\ChannelInterface::CHANNEL_COTTONBIRD_GB")))) ? (($this->extensions['App\Twig\Product\ProductExtension']->getMinPrice( // line 11 { $context += $this->env->getGlobals(); $blocks = array_merge($this->blocks, $blocks); try { yield from $this->doDisplay($context, $blocks); } catch (Error $e) { if (!$e->getSourceContext()) { $e->setSourceContext($this->getSourceContext()); } return $this->blocks; } public function display(array $context, array $blocks = []): void { foreach ($this->yield($context, $blocks) as $data) { echo $data; } } public function render(array $context): string ob_start(); } else { ob_start(function () { return ''; }); } try { $this->display($context); } catch (\Throwable $e) { while (ob_get_level() > $level) { ob_end_clean(); } yield from $this->template->yieldBlock($name, $context); } public function render(array $context = []): string { return $this->template->render($context); } /** * @return void */ * @throws SyntaxError When an error occurred during compilation * @throws RuntimeError When an error occurred during rendering */ public function render($name, array $context = []): string { return $this->load($name)->render($context); } /** * Displays a template. * if ($this->container->has('templating')) { @trigger_error('Using the "templating" service is deprecated since Symfony 4.3 and will be removed in 5.0; use Twig instead.', \E_USER_DEPRECATED); $content = $this->container->get('templating')->render($view, $parameters); } elseif ($this->container->has('twig')) { $content = $this->container->get('twig')->render($view, $parameters); } else { throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available. Try running "composer require symfony/twig-bundle".'); } if (null === $response) { $params = [ 'configuration' => $configuration, 'resource' => $resource, $this->metadata->getName() => $resource, ]; $response = $this->render($configuration->getTemplate(ResourceActions::SHOW . '.html'), $params); $boxType = $request->attributes->get('boxType') ?? ''; $response->setPublic(); $response->headers->set('Surrogate-Control', 'content="ESI/1.0"'); if (null !== $resource) { $this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS); $controller = $event->getController(); $arguments = $event->getArguments(); // call controller $response = $controller(...$arguments); // view if (!$response instanceof Response) { $event = new ViewEvent($this, $request, $type, $response, $event); $this->dispatcher->dispatch($event, KernelEvents::VIEW); $request->headers->set('X-Php-Ob-Level', (string) ob_get_level()); $this->requestStack->push($request); $response = null; try { return $response = $this->handleRaw($request, $type); } catch (\Throwable $e) { if ($e instanceof \Error && !$this->handleAllThrowables) { throw $e; } $this->boot(); ++$this->requestStackSize; $this->resetServices = true; try { return $this->getHttpKernel()->handle($request, $type, $catch); } finally { --$this->requestStackSize; } } ) { } public function run(): int { $response = $this->kernel->handle($this->request); if (Kernel::VERSION_ID >= 60400) { $response->send(false); if (\function_exists('fastcgi_finish_request') && !$this->debug) {$app = $app(...$args);exit( $runtime ->getRunner($app) ->run());<?phpuse App\Kernel;require_once dirname(__DIR__) . '/vendor/autoload_runtime.php';if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS'] = 'on'; $_SERVER['SERVER_PORT'] = 443;|
[2/2]
RuntimeError
|
|---|
Twig\Error\RuntimeError:
An exception has been thrown during the rendering of a template ("Call to a member function getMinimumQuantity() on null").
at themes/CottonbirdB2C/templates/bundles/SyliusShopBundle/StructuredData/_product.html.twig:6
at Twig\Template->yield()
(vendor/twig/twig/src/Template.php:344)
at Twig\Template->display()
(vendor/twig/twig/src/Template.php:359)
at Twig\Template->render()
(vendor/twig/twig/src/TemplateWrapper.php:51)
at Twig\TemplateWrapper->render()
(vendor/twig/twig/src/Environment.php:334)
at Twig\Environment->render()
(vendor/sylius/resource-bundle/src/Bundle/Controller/ControllerTrait.php:247)
at Sylius\Bundle\ResourceBundle\Controller\ResourceController->render()
(src/Controller/ProductController.php:245)
at App\Controller\ProductController->getProductFragmentAction()
(vendor/symfony/http-kernel/HttpKernel.php:181)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
(vendor/symfony/http-kernel/HttpKernel.php:76)
at Symfony\Component\HttpKernel\HttpKernel->handle()
(vendor/symfony/http-kernel/Kernel.php:197)
at Symfony\Component\HttpKernel\Kernel->handle()
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:29)
at require_once('/home/cottonbird/htdocs/front/releases/20260130092300Z/vendor/autoload_runtime.php')
(public/index.php:5)
|
|
[1/2]
Error
|
|---|
Error:
Call to a member function getMinimumQuantity() on null
at src/Helper/AccessoryHelper.php:60
at App\Helper\AccessoryHelper->getAccessoryQuantiyForProductQuantity()
(src/Helper/AccessoryHelper.php:140)
at App\Helper\AccessoryHelper->getDefaultAccessoryPriceForMinQuantityProduct()
(src/Twig/Product/ProductExtension.php:1010)
at App\Twig\Product\ProductExtension->getDefaultAccessoryMinPriceForMinProductQuantity()
(var/cache/prod/twig/2c/2cde00a71e5a7de71b1bce15d9195acf.php:60)
at __TwigTemplate_cfa8b4111f694daac7d4c8bf612425dc->doDisplay()
(vendor/twig/twig/src/Template.php:388)
at Twig\Template->yield()
(vendor/twig/twig/src/Template.php:344)
at Twig\Template->display()
(vendor/twig/twig/src/Template.php:359)
at Twig\Template->render()
(vendor/twig/twig/src/TemplateWrapper.php:51)
at Twig\TemplateWrapper->render()
(vendor/twig/twig/src/Environment.php:334)
at Twig\Environment->render()
(vendor/sylius/resource-bundle/src/Bundle/Controller/ControllerTrait.php:247)
at Sylius\Bundle\ResourceBundle\Controller\ResourceController->render()
(src/Controller/ProductController.php:245)
at App\Controller\ProductController->getProductFragmentAction()
(vendor/symfony/http-kernel/HttpKernel.php:181)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
(vendor/symfony/http-kernel/HttpKernel.php:76)
at Symfony\Component\HttpKernel\HttpKernel->handle()
(vendor/symfony/http-kernel/Kernel.php:197)
at Symfony\Component\HttpKernel\Kernel->handle()
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:29)
at require_once('/home/cottonbird/htdocs/front/releases/20260130092300Z/vendor/autoload_runtime.php')
(public/index.php:5)
|