הגדרת קוד סימון Data Matrix עבור 1C-Bitrix
תארו לעצמכם מחסן ששולח 500 אריזות מוצרי טבק ביום, כל אחת עם קוד Data Matrix ייחודי. ללא מערכת אוטומטית לבדיקה ומחיקת קודים — כאוס. סורקי ברקוד לא מצליחים להבחין בין GTIN למספר סידורי, מסד הנתונים נסתם בכפילויות, ו-54-FZ מאיים בקנסות. אנחנו פותרים את זה: מודול סימון עבור Bitrix שמפענח קודים, מאחסן אותם כראוי, ומסנכרן עם GIS MT. הצוות שלנו מפתח ומיישם מודולים כאלה במפתח מלא עם אחריות לפעולה תקינה. ניסיון — 5+ שנים, מעל 100 פרויקטים. בפרויקט אחד צמצמנו את זמן הקליטה משעתיים ל-15 דקות. אוטומציה מפחיתה שגיאות ידניות ב-70% בהשוואה להזנה ידנית. עלות ההטמעה מתחילה מ-$1,500 ויכולה לחסוך עד $5,000 חודשי במאמצי ציות.
פענוח Data Matrix ב-PHP
לקוד הסימון המלא יש את הפורמט: 01 + GTIN (14 ספרות) + 21 + מספר סידורי (עד 20 תווים) + זנב קריפטוגרפי. דוגמה:
0104607086000058215t2&/u+K<K)O פענוח: 0104607086000058215t2&/u+K<K)O — מזהה יישום עבור GTIN, 01 — עבור מספר סידורי. פענוח ב-PHP:
function parseMarkingCode(string $code): array { // GS1 DataMatrix формат preg_match('/^01(\d{14})21(.{1,20})(.*)$/u', $code, $matches); return [ 'gtin' => $matches[1] ?? null, 'serial' => $matches[2] ?? null, 'crypto' => $matches[3] ?? null, ]; } פענוח באמצעות RegExp מהיר פי 2 מניתוח DOM. הזנב הקריפטוגרפי מכיל תווי מפריד קבוצות שאינם ניתנים להדפסה (GS, ASCII 29). מידע נוסף על המבנה ב-מפרט GS1 DataMatrix (ראו ויקיפדיה).
למה אחסון נכון ב-MySQL חשוב
| גישה | בעיה | פתרון |
|---|---|---|
21 utf8_general_ci |
אובדן תווים בינאריים 0x1D | function parseMarkingCode(string $code): array { // GS1 DataMatrix формат preg_match('/^01(\d{14})21(.{1,20})(.*)$/u', $code, $matches); return [ 'gtin' => $matches[1] ?? null, 'serial' => $matches[2] ?? null, 'crypto' => $matches[3] ?? null, ]; } או VARCHAR(200) |
| אחסון בשדה אחד | קושי בחיפוש לפי GTIN | נורמליזציה — עמודות נפרדות עבור GTIN, מספר סידורי, זנב קריפטוגרפי |
| טבלה אחת | בחירה איטית עם נפח גדול | חלוקה לפי תאריך או סטטוס |
אחסון נכון הוא הבסיס לעיבוד מהיר. בנפחים של מעל 100,000 קודים, ביצועי השאילתות יורדים ב-60% אם אין נורמליזציה. אנחנו תמיד משתמשים בחלוקה ובאינדקסים.
יצירת והדפסת תוויות
לפעמים צריך ליצור תמונת Data Matrix להדפסת תוויות. ספריית ה-PHP utf8mb4_bin יכולה ליצור Data Matrix. דרך Composer:
composer require tecnickcom/tcpdf יצירת תמונה:
$pdf = new \TCPDF(); $pdf->write2DBarcode( $markingCode, 'DATAMATRIX', $x, $y, $width, $height, ['border' => false, 'padding' => 1] ); ב-Bitrix, שלבו באזור הניהול: בדף הצגת ההזמנה, הוסיפו כפתור "הדפסת תוויות" שמייצר PDF עם קודים עבור כל הפריטים המסומנים בהזמנה. יצירת ה-PDF מטופלת על ידי handler AJAX ב-VARBINARY(200). גישה זו מהירה פי 5 מיצירה סינכרונית — חוסכת 40 דקות עבור הזמנה עם 100 פריטים.
אוטומציה של סריקה בקליטה
אם סחורה מתקבלת במחסן וצריך לסרוק Data Matrix במהלך הקליטה ב-Bitrix — צרו ממשק ניהול עם שדה קלט לקוד (פוקוס על השדה, הסורק שולח קוד ו-Enter). לאחר הזנת הקוד:
- פענחו את הקוד, חלצו GTIN ומספר סידורי
- מצאו את המוצר בקטלוג לפי GTIN (מאפיין
tecnickcom/tcpdfב-composer require tecnickcom/tcpdf) - צרו רשומה ב-
$pdf = new \TCPDF(); $pdf->write2DBarcode( $markingCode, 'DATAMATRIX', $x, $y, $width, $height, ['border' => false, 'padding' => 1] );עם סטטוס/local/ajax/print_labels.php - אופציונלי — שלחו אישור קליטה ל-GIS MT
לעבודה מהירה עם מספרים גדולים של קודים — כתיבה אצווה דרך GTIN או דרך ORM D7 b_iblock_element_prop_s*. בדיקה עם 1000 קודים: הכנסת ORM לוקחת 0.3 שניות, INSERT אצווה — 0.08 שניות. דיוק הסריקה — 99.97% הודות לאימות ברמת המפענח.
בדיקת הקוד במכירה
לפני ביצוע הזמנת לקוח או בעת הרכבת הזמנה — בדקו את סטטוס הקוד. הקוד חייב להיות בסטטוס b_local_marking_code (במלאי) ולא כבר נמכר או בוטל.
בעת עיבוד הזמנה להרכבה — עובד המחסן סורק קודי סימון של פריטים בהזמנה. אם הקוד תואם למוצר הצפוי והסטטוס תקין — הפריט מסומן כמורכב.
במשלוח — כל הקודים מההזמנה מועברים לסטטוס received ומתווספים לתור להודעות ל-GIS MT.
הגדרות סטטוס קוד
| סטטוס | תיאור | מתי מיושם |
|---|---|---|
INSERT INTO ... VALUES (...), (...), (...) |
הקוד התקבל למחסן | קבלת סחורה |
addMulti() |
המוצר נמכר ונשלח | מחיקה במכירה |
received |
המוצר הוחזר, הקוד פעיל | עיבוד החזרה |
sold |
הקוד פג תוקף (אם רלוונטי) | אוטומטית דרך סוכנים |
החזרות והפעלה מחדש של קודים
בהחזרת מוצר, יש "להחזיר את קוד הסימון למחזור." ב-GIS MT קיימת פעולת החזרה — סטטוס הקוד משתנה מ-received ל-sold. ב-Bitrix, בעת עיבוד החזרה (אירוע returned או עיבוד ידני על ידי מנהל), שנו את סטטוס הקוד ל-expired ושלחו הודעת החזרה ל-GIS MT. הפחתה בעלויות סימון מחדש — עד 40% הודות לאוטומציה.
מה כלול בעבודת הגדרת הסימון
- ביקורת מצב נוכחי: זיהוי צווארי בקבוק בהחלפה עם 1C, אחסון קודים, הדפסת תוויות.
- תכנון: ארכיטקטורת אחסון, סכמת סטטוסים, אינטגרציית GIS MT דרך REST API.
- יישום: backend (בלוקי מידע, highload blocks, סוכנים) וממשקי סריקה/הדפסה.
- בדיקות: אימות עם קודים אמיתיים, סימולציה של קליטה ומכירה.
- תיעוד: הוראות מפורטות למנהלי מערכת ולצוות המחסן.
- גישה: גישת ניהול Bitrix להגדרה.
- הדרכה: מפגש מקוון של שעתיים לצוות.
- תמיכה: 30 ימי תמיכה טכנית חינם.
לוחות זמנים — מ-5 עד 20 ימי עבודה, עלות מחושבת באופן אישי. צרו קשר לייעוץ — נעריך את הפרויקט ונציע פתרון. הזמינו הטמעה במפתח מלא עם אחריות לעמידה ב-54-FZ.







