{{ main_block.settings.eyebrow }}
+ {%- endif -%} + {%- if main_block.settings.heading != blank -%} +diff --git a/.gitignore b/.gitignore index bc110b6487d..837e5e7cf74 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ ehthumbs.db Thumbs.db .shopify node_modules -*.zip \ No newline at end of file +*.zip +assets/mock-*local_assets/ diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000000..fdc533dabac --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,37 @@ +# Get Yours Shopify Dawn Conversion Instructions + +## Project Role + +This repository contains the Get Yours Shopify Dawn conversion work. The static prototype in `get-yours-static-prototype/` is the visual and UX reference, while `get-yours-shopify-theme/` is the Dawn-based Shopify theme foundation. + +## Conversion Guardrails + +- Keep the static prototype unchanged unless a task explicitly targets it. +- Preserve Dawn behavior, accessibility patterns, section schema conventions, cart behavior, predictive search, localization, and theme editor compatibility wherever possible. +- Do not paste static HTML directly into Liquid templates. +- Convert static prototype patterns into Dawn-compatible sections, snippets, settings, and JSON templates in phased work. +- Do not introduce React, TypeScript, backend services, or non-Shopify runtime dependencies for the storefront theme. +- Avoid broad restructures, formatting churn, and unrelated Dawn changes. +- Keep Get Yours brand tokens centralised in `get-yours-shopify-theme/assets/gy-theme.css`. + +## Brand Direction + +- Primary blue: `#0081D8` +- Navy: `#073A66` +- Deep navy: `#063A66` +- Logo yellow: `#FFD200` +- Gold accent: `#F5B700` +- Use gold/yellow sparingly for small labels or highlights, not full-width backgrounds. +- The announcement bar and footer should use the navy family. + +## Phase Discipline + +- Phase 1 is foundation only: Dawn scaffold, copied reference docs, logo asset, token stylesheet, and setup documentation. +- Later phases should build header/footer, homepage sections, collection/product/cart templates, content pages, settings, and QA in separate scoped passes. +- Before changing Dawn Liquid, inspect the relevant Dawn section/snippet/template and follow its existing conventions. + +## Validation Expectations + +- Run Shopify Theme Check when available. +- Check changed Liquid and JSON files for syntax and schema integrity. +- Document any Shopify CLI, store authentication, or theme preview blockers in `get-yours-shopify-theme/docs/`. diff --git a/docs/recovery-backups/phase-3-9-recovery/gy-promo-grid-hero.before-recovery.liquid b/docs/recovery-backups/phase-3-9-recovery/gy-promo-grid-hero.before-recovery.liquid new file mode 100644 index 00000000000..8552eae9aab --- /dev/null +++ b/docs/recovery-backups/phase-3-9-recovery/gy-promo-grid-hero.before-recovery.liquid @@ -0,0 +1,340 @@ +
{{ main_block.settings.eyebrow }}
+ {%- endif -%} + {%- if main_block.settings.heading != blank -%} +{{ office_block.settings.eyebrow }}
+ {%- endif -%} + {%- if office_block.settings.heading != blank -%} +{{ travel_block.settings.eyebrow }}
+ {%- endif -%} + {%- if travel_block.settings.heading != blank -%} +Practical home, desk, travel and lifestyle essentials curated for everyday value.
" + }, + { + "type": "text", + "id": "button_label", + "label": "Button label", + "default": "Shop practical finds" + }, + { + "type": "url", + "id": "button_link", + "label": "Button link" + }, + { + "type": "range", + "id": "overlay_opacity", + "min": 0, + "max": 70, + "step": 5, + "unit": "%", + "label": "Image overlay opacity", + "default": 25 + } + ] + }, + { + "type": "office_tile", + "name": "Office & Desk tile", + "limit": 1, + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "eyebrow", + "label": "Eyebrow or badge" + }, + { + "type": "inline_richtext", + "id": "heading", + "label": "Heading", + "default": "Office & Desk Essentials" + }, + { + "type": "richtext", + "id": "text", + "label": "Text", + "default": "Useful upgrades for work, study and home office.
" + }, + { + "type": "text", + "id": "button_label", + "label": "Button label", + "default": "Shop desk finds" + }, + { + "type": "url", + "id": "button_link", + "label": "Button link" + }, + { + "type": "range", + "id": "overlay_opacity", + "min": 0, + "max": 70, + "step": 5, + "unit": "%", + "label": "Image overlay opacity", + "default": 25 + } + ] + }, + { + "type": "travel_tile", + "name": "Travel & Daily tile", + "limit": 1, + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "eyebrow", + "label": "Eyebrow or badge" + }, + { + "type": "inline_richtext", + "id": "heading", + "label": "Heading", + "default": "Travel & Daily Accessories" + }, + { + "type": "richtext", + "id": "text", + "label": "Text", + "default": "Compact finds for errands, commutes and everyday carry.
" + }, + { + "type": "text", + "id": "button_label", + "label": "Button label", + "default": "Shop travel finds" + }, + { + "type": "url", + "id": "button_link", + "label": "Button link" + }, + { + "type": "range", + "id": "overlay_opacity", + "min": 0, + "max": 70, + "step": 5, + "unit": "%", + "label": "Image overlay opacity", + "default": 25 + } + ] + } + ], + "presets": [ + { + "name": "Get Yours promo grid hero", + "blocks": [ + { + "type": "main_tile" + }, + { + "type": "office_tile" + }, + { + "type": "travel_tile" + } + ] + } + ] +} +{% endschema %} diff --git a/docs/recovery-backups/phase-3-9-recovery/index.before-recovery.json b/docs/recovery-backups/phase-3-9-recovery/index.before-recovery.json new file mode 100644 index 00000000000..61be7396e19 --- /dev/null +++ b/docs/recovery-backups/phase-3-9-recovery/index.before-recovery.json @@ -0,0 +1,291 @@ +{ + "sections": { + "gy_promo_grid_hero": { + "type": "gy-promo-grid-hero", + "blocks": { + "main_tile": { + "type": "main_tile", + "settings": { + "eyebrow": "Smart Value Guarantee", + "heading": "Smart everyday finds for less.", + "text": "Practical home, desk, travel and lifestyle essentials curated for everyday value.
", + "button_label": "Shop practical finds", + "button_link": "shopify://collections/all", + "overlay_opacity": 25 + } + }, + "office_tile": { + "type": "office_tile", + "settings": { + "eyebrow": "", + "heading": "Office & Desk Essentials", + "text": "Useful upgrades for work, study and home office.
", + "button_label": "Shop desk finds", + "button_link": "shopify://collections/all", + "overlay_opacity": 25 + } + }, + "travel_tile": { + "type": "travel_tile", + "settings": { + "eyebrow": "", + "heading": "Travel & Daily Accessories", + "text": "Compact finds for errands, commutes and everyday carry.
", + "button_label": "Shop travel finds", + "button_link": "shopify://collections/all", + "overlay_opacity": 25 + } + } + }, + "block_order": [ + "main_tile", + "office_tile", + "travel_tile" + ], + "settings": { + "accessibility_heading": "Featured promotions", + "color_scheme": "scheme-1" + } + }, + "gy_category_grid": { + "type": "gy-category-grid", + "blocks": { + "home_organisation": { + "type": "category", + "settings": { + "title": "Home Organisation", + "text": "Storage and tidy-home finds", + "icon": "home", + "link": "shopify://collections/all", + "badge": "" + } + }, + "office_desk": { + "type": "category", + "settings": { + "title": "Office & Desk", + "text": "Work, study and desk upgrades", + "icon": "desk", + "link": "shopify://collections/all", + "badge": "" + } + }, + "kitchen_storage": { + "type": "category", + "settings": { + "title": "Kitchen & Storage", + "text": "Practical kitchen helpers", + "icon": "kitchen", + "link": "shopify://collections/all", + "badge": "" + } + }, + "lifestyle": { + "type": "category", + "settings": { + "title": "Lifestyle", + "text": "Everyday useful essentials", + "icon": "lifestyle", + "link": "shopify://collections/all", + "badge": "" + } + }, + "travel": { + "type": "category", + "settings": { + "title": "Travel", + "text": "Compact carry and trip finds", + "icon": "travel", + "link": "shopify://collections/all", + "badge": "" + } + }, + "tech_accessories": { + "type": "category", + "settings": { + "title": "Tech Accessories", + "text": "Simple add-ons for daily devices", + "icon": "tech", + "link": "shopify://collections/all", + "badge": "" + } + } + }, + "block_order": [ + "home_organisation", + "office_desk", + "kitchen_storage", + "lifestyle", + "travel", + "tech_accessories" + ], + "settings": { + "heading": "Shop by Category", + "subtitle": "Browse practical everyday finds by the way you use them.
", + "view_all_label": "Browse all categories", + "view_all_link": "shopify://collections/all", + "color_scheme": "scheme-1" + } + }, + "gy_featured_practical_finds": { + "type": "gy-featured-collection", + "settings": { + "collection": "all", + "eyebrow": "", + "heading": "Featured Practical Finds", + "subtitle": "Simple, useful products selected for everyday value.
", + "products_to_show": 4, + "show_view_all": true, + "view_all_label": "View all", + "background_style": "plain", + "color_scheme": "scheme-1", + "columns_desktop": "4", + "columns_mobile": "2", + "image_ratio": "square", + "show_secondary_image": false, + "show_vendor": false, + "show_rating": false, + "quick_add": "none" + } + }, + "gy_new_arrivals": { + "type": "gy-featured-collection", + "settings": { + "collection": "all", + "eyebrow": "", + "heading": "New Arrivals", + "subtitle": "Fresh everyday finds recently added to Get Yours.
", + "products_to_show": 4, + "show_view_all": true, + "view_all_label": "View all", + "background_style": "plain", + "color_scheme": "scheme-1", + "columns_desktop": "4", + "columns_mobile": "2", + "image_ratio": "square", + "show_secondary_image": false, + "show_vendor": false, + "show_rating": false, + "quick_add": "none" + } + }, + "gy_best_sellers": { + "type": "gy-featured-collection", + "settings": { + "collection": "all", + "eyebrow": "", + "heading": "Best Sellers", + "subtitle": "Popular picks customers are checking out.
", + "products_to_show": 4, + "show_view_all": true, + "view_all_label": "View all", + "background_style": "plain", + "color_scheme": "scheme-1", + "columns_desktop": "4", + "columns_mobile": "2", + "image_ratio": "square", + "show_secondary_image": false, + "show_vendor": false, + "show_rating": false, + "quick_add": "none" + } + }, + "gy_home_organisation": { + "type": "gy-featured-collection", + "settings": { + "collection": "all", + "eyebrow": "", + "heading": "Home Organisation Picks", + "subtitle": "Smart storage and organising finds for your home.
", + "products_to_show": 4, + "show_view_all": true, + "view_all_label": "View all", + "background_style": "plain", + "color_scheme": "scheme-1", + "columns_desktop": "4", + "columns_mobile": "2", + "image_ratio": "square", + "show_secondary_image": false, + "show_vendor": false, + "show_rating": false, + "quick_add": "none" + } + }, + "gy_office_desk": { + "type": "gy-featured-collection", + "settings": { + "collection": "all", + "eyebrow": "", + "heading": "Office & Desk Essentials", + "subtitle": "Practical desk upgrades for work, study and home office.
", + "products_to_show": 4, + "show_view_all": true, + "view_all_label": "View all", + "background_style": "plain", + "color_scheme": "scheme-1", + "columns_desktop": "4", + "columns_mobile": "2", + "image_ratio": "square", + "show_secondary_image": false, + "show_vendor": false, + "show_rating": false, + "quick_add": "none" + } + }, + "gy_trust_grid": { + "type": "gy-trust-grid", + "blocks": { + "reliable_delivery": { + "type": "trust_item", + "settings": { + "icon": "delivery", + "title": "Reliable delivery", + "text": "Clear delivery updates and practical shipping options for everyday orders.
", + "link_label": "", + "link": "" + } + }, + "easy_support": { + "type": "trust_item", + "settings": { + "icon": "support", + "title": "Easy support", + "text": "Need help before or after ordering? Get support through our customer service channels.
", + "link_label": "", + "link": "" + } + }, + "secure_checkout": { + "type": "trust_item", + "settings": { + "icon": "secure", + "title": "Secure checkout", + "text": "Shop with trusted Shopify checkout and supported payment methods.
", + "link_label": "", + "link": "" + } + } + }, + "block_order": [ + "reliable_delivery", + "easy_support", + "secure_checkout" + ], + "settings": { + "heading": "Delivery, support and checkout you can trust", + "subtitle": "Clear service details for everyday online shopping.
", + "color_scheme": "scheme-2" + } + } + }, + "order": [ + "gy_promo_grid_hero", + "gy_category_grid", + "gy_featured_practical_finds", + "gy_new_arrivals", + "gy_best_sellers", + "gy_home_organisation", + "gy_office_desk", + "gy_trust_grid" + ] +} diff --git a/get-yours-shopify-theme/.github/CODE_OF_CONDUCT.md b/get-yours-shopify-theme/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..b4350ac3777 --- /dev/null +++ b/get-yours-shopify-theme/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,77 @@ + +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, and it also applies when +an individual is representing the project or its community in public spaces. +Examples of representing a project or community include using an official +project e-mail address, posting via an official social media account, or acting +as an appointed representative at an online or offline event. Representation of +a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team atPractical everyday finds for home, office, travel and organising - curated for clean value.
", "brand_image_width": 100, "social_twitter_link": "", "social_facebook_link": "", diff --git a/config/settings_schema.json b/get-yours-shopify-theme/config/settings_schema.json similarity index 100% rename from config/settings_schema.json rename to get-yours-shopify-theme/config/settings_schema.json diff --git a/get-yours-shopify-theme/docs/admin-ready-pages/contact-page-content.md b/get-yours-shopify-theme/docs/admin-ready-pages/contact-page-content.md new file mode 100644 index 00000000000..e23b73fba9b --- /dev/null +++ b/get-yours-shopify-theme/docs/admin-ready-pages/contact-page-content.md @@ -0,0 +1,28 @@ +# Contact + +## Get In Touch + +Use the contact form to send Get Yours a question about an order, delivery, product, payment, return or refund. + +## What To Include + +Including the right details helps us review your request: + +- Your order number, if you have one. +- The name and email address used at checkout. +- The product name and a short description of the issue. +- For delivery queries, the delivery address and any tracking reference available. +- Clear photos of the item and packaging where an item arrived damaged, incorrect or incomplete. + +## Keep Your Details Safe + +Do not send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. Payment details should only be entered through the secure checkout process. + +## Related Help + +- Help: `/pages/help` +- Customer Service: `/pages/customer-service` +- Shipping Information: `/pages/shipping-information` +- Returns & Refunds: `/pages/returns-and-refunds` +- Payment Information: `/pages/payment-information` +- FAQ: `/pages/faq` diff --git a/get-yours-shopify-theme/docs/admin-ready-pages/customer-service.md b/get-yours-shopify-theme/docs/admin-ready-pages/customer-service.md new file mode 100644 index 00000000000..7c47ad2ae79 --- /dev/null +++ b/get-yours-shopify-theme/docs/admin-ready-pages/customer-service.md @@ -0,0 +1,33 @@ +# Customer Service + +## We Are Here To Help + +Get Yours aims to make support clear and practical. Contact us when you need help with an order, delivery update, product issue, payment question, return or refund request. + +## What To Include + +Including the right details helps us review your request: + +- Your order number, if you have one. +- The name and email address used at checkout. +- The product name and a brief description of the issue. +- For delivery queries, the delivery address and any tracking reference available. +- For damaged or incorrect items, clear photos of the item and packaging where relevant. + +## Delivery And Tracking Queries + +We can review the order status and any tracking information available for your delivery. Delivery and tracking availability can vary by item, delivery address and fulfilment route. + +## Returns And Refund Queries + +Contact us before sending an item back or starting a refund request. We will review the order details and explain the available next steps under the Returns & Refunds information and policy. + +Please do not send an item back before receiving return instructions from Get Yours. + +## Contact Us + +Use the Contact page to send your request. Do not send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. + +- Contact: `/pages/contact` +- Help: `/pages/help` +- FAQ: `/pages/faq` diff --git a/get-yours-shopify-theme/docs/admin-ready-pages/faq.md b/get-yours-shopify-theme/docs/admin-ready-pages/faq.md new file mode 100644 index 00000000000..99513f9e66f --- /dev/null +++ b/get-yours-shopify-theme/docs/admin-ready-pages/faq.md @@ -0,0 +1,62 @@ +# FAQ + +## What is Get Yours? + +Get Yours offers practical finds for home, desk, travel and everyday routines. + +## Where do you deliver? + +Get Yours is launching with delivery within South Africa. + +## How much is delivery? + +Available shipping options and charges are shown at checkout. + +## Do you offer free shipping? + +Free Standard shipping applies to qualifying orders of R770 or more. + +## How long does delivery take? + +Delivery timing depends on the product, destination and available shipping route. Refer to the information available for your order. + +## How do I track my order? + +Where tracking is available, we will share it once the supplier or carrier provides a valid tracking reference. + +## Can I cancel an order? + +Contact Customer Service as soon as possible with your order number. Cancellation options can depend on the stage of your order and the Returns & Refunds information and policy. + +## Can I return an item? + +Please contact us before returning an item. Return eligibility and instructions are set out in the Returns & Refunds information and policy. + +Please do not send an item back before receiving return instructions from Get Yours. + +## What if my item arrives damaged or incorrect? + +Contact Customer Service with your order number, the product details and clear photos of the item and packaging where relevant. + +## Which payment methods do you accept? + +Available payment methods are shown at checkout. + +## Do you sell internationally? + +No. Get Yours is launching in South Africa only. + +## Are all products stocked locally? + +Some items may be fulfilled through supplier partners. Availability and fulfilment routes can vary by item. + +## Why can delivery time vary? + +Delivery timing depends on the product, destination and available shipping route. + +## How do I contact support? + +Use the Contact page or Customer Service page and include your order number if you have one. Do not send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. + +- Contact: `/pages/contact` +- Customer Service: `/pages/customer-service` diff --git a/get-yours-shopify-theme/docs/admin-ready-pages/help.md b/get-yours-shopify-theme/docs/admin-ready-pages/help.md new file mode 100644 index 00000000000..58152ee4ddc --- /dev/null +++ b/get-yours-shopify-theme/docs/admin-ready-pages/help.md @@ -0,0 +1,48 @@ +# Help + +## Welcome to Get Yours + +Get Yours brings together practical finds for home, desk, travel and daily routines. This page explains the usual steps from finding an item to getting support after you place an order. + +## Find What You Need + +- Browse Shop All or explore by category. +- Use search if you already know what you need. +- Review product images, price, product information and available options before adding an item to your cart. + +## Place an Order + +1. Add the items you want to your cart. +2. Review the quantity, delivery details and total at checkout. +3. Enter an accurate delivery address and contact information. +4. Choose an available payment method and complete checkout. +5. After your order is successfully placed, you should receive an order confirmation email. + +## Payments + +Available payment methods are shown at checkout. If a payment appears not to have completed, first check whether you received an order confirmation and whether a charge appears on your payment method. + +Only try checkout again after confirming that the original attempt did not create an order or charge. Contact Customer Service if you are unsure. + +## Shipping And Tracking + +Get Yours is launching in South Africa. Shipping options and charges are shown at checkout. Free Standard shipping applies to qualifying orders of R770 or more. + +Delivery timing depends on the product, destination and available shipping route. Where tracking is available, we will share it once the supplier or carrier provides a valid tracking reference. + +## Returns & Refunds + +If there is a problem with an item, contact us first so we can review the order and explain the next steps. Please include your order number, the name and email used at checkout, and clear photos where an item is damaged or incorrect. + +Please do not send an item back before receiving return instructions from Get Yours. + +## Get Support + +For help with an order, delivery, payment or product issue, contact Customer Service with as much useful detail as possible. Do not send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. + +- Customer Service: `/pages/customer-service` +- Shipping Information: `/pages/shipping-information` +- Returns & Refunds: `/pages/returns-and-refunds` +- Payment Information: `/pages/payment-information` +- FAQ: `/pages/faq` +- Contact: `/pages/contact` diff --git a/get-yours-shopify-theme/docs/admin-ready-pages/payment-information.md b/get-yours-shopify-theme/docs/admin-ready-pages/payment-information.md new file mode 100644 index 00000000000..94ad520acfb --- /dev/null +++ b/get-yours-shopify-theme/docs/admin-ready-pages/payment-information.md @@ -0,0 +1,25 @@ +# Payment Information + +## Paying For Your Order + +Available payment methods are shown at checkout before you place an order. Only the methods shown for your order are available. Use an available option to complete checkout using the secure checkout process. + +## Secure Checkout + +Payment is processed through Shopify checkout and the payment provider selected at checkout. Get Yours does not ask customers to send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. + +## Failed Or Cancelled Payments + +If a payment fails or is cancelled, an order might not be completed. Before trying again, check whether you received an order confirmation or whether a charge appears on your payment method. + +Contact Customer Service if the payment and order status are unclear. + +## Refunds + +Approved refunds are handled through the original payment method where possible, subject to the Returns & Refunds information and policy and payment-provider processes. After a refund is submitted, it may remain pending with the payment provider before it is settled. We cannot guarantee immediate refund settlement. + +## Need Help? + +- Customer Service: `/pages/customer-service` +- Returns & Refunds: `/pages/returns-and-refunds` +- Contact: `/pages/contact` diff --git a/get-yours-shopify-theme/docs/admin-ready-pages/returns-and-refunds.md b/get-yours-shopify-theme/docs/admin-ready-pages/returns-and-refunds.md new file mode 100644 index 00000000000..607a578e438 --- /dev/null +++ b/get-yours-shopify-theme/docs/admin-ready-pages/returns-and-refunds.md @@ -0,0 +1,39 @@ +# Returns & Refunds + +## Contact Us First + +If there is a problem with an item, please contact Get Yours before returning it or requesting a refund. We will review the order details and explain the available next steps. + +Please do not send an item back before receiving return instructions from Get Yours. + +## What To Send Us + +Please include: + +- Your order number. +- The name and email address used at checkout. +- The product name and a short description of the issue. +- Clear photos if an item arrived damaged, incorrect or incomplete. + +## Damaged Or Incorrect Items + +Contact us as soon as possible if an item arrives damaged or is not what you ordered. Photos of the item and packaging may help us assess the issue and advise on the next steps. + +## Change-of-Mind Returns + +Contact Get Yours before returning an item. Return eligibility, instructions and any applicable costs are considered according to the Returns & Refunds information and policy. + +## Refunds + +If a refund is approved, it will be handled through the original payment method where possible, subject to the Returns & Refunds information and policy and payment-provider processes. After a refund is submitted, it may remain pending with the payment provider before it is settled. We cannot guarantee immediate refund settlement. + +## Items That May Not Be Returnable + +Some items may not be eligible for return. Any applicable exclusions will be set out in the Returns & Refunds information and policy. + +## Need Help? + +Contact Customer Service with your order number before sending an item anywhere. + +- Customer Service: `/pages/customer-service` +- Contact: `/pages/contact` diff --git a/get-yours-shopify-theme/docs/admin-ready-pages/shipping-information.md b/get-yours-shopify-theme/docs/admin-ready-pages/shipping-information.md new file mode 100644 index 00000000000..b7a6f659b47 --- /dev/null +++ b/get-yours-shopify-theme/docs/admin-ready-pages/shipping-information.md @@ -0,0 +1,30 @@ +# Shipping Information + +## South Africa Delivery + +Get Yours is launching with delivery within South Africa. Available shipping options and charges are shown at checkout before you complete your order. + +## Shipping Charges + +The shipping charge for your delivery address and order is shown at checkout. Free Standard shipping applies to qualifying orders of R770 or more. + +## Delivery And Tracking + +Delivery timing depends on the product, destination and available shipping route. Where tracking is available, we will share it once the supplier or carrier provides a valid tracking reference. + +## Fulfilment And Delays + +Some items may be fulfilled through supplier partners. This can affect availability, dispatch timing and delivery routes. We will communicate if we need to share an update about your order. + +We do not guarantee supplier stock or delivery timing before an order is confirmed and processed. + +## Your Delivery Address + +Please check your delivery address, contact number and email address carefully at checkout. Contact Customer Service as soon as possible if you notice an error after placing an order. + +## Need Help? + +For an order or tracking query, contact Customer Service with your order number and the name and email used at checkout. + +- Customer Service: `/pages/customer-service` +- Contact: `/pages/contact` diff --git a/get-yours-shopify-theme/docs/content-pages/contact-page-notes.md b/get-yours-shopify-theme/docs/content-pages/contact-page-notes.md new file mode 100644 index 00000000000..51014bba0ad --- /dev/null +++ b/get-yours-shopify-theme/docs/content-pages/contact-page-notes.md @@ -0,0 +1,32 @@ +# Contact Page Improvement Notes + +The existing contact page should remain simple: name, email, phone number, message and one clear Send action. + +## Before Publishing + +- Add the approved support email: [CONFIRM BEFORE LAUNCH] Confirm support email address. +- Add approved support hours: [CONFIRM BEFORE LAUNCH] Confirm support hours. +- Confirm the Shopify contact-form recipient inbox is monitored. +- Add calm response-time wording only after the operational target is confirmed: [CONFIRM BEFORE LAUNCH] Confirm response-time wording. + +## Helpful Guidance Near The Form + +Ask customers to include: + +- Their order number, if applicable. +- The name and email address used at checkout. +- The product name and a short description of the issue. +- Photos for damaged or incorrect items where relevant. + +## Related Links + +Link the Contact page to: + +- Help: `/pages/help` +- Customer Service: `/pages/customer-service` +- Shipping Information: `/pages/shipping-information` +- Returns & Refunds: `/pages/returns-and-refunds` +- Payment Information: `/pages/payment-information` +- FAQ: `/pages/faq` + +Do not publish a WhatsApp number, response-time claim or delivery promise until it has been approved operationally. diff --git a/get-yours-shopify-theme/docs/content-pages/customer-service.md b/get-yours-shopify-theme/docs/content-pages/customer-service.md new file mode 100644 index 00000000000..5f8b2ae2030 --- /dev/null +++ b/get-yours-shopify-theme/docs/content-pages/customer-service.md @@ -0,0 +1,36 @@ +# Customer Service + +## We Are Here To Help + +Get Yours aims to make support clear and practical. Contact us when you need help with an order, delivery update, product issue, payment question, return or refund request. + +## What To Include + +Including the right details helps us review your request efficiently: + +- Your order number, if you have one. +- The name and email address used at checkout. +- The product name and a brief description of the issue. +- For delivery queries, the delivery address and any tracking reference available. +- For damaged or incorrect items, clear photos of the item and packaging where relevant. + +## Delivery And Tracking Queries + +We can check the order status and any tracking information available for your delivery. Delivery timing depends on the product, destination and available shipping route. + +[CONFIRM BEFORE LAUNCH] Confirm delivery estimates. + +## Returns And Refund Queries + +Contact us before sending an item back or starting a refund request. We will review the order details and explain the next steps under the approved Returns & Refunds information and policy. + +[CONFIRM BEFORE LAUNCH] Confirm return rules. + +## Contact Details + +- Support email: [CONFIRM BEFORE LAUNCH] Confirm support email address. +- Support hours: [CONFIRM BEFORE LAUNCH] Confirm support hours. +- Response target: [CONFIRM BEFORE LAUNCH] Confirm response target. +- Contact form: `/pages/contact` + +Please do not send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. diff --git a/get-yours-shopify-theme/docs/content-pages/faq.md b/get-yours-shopify-theme/docs/content-pages/faq.md new file mode 100644 index 00000000000..470dbb4276c --- /dev/null +++ b/get-yours-shopify-theme/docs/content-pages/faq.md @@ -0,0 +1,72 @@ +# FAQ + +## What is Get Yours? + +Get Yours offers practical finds for home, desk, travel and everyday routines. + +## Where do you deliver? + +Get Yours is launching with delivery within South Africa. + +## How much is delivery? + +Available shipping options and charges are shown at checkout. + +[CONFIRM BEFORE LAUNCH] Confirm shipping rates. + +## Do you offer free shipping? + +Free Standard shipping applies to qualifying orders of R770 or more. + +[CONFIRM BEFORE LAUNCH] Confirm whether free shipping is enabled. + +## How long does delivery take? + +Delivery timing depends on the product, destination and available shipping route. + +[CONFIRM BEFORE LAUNCH] Confirm delivery estimates. + +## How do I track my order? + +Where tracking is available, we will share it once the supplier or carrier provides a valid tracking reference. + +## Can I cancel an order? + +Contact Customer Service as soon as possible with your order number. Cancellation options depend on the order stage and the approved policy. + +[CONFIRM BEFORE LAUNCH] Confirm cancellation cutoff and rules. + +## Can I return an item? + +Please contact us before returning an item. Return eligibility and instructions are set out in the final Returns/Refund Policy. + +[CONFIRM BEFORE LAUNCH] Confirm return rules. + +## What if my item arrives damaged or incorrect? + +Contact Customer Service with your order number, the product details and clear photos of the item and packaging where relevant. + +## Which payment methods do you accept? + +Available payment methods are shown at checkout. + +[CONFIRM BEFORE LAUNCH] Confirm active payment methods. + +## Do you sell internationally? + +No. Get Yours is launching in South Africa only. + +## Are all products stocked locally? + +Some items may be fulfilled through supplier partners. Availability and fulfilment routes can vary by item. + +## Why can delivery time vary? + +Delivery timing depends on the product, destination and available shipping route. + +## How do I contact support? + +Use the Contact page or Customer Service page and include your order number if you have one. + +- Contact: `/pages/contact` +- Customer Service: `/pages/customer-service` diff --git a/get-yours-shopify-theme/docs/content-pages/help.md b/get-yours-shopify-theme/docs/content-pages/help.md new file mode 100644 index 00000000000..1b369e0a629 --- /dev/null +++ b/get-yours-shopify-theme/docs/content-pages/help.md @@ -0,0 +1,62 @@ +# Help + +## Welcome to Get Yours + +Get Yours brings together practical finds for home, desk, travel and daily routines. This page explains the usual steps from finding an item to getting support after you place an order. + +## Find What You Need + +- Browse the Shop All page or use the collections to explore by category. +- Use search if you already know what you need. +- Review product images, price, product information and available options before adding an item to your cart. + +## Place an Order + +1. Add the items you want to your cart. +2. Review the quantity, delivery details and total at checkout. +3. Enter an accurate delivery address and contact information. +4. Choose an available payment method and complete checkout. +5. After your order is successfully placed, you should receive an order confirmation email. + +## Payment + +Available payment methods are shown at checkout. + +[CONFIRM BEFORE LAUNCH] Confirm active payment methods. + +If a payment appears not to have completed, first check whether you received an order confirmation and whether a charge appears on your payment method. + +Only try checkout again after confirming that the original attempt did not create an order or charge. Contact Customer Service if you are unsure. + +## Delivery And Tracking + +Get Yours is launching with delivery within South Africa. + +- Shipping options and charges are shown at checkout. +- Free Standard shipping applies to qualifying orders of R770 or more. +- Delivery timing depends on the product, destination and available shipping route. Where tracking is available, we will share it once the supplier or carrier provides a valid tracking reference. + +[CONFIRM BEFORE LAUNCH] Confirm delivery estimates. + +[CONFIRM BEFORE LAUNCH] Confirm tracking process. + +## Returns & Refunds + +If there is a problem with an item, contact us first so we can review the order and the next steps. + +Please include your order number, the name and email used at checkout, and clear photos where an item is damaged or incorrect. + +Read the Returns & Refunds information page before requesting a return or refund. + +## Get Support + +For help with an order, delivery, payment or product issue, contact customer support with as much useful detail as possible. Do not send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. + +- Customer Service: `/pages/customer-service` +- Shipping Information: `/pages/shipping-information` +- Returns & Refunds: `/pages/returns-and-refunds` +- Payment Information: `/pages/payment-information` +- FAQ: `/pages/faq` +- Contact: `/pages/contact` + +[CONFIRM BEFORE LAUNCH] Confirm support email address. diff --git a/get-yours-shopify-theme/docs/content-pages/payment-information.md b/get-yours-shopify-theme/docs/content-pages/payment-information.md new file mode 100644 index 00000000000..8d250f5229e --- /dev/null +++ b/get-yours-shopify-theme/docs/content-pages/payment-information.md @@ -0,0 +1,29 @@ +# Payment Information + +## Paying For Your Order + +Available payment methods are shown at Shopify checkout before you place an order. Only the methods shown for your order are available. + +[CONFIRM BEFORE LAUNCH] Confirm PayPal inclusion before any public mention. + +## Secure Checkout + +Payment is processed through Shopify checkout and the payment provider selected at checkout. Get Yours does not ask customers to send card details, banking passwords, one-time PINs, account passwords or other sensitive payment information by email, social media or the contact form. + +## Failed Or Cancelled Payments + +If a payment fails or is cancelled, an order might not be completed. Before trying again, check whether you received an order confirmation or whether a charge appears on your payment method. + +Contact Customer Service if the payment and order status are unclear. + +## Refunds + +Approved refunds are handled through the original payment method where possible, subject to the final Returns & Refunds information and policy and payment-provider processes. After a refund is submitted, it may remain pending with the payment provider before it is settled. We cannot guarantee immediate refund settlement. + +[CONFIRM BEFORE LAUNCH] Confirm refund process. + +## Need Help? + +- Customer Service: `/pages/customer-service` +- Returns & Refunds: `/pages/returns-and-refunds` +- Contact: `/pages/contact` diff --git a/get-yours-shopify-theme/docs/content-pages/returns-and-refunds.md b/get-yours-shopify-theme/docs/content-pages/returns-and-refunds.md new file mode 100644 index 00000000000..71e04068b3a --- /dev/null +++ b/get-yours-shopify-theme/docs/content-pages/returns-and-refunds.md @@ -0,0 +1,47 @@ +# Returns & Refunds + +## Contact Us First + +If there is a problem with an item, please contact Get Yours before returning it or requesting a refund. We will review the order details and explain the available next steps. + +Please do not send an item back before receiving return instructions from Get Yours. + +## What To Send Us + +Please include: + +- Your order number. +- The name and email address used at checkout. +- The product name and a short description of the issue. +- Clear photos if an item arrived damaged, incorrect or incomplete. + +## Damaged Or Incorrect Items + +Contact us as soon as possible if an item arrives damaged or is not what you ordered. Photos of the item and packaging may help us assess the issue and advise on the next steps. + +[CONFIRM BEFORE LAUNCH] Confirm damaged or incorrect item reporting window and evidence requirements. + +## Change-of-Mind Returns + +[CONFIRM BEFORE LAUNCH] Confirm return rules. + +Eligibility, return instructions and any costs for change-of-mind returns must be confirmed in the final Returns & Refunds information and policy before publication. + +## Refunds + +If a refund is approved, it will be handled through the original payment method where possible, subject to the final policy and payment-provider processes. After a refund is submitted, it may remain pending with the payment provider before it is settled. We cannot guarantee immediate refund settlement. + +[CONFIRM BEFORE LAUNCH] Confirm refund processing times. + +## Items That May Not Be Returnable + +[CONFIRM BEFORE LAUNCH] Confirm non-returnable items. + +Any category-specific exclusions must be reviewed and included in the final policy before launch. + +## Need Help? + +Contact Customer Service with your order number before sending an item anywhere. + +- Customer Service: `/pages/customer-service` +- Contact: `/pages/contact` diff --git a/get-yours-shopify-theme/docs/content-pages/shipping-information.md b/get-yours-shopify-theme/docs/content-pages/shipping-information.md new file mode 100644 index 00000000000..170209d3451 --- /dev/null +++ b/get-yours-shopify-theme/docs/content-pages/shipping-information.md @@ -0,0 +1,48 @@ +# Shipping Information + +## South Africa Delivery + +Get Yours is launching with delivery within South Africa. Available shipping options and charges are shown at checkout before you complete your order. + +## Shipping Charges + +Standard shipping is planned for launch. The final shipping charge is shown at checkout for your delivery address and order. + +Free Standard shipping applies to qualifying orders of R770 or more. + +[CONFIRM BEFORE LAUNCH] Confirm shipping rates. + +[CONFIRM BEFORE LAUNCH] Confirm that free Standard shipping applies to qualifying orders of R770 or more. + +## Delivery Timing + +Delivery timing depends on the product, destination and available shipping route. Where tracking is available, we will share it once the supplier or carrier provides a valid tracking reference. + +[CONFIRM BEFORE LAUNCH] Confirm delivery estimates. + +## Tracking + +Where tracking is available, we will share it once the supplier or carrier provides a valid tracking reference. + +[CONFIRM BEFORE LAUNCH] Confirm tracking process. + +[CONFIRM BEFORE LAUNCH] Confirm tax/VAT treatment before publication. + +[CONFIRM BEFORE LAUNCH] Confirm customs/import treatment before publication. + +## Fulfilment And Delays + +Some items may be fulfilled through supplier partners. This can affect availability, dispatch timing and delivery routes. We will communicate if we need to share an update about your order. + +We do not guarantee supplier stock or delivery timing before an order is confirmed and processed. + +## Your Delivery Address + +Please check your delivery address, contact number and email address carefully at checkout. Contact support as soon as possible if you notice an error after placing an order. + +## Need Help? + +For an order or tracking query, contact Customer Service with your order number and the name and email used at checkout. + +- Customer Service: `/pages/customer-service` +- Contact: `/pages/contact` diff --git a/get-yours-shopify-theme/docs/dawn-conversion-plan.md b/get-yours-shopify-theme/docs/dawn-conversion-plan.md new file mode 100644 index 00000000000..31f755bd24d --- /dev/null +++ b/get-yours-shopify-theme/docs/dawn-conversion-plan.md @@ -0,0 +1,687 @@ +# Dawn Conversion Plan + +## 1. Executive Summary + +The frozen Get Yours static prototype is ready to become the Shopify theme blueprint. It has a stable visual direction, a clear ecommerce homepage flow, reusable product card patterns, a credible header/footer rhythm, and enough page coverage to guide Shopify Online Store 2.0 templates. + +Safest conversion strategy: + +- Use Dawn as the base theme. +- Preserve Dawn's ecommerce logic wherever possible, especially cart, product forms, variants, media, filtering, search, accessibility and Shopify editor support. +- Port the Get Yours visual system into Dawn gradually through theme settings, CSS variables, section styling and snippets. +- Convert repeated static markup into Shopify sections/snippets instead of copying static HTML directly. +- Replace static sample data with Shopify products, collections, pages, navigation menus, metafields and theme settings. + +Why Dawn instead of building from scratch: + +- Dawn already implements Shopify-native product forms, cart behavior, section architecture, accessibility patterns, responsive images, search, filtering and theme editor conventions. +- Starting from Dawn reduces risk around checkout handoff, cart state, variants, selling plans, dynamic checkout buttons and Online Store 2.0 editor compatibility. +- The Get Yours design does not require a custom storefront architecture; it needs a polished ecommerce theme with brand-specific sections. +- Building from scratch would spend time recreating solved Shopify behavior and increase launch risk. + +Primary principle: keep the Get Yours visual direction, but let Shopify/Dawn own the commerce mechanics. + +## 2. Recommended Shopify Theme Architecture + +Target structure: + +```text +sections/ + announcement-bar.liquid + header.liquid + gy-promo-grid-hero.liquid + gy-category-grid.liquid + gy-featured-collection.liquid + gy-trust-grid.liquid + main-collection-product-grid.liquid + main-product.liquid + cart-drawer.liquid + main-cart-items.liquid + main-cart-footer.liquid + main-search.liquid + main-page.liquid + contact-form.liquid + footer.liquid + +snippets/ + gy-product-card.liquid + gy-price.liquid + gy-product-badge.liquid + gy-delivery-label.liquid + gy-trust-item.liquid + gy-icon.liquid + gy-breadcrumbs.liquid + gy-product-tabs.liquid + gy-free-shipping-progress.liquid + +templates/ + index.json + collection.json + product.json + cart.json + search.json + page.json + page.contact.json + page.faq.json + +assets/ + gy-theme.css + gy-theme.js + get-yours-logo.svg + get-yours-logo-reversed.svg + hero/category/product media as Shopify assets only when not product media + +config/ + settings_schema.json + settings_data.json + +locales/ + en.default.json +``` + +Architecture guidance: + +- Prefer JSON templates and configurable sections over hard-coded Liquid templates. +- Keep Dawn's existing files where behavior is already correct; customize carefully. +- Put Get Yours visual tokens in theme settings and CSS custom properties. +- Use snippets for repeated product cards, badges, delivery labels, trust items and breadcrumbs. +- Keep merchant-editable text in section schema settings, page content or metafields rather than hard-coded strings. + +## 3. Section Mapping + +### Announcement Bar + +- Section filename: `sections/announcement-bar.liquid` or Dawn's existing announcement section if present. +- Purpose: show the free-shipping message and other calm trust notices. +- Schema settings needed: text, link, background color, text color, enable/disable, optional rotation only if needed later. +- Block settings: optional multiple announcements, but start with one. +- Shopify data source: theme settings/section settings. +- Type: static/editor-driven. + +Recommendation: preserve `FREE STANDARD SHIPPING ON ORDERS OVER R500` as a merchant-editable default. + +### Header + +- Section filename: `sections/header.liquid`. +- Purpose: logo, search, account, wishlist decision, cart, navigation and mobile nav. +- Schema settings needed: logo image, logo width, menu selector, enable sticky header, show search, show account, show cart total, mobile behavior options. +- Block settings: optional mega-menu/category blocks later. +- Shopify data source: linklists/menus, routes, cart, customer, settings. +- Type: dynamic Shopify navigation and cart state. + +Recommendation: start from Dawn header behavior and restyle it to match Get Yours. Do not rebuild search/cart/account logic from scratch. + +### Promo-Grid Hero + +- Section filename: `sections/gy-promo-grid-hero.liquid`. +- Purpose: homepage hero with one large promo tile and two stacked supporting tiles. +- Schema settings needed: section background, main image, main eyebrow/pill, heading, text, button label/link, tile images/headings/buttons, image overlay strength. +- Block settings: three promo tile blocks if flexible ordering is needed. +- Shopify data source: section settings and image picker; optional collection links. +- Type: static/editor-driven with collection links. + +Recommendation: keep it as a custom Get Yours section because Dawn does not have this exact promo-grid composition. + +### Shop by Category + +- Section filename: `sections/gy-category-grid.liquid`. +- Purpose: six category tiles for browsing. +- Schema settings needed: heading, subtitle, view-all link, icon style, columns, spacing. +- Block settings: category label, icon name, collection/link, optional product count toggle. +- Shopify data source: collections and section blocks. +- Type: merchant-configured, collection-linked. + +Recommendation: use blocks for each category so merchants can reorder categories without editing code. + +### Featured Practical Finds + +- Section filename: `sections/gy-featured-collection.liquid`. +- Purpose: featured collection rail using Get Yours product card. +- Schema settings needed: heading, subtitle, collection selector, product limit, show view-all link, view-all label, background style. +- Block settings: not needed if collection-driven. +- Shopify data source: selected collection products. +- Type: collection-driven. + +Recommendation: this should become the reusable homepage product rail section. + +### New Arrivals + +- Section filename: `sections/gy-featured-collection.liquid`. +- Purpose: collection rail for new products. +- Schema settings needed: same as featured rail. +- Shopify data source: selected "New Arrivals" collection or automated collection sorted by created date. +- Type: collection-driven. + +### Best Sellers + +- Section filename: `sections/gy-featured-collection.liquid`. +- Purpose: best-selling product rail. +- Schema settings needed: same as featured rail. +- Shopify data source: selected collection manually/automatically merchandised as best sellers. +- Type: collection-driven. + +Note: Shopify best-seller logic may require manual collection merchandising unless using reporting/app logic. + +### Home Organisation Picks + +- Section filename: `sections/gy-featured-collection.liquid`. +- Purpose: category-specific collection rail. +- Schema settings needed: same as featured rail. +- Shopify data source: Home Organisation collection. +- Type: collection-driven. + +### Office & Desk Essentials + +- Section filename: `sections/gy-featured-collection.liquid`. +- Purpose: category-specific collection rail. +- Schema settings needed: same as featured rail. +- Shopify data source: Office & Desk collection. +- Type: collection-driven. + +### Trust / Delivery / WhatsApp Support + +- Section filename: `sections/gy-trust-grid.liquid`. +- Purpose: three trust cards below merchandising rails. +- Schema settings needed: heading optional, section background, card style, columns, icon color. +- Block settings: icon, title, text, link, optional badge. +- Shopify data source: section blocks/theme settings. +- Type: static/editor-driven. + +### Footer + +- Section filename: `sections/footer.liquid`. +- Purpose: brand description, shop links, support links, legal links, copyright and optional payment/support details. +- Schema settings needed: logo/reversed logo, description, menu selectors, show payment icons, social links, newsletter enable. +- Block settings: link groups, text blocks, newsletter/social blocks if using Dawn footer architecture. +- Shopify data source: linklists, shop, policies, payment icons, theme settings. +- Type: dynamic menus plus editor-driven content. + +Recommendation: use a dedicated reversed logo asset rather than relying on CSS filter if possible. + +## 4. Product Card Mapping + +Snippet filename: `snippets/gy-product-card.liquid` + +Inputs: + +- `product` +- `collection` optional +- `show_vendor` optional +- `show_badge` optional +- `show_delivery_label` optional +- `show_quick_add` optional +- `image_ratio` optional + +Mapped fields: + +- Product image: `product.featured_media` or first available media, responsive `image_url`/`image_tag`. +- Title: `product.title`, linked to `product.url`. +- Price: use Dawn price logic or a Get Yours wrapper around Dawn's price snippet. +- Compare-at price: show only if product is on sale; avoid aggressive sale treatment. +- Delivery label: product metafield, fallback to collection/theme default. +- Badge: product metafield, product tag, or automatic sale/new logic. +- Add to Cart behavior: use Dawn quick-add/product form patterns where possible; if product has variants, route to product or show variant picker rather than blindly adding first variant. +- Accessibility: image alt text, accessible product link, button label including product title, visible focus states, no duplicate inaccessible click targets. + +Recommended metafield strategy: + +- Delivery label: `custom.delivery_label` +- Badge: `custom.product_badge` +- Product highlights: `custom.highlights` +- Shipping estimate: `custom.shipping_estimate` + +Do not hard-code sample product cards in Liquid. Every homepage rail and collection grid should render the same snippet from real Shopify product data. + +## 5. Collection Page Mapping + +Static source: `pages/collection-home-organisation.html` + +- Template file: `templates/collection.json` +- Main section: `sections/main-collection-product-grid.liquid` using Dawn as base. +- Shopify native filters: use `collection.filters`. +- Sorting: use Shopify collection sort options. +- Pagination: use Shopify pagination, likely 12/24 products per page depending final density. +- Product grid: render `gy-product-card`. +- Mobile filter strategy: use Dawn's drawer/disclosure pattern, restyled to Get Yours. Avoid leaving full filters stacked above products on mobile. +- Dawn defaults to preserve: filtering logic, sorting, pagination, product URL generation, image handling, accessibility basics. +- Customise: card snippet styling, filter/sidebar visual treatment, toolbar copy, spacing, category breadcrumbs, mobile filter trigger styling. + +Required decisions: + +- Product page size: 12 vs 24 per page. +- Whether categories are separate collections or filtered collection groups. +- Whether "Fast Delivery" is a filterable metafield. + +## 6. Product Page Mapping + +Static source: `pages/product-adjustable-drawer-divider.html` + +- Template file: `templates/product.json` +- Main section: `sections/main-product.liquid`, based on Dawn. + +Mapped components: + +- Product media gallery: use Shopify product media and Dawn gallery behavior; style to match static layout. +- Title: `product.title`. +- Price: Dawn price logic with Get Yours styling. +- Reviews/rating strategy: do not keep fake rating. Use a reviews app/metafields later or hide rating until real. +- Product form: Dawn product form for variants and add-to-cart. +- Variants: use Shopify variants/options; style selectors to fit current clean UI. +- Quantity selector: use Dawn quantity input behavior, styled like prototype. +- Add to Cart: preserve Dawn behavior. +- Buy Now/dynamic checkout: decide merchant setting. Use Shopify dynamic checkout buttons if enabled, otherwise hide or keep cart-first flow. +- Trust block: product section block or snippet with merchant-editable trust cards. +- Tabs: Description, Delivery, Returns, FAQs as product information blocks or accordions/disclosures. +- Related products: use Shopify product recommendations or selected collection fallback. + +Metafields needed: + +- `custom.delivery_label` +- `custom.shipping_estimate` +- `custom.returns_note` +- `custom.product_faq` +- `custom.support_note` +- `custom.highlights` +- `custom.specifications` +- `custom.product_badge` + +Recommendation: keep content available without brittle JavaScript by using accessible disclosure/accordion patterns. + +## 7. Cart Drawer and Cart Page Mapping + +Preferred strategy: extend Dawn's cart drawer and cart page. Do not replace cart logic. + +Cart drawer strategy: + +- Preserve Dawn cart AJAX/state handling. +- Restyle drawer width, typography, buttons, product summary and reassurance notes to match Get Yours. +- Add WhatsApp/support reassurance as a theme setting or cart drawer block. +- Include quantity updates, remove item, empty state and live subtotal from Dawn. +- Keep focus management and accessibility from Dawn. + +Cart page strategy: + +- Use Dawn cart template/sections. +- Style line items, order summary, checkout CTA and recommendations to match the static prototype. +- Add recommended products through Shopify recommendations or a selected collection. + +Free-shipping progress: + +- Implement with theme setting threshold, e.g. R500 in cents. +- Use cart subtotal to calculate progress. +- Keep copy editable. +- Ensure it handles currencies and discounts carefully. + +Promo code limitations: + +- Shopify discount codes are usually applied at checkout or through supported discount flows. +- Theme-side promo code fields can be misleading unless implemented with a supported cart/checkout discount URL pattern. +- For first launch, prefer "Discounts can be added at checkout" unless a robust implementation is confirmed. + +Checkout handoff: + +- Use Shopify checkout route/button. +- Do not custom-build checkout. + +Empty cart state: + +- Must include continue shopping, recommended collection link and reassurance copy. + +## 8. Search Mapping + +Static source: `pages/search.html` + +- Template file: `templates/search.json` +- Main section: `sections/main-search.liquid`. +- Normal search results: use Shopify search results and product card snippet. +- Predictive search: use Dawn predictive search if enabled; restyle input/results. +- Empty results state: include suggested categories, popular products and a clear search refinement message. +- Product card reuse: render `gy-product-card` for product results. + +Recommendation: search should become a real ecommerce experience before launch. The static page is only a route placeholder. + +## 9. Static Content / Legal Pages + +### Shipping + +- Shopify page or template: Shopify Page with optional `page.shipping.json`. +- Editable content strategy: use Shopify admin page content plus optional page template sections for delivery cards. +- Copy required: delivery areas, timelines, couriers, fees, free-shipping threshold, tracking steps. + +### Returns + +- Shopify page or template: Shopify Page with `page.returns.json`. +- Editable content strategy: legal/business-approved page content. +- Copy required: return window, eligibility, exclusions, damaged items, refund method, support contact. + +### Contact + +- Shopify page or template: `page.contact.json` with `sections/contact-form.liquid`. +- Editable content strategy: Shopify contact form plus support cards. +- Copy required: WhatsApp link/number, email, support hours, response expectations. + +### FAQ + +- Shopify page or template: `page.faq.json`. +- Editable content strategy: section blocks or metaobjects if FAQ grows. +- Copy required: delivery, payment, order tracking, returns, support, product sizing/care. + +### Privacy + +- Shopify page or policy: Shopify policy page preferred where appropriate. +- Editable content strategy: Shopify legal policy content and/or page. +- Copy required: POPIA/privacy compliance, Shopify/payment providers, analytics, support channels. + +### Terms + +- Shopify page or policy: Shopify policy page preferred where appropriate. +- Editable content strategy: Shopify legal policy content and/or page. +- Copy required: purchase terms, pricing, availability, delivery, returns, liability, disputes. + +## 10. Assets and Design Tokens + +Logo SVG: + +- Move `assets/brand/get-yours-logo.svg` into theme `assets/`. +- Preserve the cropped horizontal logo treatment. +- Add a dedicated reversed logo asset for footer if possible. + +Colour tokens: + +- Map static CSS variables into Dawn/theme settings: + - `--gy-blue: #0081D8` + - `--gy-navy: #073A66` + - `--gy-navy-deep: #063A66` + - `--gy-yellow-logo: #FFD200` + - `--gy-gold: #F5B700` + - `--gy-gold-soft: #FFF4CC` + - `--gy-blue-soft: #EAF6FF` + - `--gy-bg: #F5F7FA` + - `--gy-surface: #FFFFFF` + - `--gy-border: #E4E7EC` + - `--gy-text: #1F2933` + - `--gy-muted: #667085` + - `--gy-success: #16A34A` + +Typography: + +- Current prototype uses Hanken Grotesk. +- Decide whether to use Shopify-hosted font settings, system fallback, or externally loaded font. +- Prefer theme font settings where possible for performance and editor compatibility. + +Product images: + +- Product images should become Shopify product media, not theme assets. +- Replace remote Stitch-generated URLs with real product media before production QA. + +Hero images: + +- Use section image picker settings for hero tiles. +- Store reusable hero/promo assets as theme assets only if they are brand/editor assets, not product media. + +CSS variables: + +- Add Get Yours variables to a small theme stylesheet layered on Dawn. +- Avoid large rewrites of Dawn CSS at first. +- Prefer component-scoped classes and CSS variables from section settings. + +JavaScript interactions: + +- Keep Dawn JS for cart, variant selection, media gallery, predictive search and disclosure patterns. +- Add custom JS only for Get Yours-specific UI that Dawn cannot cover. +- Avoid porting static `main.js` directly into Shopify. + +## 11. Shopify Metafields Needed + +Product metafields: + +- `custom.delivery_label` - short product-card and buy-box delivery label. +- `custom.product_badge` - "Smart value", "New", "Popular" or other restrained badge. +- `custom.product_faq` - product-specific FAQ content. +- `custom.returns_note` - product-specific returns exception or reassurance. +- `custom.shipping_estimate` - product-specific delivery estimate. +- `custom.support_note` - support reassurance near buy box. +- `custom.highlights` - bullet highlights for product page. +- `custom.specifications` - structured specs such as dimensions/material/pack size. + +Collection metafields: + +- `custom.short_description` - collection page intro copy. +- `custom.category_icon` - optional category tile icon/asset. +- `custom.featured_badge` - optional category merchandising label. + +Shop/theme settings: + +- Free-shipping threshold. +- WhatsApp support link. +- Support hours. +- Default delivery label. +- Default returns note. +- Footer brand description. + +## 12. Shopify Apps / Settings Needed + +Shopify native functionality: + +- Products, variants, collections. +- Menus/navigation. +- Cart and checkout. +- Search and predictive search baseline. +- Collection filters and sorting. +- Customer accounts if enabled. +- Shopify Pages and policies. +- Shopify Email/newsletter if sufficient. +- Payments and shipping/rates configuration. +- Basic SEO fields and redirects. + +Theme code: + +- Get Yours visual sections. +- Product card snippet. +- Trust blocks. +- Product tabs/disclosures. +- Free-shipping progress presentation. +- WhatsApp CTA display. +- Custom homepage rail styling. +- Footer/header brand styling. + +Shopify apps later: + +- Reviews: only when ready for real review collection/display. +- Wishlist: add later if it supports business goals; otherwise hide wishlist until implemented. +- WhatsApp support: app or simple link depending operational needs. +- Email/newsletter capture: Shopify Email or dedicated email platform if needed. +- Analytics: native Shopify analytics plus GA4/Meta pixel where appropriate. +- SEO: app only if native theme/admin SEO is insufficient. +- Shipping/rates: app only if native Shopify shipping does not cover fulfilment rules. + +Recommendation: avoid app sprawl during first conversion. Start native, add apps only for clear gaps. + +## 13. Implementation Phases + +### Phase 1: Dawn Setup and Foundation + +- Create Git branch for Shopify conversion. +- Install/verify Shopify CLI. +- Pull or initialise Dawn-based theme. +- Add project-level `AGENTS.md` for Shopify theme constraints. +- Configure theme settings and base brand tokens. +- Add logo assets. +- Establish Theme Check workflow. +- Confirm local preview workflow. + +Exit criteria: + +- Dawn runs locally. +- Theme Check passes before custom work. +- Brand tokens and logo are available. + +### Phase 2: Header, Footer and Announcement Bar + +- Restyle Dawn announcement/header/footer to match Get Yours. +- Preserve Dawn navigation, search, account and cart behavior. +- Configure menus. +- Add reversed footer logo if available. + +Exit criteria: + +- Header/footer match static prototype rhythm. +- Mobile header works without overflow. +- Cart icon/state remains Dawn-compatible. + +### Phase 3: Homepage Sections + +- Build `gy-promo-grid-hero`. +- Build `gy-category-grid`. +- Build reusable `gy-featured-collection`. +- Build `gy-trust-grid`. +- Configure `templates/index.json` with: + - hero + - categories + - featured practical finds + - new arrivals + - best sellers + - home organisation picks + - office & desk essentials + - trust grid + +Exit criteria: + +- Homepage visually matches static foundation. +- Product rails are collection-driven and editable. + +### Phase 4: Product Card Snippet and Collection Page + +- Build/reuse `gy-product-card`. +- Integrate card into homepage rails and collection grid. +- Customize collection template around Dawn filters/sort/pagination. +- Add mobile filter strategy. + +Exit criteria: + +- Collection page works with Shopify products, filters, sorting and pagination. +- Product cards are consistent across homepage and collection. + +### Phase 5: Product Page + +- Customize Dawn product page layout. +- Style gallery, buy-box, quantity, buttons and trust block. +- Add metafield-driven delivery label, badge, highlights, specifications and tabs/disclosures. +- Decide review visibility. +- Add product recommendations. + +Exit criteria: + +- Product page supports real products, variants, availability and add-to-cart. +- No fake rating/review data. + +### Phase 6: Cart Drawer and Cart Page + +- Extend Dawn cart drawer styling. +- Add Get Yours reassurance copy. +- Add free-shipping progress. +- Style cart page order summary and recommendations. +- Confirm empty cart state. + +Exit criteria: + +- Cart drawer/page preserve Dawn cart functionality. +- Checkout handoff works. +- Mobile cart experience is clean. + +### Phase 7: Search and Content Pages + +- Style search page and predictive search. +- Add empty search state. +- Create page templates for shipping, returns, contact, FAQ, privacy and terms as needed. +- Connect support/legal menus. + +Exit criteria: + +- Support/legal pages are editable and linked. +- Search feels like ecommerce search, not a placeholder. + +### Phase 8: Mobile QA, Accessibility, Performance and Theme Check + +- Test 360px, 400px, 430px, 768px, 1200px and wide desktop. +- Test keyboard navigation, focus states, drawer behavior and product forms. +- Run Shopify Theme Check. +- Check image sizing, LCP candidates, CLS risks and unused JS/CSS. +- Validate cart, filters, search and product variants. + +Exit criteria: + +- No horizontal overflow. +- Theme Check passes or documented exceptions are approved. +- Core purchase flow works. + +### Phase 9: Unpublished Theme Push and Admin Content Setup + +- Push unpublished theme. +- Configure Shopify admin products, collections, menus, pages, policies, shipping, payments and theme settings. +- Upload product media. +- Review in Shopify preview with real data. +- Run final pre-launch QA. + +Exit criteria: + +- Unpublished theme is ready for stakeholder review. +- Remaining launch blockers are content/business operations, not theme architecture. + +## 14. Risk Register + +### Breaking Dawn Cart Logic + +- Risk: replacing cart drawer/page logic can break quantities, discounts, checkout or accessibility. +- Mitigation: extend Dawn behavior and restyle; do not rewrite cart from scratch. + +### Over-Customising Too Early + +- Risk: heavy CSS/JS rewrites make Dawn harder to update and debug. +- Mitigation: start with small layered CSS and targeted sections/snippets. + +### Static Prototype Patterns Not Mapping Cleanly + +- Risk: duplicated static rails and hard-coded cards do not translate directly to dynamic data. +- Mitigation: map product rails to one reusable featured collection section and product cards to one snippet. + +### Placeholder Legal Copy + +- Risk: generic returns/privacy/terms content undermines trust and creates legal exposure. +- Mitigation: require approved policy copy before launch. + +### Fake Review/Ratings Perception + +- Risk: placeholder reviews can damage credibility. +- Mitigation: remove ratings until real reviews/app/metafields exist. + +### Product Image Quality + +- Risk: generated/remote images can make the store feel dropshippy. +- Mitigation: replace with credible Shopify product media before production QA. + +### App Sprawl + +- Risk: adding reviews, wishlist, WhatsApp, SEO and marketing apps too early can slow theme and complicate launch. +- Mitigation: use Shopify native functionality first; add apps only for explicit gaps. + +### Mobile Filter Complexity + +- Risk: real Shopify filters may become too tall or awkward on mobile. +- Mitigation: use Dawn filter drawer/disclosure behavior and test with real filter groups. + +### Product Metafield Governance + +- Risk: inconsistent metafield use leads to missing badges, delivery labels and tab content. +- Mitigation: define metafields before product import and document editorial rules. + +### South African Trust Requirements + +- Risk: customers may hesitate without clear local delivery, payment, returns and support details. +- Mitigation: prioritise shipping, support, WhatsApp, payment and returns content before launch. + +## Final Planning Recommendation + +Proceed with Dawn conversion planning and setup. The static prototype should remain frozen as the visual reference while Shopify-native architecture takes over dynamic ecommerce behavior. + +Do not spend another major pass on static HTML. The next meaningful work belongs in Dawn: theme setup, sections, snippets, templates, real Shopify data, policies and merchant-editable settings. diff --git a/get-yours-shopify-theme/docs/demo-content/demo-collections.csv b/get-yours-shopify-theme/docs/demo-content/demo-collections.csv new file mode 100644 index 00000000000..990562417da --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/demo-collections.csv @@ -0,0 +1,10 @@ +collection_title,handle,description,intended_homepage_section_usage,suggested_image,collection_type +Featured Practical Finds,featured-practical-finds,"Simple, useful products selected for everyday value.","Featured Practical Finds product rail",pending,manual +New Arrivals,new-arrivals,"Fresh everyday finds recently added to Get Yours.","New Arrivals product rail",pending,manual +Best Sellers,best-sellers,"Popular practical picks for home, desk, travel and everyday use.","Best Sellers product rail",pending,manual +Home Organisation,home-organisation,"Storage and organising finds for a calmer, tidier home.","Home Organisation Picks rail and category grid",pending,manual +Office & Desk Essentials,office-desk-essentials,"Practical desk upgrades for work, study and home office.","Office & Desk Essentials rail and category grid",hero-office-desk.jpg,manual +Kitchen & Storage,kitchen-storage,"Useful kitchen storage, pantry and sink organisation products.","Category grid",pending,manual +Lifestyle,lifestyle,"Everyday useful essentials for routines, errands and simple living.","Category grid",pending,manual +Travel,travel,"Compact travel and daily carry organisers for errands and trips.","Category grid and hero travel tile",hero-travel-accessories-candidate.jpg,manual +Tech Accessories,tech-accessories,"Simple add-ons for cables, devices and everyday tech carry.","Category grid",pending,manual diff --git a/get-yours-shopify-theme/docs/demo-content/demo-products.csv b/get-yours-shopify-theme/docs/demo-content/demo-products.csv new file mode 100644 index 00000000000..f36497833ac --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/demo-products.csv @@ -0,0 +1,21 @@ +product_title,handle,image_filename,image_alt_text,product_type,vendor,status,price_zar,compare_at_price_zar,tags,assigned_collections,short_description,bullet_highlights +Adjustable Drawer Divider Set,adjustable-drawer-divider-set,product-adjustable-drawer-divider-set.jpg,"Adjustable drawer divider set for organised drawers",Home Organisation,Get Yours,Draft,149,,"drawer dividers;storage;home organisation","Featured Practical Finds;Best Sellers;Home Organisation","Adjustable dividers for neater drawers in bedrooms, kitchens or offices.","Expandable fit|Easy drawer organisation|Useful for clothing utensils and accessories" +Modular Fridge Storage Bins,modular-fridge-storage-bins,product-modular-fridge-storage-bins.jpg,"Modular fridge storage bins arranged on a shelf",Kitchen & Storage,Get Yours,Draft,199,,"fridge storage;kitchen;organisation","Featured Practical Finds;New Arrivals;Kitchen & Storage","Storage bins for organising fridge shelves and pantry spaces.","Modular storage|Easy visibility|Useful for snacks produce and pantry items" +Under-Shelf Wire Storage Basket,under-shelf-wire-storage-basket,product-under-shelf-wire-storage-basket.jpg,"Under-shelf wire basket for extra storage",Home Organisation,Get Yours,Draft,129,,"wire basket;shelf storage;home organisation","Featured Practical Finds;Best Sellers;Home Organisation;Kitchen & Storage","A simple under-shelf basket for adding storage without drilling.","Slides under shelves|Good for kitchens and cupboards|Lightweight wire design" +Gray Fabric Storage Boxes,gray-fabric-storage-boxes,product-gray-fabric-storage-boxes-with-folded-clothing.jpg,"Gray fabric storage boxes with folded clothing",Home Organisation,Get Yours,Draft,175,,"fabric storage;boxes;home organisation","Home Organisation;Lifestyle","Soft fabric boxes for wardrobes, shelves and general tidy-up storage.","Foldable design|Neutral grey finish|Useful for clothing toys and linen" +Beige Linen Storage Bags,beige-linen-storage-bags,product-beige-linen-storage-bags.jpg,"Beige linen storage bags for home organisation",Home Organisation,Get Yours,Draft,149,,"linen bags;storage;home organisation","Home Organisation;Lifestyle","Light storage bags for seasonal clothing, bedding and household items.","Soft sided storage|Neutral beige colour|Easy to move and store" +Bamboo Desk Organizer,bamboo-desk-organizer,product-bamboo-desk-organiser.jpg,"Bamboo desk organiser with compartments",Office & Desk,Get Yours,Draft,199,,"desk organiser;bamboo;office","Office & Desk Essentials;Featured Practical Finds","A compact desktop organiser for pens, notes and everyday stationery.","Natural bamboo look|Multiple compartments|Keeps desktop items grouped" +Minimalist Desk Organizer,minimalist-desk-organizer,product-minimalist-desk-organiser.jpg,"Minimalist desk organiser on a clean workspace",Office & Desk,Get Yours,Draft,129,,"desk organiser;office;study","Office & Desk Essentials;New Arrivals","A clean desk organiser for small office and study essentials.","Compact footprint|Simple neutral styling|Useful for stationery and small tools" +Ergonomic Aluminium Laptop Stand,ergonomic-aluminium-laptop-stand,product-ergonomic-aluminium-laptop-stand.jpg,"Ergonomic aluminium laptop stand on a desk",Office & Desk,Get Yours,Draft,289,399,"laptop stand;office;desk","Best Sellers;Office & Desk Essentials","A sturdy laptop stand for raising screens during work or study.","Raises laptop height|Ventilated open design|Suitable for home office setups" +Adjustable Metal Laptop Stand,adjustable-metal-laptop-stand,product-adjustable-metal-laptop-stand.jpg,"Adjustable metal laptop stand folded on a desk",Office & Desk,Get Yours,Draft,249,,"laptop stand;adjustable;office","Office & Desk Essentials;Tech Accessories","An adjustable stand for flexible laptop positioning at a desk.","Adjustable viewing angle|Foldable design|Useful for work study and calls" +Sleek Metal Tablet Stand,sleek-metal-tablet-stand,product-sleek-metal-tablet-stand.jpg,"Sleek metal tablet stand holding a tablet",Tech Accessories,Get Yours,Draft,129,,"tablet stand;tech accessories;desk","Office & Desk Essentials;Tech Accessories","A compact metal stand for tablets, phones and small screens.","Desk-friendly size|Stable metal frame|Good for video calls and recipes" +Desk Cable Organiser,desk-cable-organiser,product-desk-cable-organiser.jpg,"Desk cable organiser for tidy charging cables",Tech Accessories,Get Yours,Draft,79,,"cable organiser;desk;tech accessories","Featured Practical Finds;Best Sellers;Office & Desk Essentials;Tech Accessories","A simple cable organiser for keeping charging cables within reach.","Reduces cable clutter|Compact desk accessory|Useful for chargers and headphones" +Tech Organizer Case,tech-organizer-case,product-tech-organiser.jpg,"Tech organiser case with cables and accessories",Tech Accessories,Get Yours,Draft,149,,"tech case;cables;travel","Tech Accessories;Travel;New Arrivals","A zip case for carrying cables, chargers and everyday tech accessories.","Multiple pockets|Travel friendly|Keeps small tech items together" +Travel Pouch Set,travel-pouch-set,product-travel-pouch-set.jpg,"Travel pouch set for packing small items",Travel,Get Yours,Draft,175,,"travel pouches;packing;organiser","Travel;Lifestyle;Featured Practical Finds","A practical pouch set for packing toiletries, cables or daily essentials.","Multiple pouch sizes|Useful for trips and errands|Keeps bag contents grouped" +Travel Toiletry Organizer,travel-toiletry-organizer,product-minimalist-travel-toiletry-set.jpg,"Minimalist travel toiletry organiser set",Travel,Get Yours,Draft,199,,"toiletry organiser;travel;bag","Travel;Best Sellers","A compartment organiser for toiletries and small travel essentials.","Multiple compartments|Easy to pack|Useful for weekend trips" +Pantry Glass Jar Set,pantry-glass-jar-set,product-minimalist-pantry-jars.jpg,"Minimalist pantry glass jar set on a kitchen shelf",Kitchen & Storage,Get Yours,Draft,249,,"glass jars;pantry;kitchen storage","Kitchen & Storage;Home Organisation","A clean jar set for pantry staples and kitchen shelf organisation.","Clear jar design|Good for dry goods|Helps pantry shelves look tidy" +Kitchen Sink Organizer,kitchen-sink-organizer,product-modern-kitchen-sink-organiser.jpg,"Modern kitchen sink organiser holding everyday sink items",Kitchen & Storage,Get Yours,Draft,99,,"sink organiser;kitchen;storage","Kitchen & Storage;Featured Practical Finds","A compact organiser for sponge, brush and sink-side essentials.","Keeps sink area tidy|Small footprint|Useful for everyday cleaning tools" +Rolling Storage Cart,rolling-storage-cart,product-rolling-storage-cart-display.jpg,"Rolling storage cart with household items",Home Organisation,Get Yours,Draft,399,,"storage cart;home organisation;rolling cart","Home Organisation;Best Sellers;Lifestyle","A rolling cart for flexible storage in kitchens, bathrooms or workspaces.","Wheeled storage|Multi-tier design|Useful in compact spaces" +Jewelry Organizer Box,jewelry-organizer-box,product-elegant-jewellery-box.jpg,"Elegant jewellery organiser box with compartments",Lifestyle,Get Yours,Draft,175,,"jewelry organiser;storage;lifestyle","Lifestyle;Home Organisation","A small organiser box for jewellery and accessories.","Compartment storage|Compact dresser size|Helps separate small accessories" +Laundry Hamper,laundry-hamper,product-beige-laundry-hamper.jpg,"Beige laundry hamper for bedroom or bathroom",Home Organisation,Get Yours,Draft,199,,"laundry hamper;home organisation;storage","Home Organisation;Lifestyle","A simple laundry hamper for bedrooms, bathrooms or laundry areas.","Neutral styling|Easy everyday storage|Useful for clothing and linen" +Bathroom Wall Shelf Organizer,bathroom-wall-shelf-organizer,product-minimalist-bathroom-shelving.jpg,"Minimalist bathroom shelving for toiletries",Home Organisation,Get Yours,Draft,149,,"bathroom shelf;wall organiser;storage","Home Organisation;Lifestyle","A wall shelf organiser for toiletries and small bathroom essentials.","Wall storage|Good for compact bathrooms|Keeps essentials visible" diff --git a/get-yours-shopify-theme/docs/demo-content/homepage-section-assignments.md b/get-yours-shopify-theme/docs/demo-content/homepage-section-assignments.md new file mode 100644 index 00000000000..deba37e67f7 --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/homepage-section-assignments.md @@ -0,0 +1,39 @@ +# Homepage Section Assignments + +## Hero Promo Grid + +| Homepage area | Intended image | Theme section setting | +| --- | --- | --- | +| Hero main tile | `hero-main-image.jpg` | `gy-promo-grid-hero` main image | +| Office & Desk tile | `hero-office-desk.jpg` | `gy-promo-grid-hero` secondary tile 1 image | +| Travel tile | `hero-travel-accessories-candidate.jpg` | `gy-promo-grid-hero` secondary tile 2 image | + +Image status: `hero-main-image.jpg` and `hero-office-desk.jpg` were created from source hero files. A dedicated source hero travel image was not found, so `hero-travel-accessories-candidate.jpg` was created from `Product-TravelAccessories.png` as a temporary candidate. + +## Homepage Product Rails + +| Homepage rail | Shopify collection | +| --- | --- | +| Featured Practical Finds | Featured Practical Finds | +| New Arrivals | New Arrivals | +| Best Sellers | Best Sellers | +| Home Organisation Picks | Home Organisation | +| Office & Desk Essentials | Office & Desk Essentials | + +## Shop By Category Grid + +| Category card | Shopify collection | +| --- | --- | +| Home Organisation | Home Organisation | +| Office & Desk | Office & Desk Essentials | +| Kitchen & Storage | Kitchen & Storage | +| Lifestyle | Lifestyle | +| Travel | Travel | +| Tech Accessories | Tech Accessories | + +## Theme Editor Steps + +1. Upload/select the three hero images in the `Get Yours promo grid hero` section. +2. Assign each category block to the matching collection. +3. Assign each product rail to the matching collection. +4. Keep the homepage product rails collection-driven. Do not hard-code product image assets into Liquid. diff --git a/get-yours-shopify-theme/docs/demo-content/image-upload-map.md b/get-yours-shopify-theme/docs/demo-content/image-upload-map.md new file mode 100644 index 00000000000..f58484eccb7 --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/image-upload-map.md @@ -0,0 +1,41 @@ +# Image Upload Map + +## Upload Rules + +- Product images should be uploaded as Shopify product media. +- Hero images should be selected in the Shopify theme editor or uploaded through Shopify Files. +- Do not hard-code these images into Liquid. + +| Image filename | Intended Shopify use | Product title or hero tile | Alt text | Upload method | +| --- | --- | --- | --- | --- | +| `hero-main-image.jpg` | Hero main tile | Smart everyday finds for less. | Smart everyday finds for less. | theme editor / Shopify Files | +| `hero-office-desk.jpg` | Office & Desk hero tile | Office & Desk Essentials | Office & Desk Essentials | theme editor / Shopify Files | +| `hero-travel-accessories-candidate.jpg` | Travel hero tile candidate | Travel & Daily Accessories | Travel & Daily Accessories | theme editor / Shopify Files | +| `product-adjustable-drawer-divider-set.jpg` | Product media | Adjustable Drawer Divider Set | Adjustable drawer divider set for organised drawers | product media | +| `product-adjustable-metal-laptop-stand.jpg` | Product media | Adjustable Metal Laptop Stand | Adjustable metal laptop stand folded on a desk | product media | +| `product-bamboo-desk-organiser.jpg` | Product media | Bamboo Desk Organizer | Bamboo desk organiser with compartments | product media | +| `product-beauty-essentials.jpg` | Extra product media candidate | Unassigned demo image | Product Beauty Essentials | product media if product is created later | +| `product-beige-laundry-hamper.jpg` | Product media | Laundry Hamper | Beige laundry hamper for bedroom or bathroom | product media | +| `product-beige-linen-storage-bags.jpg` | Product media | Beige Linen Storage Bags | Beige linen storage bags for home organisation | product media | +| `product-black-cable-clips.jpg` | Extra product media candidate | Unassigned demo image | Product Black Cable Clips | product media if product is created later | +| `product-desk-cable-organiser.jpg` | Product media | Desk Cable Organiser | Desk cable organiser for tidy charging cables | product media | +| `product-elegant-jewellery-box.jpg` | Product media | Jewelry Organizer Box | Elegant jewellery organiser box with compartments | product media | +| `product-ergonomic-aluminium-laptop-stand.jpg` | Product media | Ergonomic Aluminium Laptop Stand | Ergonomic aluminium laptop stand on a desk | product media | +| `product-gray-fabric-storage-boxes-with-folded-clothing.jpg` | Product media | Gray Fabric Storage Boxes | Gray fabric storage boxes with folded clothing | product media | +| `product-minimalist-bathroom-shelving.jpg` | Product media | Bathroom Wall Shelf Organizer | Minimalist bathroom shelving for toiletries | product media | +| `product-minimalist-desk-organiser.jpg` | Product media | Minimalist Desk Organizer | Minimalist desk organiser on a clean workspace | product media | +| `product-minimalist-kitchen-storage-with-glass-jars.jpg` | Extra product media candidate | Unassigned demo image | Product Minimalist Kitchen Storage With Glass Jars | product media if product is created later | +| `product-minimalist-pantry-jars.jpg` | Product media | Pantry Glass Jar Set | Minimalist pantry glass jar set on a kitchen shelf | product media | +| `product-minimalist-travel-toiletry-set.jpg` | Product media | Travel Toiletry Organizer | Minimalist travel toiletry organiser set | product media | +| `product-minimalist-wooden-monitor-stand-with-drawer.jpg` | Extra product media candidate | Unassigned demo image | Product Minimalist Wooden Monitor Stand With Drawer | product media if product is created later | +| `product-modern-kitchen-sink-organiser.jpg` | Product media | Kitchen Sink Organizer | Modern kitchen sink organiser holding everyday sink items | product media | +| `product-modular-fridge-storage-bins.jpg` | Product media | Modular Fridge Storage Bins | Modular fridge storage bins arranged on a shelf | product media | +| `product-modular-shoe-storage.jpg` | Extra product media candidate | Unassigned demo image | Product Modular Shoe Storage | product media if product is created later | +| `product-rolling-storage-cart-display.jpg` | Product media | Rolling Storage Cart | Rolling storage cart with household items | product media | +| `product-sleek-metal-tablet-stand.jpg` | Product media | Sleek Metal Tablet Stand | Sleek metal tablet stand holding a tablet | product media | +| `product-stacked-storage-fresh-produce.jpg` | Extra product media candidate | Unassigned demo image | Product Stacked Storage Fresh Produce | product media if product is created later | +| `product-tech-organiser.jpg` | Product media | Tech Organizer Case | Tech organiser case with cables and accessories | product media | +| `product-travel-accessories.jpg` | Extra product media candidate | Unassigned demo image | Product Travel Accessories | product media if product is created later | +| `product-travel-pouch-set.jpg` | Product media | Travel Pouch Set | Travel pouch set for packing small items | product media | +| `product-under-shelf-wire-storage-basket.jpg` | Product media | Under-Shelf Wire Storage Basket | Under-shelf wire basket for extra storage | product media | +| `product-water-resistant-travel-cable-bag.jpg` | Extra product media candidate | Unassigned demo image | Product Water Resistant Travel Cable Bag | product media if product is created later | diff --git a/get-yours-shopify-theme/docs/demo-content/image-upload-plan.md b/get-yours-shopify-theme/docs/demo-content/image-upload-plan.md new file mode 100644 index 00000000000..5146d284177 --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/image-upload-plan.md @@ -0,0 +1,86 @@ +# Image Upload Plan + +## Current Status + +The corrected source folder `/Users/thabisoradebe/Downloads/GY_Demo_Content` was found and optimised JPG copies were created in: + +```text +get-yours-shopify-theme/docs/demo-content/optimised-images/ +``` + +Source files in Downloads were not modified. + +## Normalised Naming Convention + +Use lowercase kebab-case names: + +- lowercase only +- hyphen-separated +- no spaces +- no special characters +- preserve product meaning +- keep the content type prefix + +Examples: + +- `hero-main-image.jpg` +- `hero-office-desk.jpg` +- `hero-travel-accessories-candidate.jpg` +- `product-adjustable-drawer-divider-set.jpg` +- `product-modular-fridge-storage-bins.jpg` +- `product-under-shelf-wire-storage-basket.jpg` + +## Available Optimised Hero Images + +- `hero-main-image.jpg` +- `hero-office-desk.jpg` +- `hero-travel-accessories-candidate.jpg` + +Note: a dedicated `HeroTravel...` source image was not found. The travel candidate was generated from `Product-TravelAccessories.png`. + +## Optimisation Targets + +Hero images: + +- Landscape crop or preserve landscape composition. +- Max width: `1800px`. +- Format: `.jpg`. +- Quality: around `75-82`. +- Target size: roughly `250KB-600KB` where possible. + +Product images: + +- Square crop or preserve square format if already square. +- Max width/height: `1200px`. +- Format: `.jpg`. +- Quality: around `75-82`. +- Target size: roughly `100KB-300KB` where possible. + +## Shopify Upload Strategy + +Product images: + +- Upload as Shopify product media. +- Attach each product image to the matching Shopify product. +- Use descriptive alt text from `demo-products.csv`. +- Do not add product demo images to Liquid sections or theme assets for product card rendering. + +Hero images: + +- Upload through the Shopify theme editor image picker, or upload to Shopify Files and select them in the homepage section settings. +- Assign images to `gy-promo-grid-hero` settings: + - `hero-main-image.jpg` + - `hero-office-desk.jpg` + - `hero-travel-accessories-candidate.jpg` + +Homepage product rails: + +- Keep rails collection-driven. +- Assign each `gy-featured-collection` instance to a Shopify collection. +- Do not hard-code demo images into `gy-featured-collection.liquid`. + +## Automation Position + +Do not attempt automated Shopify product or media creation without explicit approval. + +Shopify CLI theme workflows can preview and push themes, but should not be assumed to create products or upload product images by itself. Product/catalogue creation should use Shopify Admin UI, Shopify CSV import, or a deliberately approved Admin API workflow. diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-adjustable-drawer-divider-set.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-adjustable-drawer-divider-set.jpg new file mode 100644 index 00000000000..86f9b22769a Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-adjustable-drawer-divider-set.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-adjustable-metal-laptop-stand.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-adjustable-metal-laptop-stand.jpg new file mode 100644 index 00000000000..3768e8dee90 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-adjustable-metal-laptop-stand.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-bamboo-desk-organiser.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-bamboo-desk-organiser.jpg new file mode 100644 index 00000000000..8b7aee26515 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-bamboo-desk-organiser.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-beige-laundry-hamper.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-beige-laundry-hamper.jpg new file mode 100644 index 00000000000..d61396f2bc1 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-beige-laundry-hamper.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-beige-linen-storage-bags.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-beige-linen-storage-bags.jpg new file mode 100644 index 00000000000..21693d87ba1 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-beige-linen-storage-bags.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-desk-cable-organiser.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-desk-cable-organiser.jpg new file mode 100644 index 00000000000..9b259d0bb68 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-desk-cable-organiser.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-elegant-jewellery-box.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-elegant-jewellery-box.jpg new file mode 100644 index 00000000000..52bf18cb3e0 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-elegant-jewellery-box.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-ergonomic-aluminium-laptop-stand.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-ergonomic-aluminium-laptop-stand.jpg new file mode 100644 index 00000000000..b736ba7b99e Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-ergonomic-aluminium-laptop-stand.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-gray-fabric-storage-boxes-with-folded-clothing.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-gray-fabric-storage-boxes-with-folded-clothing.jpg new file mode 100644 index 00000000000..d9b0356c601 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-gray-fabric-storage-boxes-with-folded-clothing.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-bathroom-shelving.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-bathroom-shelving.jpg new file mode 100644 index 00000000000..5064a94f899 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-bathroom-shelving.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-desk-organiser.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-desk-organiser.jpg new file mode 100644 index 00000000000..827daa8ceaa Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-desk-organiser.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-pantry-jars.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-pantry-jars.jpg new file mode 100644 index 00000000000..d5907526877 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-minimalist-pantry-jars.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-modular-fridge-storage-bins.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-modular-fridge-storage-bins.jpg new file mode 100644 index 00000000000..08124fe3858 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-modular-fridge-storage-bins.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-rolling-storage-cart-display.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-rolling-storage-cart-display.jpg new file mode 100644 index 00000000000..e86bdde7b86 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-rolling-storage-cart-display.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-sleek-metal-tablet-stand.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-sleek-metal-tablet-stand.jpg new file mode 100644 index 00000000000..b3026f6c17d Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-sleek-metal-tablet-stand.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-tech-organiser.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-tech-organiser.jpg new file mode 100644 index 00000000000..f3c06993dd1 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-tech-organiser.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-travel-accessories.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-travel-accessories.jpg new file mode 100644 index 00000000000..6016d7148c7 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-travel-accessories.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-travel-pouch-set.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-travel-pouch-set.jpg new file mode 100644 index 00000000000..8af02b3eaa3 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-travel-pouch-set.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-under-shelf-wire-storage-basket.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-under-shelf-wire-storage-basket.jpg new file mode 100644 index 00000000000..1cb8dcc3954 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/Used/product-under-shelf-wire-storage-basket.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-main-image.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-main-image.jpg new file mode 100644 index 00000000000..f002e34926e Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-main-image.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-office-desk.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-office-desk.jpg new file mode 100644 index 00000000000..79c924eeca0 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-office-desk.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-travel-accessories-candidate.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-travel-accessories-candidate.jpg new file mode 100644 index 00000000000..f1bab420771 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/hero-travel-accessories-candidate.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-beauty-essentials.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-beauty-essentials.jpg new file mode 100644 index 00000000000..43d485737f1 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-beauty-essentials.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-black-cable-clips.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-black-cable-clips.jpg new file mode 100644 index 00000000000..633b00a61e7 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-black-cable-clips.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-kitchen-storage-with-glass-jars.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-kitchen-storage-with-glass-jars.jpg new file mode 100644 index 00000000000..307bd39f5d3 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-kitchen-storage-with-glass-jars.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-travel-toiletry-set.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-travel-toiletry-set.jpg new file mode 100644 index 00000000000..a5e72e2d397 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-travel-toiletry-set.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-wooden-monitor-stand-with-drawer.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-wooden-monitor-stand-with-drawer.jpg new file mode 100644 index 00000000000..ed60af887ef Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-minimalist-wooden-monitor-stand-with-drawer.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-modern-kitchen-sink-organiser.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-modern-kitchen-sink-organiser.jpg new file mode 100644 index 00000000000..6bd1be710a9 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-modern-kitchen-sink-organiser.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-modular-shoe-storage.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-modular-shoe-storage.jpg new file mode 100644 index 00000000000..2a1b6945ead Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-modular-shoe-storage.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-stacked-storage-fresh-produce.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-stacked-storage-fresh-produce.jpg new file mode 100644 index 00000000000..36c94329c05 Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-stacked-storage-fresh-produce.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/optimised-images/product-water-resistant-travel-cable-bag.jpg b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-water-resistant-travel-cable-bag.jpg new file mode 100644 index 00000000000..aa0f0d86bfc Binary files /dev/null and b/get-yours-shopify-theme/docs/demo-content/optimised-images/product-water-resistant-travel-cable-bag.jpg differ diff --git a/get-yours-shopify-theme/docs/demo-content/original-inventory.md b/get-yours-shopify-theme/docs/demo-content/original-inventory.md new file mode 100644 index 00000000000..989a617e982 --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/original-inventory.md @@ -0,0 +1,88 @@ +# Demo Content Original Inventory + +## Source Folder Check + +Expected source folder from original brief: + +```text +/Users/thabisoradebe/Desktop/GY_Demo_Content +``` + +Fallback checked: + +```text +~/Desktop/GY_Demo_Content +``` + +Corrected source folder: + +```text +/Users/thabisoradebe/Downloads/GY_Demo_Content +``` + +Result: corrected source folder found. + +Nearby Desktop folders/files checked: + +- `/Users/thabisoradebe/Desktop/stitch_everyday_essentials_marketplace_ui` +- `/Users/thabisoradebe/Desktop/stitch.zip` + +The Downloads source folder contains 30 PNG demo images plus `.DS_Store`. + +## Inventory Summary + +| Item | Count | +| --- | ---: | +| Total files in `GY_Demo_Content` | 31 | +| PNG image files found | 30 | +| Hero images found | 2 | +| Product images found | 28 | +| Non-conforming files found | 2 | +| Obvious duplicate/unusable images found | 0 | +| Images optimised | 31 | + +## Image Extensions Found + +| Extension | Count | +| --- | ---: | +| `.png` | 30 | +| `.DS_Store` | 1 | + +## Non-Conforming Files + +- `.DS_Store` +- `ProductAdjustableMetalLaptopStand.png` uses the `Product` prefix but not the `Product-` separator pattern. + +## Notable Source Issues + +- No dedicated travel hero image was found. +- `Product-TravelAccessories.png` is landscape and was also exported as `hero-travel-accessories-candidate.jpg` for temporary homepage use. +- Several source names contain spelling issues, but normalised output filenames use corrected ecommerce spelling: + - `Product-GrayFrabricStorageBoxesWithFoldedClothing.png` -> `product-gray-fabric-storage-boxes-with-folded-clothing.jpg` + - `Product-MnimalistTravelToiletrySet.png` -> `product-minimalist-travel-toiletry-set.jpg` + - `Product-ModernKitchenSinOrganiser.png` -> `product-modern-kitchen-sink-organiser.jpg` + - `Product-ElegantJeweleryBox.png` -> `product-elegant-jewellery-box.jpg` + +## Naming Convention Expected + +Hero image source files should begin with `Hero-` or `Hero`, for example: + +- `HeroMainImage.png` +- `HeroOffice-desk.png` +- `HeroTravel-accessories.png` + +Product image source files should begin with `Product-` or `Product`, for example: + +- `Product-Adjustable-Drawer-Set.png` +- `Product-Minimalist-Jars.png` + +Normalised copies should use lowercase kebab-case names: + +- `hero-main-image.jpg` +- `hero-office-desk.jpg` +- `hero-travel-accessories.jpg` +- `product-adjustable-drawer-divider-set.jpg` + +## Source File Safety + +No source files were modified, renamed, moved or deleted. diff --git a/get-yours-shopify-theme/docs/demo-content/product-collection-matrix.md b/get-yours-shopify-theme/docs/demo-content/product-collection-matrix.md new file mode 100644 index 00000000000..43b0f45ac1a --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/product-collection-matrix.md @@ -0,0 +1,24 @@ +# Product Collection Matrix + +| Product title | Image filename | Primary collection | Additional collections | Homepage rail | +| --- | --- | --- | --- | --- | +| Adjustable Drawer Divider Set | `product-adjustable-drawer-divider-set.jpg` | Featured Practical Finds | Best Sellers, Home Organisation | Featured Practical Finds | +| Modular Fridge Storage Bins | `product-modular-fridge-storage-bins.jpg` | Featured Practical Finds | New Arrivals, Kitchen & Storage | Featured Practical Finds | +| Under-Shelf Wire Storage Basket | `product-under-shelf-wire-storage-basket.jpg` | Featured Practical Finds | Best Sellers, Home Organisation, Kitchen & Storage | Featured Practical Finds | +| Gray Fabric Storage Boxes | `product-gray-fabric-storage-boxes-with-folded-clothing.jpg` | Home Organisation | Lifestyle | Home Organisation Picks | +| Beige Linen Storage Bags | `product-beige-linen-storage-bags.jpg` | Home Organisation | Lifestyle | Home Organisation Picks | +| Bamboo Desk Organizer | `product-bamboo-desk-organiser.jpg` | Office & Desk Essentials | Featured Practical Finds | Office & Desk Essentials | +| Minimalist Desk Organizer | `product-minimalist-desk-organiser.jpg` | Office & Desk Essentials | New Arrivals | Office & Desk Essentials | +| Ergonomic Aluminium Laptop Stand | `product-ergonomic-aluminium-laptop-stand.jpg` | Best Sellers | Office & Desk Essentials | Best Sellers | +| Adjustable Metal Laptop Stand | `product-adjustable-metal-laptop-stand.jpg` | Office & Desk Essentials | Tech Accessories | Office & Desk Essentials | +| Sleek Metal Tablet Stand | `product-sleek-metal-tablet-stand.jpg` | Office & Desk Essentials | Tech Accessories | Office & Desk Essentials | +| Desk Cable Organiser | `product-desk-cable-organiser.jpg` | Featured Practical Finds | Best Sellers, Office & Desk Essentials, Tech Accessories | Featured Practical Finds | +| Tech Organizer Case | `product-tech-organiser.jpg` | Tech Accessories | Travel, New Arrivals | New Arrivals | +| Travel Pouch Set | `product-travel-pouch-set.jpg` | Travel | Lifestyle, Featured Practical Finds | Featured Practical Finds | +| Travel Toiletry Organizer | `product-minimalist-travel-toiletry-set.jpg` | Travel | Best Sellers | Best Sellers | +| Pantry Glass Jar Set | `product-minimalist-pantry-jars.jpg` | Kitchen & Storage | Home Organisation | Home Organisation Picks | +| Kitchen Sink Organizer | `product-modern-kitchen-sink-organiser.jpg` | Kitchen & Storage | Featured Practical Finds | Featured Practical Finds | +| Rolling Storage Cart | `product-rolling-storage-cart-display.jpg` | Home Organisation | Best Sellers, Lifestyle | Home Organisation Picks | +| Jewelry Organizer Box | `product-elegant-jewellery-box.jpg` | Lifestyle | Home Organisation | Home Organisation Picks | +| Laundry Hamper | `product-beige-laundry-hamper.jpg` | Home Organisation | Lifestyle | Home Organisation Picks | +| Bathroom Wall Shelf Organizer | `product-minimalist-bathroom-shelving.jpg` | Home Organisation | Lifestyle | Home Organisation Picks | diff --git a/get-yours-shopify-theme/docs/demo-content/scripts/prepare-demo-content-summary.py b/get-yours-shopify-theme/docs/demo-content/scripts/prepare-demo-content-summary.py new file mode 100644 index 00000000000..e169fd38b18 --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/scripts/prepare-demo-content-summary.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +import csv +from pathlib import Path + +base = Path(__file__).resolve().parents[1] +products = list(csv.DictReader((base / "demo-products.csv").open(newline=""))) +collections = list(csv.DictReader((base / "demo-collections.csv").open(newline=""))) +images = {p.name for p in (base / "optimised-images").glob("*.jpg")} +product_handles = [p["handle"] for p in products] +collection_handles = [c["handle"] for c in collections] +missing_product_images = [p["image_filename"] for p in products if p["image_filename"] not in images] +duplicate_product_handles = sorted({h for h in product_handles if product_handles.count(h) > 1}) +duplicate_collection_handles = sorted({h for h in collection_handles if collection_handles.count(h) > 1}) +print(f"products: {len(products)}") +print(f"collections: {len(collections)}") +print(f"images: {len(images)}") +print(f"missing_product_images: {missing_product_images}") +print(f"duplicate_product_handles: {duplicate_product_handles}") +print(f"duplicate_collection_handles: {duplicate_collection_handles}") +if missing_product_images or duplicate_product_handles or duplicate_collection_handles: + raise SystemExit(1) diff --git a/get-yours-shopify-theme/docs/demo-content/shopify-admin-demo-setup-checklist.md b/get-yours-shopify-theme/docs/demo-content/shopify-admin-demo-setup-checklist.md new file mode 100644 index 00000000000..f8fd74e995f --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/shopify-admin-demo-setup-checklist.md @@ -0,0 +1,41 @@ +# Shopify Admin Demo Setup Checklist + +## A. Create Manual Collections + +- [ ] Create `Featured Practical Finds` with handle `featured-practical-finds`. Use manual collection type. +- [ ] Create `New Arrivals` with handle `new-arrivals`. Use manual collection type. +- [ ] Create `Best Sellers` with handle `best-sellers`. Use manual collection type. +- [ ] Create `Home Organisation` with handle `home-organisation`. Use manual collection type. +- [ ] Create `Office & Desk Essentials` with handle `office-desk-essentials`. Use manual collection type. +- [ ] Create `Kitchen & Storage` with handle `kitchen-storage`. Use manual collection type. +- [ ] Create `Lifestyle` with handle `lifestyle`. Use manual collection type. +- [ ] Create `Travel` with handle `travel`. Use manual collection type. +- [ ] Create `Tech Accessories` with handle `tech-accessories`. Use manual collection type. + +## B. Import Or Manually Create Products + +- [ ] Use `shopify-products-import-no-images.csv` for the first product import. +- [ ] Do not use `shopify-products-import.csv` for the first import unless public image URLs have been added. +- [ ] Products in the no-image import are set to `Published: TRUE` and `Status: active` for preview visibility. +- [ ] Confirm prices are in ZAR after import. +- [ ] Attach matching optimised JPGs manually after import using `optimised-images/`. +- [ ] Set vendor to `Get Yours`. + +## C. Assign Products To Collections + +- [ ] Use `product-collection-matrix.md` for collection assignment. +- [ ] Make sure each homepage rail collection has at least four products. + +## D. Assign Homepage Sections + +- [ ] Assign `hero-main-image.jpg` to the main promo tile. +- [ ] Assign `hero-office-desk.jpg` to the Office & Desk promo tile. +- [ ] Decide whether to use `hero-travel-accessories-candidate.jpg` for the Travel promo tile. +- [ ] Link each category card to its matching collection. +- [ ] Assign each product rail to its matching collection. +- [ ] Add trust links only when real support/policy URLs exist. + +## Safety + +- [ ] Do not publish to the live theme during demo setup. +- [ ] Do not use `--publish` or `--allow-live`. diff --git a/get-yours-shopify-theme/docs/demo-content/shopify-import-notes.md b/get-yours-shopify-theme/docs/demo-content/shopify-import-notes.md new file mode 100644 index 00000000000..ce0d4e9abd2 --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/shopify-import-notes.md @@ -0,0 +1,55 @@ +# Shopify Import Notes + +## Recommended Approach + +Use manual Shopify admin setup or Shopify CSV import for this demo content phase. Do not run automated product creation until explicitly approved. + +## Create Collections Manually + +1. In Shopify admin, open `Products > Collections`. +2. Create the collections listed in `demo-collections.csv`. +3. Use manual collections for this demo phase. +4. Use the provided handles and descriptions where practical. +5. Add collection images later if suitable category images are available. + +## Create Products Manually + +1. In Shopify admin, open `Products`. +2. Create each product from `demo-products.csv`. +3. Set vendor to `Get Yours`. +4. Set status to `Draft`. +5. Add price in ZAR. +6. Add compare-at price only where included. +7. Add tags and product type from the CSV. +8. Use the short description and bullet highlights as starter content. + +## Attach Product Images + +1. Optimise source images once `GY_Demo_Content` is available. +2. Upload the normalised image for each matching product. +3. Set the image alt text from `demo-products.csv`. +4. Keep images as product media, not hard-coded theme assets. + +## Assign Products To Collections + +1. Open each product in Shopify admin. +2. Add it to the manual collections listed in the `assigned_collections` column. +3. Confirm that homepage rail collections contain at least four products each. + +## Assign Homepage Sections + +1. Open the development theme editor. +2. Assign the hero images to `Get Yours promo grid hero`. +3. Assign category grid blocks to the matching collections. +4. Assign each product rail to its matching collection: + - Featured Practical Finds + - New Arrivals + - Best Sellers + - Home Organisation + - Office & Desk Essentials +5. Save the development theme only. Do not publish to the live theme. + +## CSV Import Option + +The current `demo-products.csv` is a planning CSV, not a native Shopify product import CSV. If Shopify CSV import is preferred, create a Shopify-format import file from this plan after images are available. + diff --git a/get-yours-shopify-theme/docs/demo-content/shopify-products-import-no-images.csv b/get-yours-shopify-theme/docs/demo-content/shopify-products-import-no-images.csv new file mode 100644 index 00000000000..5d2efb641a6 --- /dev/null +++ b/get-yours-shopify-theme/docs/demo-content/shopify-products-import-no-images.csv @@ -0,0 +1,21 @@ +Handle,Title,Body (HTML),Vendor,Product Category,Type,Tags,Published,Option1 Name,Option1 Value,Variant SKU,Variant Inventory Qty,Variant Inventory Tracker,Variant Inventory Policy,Variant Fulfillment Service,Variant Price,Variant Compare At Price,Variant Requires Shipping,Variant Taxable,Status +adjustable-drawer-divider-set,Adjustable Drawer Divider Set,"Adjustable dividers for neater drawers in bedrooms, kitchens or offices.
Storage bins for organising fridge shelves and pantry spaces.
A simple under-shelf basket for adding storage without drilling.
Soft fabric boxes for wardrobes, shelves and general tidy-up storage.
Light storage bags for seasonal clothing, bedding and household items.
A compact desktop organiser for pens, notes and everyday stationery.
A clean desk organiser for small office and study essentials.
A sturdy laptop stand for raising screens during work or study.
An adjustable stand for flexible laptop positioning at a desk.
A compact metal stand for tablets, phones and small screens.
A simple cable organiser for keeping charging cables within reach.
A zip case for carrying cables, chargers and everyday tech accessories.
A practical pouch set for packing toiletries, cables or daily essentials.
A compartment organiser for toiletries and small travel essentials.
A clean jar set for pantry staples and kitchen shelf organisation.
A compact organiser for sponge, brush and sink-side essentials.
A rolling cart for flexible storage in kitchens, bathrooms or workspaces.
A small organiser box for jewellery and accessories.
A simple laundry hamper for bedrooms, bathrooms or laundry areas.
A wall shelf organiser for toiletries and small bathroom essentials.
Adjustable dividers for neater drawers in bedrooms, kitchens or offices.
Storage bins for organising fridge shelves and pantry spaces.
A simple under-shelf basket for adding storage without drilling.
Soft fabric boxes for wardrobes, shelves and general tidy-up storage.
Light storage bags for seasonal clothing, bedding and household items.
A compact desktop organiser for pens, notes and everyday stationery.
A clean desk organiser for small office and study essentials.
A sturdy laptop stand for raising screens during work or study.
An adjustable stand for flexible laptop positioning at a desk.
A compact metal stand for tablets, phones and small screens.
A simple cable organiser for keeping charging cables within reach.
A zip case for carrying cables, chargers and everyday tech accessories.
A practical pouch set for packing toiletries, cables or daily essentials.
A compartment organiser for toiletries and small travel essentials.
A clean jar set for pantry staples and kitchen shelf organisation.
A compact organiser for sponge, brush and sink-side essentials.
A rolling cart for flexible storage in kitchens, bathrooms or workspaces.
A small organiser box for jewellery and accessories.
A simple laundry hamper for bedrooms, bathrooms or laundry areas.
A wall shelf organiser for toiletries and small bathroom essentials.
+ {{ 'templates.contact.form.safety_notice' | t }} +
Find exactly what you need to organise your life.
" + }, + { + "type": "checkbox", + "id": "show_view_all", + "label": "Show view all link", + "default": true + }, + { + "type": "text", + "id": "view_all_label", + "label": "View all label", + "default": "View all" + }, + { + "type": "url", + "id": "view_all_link", + "label": "Optional view all link" + }, + { + "type": "color_scheme", + "id": "color_scheme", + "label": "Color scheme", + "default": "scheme-1" + } + ], + "blocks": [ + { + "type": "category", + "name": "Category", + "settings": [ + { + "type": "collection", + "id": "collection", + "label": "Collection" + }, + { + "type": "text", + "id": "display_label", + "label": "Display label", + "default": "Category" + }, + { + "type": "select", + "id": "icon", + "label": "Icon", + "options": [ + { "value": "home", "label": "Home storage" }, + { "value": "desk", "label": "Desk" }, + { "value": "kitchen", "label": "Kitchen storage" }, + { "value": "lifestyle", "label": "Lifestyle" }, + { "value": "travel", "label": "Travel" }, + { "value": "tech", "label": "Tech" } + ], + "default": "home" + } + ] + } + ], + "presets": [ + { + "name": "Get Yours category grid", + "blocks": [ + { "type": "category", "settings": { "display_label": "Home Organisation", "icon": "home" } }, + { "type": "category", "settings": { "display_label": "Office & Desk", "icon": "desk" } }, + { "type": "category", "settings": { "display_label": "Kitchen & Storage", "icon": "kitchen" } }, + { "type": "category", "settings": { "display_label": "Lifestyle", "icon": "lifestyle" } }, + { "type": "category", "settings": { "display_label": "Travel", "icon": "travel" } }, + { "type": "category", "settings": { "display_label": "Tech Accessories", "icon": "tech" } } + ] + } + ] +} +{% endschema %} diff --git a/get-yours-shopify-theme/sections/gy-featured-collection.liquid b/get-yours-shopify-theme/sections/gy-featured-collection.liquid new file mode 100644 index 00000000000..ad15b74d047 --- /dev/null +++ b/get-yours-shopify-theme/sections/gy-featured-collection.liquid @@ -0,0 +1,253 @@ +{{ 'component-card.css' | asset_url | stylesheet_tag }} +{{ 'component-price.css' | asset_url | stylesheet_tag }} + +{%- liquid + assign products_to_display = section.settings.collection.products.size + if products_to_display > section.settings.products_to_show + assign products_to_display = section.settings.products_to_show + endif +-%} + +{{ section.settings.eyebrow }}
+ {%- endif -%} + {%- if section.settings.heading != blank -%} +Choose a collection in the theme editor to show real products.
+ {%- elsif products_to_display == 0 -%} +This collection has no products yet.
+ {%- endif -%} +Simple, useful products selected for everyday value.
" + }, + { + "type": "range", + "id": "products_to_show", + "min": 2, + "max": 12, + "step": 1, + "label": "Maximum products to show", + "default": 4 + }, + { + "type": "checkbox", + "id": "show_view_all", + "label": "Show view all link", + "default": true + }, + { + "type": "text", + "id": "view_all_label", + "label": "View all label", + "default": "View all" + }, + { + "type": "select", + "id": "background_style", + "label": "Background style", + "options": [ + { + "value": "plain", + "label": "Plain" + }, + { + "value": "soft", + "label": "Soft" + } + ], + "default": "plain" + }, + { + "type": "color_scheme", + "id": "color_scheme", + "label": "Color scheme", + "default": "scheme-1" + }, + { + "type": "select", + "id": "columns_desktop", + "label": "Desktop columns", + "options": [ + { + "value": "3", + "label": "3 columns" + }, + { + "value": "4", + "label": "4 columns" + }, + { + "value": "5", + "label": "5 columns" + } + ], + "default": "4" + }, + { + "type": "select", + "id": "columns_mobile", + "label": "Mobile columns", + "options": [ + { + "value": "1", + "label": "1 column" + }, + { + "value": "2", + "label": "2 columns" + } + ], + "default": "2" + }, + { + "type": "select", + "id": "image_ratio", + "label": "Image ratio", + "options": [ + { + "value": "adapt", + "label": "Adapt to image" + }, + { + "value": "portrait", + "label": "Portrait" + }, + { + "value": "square", + "label": "Square" + } + ], + "default": "square" + }, + { + "type": "checkbox", + "id": "show_secondary_image", + "label": "Show second image on hover", + "default": false + }, + { + "type": "checkbox", + "id": "show_vendor", + "label": "Show vendor", + "default": false + }, + { + "type": "checkbox", + "id": "show_rating", + "label": "Show rating", + "default": false + }, + { + "type": "select", + "id": "quick_add", + "label": "Quick add", + "options": [ + { + "value": "none", + "label": "None" + }, + { + "value": "standard", + "label": "Standard" + }, + { + "value": "bulk", + "label": "Bulk" + } + ], + "default": "none" + } + ], + "presets": [ + { + "name": "Get Yours product rail" + } + ] +} +{% endschema %} diff --git a/get-yours-shopify-theme/sections/gy-featured-products.liquid b/get-yours-shopify-theme/sections/gy-featured-products.liquid new file mode 100644 index 00000000000..18f4363571a --- /dev/null +++ b/get-yours-shopify-theme/sections/gy-featured-products.liquid @@ -0,0 +1,125 @@ +{%- if section.settings.show_quick_add -%} + +{%- endif -%} + +{{ 'sections.gy_product_card.choose_collection' | t }}
+ {%- elsif section.settings.collection.products_count == 0 -%} +{{ 'sections.gy_product_card.empty_collection' | t }}
+ {%- endif -%} +Our most popular solutions for everyday organisation.
" + }, + { + "type": "collection", + "id": "collection", + "label": "Collection" + }, + { + "type": "range", + "id": "product_limit", + "min": 2, + "max": 8, + "step": 1, + "label": "Product limit", + "default": 4 + }, + { + "type": "checkbox", + "id": "show_availability", + "label": "Show availability", + "default": true + }, + { + "type": "checkbox", + "id": "show_quick_add", + "label": "Show quick add", + "default": true + }, + { + "type": "checkbox", + "id": "show_view_all", + "label": "Show view all link", + "default": true + }, + { + "type": "text", + "id": "view_all_label", + "label": "View all label", + "default": "View all" + }, + { + "type": "color_scheme", + "id": "color_scheme", + "label": "Color scheme", + "default": "scheme-1" + } + ], + "presets": [ + { + "name": "Get Yours product rail" + } + ] +} +{% endschema %} diff --git a/get-yours-shopify-theme/sections/gy-promo-grid-hero.liquid b/get-yours-shopify-theme/sections/gy-promo-grid-hero.liquid new file mode 100644 index 00000000000..65bbac32441 --- /dev/null +++ b/get-yours-shopify-theme/sections/gy-promo-grid-hero.liquid @@ -0,0 +1,363 @@ +
+ {%- endif -%}
+ + + {{ main_block.settings.eyebrow }} +
+ {%- endif -%} + {%- if main_block.settings.heading != blank -%} +
+ {%- endif -%}
+ {{ office_block.settings.eyebrow }}
+ {%- endif -%} + {%- if office_block.settings.heading != blank -%} +
+ {%- endif -%}
+ {{ travel_block.settings.eyebrow }}
+ {%- endif -%} + {%- if travel_block.settings.heading != blank -%} +Curated essentials for an organized home.
" + }, + { + "type": "text", + "id": "button_label", + "label": "Button label", + "default": "Shop Now" + }, + { + "type": "url", + "id": "button_link", + "label": "Button link" + }, + { + "type": "range", + "id": "overlay_opacity", + "min": 0, + "max": 70, + "step": 5, + "unit": "%", + "label": "Image overlay opacity", + "default": 25 + } + ] + }, + { + "type": "office_tile", + "name": "Office & Desk tile", + "limit": 1, + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "eyebrow", + "label": "Eyebrow or badge" + }, + { + "type": "inline_richtext", + "id": "heading", + "label": "Heading", + "default": "Office & Desk Essentials" + }, + { + "type": "richtext", + "id": "text", + "label": "Text" + }, + { + "type": "text", + "id": "button_label", + "label": "Button label", + "default": "Explore" + }, + { + "type": "url", + "id": "button_link", + "label": "Button link" + }, + { + "type": "range", + "id": "overlay_opacity", + "min": 0, + "max": 70, + "step": 5, + "unit": "%", + "label": "Image overlay opacity", + "default": 25 + } + ] + }, + { + "type": "travel_tile", + "name": "Travel & Accessories tile", + "limit": 1, + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "eyebrow", + "label": "Eyebrow or badge" + }, + { + "type": "inline_richtext", + "id": "heading", + "label": "Heading", + "default": "Travel & Daily Accessories" + }, + { + "type": "richtext", + "id": "text", + "label": "Text" + }, + { + "type": "text", + "id": "button_label", + "label": "Button label", + "default": "View All" + }, + { + "type": "url", + "id": "button_link", + "label": "Button link" + }, + { + "type": "range", + "id": "overlay_opacity", + "min": 0, + "max": 70, + "step": 5, + "unit": "%", + "label": "Image overlay opacity", + "default": 25 + } + ] + } + ], + "presets": [ + { + "name": "Get Yours promo grid hero", + "blocks": [ + { + "type": "main_tile" + }, + { + "type": "office_tile" + }, + { + "type": "travel_tile" + } + ] + } + ] +} +{% endschema %} diff --git a/get-yours-shopify-theme/sections/gy-trust-grid.liquid b/get-yours-shopify-theme/sections/gy-trust-grid.liquid new file mode 100644 index 00000000000..6a1a24d471c --- /dev/null +++ b/get-yours-shopify-theme/sections/gy-trust-grid.liquid @@ -0,0 +1,134 @@ +Secure checkout through trusted payment providers.
" + }, + { + "type": "url", + "id": "link", + "label": "Optional link" + } + ] + } + ], + "presets": [ + { + "name": "Get Yours trust grid", + "blocks": [ + { + "type": "trust_item", + "settings": { + "icon": "secure", + "title": "Secure Payments", + "description": "Secure checkout through trusted payment providers.
" + } + }, + { + "type": "trust_item", + "settings": { + "icon": "delivery", + "title": "Clear Delivery", + "description": "Clear delivery estimates and tracking updates where available.
" + } + }, + { + "type": "trust_item", + "settings": { + "icon": "support", + "title": "WhatsApp Support", + "description": "Get order help from the Get Yours support team on WhatsApp.
" + } + } + ] + } + ] +} +{% endschema %} diff --git a/get-yours-shopify-theme/sections/header-group.json b/get-yours-shopify-theme/sections/header-group.json new file mode 100644 index 00000000000..2f5b80fd75c --- /dev/null +++ b/get-yours-shopify-theme/sections/header-group.json @@ -0,0 +1,81 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "name": "t:sections.header.name", + "type": "header", + "sections": { + "announcement-bar": { + "type": "announcement-bar", + "blocks": { + "opening-deals": { + "type": "reassurance", + "settings": { + "icon": "deal", + "text": "Opening deals", + "link": "" + } + }, + "secure-payments": { + "type": "reassurance", + "settings": { + "icon": "secure", + "text": "Secure payments", + "link": "" + } + }, + "whatsapp-support": { + "type": "reassurance", + "settings": { + "icon": "support", + "text": "WhatsApp support", + "link": "" + } + } + }, + "block_order": [ + "opening-deals", + "secure-payments", + "whatsapp-support" + ], + "settings": { + "track_order_label": "Track Order", + "track_order_link": "", + "newsletter_label": "Newsletter", + "newsletter_link": "" + } + }, + "header": { + "type": "header", + "settings": { + "logo_position": "middle-left", + "mobile_logo_position": "left", + "primary_navigation_menu": "get-yours-primary-navigation", + "browse_categories_label": "Browse Categories", + "menu_type_desktop": "dropdown", + "sticky_header_type": "always", + "show_line_separator": true, + "promotion_text": "", + "promotion_link": "", + "color_scheme": "scheme-1", + "menu_color_scheme": "scheme-1", + "enable_country_selector": false, + "enable_language_selector": false, + "enable_customer_avatar": true, + "margin_bottom": 0, + "padding_top": 16, + "padding_bottom": 16 + } + } + }, + "order": [ + "announcement-bar", + "header" + ] +} diff --git a/sections/header.liquid b/get-yours-shopify-theme/sections/header.liquid similarity index 74% rename from sections/header.liquid rename to get-yours-shopify-theme/sections/header.liquid index af5ff9ac238..be865e0f785 100644 --- a/sections/header.liquid +++ b/get-yours-shopify-theme/sections/header.liquid @@ -77,12 +77,8 @@ {%- style -%} - .header { - padding: {{ section.settings.padding_top | times: 0.5 | round: 0 }}px 3rem {{ section.settings.padding_bottom | times: 0.5 | round: 0 }}px 3rem; - } - .section-header { - position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */ + position: sticky; margin-bottom: {{ section.settings.margin_bottom | times: 0.75 | round: 0 }}px; } @@ -92,12 +88,6 @@ } } - @media screen and (min-width: 990px) { - .header { - padding-top: {{ section.settings.padding_top }}px; - padding-bottom: {{ section.settings.padding_bottom }}px; - } - } {%- endstyle -%} @@ -136,13 +126,15 @@ assign localization_forms = true endif -%} -