שלום וברכה
בעיה כל הנושא הזה - מצד אחד זה לא קשור לטרנזילה ומצד שני כן...
עברתי בימים האחרונים על עשרות אתרי דרופל עם אוברקארט ולא שיש בודדים - ראיתי אחד עם תשלומים - כאשר המוצר מוגדר מראש בכמות התשלומים.
אני מנסה להבין אם הדרך הנכונה לממש תשלומים באוברקארט מול טרנזילה זה להגדיר שדות CCK במוצר על פי השדות שיש בטרמינל שלהם.
אז ניסיתי - הגדרתי במוצר שדות CCK
fpay
spay
npay
cred_type
טרנזילה רוצים שזה יהיה על פי הנוסחה - תשלום ראשון+תשלום שניXמספר תשלומים=סכום
אז כל מוצר שארצה אותו בתשלומים יהיה מחושב מראש - למשל במוצר שיצרתי בשווי 8 שח הערכים לשדות ה CCK במוצר יהיו
fpay=2
spay=2
npay=2
cred_type=8
8 אומר עסקת תשלומים
הסליקה עוברת בהצלחה אך בטרמינל אני לא רואה את העסקה כתשלומים והשדות האלו לא אוכלסו אז הסקתי שזה לא נשלח בכלל - אני כנראה אמור להוסיף במודול שישלח גם את השדות האלו.
יש לי כמה שאלות :)
1 הדרופל מוסיף field_ לשם השדה או שאני מדמיין ?
2 איך אני יכול לדעת האם השדות האלה זמינים לי כמשתנים בכלל לקרוא להם ? ( בדקתי בדרך שאולי לא קשורה - דרך המיקומים של PATHAUTO ויש PATTERN לכל אחד מהשדות האלו - זה אומר שהם זמינים ?? )
3 זה נכון בכלל ליצור את השדה הזה מסוג INTEGER ושייוצג כ UNFORMATTED ( הוא לא בהרשאה לאף אחד )
4 אני עוד לא מבין לעומק את הקוד במודול (המודול המחודש ) - האם אני מוסיף את השדות שאני רוצה לשלוח תחת : Build the GET data for the transaction.
אשמח לכל עזרה - נפשית בעיקר.
1 הדרופל מוסיף field_ לשם
לא דמיינת. בדרופל 6 כל השדות של CCK הם FIELD_XXX
אני לא בטוח שאני מבין. אבל הם נמצאים ב- node, כלומר את יכול לעשות node_load() ולשלוף אותם מהאובייקט.
נשמע שאין בעייה עם זה. אולי תעשה DECIMAL שתוכל גם להכניס מספרים לא שלמים.
בעיקרון כן. יותר טוב אם תכתוב פאצ', שמפעיל הוק, שיאפשר למודול שלך לדחוף את המידע שלו. תעלה את הפאצ', אני אכניס אותו לקוד וכולם ירוויחו.
בהצלחה.
אמתי -- חברת גיזרה
הי אז אני חייב לשנות במסוף גם
הי
אז אני חייב לשנות במסוף גם שהשם יופיע עם field_
צודק לגבי decimal 1.5 לא עובד :)
שמע אני רחוק שנות אור מלכתוב שורת קוד אחת שלא לדבר על פאטץ - יש לי קצת לוגיקה, הרבה זמן לנסיונות אבל מקסימום להבין את המבנה ולהבין איפה להוסיף.
אני לא ממש יודע לחבר את זה: (נניח ואלה השמות שבחרתי)
field_fpay=X
field_spay=X
field_npay=X
field_cred_type=8
לזה
// Build the GET data for the transaction.
$submit_data = array(
// Merchant Information.
'supplier' => variable_get('uc_tranzila_supplier', ''),
// Transaction Information.
'sum' => uc_currency_format($amount, FALSE, FALSE, '.'),
'ccno' => $order->payment_details['cc_number'],
'expmonth' => sprintf("%02s", $order->payment_details['cc_exp_month']),
// we only need the 2 digits, the sprintf is redundant, but i did it for month so why not year.
'expyear' => sprintf("%02s", substr($order->payment_details['cc_exp_year'], -2, 2)),
'mycvv' => $order->payment_details['cc_cvv'],
'currency' => $currency,
והפאטץ לא יתאים לכל אחד כי זה תלוי האם יצרת את השדות במוצר נכון והאם השמות זהים.
תודה
מידע נוסף שלא קשור לקוד. אם
מידע נוסף שלא קשור לקוד.
אם זו הנוסחה של טרנזילה
sum=Fpay + Spay X Npay
האם הדרך הנכונה לחשב מה להציב בשדות האלו במוצר היא
sum / Npay / 2 = Fpay and Spay values
למשל מוצר שארצה לגבות עליו 5000 שח ב 5 תשלומים
5000 / 5 / 2 = 500
500 + 500 * 5 = 5000
בשדות במוצר מציבים
fpay=500
spay=500
npay=5
cred_type=8
את הסכום מגדירים 5000
זה מבלבל - זו אמורה להיות עסקה של 5 תשלומים של 1000 וזה נראה כאילו תשלום ראשון 500 ותשלום שני 500
עניין נוסף זה נושא של הגבלת כמות רכישה של מוצר כזה - מה אם מישהו מוסיף לעגלה 2 מוצרים כאלה ?
נראה לי שחובה להפעיל את RESTRICT_QTY ב פיצ'ר של המוצר כדי לא לדפוק את החישוב.
אלוהים אני אשתגע !
האם החלק הזה ב README נסמך על
האם החלק הזה ב README נסמך על כך שיצרתי שדות CCK בשמות אלו
5) Under "Field name on Form" and "Field name on Screen" add:
order_id | Order ID
description | Description
billing_fullname | Billing full name
billing_country | Billing country
delivery_country | Delivery country
אם כן - וזה הקוד במודול:
// Non-tranzila data that we pass, and should be grabbed, if user set it up.
// Order ID.
'order_id' => $order_id,
// Product description.
'description' => implode(', ', $description),
// Customer Information.
'billing_fullname' => $order->billing_first_name . " " . $order->billing_last_name,
'billing_country' => !empty($billing_country) ? $billing_country : '',
'delivery_country' => !empty($delivery_country) ? $delivery_country : '',
איך אני שולף את המשתנים שיצרתי - האם כמו שנשלף ה DESCRIPTION עם IMPLODE ?
האם זה פשוט כמו :
'field_fpay' => implode(', ', $field_fpay),
'field_spay' => implode(', ', $field_spay),
'field_npay' => implode(', ', $field_npay),
'field_cred_type' => implode(', ', $field_cred_type),
או ששלוש בבוקר ועדיף שאלך לישון ?
עדיף שתלך לישון... :)
עדיף שתלך לישון... :)
אמתי -- חברת גיזרה
טוב, בור בקוד כבר אמרתי
טוב, בור בקוד כבר אמרתי :)
בכל זאת איך מוצאים לזה פתרון ?
האם אפשר לבקש את זה כפיצ'ר ריקווסט ממישהו או משהו כזה?
להבנתי למרות שזה מוגדר במוצר זה חייב לבוא במודול טרנזילה.
זה באמת יכול לשמש את כולם ואני לא ממש מבין את טרנזילה כאן - אמור להיות אינטרס שלהם - יותר עסקאות - יותר כסף לא?
מצד אחד שאלו בנימוס אם קיבלתי את המודול מהם :)
אבל יאמר אולי לזכותם ששאלות ספציפיות ששאלתי כן נענו.
remember to send payments using this formula: First pay + Next pay * No. of pay = Sum
cred_type=8 is a must