dienesdavid Posted December 3, 2013 Share Posted December 3, 2013 Sziasztok! Ügyfelem alacsony egységárú termékeket értékesít. Pl. nettó 0.06 euró bruttó 0.0762 euró Ebből százasával lehet rendelni, tehát pl. 100 db-ot bruttó 7.62 euróért. Azonban a Paypal-nak nem az összesen ár, hanem az egységár kerül átadásra. A probléma pedig az, hogy a PayPal euró esetén max két tizedes jegyet fogad el. Ha ennél többet küldünk, akkor a következő üzenet jön: 1. PayPal response: 2. TIMESTAMP -> 2013-11-22T08:41:54Z 3. L_ERRORCODE0 -> 10431 4. L_SHORTMESSAGE0 -> Transaction refused because of an invalid argument. See additional error messages for details. 5. L_LONGMESSAGE0 -> Item amount is invalid. 6. L_SEVERITYCODE0 -> Error Vagyis a 0.0762 euró helyett 0.08 euró kerül át PayPal-ba mint egységár, ami 100 db termék esetén 8.00 euró, vagyis a vevő 0.38 euróval többet fizet mint amit a Prestában elfogadott (7.62 euró). 1.000 vagy 10.000 db termék esetén pedig 3.8, illetve 38 euróval fizet többet! Rém kellemetlen visszautalni a pénzt. Forint esetén hasonlóan rossz a helyzet. A lenti linken olvasható, hogy július 9. óta nem fogadnak el tizedest: https://developer.paypal.com/webapps/developer/docs/classic/release-notes/merchant/PayPal_Merchant_API_Release_Notes_104/ Vagyis a nettó 6 Ft-os termék, bruttó 7.62 Ft, ami megint csak a fenti piros hibaüzenet generálja a PayPal-nál. Ha az árat úgy próbáljuk meghatározni, hogy a bruttó kerek legyen (mondjuk 8,00 Ft), akkor a nettó lesz tizedes (6,30 Ft). Mivel külföldi EU-adószámos vevő esetén nincs ÁFA, ezért a nettó árat fizeti, vagyis akkor is piros hiba lesz. A 100-as csomagokban való értékesítést javasoltam az ügyfélnek, ez 10.000 termék esetén max fél euró eltérést jelent, de egyelőre ragaszkodnak a darabonkénti értékesítéshez. Kérdésem, hogy van-e valakinek tapasztalata alacsony egységárú termékek értékesítésével, akár PayPal-lal vagy egyéb modullal? Előre is köszönöm, Dávid Link to comment Share on other sites More sharing options...
PapaDoc Posted December 8, 2013 Share Posted December 8, 2013 Biztosan a PayPal (a fogadó) a hibás? A defines.inc.php ez a sor define('_PS_PRICE_DISPLAY_PRECISION_', 2); hogy néz ki? Ja és ennek van VAT round változója is valahol Link to comment Share on other sites More sharing options...
dienesdavid Posted December 8, 2013 Author Share Posted December 8, 2013 Szia PapaDoc! Igen, a defines.inc.php pont úgy néz ki. A kerekítés amúgy itt történik: modules\paypal\express_checkout\process.php $fields['L_PAYMENTREQUEST_0_AMT'.$index] = Tools::ps_round($product['price_wt'], $this->decimals); Ha itt ideiglenesen módosítom a $this->decimals -t mondjuk 4-re, akkor a PayPal-nak összeállított string-ben ragyogóan megjelenik 4 tizedessel az AMT0-s paraméter, de a PayPal a fenti piros hibával visszadobja. Ft esetén pedig már akár egy tizedes esetén is hibát dob. Pl. 100 db 12.7 Ft-os termék vásárlás esetén: &L_PAYMENTREQUEST_0_AMT0=12.7 &L_PAYMENTREQUEST_0_QTY0=100 &PAYMENTREQUEST_0_PAYMENTACTION=Sale &PAYMENTREQUEST_0_CURRENCYCODE=HUF &PAYMENTREQUEST_0_SHIPPINGAMT=0 &PAYMENTREQUEST_0_ITEMAMT=1270 &PAYMENTREQUEST_0_AMT=1270 Ez piros hibát okoz a PayPal-ban (error code 10431). Köszi, Dávid Link to comment Share on other sites More sharing options...
PapaDoc Posted December 8, 2013 Share Posted December 8, 2013 Ez disznóság a PayPal kipusztította a fillért! Link to comment Share on other sites More sharing options...
costi43 Posted December 12, 2013 Share Posted December 12, 2013 :D hol van man a filer, meg a bani, en pert nyertem a roman apekel a 4 tizedes miat, nem letezik csak ket tized a leg tobb penz nemben 1 Link to comment Share on other sites More sharing options...
dienesdavid Posted December 12, 2013 Author Share Posted December 12, 2013 Ha nem létezik fillér, akkor mennyi a 6.- Ft + ÁFA? A következő megoldást találtam ki, ami nem szépségdíjas, de legalább a vevő nem érzi magát átverve, legfeljebb némileg összezavarva... modules\paypal\express_checkout\process.php: /* $fields['L_PAYMENTREQUEST_0_AMT'.$index] = Tools::ps_round($product['price_wt'], $this->decimals); $fields['L_PAYMENTREQUEST_0_QTY'.$index] = $product['quantity']; $total = $total + ($fields['L_PAYMENTREQUEST_0_AMT'.$index] * $product['quantity']); */ $fields['L_PAYMENTREQUEST_0_AMT'.$index] = Tools::ps_round($product['price_wt'] * $product['quantity'], $this->decimals); $fields['L_PAYMENTREQUEST_0_QTY'.$index] = 1; $total = $total + ($fields['L_PAYMENTREQUEST_0_AMT'.$index]) ; Vagyis minden tétel 1 db-ként megy át a PayPal-ba, az egységárat pedig felszorzom a darabszámmal. Azért keressük tovább a szebb megoldást.... 2 Link to comment Share on other sites More sharing options...
PapaDoc Posted December 12, 2013 Share Posted December 12, 2013 :D hol van man a filer, meg a bani, en pert nyertem a roman apekel a 4 tizedes miat, nem letezik csak ket tized a leg tobb penz nemben akkor már mondani sem szabad, hogy noroc si bani (si moarte intre tigani) Link to comment Share on other sites More sharing options...
costi43 Posted December 12, 2013 Share Posted December 12, 2013 akkor már mondani sem szabad, hogy noroc si bani (si moarte intre tigani) de azt lehet... foleg az utobit!!!!! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now