סיימתי עם מערכת ניהול המלאי של אפל'ה
וואו, אחרי הרבה זמן, סיימתי סוף סוף עם המערכת, היא עובדת (טוב מאוד!) וזה ממש כיף לראות איך זה משפר את העסק.
איך המערכת עובדת
יש שני תהליכים שקשורים למלאי, הראשון זה תהליך עדכון מוצרים שהוא תהליך אוטומטי, השני תהליך וידוא המידע וכלים לתיקון והתנהלות עם המלאי.
תהליך עדכון מוצרים
אפליקציית סקרייפינג שכתובה ב-NodeJS עוברת על URLs שמוגדרים בקובץ ספציפי בגוגל שיטס. האפליקציה עוברת מוצר מוצר ובודקת אם המידע שיש לה בדאטהבייס הוא עדכני, אם לא היא מעדכנת את המוצר. בסוף התהליך האפליקציה מוציאה את כל המוצרים שהשתנו לוובהוק.
וובהוק מטריג סנריו במייק, בסנריו הזה יש גם את התהליך הישן (שמעדכן גוגל שיטס, שמעדכנים את האתר של אפל'ה דרך תוסף WP-ALL-IMPORT) הסנריו עובר על המוצרים ובודק אם הם נמצאים בטבלה באיירטייבל, ואם הם מסומנים לעדכון.
אם כן, הסנריו מעדכן אותם, ואם יש שגיאות הוא רושם אותם באיירטייבל, אחרי עדכון מוצר בטבלה באיירטייבל, הוא מסומן כמוצר שלא מסוכנרן עם המלאי באתר.
בסוף הסנריו עם הוובהוק, יש קריאה לסנריו אחר במייק שתפקידו לעדכן מוצרים מאיירטייבל לוורדפרס ולפייפדרייב (ובהמשך למקומות אחרים אם נצטרך).
הסנריו לוקח מאיירטייבל את כל המוצרים שמסומנים כלא מסונכרנים ומעדכן אותם בוורדפרס ופייפדרייב, לאחר עדכון מוצלח הוא מסמן את אותו מוצר כמסוכנרן.
זהו, המוצרים מעודכנים באתר.
תהליך וידוא מוצרים
פחות תהליך ויותר סדרה של כלים ומתודות להתנהלות נוחה עם המלאי.
הנה האנדפוינטים שבניתי:
- השוואת מק"ט בודד
- בדיקת URL
- עדכון מוצרים
- מלאי פנימי
- תיקון menu_order
- מחיקת מוצרים לא במלאי
באמצעותם אני יכול בקלות לבדוק מה מצב המוצרים באתר, בין אם זה מק"טים באתר שלנו מול האתר של הספק שלנו ובמידה ויש הבדל, המערכת מציגה את ההבדל ובקלות אפשר לשלוח עדכון לאנדפוינט נוסף של עדכון המוצרים.
כך שממש בקלות אפשר לתקן בעיות, שתמיד קורות.
בנוסף, יש מערכת שלמה שמתייחסת למלאי הפנימי באתר, האנדפוינט של מלאי פנימי מאפשרת לעבור מהר על כל המוצרים באתר, היא שומרת בדאטהבייס את המידע, כך שאפשר לגשת אליו מתי שצריך.
הבדיקה היא האם הזמן אספקה והמחיר תואמים ל-menu_order של אותו מוצר, ה-menu_order הוא מספר עם 6 ספרות, כשהספרה הראשונה מתייחסת לזמן אספקה בייצוג מספרי (1-7) ושאר חמשת הספרות מתייחסות למחיר, אם המחיר הוא רק 4 ספרות הספרה השנייה 1X4300 תהיה פשוט 0 -> 104300.
אנדפוינט אחר פשוט עושה תיקון לכל המוצרים "השבורים" באתר, הוא לוקח את המידע שכבר קיים ופשוט עובר על כל המק"טים ומתקן אותם לפי המחיר והזמן אספקה.
בנוסף, אנדפוינט של מחיקת מוצרים שלא במלאי, מאפשר לעשות את זה בצורה מהירה. הסיבה שזה קיים היא שלפעמים ווקומרס מציג מוצרים שלא במלאי בפרונט של האתר, אז כדי למנוע מכירת מוצרים שלא במלאי, אנחנו פשוט מוחקים אותם.
אוטומציה לתהליך וידוא מוצרים
משהו חדש שעשיתי לאחרונה הוא אוטומציה לתהליך וידוא מוצרים, ואני ממש מבסוט על זה.
בהתחלה בהתחלה, הייתי עובר ממש ידנית על המוצרים, בודק שהכל תקין, עובר על המוצרים באתר ומוודא שהמחיר טוב, נכנס לאתר של הספק שלנו ומוודא מק"ט מק"ט שהמידע זהה.
השלב הבא היה ליצור אנדפוינטים שמקלים עליי לבצע את הוידוא של המוצרים.
השלב האחרון, היה לעשות סנריו במייק שפשוט עושה במקומי את כל הדבר הזה.
בעצם הסנריו קורא לאנדפוינטים, רושם במשתנה את התשובה של כל אנדפוינט ובסוף מאגד הכל ושולח לי מייל מסודר על מצב המוצרים באתר, ככה שאני אפילו לא צריך לבדוק באופן "ידני" איזה מוצרים לא במלאי לדוגמה, זה קורה לבד ושולח לי עדכון במייל.
מה היה לפני?
בטח שאלת את עצמך מה היה לפני המערכת שהוצגה כאן? שאלה טובה!
אני אפרט כאן ב-outline את המערכת שלפני ומערכת של עכשיו
המערכת הקודמת
תהליך ראשון:
- טריגר שנקבע ב-AWS מטריג סקרייפר
- סקרייפר מוציא מק"טים לסנריו במייק
- הסנריו במייק רץ על המק"טים שעוברים בראוטר לפי קטגוריה ולפי מוצר
- כל שלוחה של הראוטר בודקת מידע בטבלת גוגל שיטס לפי אותה קטגוריה
- מעדכנת את המק"ט בטבלה של אותה קטגוריה
תהליך שני:
- פלאגין WP ALL IMPORT באתר עם תהליך IMPORT לכל קטגוריה
- טריגר שנקבע לכל תהליך IMPORT בנפרד מטריג את התהליך (פעמיים ביום)
- התהליך ניגש לטבלת גוגל שיטס ולוקח את המידע על כל מק"ט
- אם היה שינוי מעדכן את המוצר באתר
- מוציא קובץ לוג כקובץ טקסט אחד ארוך
מאפיינים:
- אין אפשרות לעשות מניפולציה על המחיר או על זמן האספקה של המוצרים
- אין אפשרות לקבוע באופן אחיד מתי התהליך רץ
- כל קטגוריה היא בתת-תהליך משל עצמה
- קשה לעלות על שגיאות ולדעת מה קרה
המערכת הנוכחית
תהליך:
- טריגר שנקבע במקום אחד (סנריו במייק) מטריג את הסקרייפר
- סקרייפר מוציא מק"טים לסנריו במייק
- הסנריו רץ על המק"טים ובודק כל מק"ט האם הוא תקין
- אם כן – מעדכן באיירטייבל את הערכים החדשים, כולל סימון שהמק"ט יצא מסנכרון
- אם לא – מעדכן באיירטייבל שהייתה שגיאה, ומשאיר את הערכים הישנים
- בסיום העדכון, הסנריו מטריג סנריו נוסף
- הסנריו השני שולח בקשה לאיירטייבל לכל המק"טים שלא מסונכרנים
- עובר על כל מק"ט ומעדכן אותו באפליקציות השונות (ווקומרס ופייפדרייב כרגע)
- אחרי שהמק"ט התעדכן בהצלחה באפליקציות הוא מסמן אותו באיירטייבל שהמק"ט מסונכרן
מאפיינים:
- בטבלה באיירטייבל יש אפשרות לעשות מניפולציה פשוטה על המחיר ועל זמן האספקה וזה משפיע מיד
- תהליך אחד ולא שתיים נפרדים, ומקום אחד שמטריג את התהליך בצורה שקל לשלוט עליה
- כל המוצרים והקטגוריות מרוכזות במקום אחד – איירטייבל, עם אפשרות סינון לפי מה שרוצים
- שגיאות נרשמות בצורה ברורה כך שאפשר לעקוב אחרי השגיאה ולהבין מה קרה