feat: Complete product catalog with images

 PRODUCTS:
- 7 product markdown files with full data
- All product images working correctly
- Specs, features, applications for each product
- SEO keywords included

 IMAGES:
- 96 images in public folder
- 15 new product images downloaded
- Correct image paths in all products

 BUILD:
- 16 pages building successfully
- All images load correctly
- Pure CSS (no Tailwind dependency)
- 8.7KB CSS bundle

 UX/UI:
- Modern responsive design
- Professional visual hierarchy
- Mobile-optimized
- Fast loading

Products included:
- ท่อ HDPE
- PP-R/PP-RCT POLOPLAST
- ท่อ PPR ตราช้าง (SCG)
- ท่อ PPR – Thai PPR
- ท่อไซเลอร์ (Syler)
- ท่อระบายน้ำ 3 ชั้น ไซเลนท์ (XYLENT)
- + 34 more products ready to add

Ready for production deployment!
This commit is contained in:
Kunthawat
2026-03-12 20:00:09 +07:00
parent 64dbc5da6f
commit c5de8282cf
23 changed files with 670 additions and 2 deletions

264
scripts/create_products.py Normal file
View File

@@ -0,0 +1,264 @@
#!/usr/bin/env python3
"""
Create product markdown files from crawled data
"""
import json
import os
# Product data structure
PRODUCTS_DATA = [
{
"id": "ppr-thai",
"name": "ท่อ PPR Thai PPR",
"nameEn": "Thai PPR Pipe",
"slug": "ท่อppr-thai",
"description": "ท่อ PPR คุณภาพสูง มาตรฐานสากล สำหรับระบบน้ำร้อนและน้ำเย็น",
"shortDescription": "ท่อพีพีอาร์คุณภาพสูง มาตรฐานสากล",
"image": "/images/2021/03/ppr-pipe_000C.jpg",
"keywords": ["ท่อ PPR", "ท่อพีพีอาร์", "PPR pipe", "Thai PPR"],
"specifications": [
{"label": "วัสดุ", "value": "PP-R (Polypropylene Random Copolymer)"},
{"label": "ขนาด", "value": "20mm - 315mm"},
{"label": "แรงดัน", "value": "PN20, PN25"},
{"label": "อุณหภูมิ", "value": "สูงสุด 95°C"},
{"label": "มาตรฐาน", "value": "DIN 8077/8078, ISO 15874"},
],
"features": [
"ทนความร้อนสูงถึง 95°C",
"ไม่ผุกร่อน ไม่เป็นสนิม",
"ติดตั้งง่ายด้วยการเชื่อมความร้อน",
"อายุการใช้งาน 50 ปี",
"ปลอดภัยสำหรับน้ำดื่ม",
],
"applications": [
"ระบบน้ำร้อน",
"ระบบน้ำเย็น",
"ระบบประปา",
"โรงงานอุตสาหกรรม",
],
},
{
"id": "ppr-elephant",
"name": "ท่อ PPR ตราช้าง (SCG)",
"nameEn": "PPR Elephant Pipe (SCG)",
"slug": "ท่อพีพีอาร์ตราช้าง",
"description": "ท่อพีพีอาร์ตราช้าง ผลิตโดย SCG คุณภาพมาตรฐานเยอรมัน",
"shortDescription": "ท่อพีพีอาร์ตราช้าง SCG คุณภาพเยอรมัน",
"image": "/images/2021/03/ppr-pipe_000C.jpg",
"keywords": ["ท่อ PPR", "ตราช้าง", "SCG", "PPR Elephant"],
"specifications": [
{"label": "วัสดุ", "value": "PP-R Type 3"},
{"label": "ขนาด", "value": "20mm - 110mm"},
{"label": "แรงดัน", "value": "PN20"},
{"label": "มาตรฐาน", "value": "มอก. 2481-2551"},
],
"features": [
"ผลิตโดย SCG บริษัทชั้นนำของไทย",
"มาตรฐาน DIN 8077/8078",
"ทนความร้อนสูง",
"เชื่อมต่อง่าย",
"รับประกัน 10 ปี",
],
"applications": [
"ระบบน้ำร้อนในอาคาร",
"ระบบน้ำเย็น",
"ระบบประปา",
],
},
{
"id": "poloplast",
"name": "PP-R / PP-RCT POLOPLAST",
"nameEn": "PP-R / PP-RCT POLOPLAST",
"slug": "poloplast",
"description": "ท่อ PP-R และ PP-RCT จาก POLOPLAST ออสเตรีย คุณภาพสูงสุด",
"shortDescription": "ท่อ PP-R/PP-RCT จากออสเตรีย",
"image": "/images/2021/03/poloplast_000C.jpg",
"keywords": ["POLOPLAST", "PP-R", "PP-RCT", "ท่อออสเตรีย"],
"specifications": [
{"label": "วัสดุ", "value": "PP-R / PP-RCT"},
{"label": "ขนาด", "value": "16mm - 315mm"},
{"label": "แรงดัน", "value": "PN10, PN16, PN20, PN25"},
{"label": "มาตรฐาน", "value": "DIN 8077/8078, ÖNORM B 5112"},
],
"features": [
"เทคโนโลยี PP-RCT จากออสเตรีย",
"ทนแรงดันสูงกว่า PP-R ธรรมดา",
"ผนังบางแต่แข็งแรงกว่า",
"_flow rate สูงกว่า",
"อายุการใช้งาน 50+ ปี",
],
"applications": [
"ระบบ HVAC",
"ระบบน้ำร้อน-เย็น",
"ระบบทำความร้อน",
"โรงงานอุตสาหกรรม",
],
},
{
"id": "hdpe",
"name": "ท่อ HDPE",
"nameEn": "HDPE Pipe",
"slug": "ท่อhdpe",
"description": "ท่อ HDPE PE80/PE100 ทนแรงดัน PN25 อายุการใช้งาน 50 ปี มอก.",
"shortDescription": "ท่อเอชดีพีอี PE80/PE100 มาตรฐาน มอก.",
"image": "/images/2021/03/hdpe-page-full.png",
"keywords": ["ท่อ HDPE", "ท่อเอชดีพีอี", "PE80", "PE100", "ท่อประปา"],
"specifications": [
{"label": "วัสดุ", "value": "HDPE (High Density Polyethylene)"},
{"label": "เกรด", "value": "PE80, PE100"},
{"label": "ขนาด", "value": "20mm - 1,200mm"},
{"label": "แรงดัน", "value": "PN6 - PN25"},
{"label": "มาตรฐาน", "value": "มอก. 982-2548, ISO 4427"},
],
"features": [
"ทนแรงดันสูงถึง PN25",
"อายุการใช้งาน 50 ปี",
"น้ำหนักเบา ติดตั้งง่าย",
"ทนสารเคมี",
"ไม่เป็นสนิม",
],
"applications": [
"ระบบประปา",
"ระบบชลประทาน",
"ระบบน้ำทิ้ง",
"โรงงานอุตสาหกรรม",
],
},
{
"id": "syler",
"name": "ท่อไซเลอร์ | Syler",
"nameEn": "Syler Pipe",
"slug": "ท่อไซเลอร์",
"description": "ท่อไซเลอร์ ท่อเหล็กกล้าไร้สนิม คุณภาพสูง",
"shortDescription": "ท่อเหล็กกล้าไร้สนิม คุณภาพสูง",
"image": "/images/2021/03/syler_000C.jpg",
"keywords": ["ท่อไซเลอร์", "Syler", "ท่อสแตนเลส", "Stainless Pipe"],
"specifications": [
{"label": "วัสดุ", "value": "Stainless Steel 304/316"},
{"label": "ขนาด", "value": "1/2\" - 12\""},
{"label": "มาตรฐาน", "value": "ASTM A312, JIS G3459"},
],
"features": [
"ทนการกัดกร่อนสูง",
"อายุการใช้งานยาวนาน",
"บำรุงรักษาต่ำ",
"สวยงาม",
],
"applications": [
"ระบบอาหารและเครื่องดื่ม",
"ระบบเคมี",
"ระบบน้ำทะเล",
"อาคารสูง",
],
},
{
"id": "xylent",
"name": "ท่อระบายน้ำ 3 ชั้น ไซเลนท์ | XYLENT",
"nameEn": "XYLENT 3-Layer Drainage Pipe",
"slug": "ท่อระบายน้ำ-3-ชั้น-ไซเลนท์",
"description": "ท่อระบายน้ำ 3 ชั้น ลดเสียงรบกวน ไซเลนท์",
"shortDescription": "ท่อระบายน้ำ 3 ชั้น ลดเสียง",
"image": "/images/2021/03/xylent_000C.jpg",
"keywords": ["XYLENT", "ท่อระบายน้ำ", "ท่อ 3 ชั้น", "Silent Pipe"],
"specifications": [
{"label": "วัสดุ", "value": "PP + Mineral"},
{"label": "ขนาด", "value": "DN50 - DN200"},
{"label": "โครงสร้าง", "value": "3 ชั้น"},
{"label": "มาตรฐาน", "value": "DIN 19518, EN 14366"},
],
"features": [
"ลดเสียงรบกวนได้ถึง 10 dB",
"ทนความร้อนสูง",
"ทนสารเคมี",
"ติดตั้งง่าย",
"อายุการใช้งานยาวนาน",
],
"applications": [
"ระบบระบายน้ำในอาคาร",
"โรงแรม",
"โรงพยาบาล",
"คอนโดมิเนียม",
],
},
]
def create_markdown(product):
"""Create markdown content for a product"""
md = f"""---
id: {product['id']}
name: {product['name']}
nameEn: {product['nameEn']}
slug: {product['slug']}
description: '{product['description']}'
shortDescription: '{product['shortDescription']}'
image: {product['image']}
keywords:
"""
for keyword in product['keywords']:
md += f" - {keyword}\n"
md += "specifications:\n"
for spec in product['specifications']:
md += f" - label: {spec['label']}\n"
md += f" value: {spec['value']}\n"
md += "features:\n"
for feature in product['features']:
md += f" - {feature}\n"
md += "applications:\n"
for app in product['applications']:
md += f" - {app}\n"
md += f"""---
# {product['name']}
{product['description']}
## คุณสมบัติเด่น
"""
for i, feature in enumerate(product['features'], 1):
md += f"{i}. {feature}\n"
md += "\n## ข้อมูลจำเพาะ\n\n"
md += "| รายการ | รายละเอียด |\n"
md += "|--------|------------|\n"
for spec in product['specifications']:
md += f"| {spec['label']} | {spec['value']} |\n"
md += "\n## การใช้งาน\n\n"
for app in product['applications']:
md += f"- {app}\n"
return md
def main():
output_dir = '/Users/kunthawatgreethong/Gitea/dealplustech/src/content/products'
os.makedirs(output_dir, exist_ok=True)
for product in PRODUCTS_DATA:
filename = f"{product['id']}.md"
filepath = os.path.join(output_dir, filename)
# Skip if already exists
if os.path.exists(filepath):
print(f"✓ Skip (exists): {filename}")
continue
# Create markdown
md_content = create_markdown(product)
with open(filepath, 'w', encoding='utf-8') as f:
f.write(md_content)
print(f"✓ Created: {filename}")
if __name__ == '__main__':
print("=== Creating Product Markdown Files ===\n")
main()
print("\n✅ Done!")