feat: add default content pages for delivery, privacy and terms
Replace one-off ShopLive.About with generic ShopLive.Content that handles all static content pages via live_action. Add delivery & returns, privacy policy, and terms of service pages with sample content. Update footer help links and theme editor preview. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -133,6 +133,171 @@ defmodule SimpleshopTheme.Theme.PreviewData do
|
||||
]
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns delivery & returns page content for preview.
|
||||
"""
|
||||
def delivery_content do
|
||||
[
|
||||
%{
|
||||
type: :lead,
|
||||
text:
|
||||
"This is sample content for the demo shop. Replace it with your own delivery and returns information."
|
||||
},
|
||||
%{type: :heading, text: "Shipping"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"All products are printed on demand and shipped directly from the print facility. Typical delivery times depend on your location:"
|
||||
},
|
||||
%{
|
||||
type: :list,
|
||||
items: [
|
||||
"United Kingdom: 5–8 business days",
|
||||
"Europe: 8–12 business days",
|
||||
"United States & Canada: 8–14 business days",
|
||||
"Rest of world: 10–20 business days"
|
||||
]
|
||||
},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"You'll receive a shipping confirmation email with tracking details once your order has been dispatched."
|
||||
},
|
||||
%{type: :heading, text: "Returns & exchanges"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"Because every item is made to order, we can't accept returns for change of mind. However, if your order arrives damaged or with a printing defect, we'll sort it out — just get in touch within 14 days of delivery."
|
||||
},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"Please include your order number and a photo of the issue so we can resolve things quickly."
|
||||
},
|
||||
%{type: :heading, text: "Cancellations"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"Orders can be cancelled within 2 hours of being placed. After that, production will have started and we won't be able to make changes. Contact us as soon as possible if you need to cancel."
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns privacy policy page content for preview.
|
||||
"""
|
||||
def privacy_content do
|
||||
[
|
||||
%{
|
||||
type: :lead,
|
||||
text: "This is sample content for the demo shop. Replace it with your own privacy policy."
|
||||
},
|
||||
%{type: :heading, text: "What we collect"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"When you place an order, we collect the information needed to fulfil it — your name, email address, shipping address, and payment details. Payment is processed securely by Stripe; we never see or store your card number."
|
||||
},
|
||||
%{type: :heading, text: "How we use it"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text: "We use your information to:"
|
||||
},
|
||||
%{
|
||||
type: :list,
|
||||
items: [
|
||||
"Process and deliver your order",
|
||||
"Send order confirmation and shipping updates",
|
||||
"Respond to any queries or issues you raise"
|
||||
]
|
||||
},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"We won't send you marketing emails unless you've opted in, and we'll never sell your data to third parties."
|
||||
},
|
||||
%{type: :heading, text: "Third parties"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"To fulfil orders, we share your shipping details with our print-on-demand provider. Payment is handled by Stripe. Both process data in accordance with their own privacy policies."
|
||||
},
|
||||
%{type: :heading, text: "Your rights"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"You can request a copy of your data, ask us to correct it, or ask us to delete it at any time. Just get in touch and we'll sort it out."
|
||||
},
|
||||
%{type: :heading, text: "Cookies"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"We use essential cookies to keep your session and cart working. We don't use tracking cookies or third-party analytics that follow you around the web."
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns terms of service page content for preview.
|
||||
"""
|
||||
def terms_content do
|
||||
[
|
||||
%{
|
||||
type: :lead,
|
||||
text:
|
||||
"This is sample content for the demo shop. Replace it with your own terms of service."
|
||||
},
|
||||
%{type: :heading, text: "Overview"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"By placing an order through this shop, you agree to the following terms. Please read them before making a purchase."
|
||||
},
|
||||
%{type: :heading, text: "Products"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"All products are made to order using print-on-demand services. Colours may vary slightly between screens and the finished product. We do our best to represent products accurately, but minor differences are normal."
|
||||
},
|
||||
%{type: :heading, text: "Orders & payment"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"Payment is taken at the time of purchase via Stripe. Once an order is confirmed and production has started, it cannot be modified. Prices include VAT where applicable."
|
||||
},
|
||||
%{type: :heading, text: "Delivery"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"Delivery times are estimates and may vary. We're not responsible for delays caused by postal services or customs. See our delivery page for current timeframes."
|
||||
},
|
||||
%{type: :heading, text: "Returns"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"As items are made to order, we don't accept returns for change of mind. If an item arrives damaged or defective, contact us within 14 days for a replacement. See our delivery & returns page for full details."
|
||||
},
|
||||
%{type: :heading, text: "Intellectual property"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"All designs, images, and content on this site are owned by the shop owner and may not be reproduced without permission."
|
||||
},
|
||||
%{type: :heading, text: "Liability"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"We do our best to keep the shop running smoothly, but we can't guarantee uninterrupted service. Our liability is limited to the value of your order."
|
||||
},
|
||||
%{type: :heading, text: "Changes"},
|
||||
%{
|
||||
type: :paragraph,
|
||||
text:
|
||||
"We may update these terms from time to time. Any changes apply to orders placed after the update."
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns categories for preview.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user