Strona główna forum Wsparcie Moduły i dodatki Moduł PayU - problem z doliczeniem rabatu

Moduł PayU - problem z doliczeniem rabatu

Wszystko o modułach i dodatkach dla Magento...


Posty: 28
Gadu-Gadu: 0

Witam,

Chodzi o plugin_magento_160 v_1.8.2 udostępniony przez PayU tutaj: https://github.com/PayU/plugin_magento_160.

Problem polega na tym, że po zastosowaniu kuponu rabatowego kwota przekazana do PayU nie jest pomniejszona o wartość rabatu.

Wysłałem zapytanie do PayU i otrzymałem taką odp:

Plugin przygotowany został do PayU do współpracy z podstawową funkcjonalnością platfomy sklepowej i nie obsługuje rabatów.
Zgodnie z licencją GPL pluginu mogą Państwo ingerować w jego kod źródłowy dostosowując go do swoich potrzeb.
--
Rabat na cały koszyk dziala tak, że należy obliczyć wartość koszyka (wszystkie ceny 100%), a w polu DiscountTotal podać kwotę całkowitą rabatu (w groszach).

https://github.com/PayU/plugin_magento_ ... ayment.php

należałoby dodać DiscountTotal do sekcji:

 // assigning the shopping cart
        $shoppingCart = array(
            'GrandTotal' => $this->toAmount($grandTotal),
            'CurrencyCode' => $orderCurrencyCode,
            'ShoppingCartItems' => $items
        );



Niestety nie mogę sobie z tym poradzić, próbowałem na kilka sposobów, których nie będę opisywał tutaj, ponieważ żaden z nich nie zadziałał.

Z góry dzięki za wszelką pomoc.

Pzdr.

Moduł PayU - problem z doliczeniem rabatu

PostTeraz jest 29 mar 2024, o 01:49
Google

Posty: 427
Lokalizacja: Internet


Posty: 1575
Gadu-Gadu: 0

próbowałeś instalować http://orba.pl/moduly-magento-1/payu-pl ??
hosting-magento.pl / magentohosting.eu - szybki hosting Magento
https://www.mage24.pl/ - twój sklep Magento 2 w 5 minut


Posty: 28
Gadu-Gadu: 0

Cześć kkkonrad,

Dzięki za info, kiedyś instalowałem ten moduł przy innym wdrożeniu, ale nie do końca sprawdził się, sorry ale nie do końca pamiętam powodów.
Być może został już ulepszony i jest wszystko OK, tak jeśli nie uda się rozwiązać problemu z wtyczką od PayU - a rozwiązanie bardzo mnie interesuje :) - to spróbuję z ORBA PayU.

Jednym z rozwiązań jakie użyłem było zdefiniowanie zmiennej $discount która to miała przekazać wartość całego rabatu w groszach - w liczbie ujemnej.
np dla 1,50zł byłoby to -150.

Dodałem taki kod, który wykonywany w koszyku (totals.phtml) - dawał bardzo dobry efekt bo wypluwał mi właśnie to o co mi chodziło.

$totals = Mage::getSingleton('checkout/session')->getQuote()->getTotals(); //Total object
      
      if(isset($totals['discount']) && $totals['discount']->getValue()) {
      $discount = ($totals['discount']->getValue()) * 100; //Discount value if applied
      } else {
      $discount = 0;
      }

Wstawiłem więc powyższy kod do /app/code/local/PayU/Account/Model/Payment.php.

Natomiast poniższy fragment kodu również z pliku Payment.php zmieniłem z:
 $shoppingCart = array(
            'GrandTotal' => $this->toAmount($grandTotal),
            'CurrencyCode' => $orderCurrencyCode,
            'ShoppingCartItems' => $items
        );


na:
$shoppingCart = array(
            'GrandTotal' => $this->toAmount($grandTotal + $discount),
            'CurrencyCode' => $orderCurrencyCode,
            'ShoppingCartItems' => $items
        );



No i o ile w podsumowaniu koszyka wyświetla mi się to co chciałem uzyskać: -150, to już po przejściu wszystkich kroków i wskoczeniu do PayU - nie :/

Problem leży na 100% w tym fragmencie:
$totals = Mage::getSingleton('checkout/session')->getQuote()->getTotals(); //Total object
      
      if(isset($totals['discount']) && $totals['discount']->getValue()) {
      $discount = $totals['discount']->getValue(); // Kwota rabatu w PLN
      } else {
      $discount = 0;
      }

Ponieważ, gdy zmieniłem to na:
$totals = Mage::getSingleton('checkout/session')->getQuote()->getTotals(); //Total object
      
      if(isset($totals['discount']) && $totals['discount']->getValue()) {
      $discount = -90;
      } else {
      $discount = 60;
      }

Zadziałało i zwiększyło mi kwotę zakupu już po przejściu do PayU o 60zł.


Posty: 28
Gadu-Gadu: 0

kkkonrad, skorzystałem z Twojej sugestii i zainstalowałem ORBA PayU, jednak jest problem.

Po zatwierdzeniu zamówienia przekierowuje mnie na stronę PayU gdzie wyświetla mi się:

Przepraszamy, nie udało się utworzyć transakcji (kod błędu: 209)
Prosimy o kontakt ze sklepem i podanie numeru błędu.


A url strony wygląda następująco:

https://www.platnosci.pl/np/error.action?error=209


Posty: 28
Gadu-Gadu: 0

Wszystko jasne - problem wystąpił z mojej winy - w panelu PayU ustawiłem Checkout - Płatności - Express Payment, a powinno być Płatności - Express Payment - bez checkout.
Moduł od ORBA śmiga bardzo dobrze i uprasza cały proces płatności - dlatego nie będę kombinował z modułem od PayU bo ORBA wymiata - a do tego mają świetny support ;)


Powrót do Moduły i dodatki