{"id":267,"date":"2026-07-23T23:37:55","date_gmt":"2026-07-23T21:37:55","guid":{"rendered":"https:\/\/doryo.de\/shopify-development\/"},"modified":"2026-07-24T19:32:51","modified_gmt":"2026-07-24T17:32:51","slug":"shopify-development","status":"publish","type":"page","link":"https:\/\/doryo.de\/en\/shopify-development\/","title":{"rendered":"Shopify development (themes, sections, mandatory features)"},"content":{"rendered":"<section class=\"doryo-section doryo-section--bg-hero doryo-section--pad-spacious doryo-section--w-wide doryo-section--layout-split-media\">\n\t<div class=\"doryo-section__inner\">\n\t\t<div class=\"acf-innerblocks-container\">\n\n<p class=\"doryo-eyebrow wp-block-paragraph\">Shopify \u00b7 Themes &#038; features<\/p>\n\n\n<h1 class=\"wp-block-heading\">Shopify development by a freelancer \u2014 from theme tweaks to mandatory features.<\/h1>\n\n\n<p class=\"wp-block-paragraph\">I customise Shopify themes, build custom sections and implement mandatory features like the cancellation button \u2014 on-brand and legally sound. Directly in the Liquid theme instead of piling up apps. Based in Berlin, self-employed since 2011.<\/p>\n\n\n<div class=\"wp-block-group doryo-cta-row is-layout-flow wp-block-group-is-layout-flow\">\n<a class=\"doryo-button doryo-button--primary\" href=\"#contact\"><span class=\"doryo-button__click\"><span class=\"doryo-button__fill\" aria-hidden=\"true\"><\/span><span class=\"doryo-button__label\">Request a project<\/span><\/span><\/a>\n<a class=\"doryo-button doryo-button--secondary\" href=\"#faq\"><span class=\"doryo-button__click\"><span class=\"doryo-button__fill\" aria-hidden=\"true\"><\/span><span class=\"doryo-button__label\">Frequently asked questions<\/span><\/span><\/a>\n<\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/doryo.de\/wp-content\/uploads\/2026\/07\/tmp-shopify-hero-1024x683.jpg\" alt=\"\" class=\"wp-image-253\" srcset=\"https:\/\/doryo.de\/wp-content\/uploads\/2026\/07\/tmp-shopify-hero-1024x683.jpg 1024w, https:\/\/doryo.de\/wp-content\/uploads\/2026\/07\/tmp-shopify-hero-300x200.jpg 300w, https:\/\/doryo.de\/wp-content\/uploads\/2026\/07\/tmp-shopify-hero-768x512.jpg 768w, https:\/\/doryo.de\/wp-content\/uploads\/2026\/07\/tmp-shopify-hero.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<\/div>\n\t<\/div>\n<\/section>\n\n\n<section class=\"doryo-section doryo-section--bg-none doryo-section--pad-default doryo-section--w-wide doryo-section--layout-default\">\n\t<div class=\"doryo-section__inner\">\n\t\t<div class=\"acf-innerblocks-container\">\n\n<p class=\"doryo-eyebrow wp-block-paragraph\">The problem<\/p>\n\n\n<h2 class=\"wp-block-heading\">The standard theme does a lot \u2014 but rarely exactly what your shop needs.<\/h2>\n\n\n<p class=\"wp-block-paragraph\">There is an app for every missing detail \u2014 and with every app your shop gets slower, more expensive and more dependent. Much of it is solved more cleanly right in the theme: a custom section, an adjusted template, a few lines of Liquid. I change your theme so the result looks like it was always part of it and stands on solid legal ground.<\/p>\n\n<\/div>\n\t<\/div>\n<\/section>\n\n\n<section class=\"doryo-section doryo-section--bg-subtle doryo-section--pad-default doryo-section--w-wide doryo-section--layout-default\">\n\t<div class=\"doryo-section__inner\">\n\t\t<div class=\"acf-innerblocks-container\">\n\n<p class=\"doryo-eyebrow wp-block-paragraph\">How it works<\/p>\n\n\n<h2 class=\"wp-block-heading\">What you get<\/h2>\n\n\n<p class=\"wp-block-paragraph\">From small tweaks to mandatory features \u2014 four building blocks for your shop.<\/p>\n\n<div class=\"doryo-card-grid doryo-card-grid--cols-2\">\n\t\t\t\t\t<article class=\"doryo-card\">\n\t\t\t\t\t\t\t<span class=\"doryo-card__icon\" aria-hidden=\"true\"><svg class=\"doryo-icon doryo-icon--cart\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M3 4h2l2.4 12.3a1 1 0 0 0 1 .8h9.2a1 1 0 0 0 1-.82L21 8H6\"\/><circle cx=\"9\" cy=\"20\" r=\"1.3\"\/><circle cx=\"18\" cy=\"20\" r=\"1.3\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<div class=\"doryo-card__body\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"doryo-card__title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tTheme customisation\t\t\t\t\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"doryo-card__text\">Your existing theme, extended in the same look: sections, templates, detail polish \u2014 without your shop ending up looking like a patchwork.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/article>\n\t\t\t\t\t<article class=\"doryo-card\">\n\t\t\t\t\t\t\t<span class=\"doryo-card__icon\" aria-hidden=\"true\"><svg class=\"doryo-icon doryo-icon--blocks\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><rect x=\"4\" y=\"4\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"13\" y=\"4\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"4\" y=\"13\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"13\" y=\"13\" width=\"7\" height=\"7\" rx=\"1\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<div class=\"doryo-card__body\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"doryo-card__title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tCustom sections &amp; features\t\t\t\t\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"doryo-card__text\">Tailor-made Liquid sections and functionality instead of yet another app \u2014 faster, cheaper to run and configurable in the editor.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/article>\n\t\t\t\t\t<article class=\"doryo-card\">\n\t\t\t\t\t\t\t<span class=\"doryo-card__icon\" aria-hidden=\"true\"><svg class=\"doryo-icon doryo-icon--accessibility\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"12\" cy=\"4.3\" r=\"1.6\"\/><path d=\"M4 8h16M12 8v6M12 14l-3.5 6M12 14l3.5 6\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<div class=\"doryo-card__body\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"doryo-card__title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tLegally sound &amp; accessible\t\t\t\t\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"doryo-card__text\">Mandatory features like the cancellation button, plus accessibility to WCAG 2.2 AA \u2014 no longer optional for shops since the German BFSG.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/article>\n\t\t\t\t\t<article class=\"doryo-card\">\n\t\t\t\t\t\t\t<span class=\"doryo-card__icon\" aria-hidden=\"true\"><svg class=\"doryo-icon doryo-icon--search\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"M21 21l-4.35-4.35\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<div class=\"doryo-card__body\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"doryo-card__title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tPerformance &amp; SEO\t\t\t\t\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"doryo-card__text\">Lean theme code, fast load times and clean structured data \u2014 good for Google, conversion and AI search.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/article>\n\t<\/div>\n\n<\/div>\n\t<\/div>\n<\/section>\n\n\n<section class=\"doryo-section doryo-section--bg-none doryo-section--pad-default doryo-section--w-wide doryo-section--layout-split-faq\">\n\t<div class=\"doryo-section__inner\">\n\t\t<div class=\"acf-innerblocks-container\">\n\n<p class=\"doryo-eyebrow wp-block-paragraph\">FAQ<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">Frequently asked questions<\/h2>\n\n\n<p class=\"wp-block-paragraph\">The most common questions about themes, apps and mandatory features.<\/p>\n\n<div class=\"doryo-faq\">\n\t\t\t<details class=\"doryo-faq__item\">\n\t\t\t<summary class=\"doryo-faq__question\">\n\t\t\t\tDo you customise my existing Shopify theme or do I need a new one?\t\t\t\t<span class=\"doryo-faq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t<\/summary>\n\t\t\t<div class=\"doryo-faq__answer\">\n\t\t\t\t<p>In most cases your theme stays: customisations and custom sections are faster and cheaper than a rebuild. Only if the theme is technically at its end do I recommend switching \u2014 and I will tell you that honestly up front.<\/p>\n\t\t\t<\/div>\n\t\t<\/details>\n\t\t\t<details class=\"doryo-faq__item\">\n\t\t\t<summary class=\"doryo-faq__question\">\n\t\t\t\tWho builds the cancellation button into my shop?\t\t\t\t<span class=\"doryo-faq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t<\/summary>\n\t\t\t<div class=\"doryo-faq__answer\">\n\t\t\t\t<p>I do \u2014 usually within a few days, matching the look of your theme. All the details are on the page <a href=\"https:\/\/doryo.de\/en\/shopify-right-of-withdrawal-button\/\">Shopify cancellation button<\/a>.<\/p>\n\t\t\t<\/div>\n\t\t<\/details>\n\t\t\t<details class=\"doryo-faq__item\">\n\t\t\t<summary class=\"doryo-faq__question\">\n\t\t\t\tInstall an app or build custom \u2014 which is better?\t\t\t\t<span class=\"doryo-faq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t<\/summary>\n\t\t\t<div class=\"doryo-faq__answer\">\n\t\t\t\t<p>It depends: complex functionality (say, reviews or email marketing) is well served by an app. Layout and theme features, however, belong in the theme \u2014 without monthly app fees and without the performance hit. I will tell you honestly which is worth it for what.<\/p>\n\t\t\t<\/div>\n\t\t<\/details>\n\t\t\t<details class=\"doryo-faq__item\">\n\t\t\t<summary class=\"doryo-faq__question\">\n\t\t\t\tWhat does Shopify development cost?\t\t\t\t<span class=\"doryo-faq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t<\/summary>\n\t\t\t<div class=\"doryo-faq__answer\">\n\t\t\t\t<p>Small theme changes are often done in a few hours, larger features take days. Tell me briefly what your shop needs \u2014 you will get an honest assessment with effort and price within one working day.<\/p>\n\t\t\t<\/div>\n\t\t<\/details>\n\t\t\t<details class=\"doryo-faq__item\">\n\t\t\t<summary class=\"doryo-faq__question\">\n\t\t\t\tDo you also look after my shop on an ongoing basis?\t\t\t\t<span class=\"doryo-faq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t<\/summary>\n\t\t\t<div class=\"doryo-faq__answer\">\n\t\t\t\t<p>Yes. Theme updates, small improvements and an eye on performance and tech \u2014 more on the page <a href=\"https:\/\/doryo.de\/en\/wordpress-maintenance\/\">Maintenance &amp; further development<\/a>.<\/p>\n\t\t\t<\/div>\n\t\t<\/details>\n\t<\/div>\n\n<\/div>\n\t<\/div>\n<\/section>\n\n\n<section class=\"doryo-section doryo-section--bg-none doryo-section--pad-default doryo-section--w-wide doryo-section--layout-default\">\n\t<div class=\"doryo-section__inner\">\n\t\t<div class=\"acf-innerblocks-container\">\n\n<p class=\"doryo-eyebrow wp-block-paragraph\">Contact<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"contact\">Shall we get started?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">A short email with a link to your site is all it takes \u2014 you will get an honest assessment within one working day.<\/p>\n\n<div id=\"kontakt-formular\" class=\"doryo-contact-form\">\n\n\t<div class=\"doryo-contact-form__methods\">\n\t\t\t\t\t<div class=\"doryo-contact-form__method\">\n\t\t\t\t<p class=\"doryo-contact-form__method-label\">E-Mail<\/p>\n\t\t\t\t<p class=\"doryo-contact-form__method-text\">Ich bin gut per Mail erreichbar:<\/p>\n\t\t\t\t<a class=\"doryo-contact-form__method-value\" href=\"mailto:info@doryo.de\">info@doryo.de<\/a>\n\t\t\t<\/div>\n\t\t\n\t\t\t\t\t<div class=\"doryo-contact-form__method\">\n\t\t\t\t<p class=\"doryo-contact-form__method-label\">Telefon<\/p>\n\t\t\t\t<p class=\"doryo-contact-form__method-text\">F\u00fcr ein Gespr\u00e4ch am besten nach kurzer Terminabsprache per E-Mail.<\/p>\n\t\t\t\t<a class=\"doryo-contact-form__method-value\" href=\"tel:+491788478632\">+49 178 8478632<\/a>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t<div class=\"doryo-contact-form__main\">\n\n\t\t\n\t\t\t\t\t<form class=\"doryo-contact-form__form\" method=\"post\" action=\"https:\/\/doryo.de\/wp-admin\/admin-post.php#kontakt-formular\">\n\t\t\t\t<input type=\"hidden\" name=\"action\" value=\"doryo_contact\" \/>\n\t\t\t\t<input type=\"hidden\" id=\"doryo_contact_nonce\" name=\"doryo_contact_nonce\" value=\"fe9a2f697a\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/267\" \/>\t\t\t\t<input type=\"hidden\" name=\"doryo_ts\" value=\"1784936864\" \/>\n\n\t\t\t\t\t\t\t\t<p class=\"doryo-contact-form__hp\" aria-hidden=\"true\">\n\t\t\t\t\t<label for=\"doryo-hp-kontakt-formular\">Bitte dieses Feld leer lassen<\/label>\n\t\t\t\t\t<input type=\"text\" id=\"doryo-hp-kontakt-formular\" name=\"doryo_website\" tabindex=\"-1\" autocomplete=\"off\" \/>\n\t\t\t\t<\/p>\n\n\t\t\t\t<div class=\"doryo-contact-form__field\">\n\t\t\t\t\t<label for=\"doryo-contact-name\">Name<\/label>\n\t\t\t\t\t<input type=\"text\" id=\"doryo-contact-name\" name=\"doryo_name\" required autocomplete=\"name\" \/>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"doryo-contact-form__field\">\n\t\t\t\t\t<label for=\"doryo-contact-email\">E-Mail<\/label>\n\t\t\t\t\t<input type=\"email\" id=\"doryo-contact-email\" name=\"doryo_email\" required autocomplete=\"email\" \/>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"doryo-contact-form__field\">\n\t\t\t\t\t<label for=\"doryo-contact-message\">Nachricht<\/label>\n\t\t\t\t\t<textarea id=\"doryo-contact-message\" name=\"doryo_message\" rows=\"6\" required><\/textarea>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"doryo-contact-form__field doryo-contact-form__field--checkbox\">\n\t\t\t\t\t<input type=\"checkbox\" id=\"doryo-contact-privacy\" name=\"doryo_privacy\" value=\"1\" required \/>\n\t\t\t\t\t<label for=\"doryo-contact-privacy\">\n\t\t\t\t\t\tIch habe die <a href=\"https:\/\/doryo.de\/en\/datenschutz\/\">Datenschutzerkl\u00e4rung<\/a> gelesen und bin mit der Verarbeitung meiner Angaben zur Beantwortung der Anfrage einverstanden.\t\t\t\t\t<\/label>\n\t\t\t\t<\/div>\n\n\t\t\t\t<button class=\"doryo-button doryo-button--primary doryo-contact-form__submit\" type=\"submit\"><span class=\"doryo-button__click\"><span class=\"doryo-button__fill\" aria-hidden=\"true\"><\/span><span class=\"doryo-button__label\">Nachricht senden<\/span><\/span><\/button>\t\t\t<\/form>\n\t\t\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t<\/div>\n<\/section>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-landing","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-267","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/doryo.de\/en\/wp-json\/wp\/v2\/pages\/267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/doryo.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/doryo.de\/en\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/doryo.de\/en\/wp-json\/wp\/v2\/comments?post=267"}],"version-history":[{"count":3,"href":"https:\/\/doryo.de\/en\/wp-json\/wp\/v2\/pages\/267\/revisions"}],"predecessor-version":[{"id":277,"href":"https:\/\/doryo.de\/en\/wp-json\/wp\/v2\/pages\/267\/revisions\/277"}],"wp:attachment":[{"href":"https:\/\/doryo.de\/en\/wp-json\/wp\/v2\/media?parent=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}