{"id":288870,"date":"2025-08-08T11:16:12","date_gmt":"2025-08-08T09:16:12","guid":{"rendered":"https:\/\/www.isoladicomunicazione.com\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/"},"modified":"2025-08-08T14:23:35","modified_gmt":"2025-08-08T12:23:35","slug":"custom-course-booking-system-ecommerce-for-ceramics-workshop","status":"publish","type":"portfolio-web-agency","link":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/","title":{"rendered":"Custom course booking system &#8211; Ecommerce for ceramics workshop"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"288870\" class=\"elementor elementor-288870 elementor-288847\" data-elementor-post-type=\"portfolio-web-agency\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-529142a elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"529142a\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4ac0864\" data-id=\"4ac0864\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-054a7c3 elementor-section-full_width sliding-text elementor-section-height-default elementor-section-height-default\" data-id=\"054a7c3\" data-element_type=\"section\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-5b657c2 overflow\" data-id=\"5b657c2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ff90914 overflow elementor-widget elementor-widget-text-editor\" data-id=\"ff90914\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>POTTERY WORKSHOP POTTERY WORKSHOP POTTERY WORKSHOP<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-3555b92 elementor-widget elementor-widget-html\" data-id=\"3555b92\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\nbody{\r\n    --speed: 18s;\r\n}\r\n.sliding-text .elementor-widget-wrap{\r\n    display: block !important;\r\n}\r\n.sliding-text .elementor-widget{\r\n    overflow: hidden;\r\n    width: 10000vw !important;\r\n    max-width: 10000vw !important;\r\n}\r\n.sliding-text .sliding .elementor-widget-container{\r\n    -webkit-animation: sliding var(--speed) linear infinite;\r\n    -moz-animation: sliding var(--speed) linear infinite;\r\n    -o-animation: sliding var(--speed) linear infinite;\r\n    animation: sliding var(--speed) linear infinite;\r\n}\r\n.sliding-text .elementor-widget-container{\r\n    float: left;\r\n}\r\n.sliding-text.reverse{\r\n    transform: rotate(180deg);\r\n}\r\n.sliding-text.reverse .sliding .elementor-heading-title{\r\n    transform: scale(-1, -1);\r\n}\r\n@keyframe sliding{\r\n0%{ transform: translateX(0); }\r\n100%{ transform: translateX(-100%); }\r\n}\r\n@-webkit-keyframes sliding {\r\n0%{ transform: translateX(0); }\r\n100%{ transform: translateX(-100%); }\r\n}\r\n@-moz-keyframes sliding {\r\n0%{ transform: translateX(0); }\r\n100%{ transform: translateX(-100%); }\r\n}\r\n@-o-keyframes sliding {\r\n0%{ transform: translateX(0); }\r\n100%{ transform: translateX(-100%); }\r\n}\r\n@keyframes sliding {\r\n0%{ transform: translateX(0); }\r\n100%{ transform: translateX(-100%); }\r\n}\r\n<\/style>\r\n\r\n<script src=\"https:\/\/code.jquery.com\/jquery-3.6.0.min.js\"><\/script>\r\n<script>\r\nvar $ = jQuery\r\n\r\n$(document).ready(function(){\r\n\r\n    var h = []\r\n\r\n    $('.sliding-text').each(function(){\r\n        h.push($(this).find('.elementor-widget').clone().html())\r\n    })\r\n    \r\n    function init(){\r\n        $('.sliding-text').each(function(i){\r\n\r\n            var $this = $(this)\r\n\r\n            $this.find('.elementor-widget').removeClass('sliding')\r\n\r\n            var amount = Math.ceil($(window).width()\/$(this).find('.elementor-widget-container').outerWidth(true)) + 1\r\n\r\n            $this.find('.elementor-widget').empty().addClass('sliding')\r\n            $this.find('.elementor-widget').html(h[i].repeat(amount))\r\n        })  \r\n    }\r\n    \r\n    init()\r\n    $(window).on('load resize', init)\r\n})\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ff635be elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"ff635be\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2d433b7\" data-id=\"2d433b7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c0cd3e2 elementor-widget-mobile__width-initial elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"c0cd3e2\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">project:<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e144761 elementor-widget-mobile__width-initial elementor-widget elementor-widget-heading\" data-id=\"e144761\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\"><span style=\"font-weight:500\">Custom <br>course booking system <br>Ecommerce for <\/span>pottery workshop <br><\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-71b0ed5 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"71b0ed5\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-d28aef3\" data-id=\"d28aef3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-d7366ce\" data-id=\"d7366ce\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-36af4c6 elementor-widget elementor-widget-image\" data-id=\"36af4c6\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1050\" height=\"1050\" src=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/prenotazione-corsi-sistema-custom.png\" class=\"attachment-2048x2048 size-2048x2048 wp-image-288857\" alt=\"Prenotazione Corsi con Sistema Custom Isola\" srcset=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/prenotazione-corsi-sistema-custom.png 1050w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/prenotazione-corsi-sistema-custom-300x300.png 300w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/prenotazione-corsi-sistema-custom-150x150.png 150w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/prenotazione-corsi-sistema-custom-768x768.png 768w\" sizes=\"(max-width: 1050px) 100vw, 1050px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9d38955 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"9d38955\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b0bbe47\" data-id=\"b0bbe47\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-efb39d8 elementor-widget elementor-widget-heading\" data-id=\"efb39d8\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">A smooth user experience, flexible internal management<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3d45347 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"3d45347\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-283c09f\" data-id=\"283c09f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bff6c55 elementor-widget elementor-widget-text-editor\" data-id=\"bff6c55\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>For an art workshop specializing in organizing pottery courses, we designed and developed a <strong>fully customized online course booking system<\/strong>. The intervention covered both the front-end and the logical and functional architecture of the back-end, with a focus on <strong>usability<\/strong>, <strong>administrative flexibility<\/strong> and <strong>scalability<\/strong>. <\/p><p>The site is configured as a true vertical e-commerce, aimed at selling tickets to access courses. The project required extensive customization of existing plugins and the development of ad hoc modules to meet specific customer needs not supported by market plugins. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-538be17 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"538be17\" data-element_type=\"section\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-5edc085\" data-id=\"5edc085\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-023c621 elementor-widget elementor-widget-heading\" data-id=\"023c621\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Technology stack and architecture<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-667c6c7\" data-id=\"667c6c7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-21e4c08 elementor-widget-widescreen__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"21e4c08\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The platform is based on <strong>WordPress<\/strong> and <strong>WooCommerce<\/strong>, supported by:<\/p><ul><li>Advanced <strong>Custom Fields (ACF)<\/strong> for advanced management of metadata and conditional logic<\/li><li><strong>WooCommerce Appointments<\/strong> for time-based booking management<br>Custom plugins developed in PHP and integrated with existing infrastructure<\/li><\/ul><p> <\/p><p>All code was written with adherence to WordPress standards (coding standards, actions and filters), so as to ensure <strong>future compatibility<\/strong> and <strong>maintainability over time<\/strong>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-11f5efc elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"11f5efc\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-cb50fe1\" data-id=\"cb50fe1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-94ae289 elementor-widget elementor-widget-image\" data-id=\"94ae289\" data-element_type=\"widget\" data-settings=\"{&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateX_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateX_direction&quot;:&quot;negative&quot;,&quot;motion_fx_translateX_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.40000000000000002220446049250313080847263336181640625,&quot;sizes&quot;:[]},&quot;motion_fx_translateX_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:61}},&quot;ekit_we_effect_on&quot;:&quot;none&quot;,&quot;motion_fx_devices&quot;:[&quot;widescreen&quot;,&quot;desktop&quot;,&quot;laptop&quot;,&quot;tablet_extra&quot;,&quot;tablet&quot;,&quot;mobile_extra&quot;,&quot;mobile&quot;]}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1050\" height=\"1050\" src=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sviluppato-sistema-custom-per-corsi-di-ceramica.png\" class=\"attachment-2048x2048 size-2048x2048 wp-image-288860\" alt=\"Sviluppato sistema custom per prenotazione corsi\" srcset=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sviluppato-sistema-custom-per-corsi-di-ceramica.png 1050w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sviluppato-sistema-custom-per-corsi-di-ceramica-300x300.png 300w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sviluppato-sistema-custom-per-corsi-di-ceramica-150x150.png 150w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sviluppato-sistema-custom-per-corsi-di-ceramica-768x768.png 768w\" sizes=\"(max-width: 1050px) 100vw, 1050px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-082c40a\" data-id=\"082c40a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-57679f9 elementor-widget__width-auto elementor-absolute e-transform circle elementor-widget elementor-widget-text-path\" data-id=\"57679f9\" data-element_type=\"widget\" data-settings=\"{&quot;text&quot;:&quot;values of Isola - competence - professionalism - smile -  &quot;,&quot;align&quot;:&quot;center&quot;,&quot;_position&quot;:&quot;absolute&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;link&quot;:{&quot;url&quot;:&quot;&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;ekit_we_effect_on&quot;:&quot;none&quot;,&quot;motion_fx_devices&quot;:[&quot;widescreen&quot;,&quot;desktop&quot;,&quot;laptop&quot;,&quot;tablet_extra&quot;,&quot;tablet&quot;,&quot;mobile_extra&quot;,&quot;mobile&quot;],&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_widescreen&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_laptop&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet_extra&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile_extra&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"text-path.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-text-path\" data-text=\"values of Isola - competence - professionalism - smile -  \" data-url=\"\/\/www.isoladicomunicazione.com\/wp-content\/plugins\/elementor\/assets\/svg-paths\/circle.svg\" data-link-url=\"\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0eaa17 elementor-widget__width-auto elementor-absolute e-transform elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"e0eaa17\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_rotateZ_effect&quot;:&quot;yes&quot;,&quot;motion_fx_rotateZ_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:2.100000000000000088817841970012523233890533447265625,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:35,&quot;sizes&quot;:[]},&quot;ekit_we_effect_on&quot;:&quot;none&quot;,&quot;motion_fx_rotateZ_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;motion_fx_devices&quot;:[&quot;widescreen&quot;,&quot;desktop&quot;,&quot;laptop&quot;,&quot;tablet_extra&quot;,&quot;tablet&quot;,&quot;mobile_extra&quot;,&quot;mobile&quot;],&quot;_transform_rotateZ_effect_widescreen&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_laptop&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet_extra&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile_extra&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-square-full\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3711ca elementor-widget__width-initial elementor-absolute elementor-widget-laptop__width-initial elementor-widget-tablet_extra__width-initial elementor-widget elementor-widget-image\" data-id=\"e3711ca\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_rotateZ_effect&quot;:&quot;yes&quot;,&quot;motion_fx_rotateZ_direction&quot;:&quot;negative&quot;,&quot;motion_fx_rotateZ_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:3,&quot;sizes&quot;:[]},&quot;ekit_we_effect_on&quot;:&quot;none&quot;,&quot;motion_fx_rotateZ_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;motion_fx_devices&quot;:[&quot;widescreen&quot;,&quot;desktop&quot;,&quot;laptop&quot;,&quot;tablet_extra&quot;,&quot;tablet&quot;,&quot;mobile_extra&quot;,&quot;mobile&quot;]}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/10\/quadrato-isola.png\" class=\"attachment-large size-large wp-image-278713\" alt=\"\" srcset=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/10\/quadrato-isola.png 1080w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/10\/quadrato-isola-300x300.png 300w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/10\/quadrato-isola-150x150.png 150w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/10\/quadrato-isola-768x768.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4207e17 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"4207e17\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ed499fb\" data-id=\"ed499fb\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f1b1cab elementor-widget elementor-widget-heading\" data-id=\"f1b1cab\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Custom <span style=\"color:#68E959\">plugins<\/span> developed<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-735cf8d elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"735cf8d\" data-element_type=\"section\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-afdf2e5\" data-id=\"afdf2e5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ceaa982 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"ceaa982\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"icon icon-business-and-finance\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf8f95b elementor-widget elementor-widget-heading\" data-id=\"bf8f95b\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Cross-product availability synchronization<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3887d2 elementor-widget elementor-widget-text-editor\" data-id=\"e3887d2\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One of the key requirements was the centralized management of availability. Although the courses are sold as different products, they share <strong>the same physical space<\/strong>: a lab with limited capacity.<br>We therefore developed a custom plugin that could automatically synchronize available slots among all courses that overlapped temporally. The system:  <\/p><ul><li><strong>Analyze active reservations<\/strong> on all related products<\/li><li>updates the global availability for each in real time<\/li><li><strong>Invalidates or limits<\/strong> the selection of conflicting slots<\/li><li>provides <strong>visual notifications<\/strong> via badges and tooltips in hover, to improve UX and guide the user in choice.<\/li><\/ul><p> <\/p><p>This logic has been integrated on both the front-end (with JS and AJAX) and back-end, ensuring <strong>data consistency even with simultaneous accesses<\/strong>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-d3a038d\" data-id=\"d3a038d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a57781a elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"a57781a\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"icon icon-percentage\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e2c47d elementor-widget elementor-widget-heading\" data-id=\"9e2c47d\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Dynamic conditional discounting<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c9d5cbe elementor-widget elementor-widget-text-editor\" data-id=\"c9d5cbe\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The client required a multilevel discount system that was conditional on time and quantity variables. Therefore, we designed a <strong>dynamic pricing<\/strong> module with the following features: <\/p><ul><li>Automatic activation of discount<strong> upon reaching purchase thresholds<\/strong> (e.g., two or more courses)<\/li><li><strong>Automatic exclusion of<\/strong> certain time slots (e.g., Sunday and Wednesday evenings)<\/li><li>Coupon compatibility disabled, to avoid cumulative discounts<\/li><li>custom field in admin to <strong>manage percentage<\/strong>, enable\/disable promo, and modify operating conditions.<\/li><\/ul><p><br>This logic was implemented by acting on both <strong>WooCommerce hooks <\/strong>and with<strong> PHP\/JS conditional scripts<\/strong> in the checkout.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-8d8ad37 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"8d8ad37\" data-element_type=\"section\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-4b09ca4\" data-id=\"4b09ca4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ead3b85 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"ead3b85\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"icon icon-credit-card1\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-244b0b0 elementor-widget elementor-widget-heading\" data-id=\"244b0b0\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Advanced Gift Card System<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53359b3 elementor-widget elementor-widget-text-editor\" data-id=\"53359b3\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>We have developed a complete system for purchasing and sending <strong>digital gift cards<\/strong> (prepaid codes), which can be used for booking courses.<br>The flow includes:<\/p><ol><li>user&#8217;s choice of amount<\/li><li>Recipient data entry and personalized message<\/li><li>automatic generation of a unique code with a default value<\/li><li>Automatic sending of a branded email, with dynamic content<\/li><li>Ability to use the card as a payment method during checkout.<\/li><\/ol><p><br>This module was created without external plugins, providing maximum freedom for customization and integration with the logic of &#8220;course&#8221; products.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-0061d8e\" data-id=\"0061d8e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-270ab2e elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"270ab2e\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"icon icon-calendar-full\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a2feab elementor-widget elementor-widget-heading\" data-id=\"7a2feab\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Appointments plugin override and customization<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-92cff79 elementor-widget elementor-widget-text-editor\" data-id=\"92cff79\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>We worked directly on the core of the WooCommerce Appointments plugin, performing targeted template overrides and introducing custom filters to adapt booking logic to the constraints of the lab.<br>In particular, we:<\/p><ul><li>Forced the logic of <strong>shared unavailability<\/strong> across multiple courses<\/li><li>Managed <strong>holidays and special times<\/strong> directly from backend<\/li><li>Modified the automatic notification system, integrating it with email and dynamic badges.<\/li><\/ul><p><br>The result is a plugin that maintains the reliability of a solid base, but with completely tailored behaviors.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-376da56 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"376da56\" data-element_type=\"section\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-472dc5e\" data-id=\"472dc5e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2c3092b elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"2c3092b\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"icon icon-credit-card\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b0d864 elementor-widget elementor-widget-heading\" data-id=\"4b0d864\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Payments integration with SumUp<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60f9240 elementor-widget elementor-widget-text-editor\" data-id=\"60f9240\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The payment system has been extended to support <strong>SumUp<\/strong>, both as an online payment method and to synchronize physical sales with the ecommerce platform.<br>Via REST API, the gateway enables:<\/p><ul><li>Direct payments from physical POS synchronized with WooCommerce orders<\/li><li>automatic reconciliation of sales data<\/li><li>Unified reporting management via dashboard.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-f5f09fb\" data-id=\"f5f09fb\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1e3bcb1 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"1e3bcb1\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"far fa-window-restore\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f608583 elementor-widget elementor-widget-heading\" data-id=\"f608583\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Automation of promotional windows with timed discounts<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6aeaad0 elementor-widget elementor-widget-text-editor\" data-id=\"6aeaad0\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In order to offer targeted promotions at certain times of the year or according to business strategies, a <strong>plugin<\/strong> has been developed <strong>to automatically enable and disable promotional windows.<\/strong> The system allows: <\/p><ul><li>Define time intervals of validity for each promo<\/li><li>Apply specific discounts on certain courses or time slots<\/li><li>Show dynamic promotional badges in the UI based on the active status of the promo<\/li><\/ul><p> <\/p><p>Everything is manageable from the backend via a dedicated interface, allowing campaigns to be scheduled in advance without daily manual intervention. The system is seamlessly integrated with slot logic and availability, avoiding conflicts or overlaps. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-0856d79 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"0856d79\" data-element_type=\"section\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-52c8d91\" data-id=\"52c8d91\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5fccd20 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"5fccd20\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"far fa-window-minimize\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f144adf elementor-widget elementor-widget-heading\" data-id=\"f144adf\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Automatic removal of unconfirmed orders to free up availability<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af3c8e0 elementor-widget elementor-widget-text-editor\" data-id=\"af3c8e0\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>To optimize slot occupancy and reduce &#8220;ghost&#8221; bookings, a <strong>module<\/strong> was developed <strong>that monitors pending orders<\/strong> <strong>and automatically cancels them<\/strong> after a predetermined time. This logic: <\/p><ul><li>Avoids blocking of slots by unfinalized orders<\/li><li>Updates real-time availability by making vacated slots immediately accessible<\/li><li>Is configurable from the backend, with the ability to define different intervals by day or course type<\/li><\/ul><p> <\/p><p>The result is a more efficient system that minimizes unnecessary reservations and maximizes real availability for users.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-373460d\" data-id=\"373460d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-af73526 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"af73526\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"icon icon-document\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2129657 elementor-widget elementor-widget-heading\" data-id=\"2129657\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Manual appointment entry directly in the studio<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-56cc79b elementor-widget elementor-widget-text-editor\" data-id=\"56cc79b\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>To meet the day-to-day operational needs of the lab, a feature was developed that allows<strong>manual entry of appointments<\/strong> by staff directly from the WordPress backend. When a client shows up at the studio without having booked online, the operator can access the administrative area, select the desired course and slot, and create a booking in real time. The interface has been optimized to speed up the registration process, with quick selection of the client (including anonymous), indication of the payment method, and automatic generation of the corresponding WooCommerce order, marked as &#8220;paid on site.&#8221;  <br>At the technical level, the module interacts with the same internal APIs used for online bookings, ensuring consistency in updating availability and data integrity. Manually entered reservations follow the same cross-product synchronization rules and are tracked in the dashboard for unified appointment management. Provision has also been made to distinguish, via custom metadata, staff-entered reservations versus user-generated reservations, facilitating analysis and reporting.  <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-eda85da elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"eda85da\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-38c13e6\" data-id=\"38c13e6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1d836d9 elementor-widget elementor-widget-heading\" data-id=\"1d836d9\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Design and <span style=\"color:#68E959\">UX<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-c5b833c\" data-id=\"c5b833c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b32e0a1 elementor-widget elementor-widget-spacer\" data-id=\"b32e0a1\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6acd5a elementor-widget elementor-widget-text-editor\" data-id=\"b6acd5a\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Each element was designed and coded to provide <strong>smooth navigation consistent<\/strong> with the brand identity. User interfaces were carefully curated, with targeted interventions on: <\/p><ul><li>Management of the status of available slots (exhausted, running low, available)<\/li><li>Tooltips, visual feedback, and contextual call-to-actions<\/li><li>Minimized booking flow, with no superfluous pages<\/li><li>Full responsive design for mobile and tablet.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c5bce98 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"c5bce98\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e244bd4\" data-id=\"e244bd4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-25cb8e0 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"25cb8e0\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The final result<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3303a60 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"3303a60\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-4e0744d\" data-id=\"4e0744d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-046364f elementor-widget elementor-widget-text-editor\" data-id=\"046364f\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The website is not just a digital storefront, but a <strong>management system in<\/strong> its own <strong>right<\/strong>. The laboratory now has a tool that allows it to: <\/p><ul><li>sell courses easily and efficiently<\/li><li>Independently manage availability, discounts, coupons and communications<\/li><li>Optimize the user experience with guided and intelligent flows<\/li><li>Monitor sales and reservations with centralized tools.<\/li><\/ul><p> <\/p><p>A project that combines <strong>advanced development<\/strong>, <strong>deep customization<\/strong>, and <strong>user experience curation<\/strong> into a single digital ecosystem.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-a1f4bee\" data-id=\"a1f4bee\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e55fd52 elementor-widget elementor-widget-image\" data-id=\"e55fd52\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-di-prenotazione-corsi-custom-e-calendarizzazione.jpg\" class=\"attachment-large size-large wp-image-288866\" alt=\"\" srcset=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-di-prenotazione-corsi-custom-e-calendarizzazione.jpg 1350w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-di-prenotazione-corsi-custom-e-calendarizzazione-300x300.jpg 300w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-di-prenotazione-corsi-custom-e-calendarizzazione-150x150.jpg 150w, https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-di-prenotazione-corsi-custom-e-calendarizzazione-768x768.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-959bfba elementor-widget elementor-widget-spacer\" data-id=\"959bfba\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d51cb1b elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"d51cb1b\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d774485\" data-id=\"d774485\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-de8297b elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"de8297b\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-a6bc5d5\" data-id=\"a6bc5d5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-64d7e03 elementor-widget elementor-widget-heading\" data-id=\"64d7e03\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Entrust your projects <br> to the team at <span style=\"color:#68E959\">Isola<\/span><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-de5e223\" data-id=\"de5e223\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-319baf1 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"319baf1\" data-element_type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-md\" href=\"https:\/\/www.isoladicomunicazione.com\/en\/contact\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" id=\"Livello_2_00000009591407715317699330000004868725230660465025_\" x=\"0px\" y=\"0px\" viewBox=\"0 0 21 16.6\" style=\"enable-background:new 0 0 21 16.6;\" xml:space=\"preserve\"><style type=\"text\/css\">\t.st0{clip-path:url(#SVGID_00000118356451000688016060000011098896425419255942_);}\t.st1{fill:none;stroke:#042433;stroke-width:2;stroke-miterlimit:10;}\t.st2{clip-path:url(#SVGID_00000127032675938563548890000003729046441198252726_);}<\/style><g id=\"Livello_1-2_00000078751614879902450660000018413369167123697573_\">\t<g>\t\t<g>\t\t\t<g>\t\t\t\t<defs>\t\t\t\t\t<polygon id=\"SVGID_00000104687639042876382930000001736259197667436450_\" points=\"0,0 21,0 21,16.6 0,16.6 0,1.6      \"><\/polygon>\t\t\t\t<\/defs>\t\t\t\t<clipPath id=\"SVGID_00000003818235573543554300000012872616876683421836_\">\t\t\t\t\t<use xlink:href=\"#SVGID_00000104687639042876382930000001736259197667436450_\" style=\"overflow:visible;\"><\/use>\t\t\t\t<\/clipPath>\t\t\t\t<g style=\"clip-path:url(#SVGID_00000003818235573543554300000012872616876683421836_);\">\t\t\t\t\t<g id=\"Raggruppa_3_00000096761958272819258910000002436720639698480533_\">\t\t\t\t\t\t<path id=\"Tracciato_19_00000083777939615140486310000009612732498053744528_\" class=\"st1\" d=\"M0,8.3h20.7c0,0-5.6,0-7.2-8\"><\/path>\t\t\t\t\t\t<path id=\"Tracciato_20_00000100381576785339110790000014988590725784594838_\" class=\"st1\" d=\"M0,8.3h20.7c0,0-5.6,0-7.2,8\"><\/path>\t\t\t\t\t\t<line id=\"Linea_1_00000039841706849887460820000010231585092687909044_\" class=\"st1\" x1=\"15.1\" y1=\"8.3\" x2=\"21\" y2=\"8.3\"><\/line>\t\t\t\t\t<\/g>\t\t\t\t<\/g>\t\t\t<\/g>\t\t<\/g>\t<\/g><\/g><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">CONTACT US<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>POTTERY WORKSHOP POTTERY WORKSHOP POTTERY WORKSHOP project: Custom course booking system Ecommerce for pottery workshop A smooth user experience, flexible internal management For an art workshop specializing in organizing pottery courses, we designed and developed a fully customized online course booking system. The intervention covered both the front-end and the logical and functional architecture of [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":288851,"menu_order":0,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-288870","portfolio-web-agency","type-portfolio-web-agency","status-publish","format-standard","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Custom Course Reservation System for Ecommerce - Isola<\/title>\n<meta name=\"description\" content=\"For a ceramics workshop, Isola designed a custom system for online course booking. Find out more!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Custom Course Reservation System for Ecommerce - Isola\" \/>\n<meta property=\"og:description\" content=\"For a ceramics workshop, Isola designed a custom system for online course booking. Find out more!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/\" \/>\n<meta property=\"og:site_name\" content=\"Isola\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/IsoladiComunicazione\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-08T12:23:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/\",\"url\":\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/\",\"name\":\"Custom Course Reservation System for Ecommerce - Isola\",\"isPartOf\":{\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg\",\"datePublished\":\"2025-08-08T09:16:12+00:00\",\"dateModified\":\"2025-08-08T12:23:35+00:00\",\"description\":\"For a ceramics workshop, Isola designed a custom system for online course booking. Find out more!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#primaryimage\",\"url\":\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg\",\"contentUrl\":\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg\",\"width\":1440,\"height\":900,\"caption\":\"Il sistema custom per prenotazione corsi progettato da Isola per un laboratorio di ceramica\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.isoladicomunicazione.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custom course booking system &#8211; Ecommerce for ceramics workshop\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/#website\",\"url\":\"https:\/\/www.isoladicomunicazione.com\/en\/\",\"name\":\"Isola di Comunicazione - Web Agency Milano\",\"description\":\"Web Agency Milano\",\"publisher\":{\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.isoladicomunicazione.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/#organization\",\"name\":\"Isola di Comunicazione\",\"alternateName\":\"Isola di Comunicazione Web Agency Milano\",\"url\":\"https:\/\/www.isoladicomunicazione.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/05\/isola-di-comunicazione-web-agency-milano.jpg\",\"contentUrl\":\"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/05\/isola-di-comunicazione-web-agency-milano.jpg\",\"width\":500,\"height\":500,\"caption\":\"Isola di Comunicazione\"},\"image\":{\"@id\":\"https:\/\/www.isoladicomunicazione.com\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/IsoladiComunicazione\/\",\"https:\/\/www.linkedin.com\/company\/10871872\/admin\/\",\"https:\/\/www.instagram.com\/isoladicomunicazione\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Custom Course Reservation System for Ecommerce - Isola","description":"For a ceramics workshop, Isola designed a custom system for online course booking. Find out more!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/","og_locale":"en_US","og_type":"article","og_title":"Custom Course Reservation System for Ecommerce - Isola","og_description":"For a ceramics workshop, Isola designed a custom system for online course booking. Find out more!","og_url":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/","og_site_name":"Isola","article_publisher":"https:\/\/www.facebook.com\/IsoladiComunicazione\/","article_modified_time":"2025-08-08T12:23:35+00:00","og_image":[{"width":1440,"height":900,"url":"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/","url":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/","name":"Custom Course Reservation System for Ecommerce - Isola","isPartOf":{"@id":"https:\/\/www.isoladicomunicazione.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#primaryimage"},"image":{"@id":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#primaryimage"},"thumbnailUrl":"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg","datePublished":"2025-08-08T09:16:12+00:00","dateModified":"2025-08-08T12:23:35+00:00","description":"For a ceramics workshop, Isola designed a custom system for online course booking. Find out more!","breadcrumb":{"@id":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#primaryimage","url":"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg","contentUrl":"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2025\/08\/sistema-custom-prenotazione-corsi.jpg","width":1440,"height":900,"caption":"Il sistema custom per prenotazione corsi progettato da Isola per un laboratorio di ceramica"},{"@type":"BreadcrumbList","@id":"https:\/\/www.isoladicomunicazione.com\/en\/portfolio-web-agency\/custom-course-booking-system-ecommerce-for-ceramics-workshop\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.isoladicomunicazione.com\/en\/"},{"@type":"ListItem","position":2,"name":"Custom course booking system &#8211; Ecommerce for ceramics workshop"}]},{"@type":"WebSite","@id":"https:\/\/www.isoladicomunicazione.com\/en\/#website","url":"https:\/\/www.isoladicomunicazione.com\/en\/","name":"Isola di Comunicazione - Web Agency Milano","description":"Web Agency Milano","publisher":{"@id":"https:\/\/www.isoladicomunicazione.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.isoladicomunicazione.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.isoladicomunicazione.com\/en\/#organization","name":"Isola di Comunicazione","alternateName":"Isola di Comunicazione Web Agency Milano","url":"https:\/\/www.isoladicomunicazione.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.isoladicomunicazione.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/05\/isola-di-comunicazione-web-agency-milano.jpg","contentUrl":"https:\/\/www.isoladicomunicazione.com\/wp-content\/uploads\/2023\/05\/isola-di-comunicazione-web-agency-milano.jpg","width":500,"height":500,"caption":"Isola di Comunicazione"},"image":{"@id":"https:\/\/www.isoladicomunicazione.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/IsoladiComunicazione\/","https:\/\/www.linkedin.com\/company\/10871872\/admin\/","https:\/\/www.instagram.com\/isoladicomunicazione\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/portfolio-web-agency\/288870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/portfolio-web-agency"}],"about":[{"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/types\/portfolio-web-agency"}],"author":[{"embeddable":true,"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/users\/19"}],"version-history":[{"count":8,"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/portfolio-web-agency\/288870\/revisions"}],"predecessor-version":[{"id":288932,"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/portfolio-web-agency\/288870\/revisions\/288932"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/media\/288851"}],"wp:attachment":[{"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/media?parent=288870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/categories?post=288870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.isoladicomunicazione.com\/en\/wp-json\/wp\/v2\/tags?post=288870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}