SIM DIGITAL LABSNORVETA / SUPPORT

Theme documentation

Good ingredients.
A considered store.

Norveta · Development version 0.1.0

Updated 14 October 2026 · Sim Digital Labs Ltd

Sim Digital Labs Ltd · version 0.1.0 · development release · 14 October 2026

Norveta is intended for food, coffee and local retail stores. This documentation does not claim Theme Store approval, a published listing, completed live acceptance or a Lighthouse score.

Install and preview

  1. Duplicate or download your existing theme before changing it.
  2. Open Shopify admin → Online Store → Themes, choose the theme import/add action and upload Norveta-0.1.0-Install.zip. For the Coffee homepage and palette, upload Norveta-0.1.0-Coffee-Install.zip instead. Keep the chosen ZIP compressed.
  3. Keep Norveta as a draft. Open the editor and preview from that draft's own actions.
  4. Configure your brand and content using the sequence below. Save and inspect both desktop and mobile layouts.
  5. Publish only after your catalog, delivery, checkout, apps and accessibility checks pass and this development release clears its release gates.

The outer Development ZIP is for source, guides and QA records; uploading it as a theme fails because it is not the Shopify theme root. Install uploads theme files and does not import products, stock, collections, menus, orders, customers or shipping settings. See Shopify's installation guide.

The current source folder and packaged source are theme/. Developer tools are optional for merchant configuration. Setting names here are English; editor labels follow the available translations.

Configure in order

Step Configure Verify
1 Norveta/Norveta Coffee style, colors, fonts, favicon, socials, standard button corners and desktop/mobile section spacing Contrast and typography at both widths
2 Shopify product descriptions, media, options, prices, stock and publication Correct variant, price and actual availability
3 Collections, menus and page content Each link reaches the intended destination
4 Header/footer menus, logo, account tools, policies and localization Mobile menu, language and policy links
5 Home sections and selected catalog resources Own copy, images and working buttons
6 Product/cart blocks and required properties Quantity, plans, gifts and totals
7 Actual locations, delivery and pickup A full checkout for each offered method
8 Search & Discovery, languages and apps Results, filters, recommendations and translations
9 Keyboard, mobile, editor and performance checks A complete usable purchase flow

Norveta and Norveta Coffee have separate install-time homepage overrides under listings, with different palettes and discovery layouts. They do not create separate catalogs. Changing a visual style on an existing installation updates presentational settings; it does not certify that the preset homepage override was applied. Back up saved configuration before switching styles. Each preset still needs a matching populated demo before submission.

All 51 section files

This source has 51 Liquid section files. Addable sections have editor presets; template/internal files belong to their page or rendering feature. Availability depends on the template. File names are useful in support requests; ordinary configuration uses the editor.

File without .liquid Purpose and setup
nv-header Header group: desktop/mobile logo widths, main menu, promotions, search, account tools and sticky setting
nv-footer Footer group: copy, selected menus, policies, localization and social/Shop tools
nv-hero Desktop/mobile image, overlay/text colors, copy, button and promise blocks
nv-slideshow Slide images/copy/links; manual controls and optional autoplay/timing
nv-categories Collection-image cards; select actual collections
nv-collection-navigation Up to 24 collection links, optional images and native mobile horizontal scroll
nv-featured-collection Selected collection grid, heading and product limit
nv-featured-product Selected product and basic/app blocks; purchase link opens the full product page for options and its native purchase form
apps Shopify-managed standalone app wrapper; section spacing and full page width controls
nv-promo-grid Promotion images, text and links
nv-story Brand story image/text, layout and optional link
nv-rich-text Heading, rich text, alignment and optional button
nv-icons Merchant icon/text benefits with accurate copy
nv-trust-badges Up to 24 fixed-icon/text blocks; icons do not certify claims
nv-press Genuine press mentions, images and links
nv-testimonials Genuine quotes, permission and accurate attribution
nv-faq Question/answer blocks
nv-newsletter Native signup and consent copy; campaigns configured separately
nv-popup Optional dialog, image/link, delay and frequency
nv-age-gate Optional session acknowledgment; not identity/age verification
nv-countdown Genuine timezone-qualified end date and destination
nv-stores Store cards, address, hours, directions and remembered preference
nv-events Timed/all-day events, chronological order, related event/details, actual product ticket and ICS/Google/Outlook/Yahoo
nv-comparison Up to four merchant-selected products with actual product information
nv-customer-comparison Global footer-group customer selection, up to four persisted products, fresh prices and availability
nv-hotspots Image hotspots linked to selected products
nv-lookbook Curated image/story/product blocks
nv-before-after Two merchant images and descriptive comparison labels
nv-gallery Image gallery with meaningful alternatives
nv-video Hosted/external primary video, optional mobile hosted source/poster, captions and transcript
nv-product-tabs Product description and merchant text panels
nv-size-chart Measurement labels/rows/guidance; no automatic unit conversion
nv-product-nutrition Current-product nutrition/ingredients/allergens; typed custom data and optional verified meters
nv-liquid Advanced custom Liquid; developer changes require separate testing
product-recommendations Product-template related/complementary Shopify recommendations
product-purchase-tools Product-template sticky purchase bar and image zoom
cart-gift-wrap Cart-template paid wrapping service product
main-product Product template: ordered/app blocks, media and purchase form
main-collection Collection products, filters, sort and pagination
main-search Full search results, filtering/sort/pagination
main-cart Native cart quantities, removal, note, totals and checkout
nv-sticky-cart Cart-template fixed subtotal/checkout bar submitting the existing native cart form
cart-drawer Internal cart rendering endpoint; do not add a duplicate editor section
predictive-search Internal on-demand predictive-search endpoint
nv-page Default page content
nv-contact Contact page and native form
nv-blog Blog listing
nv-article Article content, including a written recipe or editorial story
nv-list-collections Collection-list page
nv-404 Not-found page
nv-password Password storefront page

Gift cards use standalone templates/gift_card.liquid, not another addable section.

Products, ordered blocks and apps

The product template offers Vendor, Title, Price, SKU, Variants, Quantity, Description, Pickup, Stock inquiry, Shipping, Inventory, Buy buttons, Nutrition, Accordion, Allergen, Text, Personalization and app blocks. Keep a clear title and usable Buy buttons. Required text properties must remain visible and labeled in the actual purchase flow.

Use actual Shopify product options and prices. The full page uses option-value selection and selected-variant media. Quick forms open the actual product form to preserve required fields; products with app blocks can fall back to the full page. Test an app in its intended context instead of assuming it works in every quick view.

Quantity follows Shopify variant minimum/increment/maximum. Selling plans require configured product subscription plans/apps; the theme cannot create subscription contracts. Accelerated checkout is Shopify-owned and depends on eligibility. Main gift-card purchases preserve recipient fields by omitting their accelerated shortcut. Featured product directs purchase to the full product page, where customers choose the variant, plan and required fields. Its app blocks use the selected product context; verify the complete product-page purchase flow for each installed app.

Legacy Nutrition/Allergen blocks, custom tabs and size-chart text are merchant-authored template content. Shared template fields appear on every product assigned to that template. Use a product-specific template or the current-product nutrition section below for distinct facts. Enter verified units, serving sizes and measurements; the theme does not calculate or validate dietary claims.

Subscription setup and customer wording

Norveta supports Shopify selling-plan selection and cart presentation. No subscription app is included in either Install ZIP. Shopify Subscriptions is Shopify's own optional application; it is not a Sim Digital Labs product. Ordinary one-time product sales do not require it. Theme installation does not create plans, contracts or recurring charges.

Create and configure actual product plans in your chosen subscription app, including variant eligibility, delivery/billing intervals, discounts and cancellation terms. Give each plan a clear customer-facing name in the intended storefront language. The Norveta selector displays that configured name and Shopify's allocated price; it does not automatically translate merchant plan names or invent recurring terms. Products without selling-plan groups have no plan selector. Required-plan products omit the one-time choice.

Illustrative customer wording only: “One-time purchase — $10” and “Deliver every month, save 10% — $9”. These numbers are the technical QA fixture, not merchant defaults. The current selector appends the allocated price to the configured plan name; avoid including a duplicate price in the name. Avoid labeling every allocation as a price per delivery: prepaid/multiple-delivery plans can have different billing schedules.

Use a product-specific Text/Accordion block or supported app block to explain actual billing and delivery frequency, automatic renewal, cancellation and any commitment. Verify this against the app configuration and Shopify's native purchase/checkout terms. Do not use a shared template to make monthly/discount/cancellation promises for products with different plans. Customer-facing content should describe the purchase, without mentioning the theme QA or technical app setup.

Scoped live acceptance: optional and required monthly plan selection, allocated price, quantity, separate one-time/subscription cart lines and plan links passed on the separate QA store. Payment, contracts, renewals, accelerated checkout and all subscription apps are not certified. Consult QA/subscription-qa-setup-20261014.json.

Product nutrition with current-product data

First create storefront-visible product definitions in Settings → Custom data → Products: custom.nutrition_information with JSON type, custom.ingredients and custom.allergens with multi-line text type. Theme upload does not create these definitions. Next populate each product with its own supplier/label-verified facts. Finally add Product nutrition to the product template; its namespace/key settings retrieve those current-product fields. Follow QA/Product-Nutrition-Setup.txt for the precise JSON shape and validation rules.

The JSON needs a serving basis and numeric nutrient amounts with units. Zero is valid; quoted numbers, missing/negative amounts or units are not displayed. Ingredients/allergens use Shopify's typed renderer. Missing facts are omitted, never interpreted as allergen-free. Optional meters default off and need a verified numeric value, positive maximum and explicit basis; they are not daily recommendations or automatic scores. Up to 30 valid rows and 10 meters are supported. This is product-level data; different variant formulas need distinct products or a variant-aware integration. A shared template reads each current product's data and hides the storefront section when facts are absent.

Customer comparison and sticky cart

The customer comparison section is in the global footer group so it can work across product/listing pages. Product-card comparison buttons add/remove selections; up to four IDs/handles are remembered in that browser. Actual products/prices/availability are retrieved afresh, not trusted from saved price data. Customers can remove/clear selections and retry failures. Set up to four fallback products in its editor setting for the static/no-JavaScript comparison. Currency and unavailable-product cases still need review in your configured store.

Add Sticky cart to the cart template for a fixed subtotal/checkout bar. Its enhanced button submits the existing native cart form and checkout control, so unsaved native cart fields remain associated with checkout. It is separate from the product-page sticky purchase bar. Empty carts omit it; failed refreshes return to a cart link. Verify quantity, note, discounts and footer visibility in your store before release.

Actual locations, warehouses and pickup

Store cards present your name, public address, opening hours, image and directions. In the current source, Remember preferred store saves a browser preference for that section. It does not reserve inventory, change price, allocate a warehouse or set checkout fulfillment. A warehouse card is not automatically a customer collection point.

Configure actual Shopify locations and variant stock. Under Settings → Shipping and delivery → Pickup in store, activate eligible locations and their genuine processing times, then add the product-template Pickup block. It reads Shopify's selected-variant availability/time; checkout determines fulfillment. Use Shopify's pickup setup guide for physical products, eligible locations, inventory and transfers.

Test different variants and every offered location at checkout. If pickup is missing, check physical/shipping status, location stock, online fulfillment and pickup activation. Availability can change; it is not a reservation. Never replace an unavailable result with an invented badge.

Low-stock messaging requires tracked, positive inventory within the configured threshold. It represents the variant quantity read by the source, not a preferred-branch stock count. Backorder copy is optional and tied to tracked, nonpositive inventory with continue-selling enabled. Use it only with a real fulfillment process. Preorder allocation, warehouse transfer and ready-for-pickup operations belong to Shopify/apps/merchant operations.

Gift cards, recipients and paid wrapping

Create an actual Shopify gift-card product. The main form collects recipient email/name/message and an optional send date; Shopify handles issuance/delivery. Test with an appropriate development transaction. A normal product with a “gift card” tag is not a Shopify gift-card product.

The issued card page uses Shopify balance/code/expiry/status, official QR rendering, printing and a Wallet link when supplied. The readable code works without JavaScript/QR. Keep gift-card codes/links private and out of public demo copy, support screenshots and analytics.

For paid wrapping, create a real service product with the exact intended price, publish it to Online Store and select it in Cart gift wrap. Configure shipping/physical status to match the actual service. It opens its actual product form and becomes a separate, priced cart line; removing it removes that charge. Check required properties, quantity, discount/tax and stock policy. A note alone is not a paid wrapping charge.

Search, filters and recommendations

Native search submits the standard form. Predictive search starts after two characters and returns limited product/collection/page/article/query suggestions. Request failure or an unsupported predictive locale leaves full search available.

Configure filters in Shopify Search & Discovery, then enable the collection filter setting. Choices derive from the actual catalog, not invented theme options. Uploading Norveta does not configure filters. See adding filters.

Add Product recommendations to the product template and select related/complementary intent. Configure choices in Search & Discovery. Shopify supplies eligible results; an empty response hides the section. Other collection selections do not isolate this endpoint. See recommendation configuration.

Languages and RTL

EN/FR/DE/IT/ES/TR storefront and editor dictionaries are bundled. Publish languages separately in Shopify and translate your product, collection, menu, page, policy and section copy. Theme button labels do not translate merchant-written content.

Footer language/country controls depend on published languages and Shopify Markets. Verify actual translated routes and currency at checkout. Root and gift-card markup set RTL for Arabic/Hebrew/Persian, but those dictionaries are not bundled. An RTL launch needs translations and a full visual/keyboard review; direction markup alone does not prove language support.

Images, video, recipes and events

Use licensed original media and accurate alternative text. Supply the hero's separate mobile image and review focal crops at wide/narrow sizes. Cards use square crops; other sections differ. Review each crop rather than forcing every upload to identical dimensions. Keep essential text in HTML instead of inside an image.

Product pages support images, video, external video and models; zoom applies to images. A second card image needs a real second product image. Video loads after interaction. Add hosted captions or provider captions plus a transcript. The video section can select a separate Mobile Shopify-hosted video and Mobile poster image below 750 px. Only one active media player is instantiated; switching across that boundary pauses/releases the previous player and creates the appropriate source without autoplay. Captions/transcript are shared, so both versions must match their timing and content. If no mobile source is selected, the primary source remains the fallback. Verify inactive-source network behavior and both cuts in your configured store.

Header's Mobile logo width applies at 640 px and below; desktop width is separate. Global Layout and buttons controls standard themed button corner radius and standard section vertical padding separately for desktop/mobile. Specialized section geometry and Shopify payment-widget styling can differ. Keep adequate touch targets/contrast at each extreme. Direct add is off by default and applies only to safely eligible single-variant cards; other products retain their actual purchase form and required fields.

Write recipes as real article/page text: ingredients, quantities, serving size, equipment, steps and verified storage/preparation details. Link actual related products and use clear headings. This release does not automatically calculate recipe nutrition or create recipe structured data from prose.

Countdowns and timed events need valid timezone-qualified ISO timestamps, such as 2026-12-01T18:00:00+00:00, and an end after the start. For an All-day event use date-only YYYY-MM-DD start/end; the entered end is the last included day (a one-day event uses the same start/end date). Export converts that to the exclusive next day. An optional IANA timezone such as Europe/London must be valid; timed timestamps still require their offset. Keep merchant display labels consistent with the actual dates.

Events support native details, uniquely matched related-event links, an actual selected product and a real details/booking page. JavaScript sorts valid events chronologically, exposes ICS (Apple-compatible) and Google/Outlook/Yahoo calendar links, hides invalid storefront entries and optionally hides past events using their actual end. Without JavaScript, events remain in merchant order and dynamic calendar/date checks do not run. When Display date is empty, a native no-JS fallback shows the supplied start/end and optional timezone, with an inclusive final-day explanation for all-day events. You can still provide merchant display labels for a friendlier date format. Calendar imports and provider links need actual acceptance checks. Booking is handled by the linked destination or actual Shopify product; the theme does not reserve attendance by itself.

Contact, newsletter and restock

Contact/restock use Shopify's native contact form. Restock is a manual inquiry for merchant review, not reservation or automatic notification subscription. Verify the monitored contact workflow before offering it. Newsletter signup collects contacts; a marketing service/consent process handles campaigns. Popup/countdown copy must match genuine offers. An age acknowledgment is not verified age enforcement.

Accessibility and checkout

Use clear links, meaningful image alternatives and adequate contrast. Test keyboard navigation through menus, search, option choices, properties, quantities, dialogs, close buttons and cart/checkout. Check focus restoration, long translations, mobile zoom and reduced motion.

Spot-check without JavaScript: product/cart forms and readable content should remain usable; interactive media offers native fallback where provided. Shopify owns payment, final availability, tax, currency, rates and checkout fulfillment. Static linting is not accessibility certification or a speed score. Merchant media/apps can change behavior. Final project Lighthouse belongs to the owner and is not claimed complete.

Standalone app sections

Install and configure the chosen app through Shopify, then add its app block in the theme editor where the app permits. Product and Featured product sections accept app blocks. For a standalone app section, Shopify uses the Norveta app wrapper. Add section spacing applies the theme's vertical section spacing; Use full page width removes the usual page-width container. These controls change layout, not the app's permissions, product data or behavior. The wrapper appears when Shopify creates an app section; it is not a normal content section to add on its own. App embeds are configured separately in the editor's App embeds panel.

Check the app on its full product page after saving and reopening the editor. Products with app blocks use the full product page when quick buy cannot safely render the integration. Actual third-party app rendering still requires testing with the installed app.

Required personalization setup

Assign the personalized product template in Shopify, or add a Personalization block to the intended product template. Set its field label, character limit and Required setting. The provided personalized template uses a required Gift message field and disables accelerated checkout. All products assigned to that template share its block settings; the customer's entered message belongs to the individual cart line.

Before launch, try adding with the required field empty, then enter a test message and add again. Check the message in both the drawer and full cart, then change quantity and verify it remains with the same line. Remove the test line afterward. This is a text property; it does not upload a customer file or send a gift card to a recipient.

Variant and field preservation

With JavaScript enabled, same-product option links preserve visible quantity, personalization fields and supported recipient choices across navigation. A one-use, two-minute browser-tab draft is consumed on the target page; values are not added to the URL. Current plan choices are kept only when available on the new variant; otherwise review the displayed plan notice. Hidden quantity and variant IDs come from the newly rendered product. Selected files block navigation rather than being silently lost. Storage failure keeps the current page open. The personalized alternate template remains selected in option links. This does not certify JavaScript-disabled persistence or arbitrary app state.

Troubleshooting

Symptom First checks
ZIP rejected Inner Install ZIP and layout/theme.liquid at theme root
Design missing Correct Norveta draft preview, saved editor changes and assigned template
Empty collection Actual selected collection, eligible products and Online Store publication
Other demo products visible Search/recommendations/all-products routes and actual publication; collections are not global isolation
Wrong option/price Actual variant values, full page and relevant app behavior
Add disabled Stock policy, selected variant, quantity rules, required properties and selling plan
Wrapping not charged Published service product selected; actual cart line/price
No filters/recommendations Search & Discovery configuration, relevant section and eligible products
Search suggestions stop loading After 10 seconds the suggestion request ends with guidance; submit the normal Search form or enter a new query to retry. A response that reports unsupported predictive search leaves the normal search form available
Quick buy stops loading After 10 seconds use View full product details. Close and reopen quick buy to retry; incomplete variant content remains blocked from purchase
Pickup missing Physical product, actual location stock, online fulfillment, pickup and delivery rules
Nutrition changed on several products Shared template fields; assign the correct template/data source
No language control Published store languages and footer localization setting
Untranslated text Merchant resource translation and missing keys after code updates
Video unavailable Interaction, source access, captions/provider and native fallback
Timer/calendar hidden Valid timezone/date, end after start and expiry
No automatic restock email Only manual inquiry is implemented; verify monitored native contact workflow
App differs in quick view Full product page, correct app placement and app requirements

Updates and support

Duplicate/download before updating. Record custom code, selected resources, templates, app blocks, translations and key settings. Add the new version as a draft, deliberately reapply compatible configuration, compare previews and retest products/cart/checkout/apps. Do not blindly overwrite settings_data.json, templates or custom Liquid. Keep the previous theme for rollback until the update is accepted.

Source author is Sim Digital Labs Ltd. Use the Norveta guide and Norveta support form, or contact hello@simdigitallabs.com. The public guide and support page were verified in browser. One approved technical form test confirmed provider-delivered staff notification and requester acknowledgement. Inbox placement across all providers is not certified. Built-in configuration and theme bugs are in scope; custom design/code, app integrations and store operations are separate services. Theme support requests receive an initial human reply within two business days. The automatic acknowledgement confirms receipt; it is not the support reply. Critical theme bugs are prioritised immediately. Free custom development is not included.

Provide support with version, shop domain, affected public template/product URL, reproduction steps, expected/actual behavior, browser/device, app names and redacted screenshots. Say whether it reproduces in an unmodified draft. Do not send credentials, private gift codes or customer personal data. Platform/order/payment questions may need Shopify; app behavior may need its developer.

Release and developer reference

Complete applicable scope, current Theme Store compliance, official Theme Check, live editor/commerce/mobile/keyboard/integration acceptance, genuine demo configuration and owner-run Lighthouse before release. Theme upload/ZIP integrity alone is not approval.

Optional checks from an extracted Development package:

python3 tools/verify_theme.py --root theme --json
python3 tools/package_theme.py --root theme --out /absolute/delivery/path --version 0.1.0

Use Theme only when your checkout names its source folder that way. These check/package source; they do not execute checkout/orders or replace official Theme Check. See PROJECT_STATUS.md, QA/milestone-scope.json and dated QA records for separate source coverage and actual runtime evidence.

JavaScript fallback limitation

Ordinary product/cart templates retain native forms, quantity/plan field associations, variant navigation links and cart removal URLs. The optional required pickup-preference gate depends on JavaScript and deliberately keeps Add disabled without it, showing a localized explanation. Leave this gate off if your store requires purchasing without JavaScript; native checkout still determines fulfillment. Source review is not a completed live no-JavaScript acceptance test.

Getting started

Upload the standard Install ZIP as a draft. Choose your own products, collections, menus and images. Use Coffee Install ZIP for the Coffee homepage. The theme does not import products or stock. Configure actual delivery and pickup in Shopify admin.

Your separate subscription app manages plans and recurring billing; no app is included. Preference filters and taste information depend on your configured product data.

The theme has not yet received Shopify Theme Store approval. For setup questions and theme bugs, use the support form in English or Turkish.