א'-ה' 08:00-17:00

YMarket Website - Operations Manual

המדריך המלא לניהול, עדכון ותחזוקת האתר ymarket.co.il

עודכן: מרץ 2026 ymarket.co.il yunagler/ymarket-catalog master

סקירת האתר

האתר ymarket.co.il הוא אתר קטלוג B2B לעסק וואי מרקט - נגלר סחר והפצה, המספק מוצרי צריכה שוטפת (ניקיון, נייר, חד-פעמי, אריזות, בטיחות) לעסקים ומוסדות.

דומייןymarket.co.il (Cloudflare DNS)
אחסוןGitHub Pages (חינמי, אוטומטי)
ריפוyunagler/ymarket-catalog (private)
Branchmaster (deploy אוטומטי)
תיקיה מקומיתC:\Users\DELL\ymarket\website\
מספר מוצרים823
קטגוריות25 (8 ראשיות + 17 תת-קטגוריות)
עמודי בלוג24 מאמרים
סה"כ עמודים~870+

ארכיטקטורה

האתר הוא Static Site שנבנה עם HTML/CSS/JS טהור (ללא frameworks). דפי המוצרים והקטגוריות נוצרים אוטומטית מקובץ JSON מרכזי.

products.json
מקור נתונים
Build Scripts
Node.js
870+ HTML
עמודים סטטיים
Git Push
master
GitHub Pages
ymarket.co.il

מבנה תיקיות

C:\Users\DELL\ymarket\website\ ├── build/ ← סקריפטי בנייה (11 קבצים) │ ├── generate-products.js ← מייצר 823 דפי מוצר │ ├── generate-categories.js ← מייצר 25 דפי קטגוריה │ ├── generate-sitemap.js ← מייצר sitemap.xml │ ├── sync-header.js ← מסנכרן header לכל העמודים │ ├── sync-footer.js ← מסנכרן footer לכל העמודים │ ├── product-seo-server.js ← שרת SEO (פורט 8878) │ └── export-catalog.js ← ייצוא קטלוג ├── data/ ← נתונים │ ├── products.json ← 823 מוצרים + 25 קטגוריות (736KB) │ ├── site-config.json ← הגדרות האתר │ └── faq.json ← שאלות נפוצות ├── css/ ← עיצוב │ ├── variables.css ← צבעים, פונטים, spacing │ ├── base.css ← reset + typography │ ├── components.css ← כפתורים, כרטיסים, modals │ ├── layout.css ← grid, flexbox │ ├── responsive.css ← media queries │ ├── style.min.css ← ← כל ה-CSS מאוחד (production) │ └── pages/ ← CSS ספציפי לעמודים ├── js/ ← JavaScript │ ├── main.min.js ← ניווט, חיפוש, עגלה │ ├── catalog.min.js ← סינון מוצרים, קטגוריות │ ├── cart.min.js ← עגלת קניות │ └── schema-markup.js ← Structured Data ├── products/ ← 823 תיקיות מוצר (auto-generated) ├── category/ ← 25 תיקיות קטגוריה (auto-generated) ├── blog/ ← 24 מאמרים ├── legal/ ← 7 עמודים משפטיים ├── images/ ← לוגו, תמונות, אייקונים ├── index.html ← דף הבית ├── catalog.html ← קטלוג מוצרים ├── about.html ← אודות ├── contact.html ← צור קשר ├── blog.html ← רשימת מאמרים ├── faq.html ← שאלות נפוצות ├── cart.html / checkout.html ← עגלה וצ'קאאוט ├── sitemap.xml ← Sitemap ראשי ├── robots.txt ← הוראות לבוטים └── CNAME ← ymarket.co.il

טכנולוגיות

רכיבטכנולוגיההערות
FrontendHTML5 + CSS3 + Vanilla JSללא frameworks
BuildNode.js scriptsללא dependencies חיצוניים
HostingGitHub Pagesחינמי, HTTPS אוטומטי
DNSCloudflareCDN + הגנה
IconsFont Awesome 6.5.1CDN
FontHeebo (Google Fonts)עברית
CarouselSwiper.jsדף הבית בלבד
AnalyticsGoogle Analyticsanalytics.js

התחלה מהירה - פעולות נפוצות

עדכון מוצרים ערוך products.json → Build → Push
עדכון SEO SEO Server → ערוך → Build
פוסט בבלוג צור HTML בתיקיית blog/
העלאה לאוויר git add → commit → push
שינוי עיצוב ערוך CSS → רענן style.min
עדכון תפריט ערוך sync-header.js → הרץ

הרצה מהירה של כל תהליך ה-Build

# Navigate to build directory cd C:\Users\DELL\ymarket\website\build # 1. Generate product pages (823 pages) node generate-products.js # 2. Generate category pages (25 pages) node generate-categories.js # 3. Generate sitemaps node generate-sitemap.js # 4. Sync header across all pages node sync-header.js # 5. Sync footer across all pages node sync-footer.js # 6. Deploy to production cd C:\Users\DELL\ymarket\website git add -A git commit -m "Update catalog" git push origin master
אחרי git push האתר מתעדכן תוך 1-2 דקות ב-GitHub Pages אוטומטית.

ניהול מוצרים

כל המוצרים נמצאים בקובץ data/products.json. זהו מקור האמת היחיד. כל שינוי כאן משפיע על דפי המוצרים, הקטלוג, ה-sitemap ועוד.

מבנה מוצר ב-JSON

{ "id": 840, "name": "אקונומיקה 3.5% ריחנית - 4 ליטר BLINX", "slug": "אקונומיקה-3-5-ריחנית-4-ליטר-BLINX", "saleNis": 12.90, "originalPrice": null, "categorySlug": "חומרי-ניקוי-וכימיקלים", "categoryName": "חומרי ניקוי וכימיקלים", "unit": "יחידה", "unitsPerPack": 1, "imageUrl": "/items/840.jpg", "partNumber": "BLX-ECO-35R", "barcode": "7290016025...", "description": "אקונומיקה ריחנית 3.5%...", "isFeatured": false, "productStatus": "active", "seo": { ... } // ← נתוני SEO (אופציונלי) }

הוספת מוצר חדש

הוסף את המוצר ל-products.json פתח את data/products.json, מצא את מערך items והוסף אובייקט חדש. וודא שה-id ייחודי וה-slug תקין (ללא רווחים, שימוש במקפים).
הוסף תמונה שמור תמונת מוצר בתיקייה items/{id}.jpg (300x300 לפחות). אם יש URL חיצוני, עדכן את שדה imageUrl.
הרץ Build node build/generate-products.js — ייצור דף HTML חדש בתיקיית products/{slug}/
עדכן Sitemap node build/generate-sitemap.js — יוסיף את העמוד החדש ל-sitemap.xml
Push לפרודקשן git add -A && git commit -m "Add product" && git push

שדות מיוחדים

שדהתיאורהשפעה
productStatusactive, on_sale, new, recommended, clearanceמציג badge בכרטיס (מבצע, חדש, חיסול)
originalPriceמחיר מקורי (לפני הנחה)מציג קו חוצה + אחוז הנחה
isFeaturedמוצר מומלץbadge ירוק "מומלץ"
technicalDescמפרט טכניבלוק נפרד בדף המוצר
videoUrlלינק לסרטוןכפתור "צפו בסרטון מוצר"
alternativesמזהי מוצרים חלופייםהצעות חלופיות
leadTimeDaysימי אספקה"X ימי עסקים" בדף
שים לב: ה-slug הוא חלק מה-URL. שינוי slug ישבור לינקים קיימים! אם צריך לשנות, צור redirect מה-URL הישן.

ניהול קטגוריות

הקטגוריות מוגדרות ב-data/products.json במערך categories. תומך בהיררכיה (קטגוריה אב ← תת-קטגוריות).

מבנה קטגוריה

{ "id": 4, "name": "חומרי ניקוי וכימיקלים", "slug": "חומרי-ניקוי-וכימיקלים", // slug פנימי (עברית) "seoSlug": "industrial-cleaning-supplies-wholesale", // slug SEO (אנגלית) "icon": "fa-spray-can", "parentId": null, // null = ראשית, מספר = תת-קטגוריה "sortOrder": 2, "itemCount": 79, "seoContent": "<h2>...</h2><p>...</p>", // תוכן SEO מפורט "metaTitle": "חומרי ניקוי בסיטונאות | וואי מרקט", "metaDescription": "מחפשים ספק חומרי ניקוי...", "imageUrl": "/images/categories/cleaning.jpg" }

URLs של קטגוריות

כשיש seoSlug, ה-URL יהיה באנגלית. אחרת, בעברית:

סוגURL
עם seoSlug/category/industrial-cleaning-supplies-wholesale/
בלי seoSlug/category/חומרי-ניקוי-וכימיקלים/
תת-קטגוריה/category/parent-slug/child-slug/

הסקריפט generate-categories.js גם יוצר redirect pages מה-slug העברי ל-seoSlug האנגלי, כך שלינקים ישנים לא נשברים.

הוספת קטגוריה חדשה

הוסף למערך categories ב-products.json הגדר id ייחודי, name, slug, ואופציונלי seoSlug, icon, parentId.
שייך מוצרים עדכן את categorySlug של המוצרים הרלוונטיים.
הרץ Build node generate-categories.js ואז node generate-products.js

ניהול בלוג

הבלוג מכיל 24 מאמרים בתיקיית blog/. כל מאמר הוא קובץ HTML עצמאי.

הוספת מאמר חדש

צור קובץ HTML חדש ב-blog/slug-name.html. השתמש במבנה של מאמר קיים כ-template.
הוסף כרטיס ב-blog.html ערוך את blog.html והוסף card למאמר ברשימה.
סנכרן header/footer node build/sync-header.js && node build/sync-footer.js
עדכן sitemap node build/generate-sitemap.js

מבנה מאמר בלוג

כל מאמר כולל:

  • Meta tags — title, description, og:image
  • Breadcrumbs — דף הבית ← בלוג ← שם המאמר
  • תוכן — H1, תמונה ראשית, פסקאות, רשימות, לינקים פנימיים
  • CTA — קריאה לפעולה (WhatsApp / קטלוג)
  • מאמרים קשורים — 3 כרטיסים למאמרים נוספים
לכל מאמר חדש, ודא שיש לינקים פנימיים לקטגוריות ומוצרים רלוונטיים — זה קריטי ל-SEO.

עמודים סטטיים

עמודקובץתיאור
דף הביתindex.htmlHero, קרוסלת מוצרים, סגמנטים, testimonials
קטלוגcatalog.htmlרשימת מוצרים עם סינון וחיפוש (קורא מ-products.json)
אודותabout.htmlעל העסק, ערכים, צוות
צור קשרcontact.htmlטופס יצירת קשר, טלפון, WhatsApp
שאלות נפוצותfaq.htmlאקורדיון שאלות ותשובות
עגלת קניותcart.htmlעגלה מ-LocalStorage
צ'קאאוטcheckout.htmlטופס הזמנה
כניסהlogin.htmlהתחברות לקוחות
הרשמהregister.htmlרישום לקוח חדש
מעקב משלוחיםtracking.htmlמעקב הזמנות
404404.htmlדף שגיאה מותאם

עמודים משפטיים (legal/)

7 עמודים: תקנון, פרטיות, משלוחים, החזרות, ביטולים, עוגיות, נגישות.

אחרי עריכת עמוד סטטי, הרץ sync-header.js ו-sync-footer.js כדי לוודא שה-header וה-footer מעודכנים.

תהליך Build

כל הסקריפטים ב-build/ רצים עם Node.js ללא dependencies חיצוניים.

סקריפטפקודהמה עושהמתי להריץ
generate-products.js node generate-products.js מייצר 823 דפי מוצר מ-products.json שינוי מוצרים / SEO
generate-categories.js node generate-categories.js מייצר 25 דפי קטגוריה + redirects שינוי קטגוריות
generate-sitemap.js node generate-sitemap.js מייצר sitemap.xml עם כל העמודים הוספת/הסרת עמודים
sync-header.js node sync-header.js מסנכרן header + mega-menu לכל ~870 עמודים שינוי בתפריט
sync-footer.js node sync-footer.js מסנכרן footer לכל העמודים שינוי ב-footer
product-seo-server.js node product-seo-server.js שרת SEO על פורט 8878 ניהול SEO
export-catalog.js node export-catalog.js ייצוא הקטלוג לפורמט חיצוני לפי צורך

סדר הרצה מומלץ (Full Build)

cd C:\Users\DELL\ymarket\website\build # 1. מוצרים (תלוי ב-products.json) node generate-products.js → Generated 823 product pages # 2. קטגוריות (תלוי ב-products.json) node generate-categories.js → Generated 25 category pages # 3. Header (חייב לרוץ אחרי 1+2 כי הם מייצרים HTML חדש) node sync-header.js → Updated header in ~870 files # 4. Footer node sync-footer.js → Updated footer in ~870 files # 5. Sitemap (אחרון - סורק את כל ה-HTML) node generate-sitemap.js → Sitemap updated
חשוב! generate-products.js מוחק את כל תיקיית products/ ומייצר מחדש. אל תשמור קבצים ידניים שם!

העלאה לאוויר (Deploy)

האתר מתארח ב-GitHub Pages. כל push ל-branch master מפרסם אוטומטית.

תהליך Deploy

cd C:\Users\DELL\ymarket\website # בדוק מה השתנה git status # הוסף את הקבצים git add -A # Commit עם תיאור git commit -m "Update: description of changes" # Push — האתר יתעדכן תוך 1-2 דקות git push origin master

בדיקה אחרי Deploy

  • פתח את ymarket.co.il ובדוק שהאתר עלה תקין
  • בדוק Ctrl+Shift+R (hard refresh) אם יש cache ישן
  • בדוק דף מוצר ספציפי שהשתנה
  • בדוק שה-sitemap עודכן: /sitemap.xml
אל תמחק את קובץ CNAME! הוא הכרחי ל-GitHub Pages לדעת שהדומיין הוא ymarket.co.il. מחיקתו תשבור את האתר.

Rollback (חזרה לגרסה קודמת)

# צפה בהיסטוריית commits git log --oneline -10 # חזור ל-commit ספציפי (יוצר commit חדש) git revert HEAD git push origin master

סנכרון Header / Footer

האתר מכיל ~870 עמודי HTML. ה-Header וה-Footer צריכים להיות זהים בכולם. שני סקריפטים מטפלים בזה:

sync-header.js

מעדכן את ה-Header (top-bar + navigation + mega-menu + mobile overlay) בכל העמודים. אם צריך לשנות את התפריט:

ערוך את sync-header.js מצא את בלוק ה-HTML של ה-header בתוך הסקריפט ועדכן.
הרץ node build/sync-header.js
בדוק פתח כמה עמודים ובדוק שה-header תקין.

sync-footer.js

זהה - מעדכן את ה-footer (לוגו, קטגוריות, לינקים, צור קשר, legal). ערוך את הסקריפט → הרץ → בדוק.

הסקריפטים סורקים HTML בכל התיקיות — root, blog/, legal/, category/, products/. אין צורך להריץ על כל תיקייה בנפרד.

SEO - סקירה כללית

האתר כולל מערכת SEO מקיפה. הנה התמונה הגדולה:

רכיב SEOמיקוםסטטוס
Meta tags (title, description)כל 870+ עמודיםפעיל
Open Graph (Facebook, WhatsApp)כל העמודיםפעיל
Schema.org / JSON-LDמוצרים + קטגוריות + דף הביתפעיל
Sitemapssitemap.xml + sitemap-products.xml + sitemap-blog.xmlפעיל
Canonical URLsכל העמודיםפעיל
robots.txtשורש האתרפעיל
Clean URLs/products/slug/ (ללא .html)פעיל
Breadcrumbsכל עמודי מוצר + קטגוריהפעיל
SEO לקטגוריותתוכן, FAQs, meta לכל קטגוריהפעיל
SEO למוצריםtitle, h1, meta, specs, bulkCtaב-Setup
Blog SEO24 מאמרים עם internal linkingפעיל
hreflangHebrew (he_IL)פעיל

20 מילות מפתח מטרה

  1. ציוד ניקיון למוסדות
  2. חומרי ניקיון סיטונאי
  3. כלים חד פעמיים לעסקים
  4. ספק מוצרי ניקיון
  5. נייר טואלט מוסדי
  6. מגבות נייר תעשייתי
  7. שקיות אשפה מוסדיות
  8. ציוד חד פעמי למסעדות
  9. מוצרי נייר סיטונאי
  10. חומרי ניקיון לחברות ניקיון
  11. ספק ציוד משרדי
  12. כלים חד פעמיים סיטונאי
  13. מוצרי ניקיון מוסדיים מחירים
  14. אספקה למוסדות
  15. ציוד ניקיון לבריכות
  16. מוצרי חד פעמי לאירועים
  17. ספק מזון יבש לעסקים
  18. ציוד ניקיון לבתי ספר
  19. חומרי ניקיון תעשייתיים
  20. הזמנת מוצרי ניקיון אונליין

SEO למוצרים - Product SEO Manager

ממשק וויזואלי + API לניהול נתוני SEO לכל 823 מוצרים. הנתונים נשמרים ישירות ב-products.json.

הפעלת השרת

cd C:\Users\DELL\ymarket\website\build node product-seo-server.js Product SEO Manager running at http://localhost:8878 Products: 823 With SEO: 0

ממשק UI

כנסו ל-http://localhost:8878 ותראו:

  • טבלת מוצרים — כל 823 המוצרים עם סטטוס SEO (V/X)
  • חיפוש — לפי שם, מק"ט, או ID
  • סינון — הכל / עם SEO / ללא SEO / לפי קטגוריה
  • עריכה — לחצו על כדי לערוך SEO למוצר
  • יצירה אוטומטית — לחצו על ליצירה אוטומטית
  • Bulk generate — כפתור ירוק "יצירת SEO אוטומטי" ליצירה לכל החסרים
  • Build — כפתור "Build Pages" שמריץ את generate-products.js

שדות SEO למוצר

שדהמומלץדוגמה
title60-70 תוויםאקונומיקה 3.5% ריחנית BLINX | וואי מרקט
h1כותרת עם keywordאקונומיקה 3.5% ריחנית - 4 ליטר BLINX
metaDesc150-160 תוויםאקונומיקה ריחנית 3.5% - חומרי ניקוי. מחירי סיטונאות...
specsמפרט (label+value)[{label: "מק\"ט", value: "BLX-ECO"}, ...]
bulkCtaקריאה לפעולה{title, text, waText}

API Endpoints

EndpointMethodתיאור
/api/statsGETסטטיסטיקות (כמה עם/בלי SEO)
/api/products?page=1&limit=50&filter=all&category=slug&search=textGETרשימת מוצרים עם פילטרים
/api/products/:idGETמוצר בודד
/api/products/:id/seoPUTעדכון SEO
/api/products/:id/seoDELETEמחיקת SEO
/api/products/:id/generate-seoPOSTיצירה אוטומטית (ללא שמירה)
/api/bulk-generatePOSTיצירת SEO לכל החסרים
/api/categoriesGETרשימת קטגוריות
/api/buildPOSTהרצת generate-products.js

דוגמת API

# Get stats curl http://localhost:8878/api/stats # Get product curl http://localhost:8878/api/products/840 # Auto-generate SEO for product curl -X POST http://localhost:8878/api/products/840/generate-seo # Save SEO for product curl -X PUT http://localhost:8878/api/products/840/seo \ -H "Content-Type: application/json" \ -d '{"title":"...","h1":"...","metaDesc":"..."}' # Bulk generate for all products missing SEO curl -X POST http://localhost:8878/api/bulk-generate \ -H "Content-Type: application/json" \ -d '{"overwrite": false}'

Workflow: SEO למוצרים

הפעל שרת node build/product-seo-server.js
כנס לממשק http://localhost:8878
לחץ "יצירת SEO אוטומטי" יוצר SEO לכל 823 מוצרים
ערוך ידנית מוצרים חשובים לחץ ושפר את הכותרות והתיאורים
Build + Deploy node generate-products.js ואז git push
השרת יוצר גיבוי אוטומטי של products.json לפני כל שמירה ב-data/backups/. נשמרים 10 גיבויים אחרונים.

SEO לקטגוריות

הנתונים מגיעים משני מקורות (לפי סדר עדיפות):

  1. products.json — שדות metaTitle, metaDescription, seoContent בכל קטגוריה
  2. CATEGORY_SEO בסקריפט — hardcoded ב-generate-categories.js (title, h1, metaDesc, seoText, faqs)

עדכון SEO לקטגוריה

אפשרות 1 (מומלצת): ערוך ישירות ב-products.json את שדות ה-SEO של הקטגוריה:

{ "id": 4, "name": "חומרי ניקוי", "metaTitle": "חומרי ניקוי בסיטונאות | וואי מרקט", "metaDescription": "מחפשים ספק חומרי ניקוי אמין?...", "seoContent": "<h2>חומרי ניקוי מוסדיים</h2><p>...</p>" }

אפשרות 2: ערוך את אובייקט CATEGORY_SEO ב-generate-categories.js (כולל FAQs).

מבנה תוכן SEO לקטגוריה

כל קטגוריה מקבלת בלוק תוכן SEO שמופיע מתחת לרשימת המוצרים, וכולל:

  • H2 — כותרת עם מילת מפתח (לדוגמה "חומרי ניקוי מוסדיים בסיטונאות")
  • 2-3 פסקאות — תיאור הקטגוריה עם לינקים פנימיים
  • CTA — קריאה לפעולה (צור קשר / WhatsApp)
  • FAQs — שאלות נפוצות עם Schema.org FAQPage markup

Sitemaps

קובץתוכןגודל
sitemap.xmlכל העמודים (ראשי)~248KB
sitemap-products.xml823 דפי מוצר~175KB
sitemap-blog.xml24 מאמרי בלוג~2.6KB

עדכון Sitemaps

cd C:\Users\DELL\ymarket\website\build node generate-sitemap.js

הסקריפט סורק את כל קבצי ה-HTML ומגדיר:

  • Priority — 1.0 לדף הבית, 0.9 לקטלוג, 0.85 לקטגוריות, 0.7 למוצרים
  • changefreq — weekly לדף הבית/קטלוג, monthly למוצרים, yearly ל-legal
  • lastmod — תאריך עדכון אחרון
ה-sitemaps מוגדרים גם ב-robots.txt כך שגוגל מוצא אותם אוטומטית. אפשר גם לשלוח ידנית ב-Google Search Console.

Schema Markup (Structured Data)

האתר משתמש ב-JSON-LD לסימון תוכן מובנה לגוגל:

סוגהיכןתיאור
Organizationכל העמודים (schema-markup.js)שם העסק, לוגו, טלפון, כתובת
LocalBusinessכל העמודיםשעות פעילות, אזור שירות (11 ערים)
Productדפי מוצרשם, מחיר, מטבע, זמינות, תמונה
BreadcrumbListמוצרים + קטגוריותניווט היררכי
CollectionPage + ItemListדפי קטגוריהרשימת מוצרים בקטגוריה
FAQPageקטגוריות עם FAQsשאלות ותשובות
WebSiteדף הביתחיפוש פנימי (Sitelinks Search Box)
בדיקת Schema: Google Rich Results Test — הכנס URL של דף מוצר ובדוק שהכל תקין.

מבנה CSS

מיתוג וצבעים

כל הצבעים מוגדרים כ-CSS Variables ב-css/variables.css:

Variableערךשימוש
--color-primary#1B3A5Cצבע ראשי (כהה)
--color-primary-dark#112A45header, hover states
--color-primary-light#2A5080גוונים בהירים
--color-accent#16a34aWhatsApp, CTA

קבצי CSS

קובץתוכן
variables.cssCSS Variables — צבעים, פונטים, spacing, shadows
base.cssReset, typography, links, global styles
components.cssכפתורים, כרטיסים, badges, modals, toasts
layout.cssContainer, grid, header, footer, sidebar
responsive.cssMedia queries — mobile, tablet, desktop
style.min.cssכל הנ"ל מאוחד ומכווץ (production)

CSS ספציפי לעמודים

בתיקיית css/pages/:

  • home.min.css — Hero, carousel, segments
  • catalog.min.css — Category tree, filters, product grid
  • product-detail.min.css — Gallery, pricing, specs, reviews
  • blog.min.css — Article cards, post content
  • checkout.min.css — Checkout form
  • contact.min.css — Contact form
  • legal.min.css — Legal pages typography
חשוב! כל העמודים טוענים את style.min.css. אם אתה עורך CSS source (variables.css, base.css וכו'), צריך לאחד ולכווץ אותם מחדש ל-style.min.css.

רספונסיביות

Breakpoints מוגדרים ב-responsive.css:

Breakpointמכשיר
max-width: 480pxמובייל קטן
max-width: 768pxמובייל / טאבלט
max-width: 992pxטאבלט
max-width: 1200pxדסקטופ קטן
min-width: 1200pxדסקטופ מלא

מבנה נתונים

products.json — המבנה המלא

{ "categories": [ { "id": 4, "name": "חומרי ניקוי וכימיקלים", "slug": "חומרי-ניקוי-וכימיקלים", "seoSlug": "industrial-cleaning-supplies-wholesale", "icon": "fa-spray-can", "parentId": null, "sortOrder": 2, "itemCount": 79, "metaTitle": "...", "metaDescription": "...", "seoContent": "<h2>...</h2>", "imageUrl": "...", "imageAlt": "..." } ], "items": [ { "id": 840, "name": "אקונומיקה 3.5%", "slug": "אקונומיקה-3-5-...", "saleNis": 12.90, "originalPrice": null, "discountPercent": null, "promotionLabel": null, "categorySlug": "חומרי-ניקוי-וכימיקלים", "categoryName": "חומרי ניקוי וכימיקלים", "categorySlugs": [...], "unit": "יחידה", "unitsPerPack": 1, "imageUrl": "/items/840.jpg", "isFeatured": false, "productStatus": "active", "description": "...", "partNumber": "BLX-ECO-35R", "barcode": "729001...", "searchTags": [...], "technicalDesc": "...", "videoUrl": null, "leadTimeDays": null, "maxOrderQty": null, "alternatives": [], "seo": { // Optional "title": "...", "h1": "...", "metaDesc": "...", "specs": [{"label": "...", "value": "..."}], "bulkCta": {"title": "...", "text": "...", "waText": "..."} } } ] }

site-config.json

{ "business": { "name", "phone", "email", "whatsapp", "address", "hours" }, "seo": { "homeTitle", "homeDescription", "homeKeywords" }, "stats": { "activeCustomers", "productsInCatalog", "deliveryHours" }, "hero": { "title", "subtitle", "ctaPrimary", "ctaSecondary" }, "features": [ { "icon", "title", "text" } ], "trustStrip": [ { "icon", "text", "number" } ] }

API Endpoints - סיכום מלא

Product SEO Server (Port 8878)

MethodEndpointBodyתיאור
GET/api/stats-סטטיסטיקות SEO
GET/api/productsQuery: page, limit, filter, category, searchרשימת מוצרים
GET/api/products/:id-מוצר בודד + כל השדות
PUT/api/products/:id/seo{title, h1, metaDesc, specs, bulkCta}עדכון SEO
DELETE/api/products/:id/seo-מחיקת SEO
POST/api/products/:id/generate-seo-יצירת SEO (ללא שמירה)
POST/api/bulk-generate{overwrite, category}יצירה באלק
POST/api/bulk-update{ids, field, value}עדכון שדה למרובים
GET/api/categories-רשימת קטגוריות
POST/api/build-הרצת generate-products.js

פתרון בעיות

האתר לא מתעדכן אחרי Push

  • ודא ש-push היה ל-master (לא branch אחר)
  • בדוק ב-GitHub: Settings → Pages → שה-branch הוא master
  • נקה cache: Ctrl+Shift+R
  • המתן 2-5 דקות — לפעמים GitHub Pages איטי

generate-products.js נכשל

  • בדוק ש-data/products.json הוא JSON תקין (אין פסיקים מיותרים)
  • הרץ node -e "JSON.parse(require('fs').readFileSync('data/products.json'))" לבדיקה
  • ודא שכל מוצר עם slug תקין

Header/Footer לא תואמים

  • הרץ node sync-header.js ו-node sync-footer.js
  • ודא שעמודי מוצר/קטגוריה נבנו מחדש לפני הסנכרון

תמונות שבורות

  • בדוק שהתמונה קיימת ב-items/{id}.jpg
  • כל תמונה שחסרה מציגה placeholder אוטומטי
  • ודא שה-imageUrl נכון ב-products.json

SEO Server לא עולה

  • בדוק שפורט 8878 פנוי: netstat -ano | grep 8878
  • שנה פורט ב-product-seo-server.js (שורה 14)

git push נכשל

# אם יש conflict git pull origin master # פתור conflicts → add → commit → push # אם Authentication נכשל gh auth login

צ'קליסט פרסום

לפני כל העלאה משמעותית, עברו על הרשימה:

לפני Build

  • products.json תקין (JSON valid)
  • תמונות מוצרים חדשים קיימות
  • slugs תקינים (ללא רווחים, תווים מיוחדים)
  • מחירים עדכניים

Build

  • node generate-products.js — ללא שגיאות
  • node generate-categories.js — ללא שגיאות
  • node sync-header.js
  • node sync-footer.js
  • node generate-sitemap.js

בדיקה מקומית

  • דף הבית נטען תקין
  • דף מוצר חדש/מעודכן נראה טוב
  • ניווט ובreadcrumbs עובדים
  • מובייל — רספונסיבי תקין
  • לינקים פנימיים עובדים

Deploy

  • git status — לבדוק מה נכנס
  • git add + commit + push
  • המתנה 1-2 דקות
  • בדיקת האתר החי
  • Hard refresh (Ctrl+Shift+R)

SEO (אחרי deploy)

  • sitemap.xml נגיש: ymarket.co.il/sitemap.xml
  • robots.txt תקין: ymarket.co.il/robots.txt
  • Rich Results Test — Schema תקין
חזרה למעלה

YMarket Website Operations Manual © 2026