Files
dealplustech/scripts/create_products.py
Kunthawat c5de8282cf 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!
2026-03-12 20:00:09 +07:00

265 lines
11 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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!")