הטמעת שוברי מתנה אלקטרוניים ב-1C-Bitrix: ממוצר ל-PDF

תעודות מתנה בחנות מקוונת הופכות לעיתים קרובות לכאב ראש: קודים כפולים, קופונים שנכשלים, חוסר יכולת לממש חלקית. אנחנו מפתחים ומגדירים תעודות אלקטרוניות על 1C-Bitrix במפתח מלא — מהפקת קודים ייחודיים ועד אינטגרציה עם 1C ופיסקליזציה. הצוות שלנו לוקח על עצמו את כל מחזור העבודה, ומבטיח פעילות יציבה ותמיכה מתמשכת.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הטמעת שוברי מתנה אלקטרוניים ב-1C-Bitrix: ממוצר ל-PDF
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

בעת עיבוד של 500+ הזמנות ביום, יישום מאולתר של תעודת מתנה גורם לבעיות: קודים כפולים, מיילים שאבדו, קופונים שבורים. שכתבנו מודולים עבור 15 פרויקטים — אותן שגיאות הופיעו שוב ושוב: קודים שגויים, מימוש חלקי חסר, בעיות פיסקליזציה. ארכיטקטורה מחושבת היטב מפחיתה את עלויות התמיכה ב-20–30% ומחזירה את ההשקעה תוך 2–3 חודשים. ב-95% מהמקרים, הבעיות נובעות מהגדרת קופון שגויה; זמן התיקון הממוצע לאירוע אחד הוא 4 שעות. הבה נבחן כיצד להגדיר תעודות אלקטרוניות ממוצר ועד יתרה, תוך שימוש במנגנוני Bitrix המובנים והתאמות אישיות.

כיצד להגדיר מכירה של תעודות אלקטרוניות: ממוצר ועד יתרה

תעודה אלקטרונית נוצרת כאלמנט בלוק מידע רגיל, אך עם תכונות מיוחדות. סוג מוצר — מוצר פשוט ללא ניהול מלאי (כמות בלתי מוגבלת, בטל את הסימון "ניהול כמותי"). צור SKUs לפי ערכים: $900M–1300M. לכל SKU יש מחיר משלו השווה לערך הנקוב. הגדר את המאפיין "סוג משלוח" ל"משלוח אלקטרוני" כך שלא תתבקש כתובת במהלך התשלום. בכרטיס המוצר, הוסף מאפיין בלוק מידע "ערך נקוב של התעודה" (סוג — מספר). זה ישמש את ה-handler בעת יצירת הקופון.

כיצד ליצור קודי תעודה ייחודיים

לאחר תשלום מוצלח של ההזמנה, ה-handler של האירוע OnSalePayOrder יוצר קוד תעודה ייחודי באמצעות Bitrix\Main\Security\Random::getString(12) — 12 תווים מ-A-Z, 0-9. לוגיקת ה-handler:

  1. בדוק אם ההזמנה מכילה מוצר מהסעיף "תעודות" (לפי מזהה סעיף בלוק המידע).
  2. צור את הקוד.
  3. צור קופון באמצעות Bitrix\Sale\Internals\DiscountCouponTable::add() המקושר לכלל סל.
  4. שמור את הקוד והערך הנקוב במאפייני ההזמנה (שדות משתמש UF_CERTIFICATE_CODE, UF_CERTIFICATE_AMOUNT).

הקופון נוצר עם סוג "לסדרת הזמנות" וספירת שימוש מקסימלית — זה מאפשר שימוש חלקי. לפי תיעוד Bitrix, קופונים מסוג זה ניתנים לשימוש מספר פעמים עד למיצוי המגבלה.

יצירת ה-PDF

ה-PDF נוצר באמצעות mPDF או Dompdf — כלולים דרך Composer. תבנית המסמך היא קובץ HTML עם החלפת משתנים:

  • קוד השובר
  • הערך הנקוב
  • תאריך הנפקה ותאריך תפוגה
  • קוד QR להפעלה מהירה (נוצר באמצעות chillerlan/php-qrcode או דומה)

תבנית ה-HTML מאוחסנת ב-/local/templates/certificate/ ומכילה סגנונות מובנים (mPDF אינו תומך במלואו ב-CSS חיצוני). תמונת הרקע מוגדרת דרך CSS background-image עם נתיב מוחלט לקובץ על השרת. התוצאה נשמרת ל-/upload/certificates/ עם שם המבוסס על קוד הקופון. הגישה לספרייה מוגבלת דרך .htaccess — הקובץ מוגש רק דרך סקריפט PHP עם בדיקות הרשאות.

שליחה בדוא"ל

אירוע הדוא"ל CERTIFICATE_CREATED נוצר תחת הגדרות → אירועי דוא"ל. תבנית הדוא"ל מכילה:

מאקרו ערך
#CODE# קוד קופון
#AMOUNT# הערך הנקוב
#VALID_UNTIL# תאריך תפוגה
#PDF_LINK# קישור להורדת PDF

השליחה מופעלת מאותו handler OnSalePayOrder לאחר יצירת ה-PDF. הדוא"ל נשלח לכתובת הדוא"ל של הקונה מההזמנה. אם צוינה כתובת דוא"ל נפרדת לנמען בהזמנה ("דוא"ל נמען למתנה"), הדוא"ל משוכפל לכתובת זו.

תעודות אלקטרוניות במקום קופונים

מערכת הקופונים המובנית של Bitrix אינה תומכת ביתרת קופון מחוץ לקופסה. השווה לפתרון מותאם אישית:

פרמטר מערכת קופונים מובנית מודול מותאם אישית
מימוש חלקי לא כן
היסטוריית שימוש לא כן
הצגת יתרה בחשבון לא כן
אינטגרציית 1C קשה, דרך API handlers מוכנים

למימוש חלקי, נדרש שינוי:

  • ה-handler OnSaleOrderPaid בודק אם הקופון שימש בהזמנה ששולמה.
  • אם סכום ההזמנה נמוך מהערך הנקוב, היתרה מחושבת.
  • כלל הסל מתעדכן: סכום הנחה חדש = יתרה.
  • היסטוריית השימוש נרשמת בטבלה נפרדת (טבלה מותאמת אישית b_certificate_usage).

אם סכום ההזמנה שווה או גדול מהערך הנקוב, הקופון מושבת באמצעות DiscountCouponTable::update() עם שדה ACTIVE = N. יתרת הקופון מוצגת בחשבון הקונה באמצעות רכיב מותאם אישית הקורא נתונים מ-b_certificate_usage ומכלל הסל הנוכחי. בפרויקט אחד, יישמנו מנגנון זה עבור רשת קמעונאות אלקטרונית — הוא טיפל ב-3000 פעולות ביום ללא תקלה אחת במשך 3 שנים.

הפעלת התעודה האלקטרונית

מנגנון המימוש פועל דרך מודול sale.discount. בעת יצירת הקופון, נוצר כלל סל:

  • סוג הנחה — סכום קבוע השווה לערך הנקוב של הקופון.
  • קישור — קופון שהקוד שלו תואם לקוד השובר.
  • היקף — כל ההזמנה (או סעיפי קטלוג ספציפיים, אם זה קופון קטגורייתי).

הקונה מזין את קוד הקופון בשדה "קופון" במהלך התשלום. המערכת מחילה הנחה השווה לערך הנקוב.

הגדרת תאריך תפוגה

התפוגה מוגדרת בכלל הסל דרך שדות ACTIVE_FROM ו-ACTIVE_TO. התקופה הסטנדרטית היא 12 חודשים מהרכישה. לאחר התפוגה, הקופון מפסיק לפעול אוטומטית, ובחשבון, הקופון מוצג כ"פג תוקף". כדי לעקוב אחר התפוגה, אנו מגדירים סוכן השולח תזכורת לקונה 7 ימים לפני התפוגה.

מודולים מוכנים מהמרקטפלייס לרוב אינם תומכים במימוש חלקי, אינטגרציית 1C, או התאמה אישית של תבנית PDF. הם עובדים רק עם תרחישי מחיקה של 100%. הצוות המנוסה שלנו מבטיח שפתרון מותאם אישית הוא פי 5 גמיש יותר ממודולים מוכנים, ועלות הפיתוח מתחילה מ-$500. עשינו זאת עבור רשת קמעונאות אלקטרונית — הפתרון חסך להם 30% בעלויות התמיכה והחזיר את ההשקעה תוך חודשיים.

שגיאות הגדרה נפוצות
  • סוג קופון שגוי: "להזמנה אחת" במקום "לסדרת הזמנות" — הקופון מנוצל במלואו.
  • חוסר caching של שאילתות טבלת קופונים — עם 500+ הזמנות, עומס מסד הנתונים גדל פי 10.
  • מזהה סעיף בלוק מידע שגוי ב-handler — יצירת הקוד נכשלת.
  • התעלמות מה-handler OnSaleCancelOrder — בעת ביטול הזמנה, הקוד אינו משוחרר.

מה כלול בשירות

  • פיתוח מודול ליצירת קודים, קופונים והיסטוריית שימוש.
  • אינטגרציה עם מערכות תשלום ו-1C דרך CommerceML.
  • תבנית מסמך PDF עם קוד QR.
  • הגדרת אירוע דוא"ל ושליחת דוא"ל עם קובץ מצורף.
  • מסירת תיעוד וקוד מקור.
  • תמיכה טכנית לחודש אחד לאחר ההשקה.

צור קשר כדי להעריך את הפרויקט שלך — נכין הצעה מסחרית תוך יום עסקים אחד. הזמן פיתוח מודול — לוחות זמנים מ-20 שעות. המהנדסים שלנו מבטיחים פיסקליזציה נכונה ואינטגרציה עם כל מערכות התשלום. קבל ייעוץ לגבי התרחיש שלך.