עורכים מותאמים אישית
יש עבודה שלא נמצאת באף פאנל, כי היא רק שלכם: חישוב מחירים מחדש לפי נוסחה של ספק, השוואת קטלוג מול מערכת חשבונאית חיצונית, מסך „למלא מאפיינים של אצווה במעבר אחד“. המדור „עורכים מותאמים אישית“ מאפשר לכתוב מיני-עורך כזה בעצמכם (או להזמין אותו) ולהפעיל אותו בתוך ממשק הניהול — בארגז חול, עם גישה בדיוק לנתונים שאישרתם.
לפתוח: פאנל ניהול → עורכים מותאמים אישית (admin.cenaly.com/custom-editors). המדור מופעל באמצעות כרטיס „עורכים מותאמים אישית (SDK)“ בחנות האפליקציות — כברירת מחדל הוא מוסתר. הכפתור „📌 לסרגל הצד“ בעמוד עצמו מוציא אותו לתפריט הצד, כשצריך אותו לעיתים קרובות.
מה זה המדור הזה#
תוסף הוא סקריפט מקומפל (index.js) והתיאור שלו (manifest.json). הפאנל טוען את הסקריפט בפריים מבודד: אין לו גישה לא לסשן שלכם, לא לקוד ממשק הניהול ולא לרשת. הוא יכול לדבר עם הנתונים רק דרך גשר — סט של בקשות מורשות, שכל אחת מהן נבדקת מול ההרשאות שהוענקו.
העמוד מורכב מבלוקים:
| בלוק | מה יש בו |
|---|---|
| עורכים מותקנים | כרטיס לכל תוסף: שם, „גרסה“, „הרשאות“, „מיקום“, „מארחי רשת מורשים“, „עודכן“, מקור (מאגר ותג כקישור). פעולות: „לפתוח“, „להפעיל“ / „לכבות“, בדיקת עדכונים, „למחוק“ |
| להתקין עורך | התקנה מקבצים מהדיסק |
| התקנה מ-GitHub | התקנה לפי כתובת של מאגר ציבורי ותג |
| 🤖 פיתוח עם בינה מלאכותית (וייב-קודינג) | תבנית פרויקט, פרומפט לסוכן בינה מלאכותית ותמונת מצב של הקטלוג כנתוני בדיקה |
| 👩💻 גישת מפתח | הרשאות זמניות לקבלן למצב מפתח |
| 🛠️ מצב מפתח | הפעלת התוסף ישירות מהמחשב שלכם, בלי התקנה |
עורך פתוח תופס את כל המסך, וכתובת העמוד מקבלת סימון ?app=<מזהה> — בקישור כזה אפשר לשתף את מי שיש לו גישה.
מה צריך כדי להפעיל#
| מה | לשם מה |
|---|---|
| כרטיס „עורכים מותאמים אישית (SDK)“ בחנות האפליקציות | המדור נישתי וכברירת מחדל כבוי |
| אתם — בעלי החשבון | להתקין, להפעיל, למחוק תוספים ולהעניק הרשאות יכול רק הבעלים; עובדים רואים את הרשימה לקריאה בלבד |
תוסף מקומפל: index.js + manifest.json |
או שלכם, או ממפתח, או גרסה במאגר GitHub ציבורי |
| לפיתוח — חשבון עובד למפתח | מצב מפתח מוענק לפי כתובת הדוא“ל של חשבון העבודה שלו |
שלב 1. להחליט מי יכתוב את העורך#
יש שלושה מסלולים, והם נבדלים במי שמחזיק בקוד:
| מסלול | למי מתאים | איך |
|---|---|---|
| סוכן בינה מלאכותית לפי התבנית שלנו | בעלים שמוכן להסביר את המשימה במילים | בלוק „פיתוח עם בינה מלאכותית“: תבנית + פרומפט → הסוכן מרכיב גרסה → אתם מתקינים אותה |
| מפתח שלכם או מפתח שכור | יש קבלן או מפתח בצוות | העניקו לו הרשאה למצב מפתח, הוא כותב ומנפה על חשבון חי, אתם מתקינים גרסה מוכנה |
| גרסה מוכנה מ-GitHub | התוסף כבר כתוב (על ידכם או עבורכם) | „התקנה מ-GitHub“: כתובת המאגר והתג |
בכל שלושת המקרים ההתקנה נשארת בידי הבעלים: אפילו מפתח עם הרשאה יכול רק להפעיל את הקוד שלו אצלו במצב מפתח, אבל לא להתקין אותו בחשבון.
שלב 2. פיתוח עם בינה מלאכותית (וייב-קודינג)#
הבלוק „🤖 פיתוח עם בינה מלאכותית (וייב-קודינג)“ נותן ארבעה דברים כדי למסור את המשימה לסוכן בינה מלאכותית (Claude Code, Cursor וכדומה) בלי להסביר לו את החוזה מאפס:
- „⬇️ להוריד תבנית פרויקט (zip)“ — שלד מוכן של תוסף: מניפסט, נקודת כניסה, תיאור החוזה (
GUIDE.en.md) והוראות לסוכן. הארכיון נבנה ישירות בדפדפן, אין צורך להוריד שום דבר חיצוני. - „📋 להעתיק פרומפט לסוכן“ — טקסט המשימה באנגלית: להתחיל מהתבנית, להסתמך על המדריך, במה לבדוק את התוצאה.
- תצורת סט כלים לסוכן — איתה הסוכן מרכיב את התוסף, מרים סטנד מקומי שהוא העתק של ארגז החול, עושה צילומי מסך ותמונות מצב, ובסוף מרכיב גרסה: zip להתקנה ידנית או גרסה ב-GitHub.
- „⬇️ להוריד תמונת מצב של הקטלוג (פיקסטורת בדיקה)“ — הקטגוריות והפריטים שלכם כקובץ, כדי שהסוכן יבדוק על נתונים אמיתיים ולא על מומצאים.
⚠️ מתמונת המצב נחתכים לחלוטין שדות מותאמים אישית של תוספים אחרים: נתונים שתוסף חיצוני שומר על הכרטיסים שלכם לא יוצאים מהחשבון יחד עם הפיקסטורה.
שלב 3. להתקין את העורך#
מקבצים. הבלוק „להתקין עורך“: בחרו „באנדל (index.js)“ ו„מניפסט (manifest.json)“ → „לבדוק ולהתקין“. הפאנל קודם בודק את המניפסט — מזהה, שם מתורגם, גרסה, גרסת SDK מינימלית, מיקומי הצבה, הרשאות ורשימת מארחי רשת — ואחר כך מציג הסכמה: „העורך הזה מבקש:“ ורשימת ההרשאות בשפה אנושית. עד שלא לחצתם „להתקין“, שום דבר לא מותקן.
מ-GitHub. הבלוק „התקנה מ-GitHub“: שדה „מאגר (URL או owner/repo)“, שדה „תג (ריק = הגרסה האחרונה)“ וכפתור „לבדוק מאגר“. המוסכמה פשוטה: manifest.json בשורש המאגר, dist/index.js מקומפל בתג, תג בפורמט v{גרסה}. המניפסט והבאנדל נמשכים ישירות מהדפדפן שלכם. בשני המקרים, בעת ההתקנה מחושב ונשמר טביעת אצבע של הבאנדל (sha256): אם הקובץ יוחלף אחר כך, ההפעלה תיחסם, והפאנל יבקש להתקין את העורך מחדש.
הרשאות ומקומות הצבה#
ההרשאות (המכונות גם סקופים) מבוקשות על ידי התוסף במניפסט, ואתם מאשרים אותן בעת ההתקנה. הרשימה המלאה — הנה היא, הגשר לא יודע דבר מעבר לכך:
| הרשאה | מה נפתח |
|---|---|
| קריאת הקטלוג | קטגוריות, פריטים, מאפיינים ושדות מותאמים אישית של כרטיסים |
| יצירה ושינוי של פריטי קטלוג | יצירה ועריכה של פריטים, ייבוא מנה, שדות משלכם והגדרות מאפיינים |
| שינוי מחירים, זמינות ורשימות עצירה לפי סניפים | אותו דבר שעושה הפאנל בתפריט הסניף |
| קריאת ספר מוצרי המלאי | נומנקלטורה של המלאי לקריאה |
| שמירת ההגדרות שלכם באחסון שלכם | מפתחות של התוסף בחשבון שלכם (עד 1 MB למפתח) |
| חלק שרת של ההרחבה | קריאות לקוד של התוסף בשרת שלנו — הדרך היחידה שלו לצאת לאינטרנט |
מה שאין ברשימה כלל — את זה התוסף לא יקבל בשום הגדרה: אורחים ולקוחות, הזמנות, קבלות, כספים, עובדים, התכתבויות ושיחות — את אלה הגשר לא מוסר.
מקומות ההצבה (סלוטים) — שלושה:
| סלוט | היכן יופיע |
|---|---|
| עמוד משל עצמו | פריט בתוך המדור „עורכים מותאמים אישית“, נפתח על כל המסך |
| כפתור בעמוד הקטלוג | כלי לצד קטלוג הפריטים |
| לשונית במדור „מלאי“ | התוסף מצויר כלשונית של המלאי — כך ארוזה ההרחבה המובנית שלנו „VetIS“ |
מצב מפתחים וגישה לקבלן#
מצב מפתחים (הבלוק „🛠️ מצב מפתחים“) מרכיב את התוסף חי מהמחשב שלכם: השדה „URL של הבאנדל“ מקבל רק כתובות localhost / 127.0.0.1, לצידו — „JSON של המניפסט“, והכפתור „הפעלת סשן פיתוח“. טביעת האצבע במקרה זה אינה מוצמדת, והסשן חי עד סגירת הלשונית; „עצירת סשן פיתוח“ מכבה אותו מיד.
הרשאות למפתח (הבלוק „👩💻 גישת מפתח“) נדרשות כשהכותב אינו הבעלים. למפתח נפתח חשבון עובד רגיל, ואז הבעלים מעניק הרשאה: „דוא״ל של המפתח (ה-staff-לוגין שלו)“, „ההרשאות המותרות“, „תוקף (בימים)“ והערה אופציונלית → „מתן גישה“. אפשר לבטל בכל רגע בכפתור „ביטול“.
מה נותנת ההרשאה ומה לא:
- נותנת — רק מצב מפתחים עם ההרשאות שסימנתם (ברירת מחדל 14 ימים, מקסימום 90);
- ההרשאות נחתכות בחיתוך: מה שהמניפסט מבקש וגם מה שהוענק בהרשאה; את העודף התוסף לא יקבל, גם אם יבקש במניפסט;
- לא נותנת — התקנה, הפעלה ומחיקה של תוספים: אלה נשארים לבעלים.
עדכון, הפעלה ומחיקה#
| פעולה | איך |
|---|---|
| פתיחה | כפתור „פתח“ בכרטיס (או קישור עם ?app=…) |
| כיבוי זמני | „כבה“ — התוסף נשאר מותקן, אך אינו מורץ ואינו מוצג במקומות שלו |
| עדכון | בתוספים מ-GitHub — „בדוק עדכונים“ ואז „עדכן ל-…“; אם הגרסה עדכנית, הפאנל יאמר „מותקנת הגרסה האחרונה“. תוספים מקבצים מתעדכנים בהתקנה חוזרת |
| מחיקה | „מחק“ עם אישור: ההגדרות והפריט מוסרים, הגרסאות שהועלו נשארות באחסון |
עדכון אוטומטי אינו קיים במכוון: גרסה חדשה של קוד זר היא טביעת אצבע חדשה ואולי הרשאות חדשות, ולכן העדכון הוא תמיד פעולה מודעת של הבעלים.
הרחבות מובנות#
חלק מהמודולים שלנו עצמנו ארוזים באותו פורמט — זה ניכר בהתנהגות, אבל אין צורך להתקין אותם: הם מגיעים יחד עם הפאנל ומופעלים בכרטיס בחנות האפליקציות, ולא במדור הזה.
כרגע מודול כזה הוא אחד — „Mercury/VetIS“ עבור רוסיה: הוא חי כלשונית במדור „מלאי“, מורץ באותו ארגז חול ועם אותן בדיקות טביעת אצבע. הרחבות מובנות אינן נכנסות לרשימת העורכים המותקנים.
מה העורך יכול ומה אינו יכול#
| יכול | אינו יכול |
|---|---|
| לקרוא ולשנות את הקטלוג בגבולות ההרשאות שהוענקו | לדעת את הסיסמה שלכם או להשתמש בסשן שלכם |
| להציג ממשק משל עצמו, התראות ובקשות אישור | לפתוח קוד או נתונים של האדמין סביבו |
| לפתוח את עורך הפריט המקורי של הפאנל | לפנות לאינטרנט ישירות מחלון התוסף |
| לשמור את ההגדרות שלו בחשבון שלכם | לראות נתונים של תוסף אחר בכרטיסים שלכם |
| לצאת לאינטרנט דרך חלק השרת — ורק לכתובות ה-https המפורטות במניפסט (לא יותר משמונה) | לפעול לאחר החלפת קובץ: אי-התאמה של טביעת האצבע חוסמת את ההפעלה |
תוספים של צד שלישי מסומנים בכרטיס באזהרה: „אפליקציית צד שלישי בארגז חול — היא לעולם אינה מבקשת סיסמה“. אם תוסף מבקש לוגין לפאנל, פרטי תשלום או קוד מ-SMS — זו הונאה, ולא עבודה של הרחבה.
מגבלות#
- המדור כבוי כברירת מחדל ומיועד למי שכותב קוד (או מזמין אותו): לבעלים רגיל אין כאן מה לחפש.
- הכול מלבד צפייה — רק לבעל החשבון. עובד רואה את המרכז בקריאה בלבד; מצב מפתח — רק עם הרשאה פעילה.
- מאגרי GitHub פרטיים אינם נתמכים — המאגר חייב להיות ציבורי, וההתקנה מתבצעת לפי תג.
- אין עדכון אוטומטי: עדכון התוסף תמיד מופעל על ידי הבעלים.
- אין חנות לתוספים של אחרים. תוספים מוכנים אינם מפורסמים ואינם נמכרים דרך הפאנל — המקור הוא רק הקובץ שלכם או המאגר שלכם.
- יש שלושה חריצים (עמוד משל עצמו, כפתור הקטלוג, לשונית המלאי) — התוסף אינו יכול להשתלב במסך שרירותי בפאנל.
- הגשר אינו מוסר אורחים, הזמנות, נתונים כספיים, עובדים והתכתבויות — אי אפשר לעקוף זאת באמצעות הרשאות, פשוט אין בקשות כאלה.
- אין יומן נפרד של „התוסף עשה כך וכך“. ההרשאות נראות בכרטיס, ותיקוני הקטלוג נכנסים להיסטוריית הפריטים הרגילה; אם נדרשת בקרה, התחילו מתוסף שניתנה לו הרשאת קריאה בלבד.
- תקרות טכניות: חבילה עד 4 MB, עד 8 כתובות רשת במניפסט, עד 1 MB למפתח אחסון אחד; הרצה בשרת — עד 30 שניות ועד 50 פניות לאינטרנט בבת אחת.
- נתוני התוסף נשארים בענן של המותג שלכם: בחשבון ב-
cenaly.ruמצב החלק השרתי נמצא במתחם הרוסי.
פתרון תקלות#
| סימפטום | בדקו |
|---|---|
| המדור אינו בתפריט | האם הכרטיס „עורכים מותאמים אישית (SDK)“ מופעל בחנות האפליקציות; האם המדור הוצא בסרגל הצד באמצעות הכפתור „📌 לסרגל הצד“ |
| העובד אינו רואה כפתורי התקנה | כך זה אמור להיות: התקנה, מחיקה והרשאות — רק לבעל החשבון |
| „החבילה באחסון אינה תואמת לטביעת האצבע המותקנת. ההפעלה נחסמה“ | קובץ התוסף הוחלף לאחר ההתקנה — התקינו מחדש את העורך כדי לרשום טביעת אצבע חדשה |
| „העורך לא הופעל בזמן (אין connect() תוך 10 שניות)“ | התוסף לא יצר קשר: שגיאה בקוד שלו או שקובץ שגוי נבנה |
| „לא ניתן היה לטעון את חבילת העורך“ | הגרסה אינה זמינה או שהקובץ פגום — התקינו מחדש |
„העורך לא נמצא או כבוי“ במעבר בקישור ?app=… |
התוסף נמחק או כובה בכרטיס |
| „לא ניתן היה לקבל את העורך מ-GitHub“ | המאגר פרטי, אין manifest.json בשורש, אין dist/index.js בתג, או שהתג אינו נקרא לפי המוסכמה v{גרסה} |
| „מותרות רק כתובות localhost / 127.0.0.1“ | מצב מפתח אינו מקבל כתובות חיצוניות במכוון — הרימו את הבנייה באופן מקומי |
| התוסף אינו רואה את הנתונים הדרושים | בדקו את „הרשאות“ בכרטיס; אצל מפתח עם הרשאה, ההרשאות נחתכות בנוסף בחפיפה עם ההרשאה |
| התוסף אינו יכול לפנות לשירות חיצוני | אין רשת ישירה מהסביבה המוגנת: הפנייה נעשית על ידי החלק השרתי, והכתובת חייבת להיות במניפסט |
| „העורך מדווח על שינויים שלא נשמרו. לסגור בכל זאת?“ | התוסף עצמו דיווח על טיוטה — שמרו את העבודה בתוכו לפני הסגירה |
שאלות נפוצות#
האם צריך לדעת לתכנת?#
כדי להתקין גרסה מוכנה — לא. כדי לקבל את הגרסה עצמה — כן: אותה כותב מפתח או סוכן בינה מלאכותית לפי התבנית שלנו בבלוק „פיתוח עם בינה מלאכותית“. המדור הוא כלי לקוד, לא בונה „בעכבר“.
האם תוסף של אחר יכול לראות את הלקוחות או את ההכנסות שלי?#
לא. התוסף פועל בסביבה מוגנת ומקבל נתונים רק דרך הגשר, והגשר יודע בדיוק שישה דברים: קטלוג, מחירים ורשימות חסימה, ספר המלאי, אחסון משל עצמו, קריאה לחלק השרתי שלו ורכיבי ממשק. אורחים, הזמנות, קבלות, נתונים כספיים, עובדים והתכתבויות פשוט אין שם. מה בדיוק מותר לתוסף מסוים תמיד נראה בכרטיס שלו בשורה „הרשאות“.
איך מוסרים את הפיתוח לקבלן בלי לתת לו גישה לכל החשבון?#
פתחו לו חשבון עובד, ואז העניקו הרשאה בבלוק „גישת מפתח“: סמנו רק את ההרשאות הדרושות וקבעו מועד תפוגה (כברירת מחדל 14 ימים, לכל היותר 90). הוא יקבל מצב מפתח ותו לא; התקנת התוסף תישאר בכל מקרה באחריותכם. ההרשאה נשללת בלחיצת כפתור אחת.
האם התוסף יתעדכן מעצמו כשהמחבר יוציא גרסה חדשה?#
לא. את העדכון מפעיל הבעלים: „בדיקת עדכונים“ → „עדכון ל…“. כך גרסה חדשה לא תופיע בחשבון בלי ידיעת אדם — ייתכן שלצד הגרסה השתנו גם ההרשאות המבוקשות.
היכן התוסף שומר את ההגדרות והנתונים שלו?#
בחשבון שלכם, באחסון נפרד תחת המזהה שלו (עד 1 MB למפתח), ובנוסף, אם הוא משתמש בהם, בשדות מותאמים אישית של הכרטיסים שלכם — כל תוסף רואה רק את המרחב שלו. בחשבון ב-cenaly.ru החלק השרתי והמצב שלו נשארים במתחם הרוסי.
במה זה שונה מ-API ומ-MCP?#
API למפתחים ו-MCP של מרכזיית הטלפוניה שלכם נדרשים כשהתוכנית עובדת מבחוץ: אתר משלכם, מערכת חשבונאית של אחר, סוכן בינה מלאכותית. עורך מותאם אישית הוא ההיפך — ממשק בתוך הפאנל: העובד פותח אותו כמו עמוד רגיל בממשק הניהול ולא יוצא מחלון העבודה.
מדורים קשורים#
- חנות האפליקציות — היכן מפעילים את המדור ואת התוספים המובנים
- מלאי — הלשונית שבה חיים תוספים כמו „VetIS“, וספר המוצרים
- ייבוא קטלוג — המסלול הרגיל לטעינת פריטים, אם המשימה היא רק זו
- ויטרינה בקוד שלכם (headless) — חוזה הנתונים הפתוח לאתר חיצוני
- API ו-MCP של מרכזיית הטלפוניה שלכם ו-Guest API לסוכני בינה מלאכותית — עבודה מבחוץ, לא בתוך הפאנל
- עובדים ומשמרות — חשבון למפתח ותפקידים
- אבטחה ונתונים — היכן נשמרים הנתונים ולמי יש גישה אליהם
- תמיכה — לאן לפנות אם התוסף מתנהג באופן חשוד