Salve a tutti,
ho provato a sviluppare un modulo per effettuare degli sconti calcolandoli in modo "particolare".
Pagando con contrassegno, Bonifico, PayPal, sembra funzionare.
Per la carta di credito invece il pos della banca mi ignora lo sconto facendomi pagare il totale per intero.
Premetto che, nel modulo, il valore totale dell'ordine è modificato come segue:
$order->info['total'] -= $sconto;
Per ovviare al fatto che l'errore potesse essere del modulo che ho scritto io, mi sono istallato un modulo che ho trovato on line:
ot_discount_quant
E mi da lo stesso problema.
Per il pagamento con carta di credito utilizzo il modulo del consorzio triveneto.
Qualcuno può suggerirmi come uscirne?
Problema Sconti
Moderatore: mod Generali
Re: Problema Sconti
Se usi il modulo Ctriv scaricabile da oscommerce.com sezione contrib, il problema è dovuto al fatto che in questa versione del modulo i dati vengono passati al gateway (richiesta PaymentInit), mediante il metodo pre_confirmation_check(), PRIMA che sia effettuata l'elaborazione dei moduli order total.alank ha scritto:Salve a tutti,
ho provato a sviluppare un modulo per effettuare degli sconti calcolandoli in modo "particolare".
Pagando con contrassegno, Bonifico, PayPal, sembra funzionare.
Per la carta di credito invece il pos della banca mi ignora lo sconto facendomi pagare il totale per intero.
Premetto che, nel modulo, il valore totale dell'ordine è modificato come segue:
$order->info['total'] -= $sconto;
Per ovviare al fatto che l'errore potesse essere del modulo che ho scritto io, mi sono istallato un modulo che ho trovato on line:
ot_discount_quant
E mi da lo stesso problema.
Per il pagamento con carta di credito utilizzo il modulo del consorzio triveneto.
Qualcuno può suggerirmi come uscirne?
Questo fa si che qualsiasi sconto venga ignorato semplicemente perchè viene calcolato dopo.
Il problema non si presenta negli altri metodi di pagamento perchè il totale viene processato dopo la chiamata ad order_total.
Prova ad invertire le chiamate nel file checkout_confirmation.php, il problema dovrebbe risolversi.
Marcus
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Visita la demo: http://oscpro.oscommercedev.com/index.php
Grazie mille per l'aiuto.
Purtoppo però ho effettuato la modifica nel file checkout_confirmation.php
alle righe (circa):69
// load the selected shipping module
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);
require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;
mettendole prima della riga 51 circa
// load the selected payment module
require(DIR_WS_CLASSES . 'payment.php');
$payment_modules = new payment($payment);
Ma non è cambiato nulla.
Il POS continua ad ignorare lo sconto.
O forse devo modificare dell'altro?
Grazie mille ancora
Purtoppo però ho effettuato la modifica nel file checkout_confirmation.php
alle righe (circa):69
// load the selected shipping module
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);
require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;
mettendole prima della riga 51 circa
// load the selected payment module
require(DIR_WS_CLASSES . 'payment.php');
$payment_modules = new payment($payment);
Ma non è cambiato nulla.
Il POS continua ad ignorare lo sconto.
O forse devo modificare dell'altro?
Grazie mille ancora
Difficile rispondere senza vedere il codice che usi.alank ha scritto:Grazie mille per l'aiuto.
Purtoppo però ho effettuato la modifica nel file checkout_confirmation.php
alle righe (circa):69
// load the selected shipping module
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);
require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;
mettendole prima della riga 51 circa
// load the selected payment module
require(DIR_WS_CLASSES . 'payment.php');
$payment_modules = new payment($payment);
Ma non è cambiato nulla.
Il POS continua ad ignorare lo sconto.
O forse devo modificare dell'altro?
Grazie mille ancora
Prova a postare il codice del modulo Ctriv, del file checkout_confirmation e del tuo modulo sconti così ci diamo un occhiata.
Marcus
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Visita la demo: http://oscpro.oscommercedev.com/index.php
Rispondo qui sul forum al tuo Pm perchè potrebbe essere utile anche ad altri.
Ho visto il codice e il problema è molto probabilmente quello di cui ti ho scritto ieri.
L'errore è dovuto al fatto che non basta spostare l'istanza
della classe order_total ma occorre anche invocare il metodo process PRIMA della chiamata a pre_confirmation.
Prova a sostituire il codice seguente del file
checkout_confirmation:
con questo in cui ho semplicemente aggiunto la chiamata a process:
Dovrebbe funzionare correttamente.
Marcus
Ho visto il codice e il problema è molto probabilmente quello di cui ti ho scritto ieri.
L'errore è dovuto al fatto che non basta spostare l'istanza
della classe order_total ma occorre anche invocare il metodo process PRIMA della chiamata a pre_confirmation.
Prova a sostituire il codice seguente del file
checkout_confirmation:
Codice: Seleziona tutto
// load the selected shipping module Spostati dalla riga 69
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);
require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;
require(DIR_WS_CLASSES . 'payment.php');
$payment_modules = new payment($payment);
require(DIR_WS_CLASSES . 'order.php');
$order = new order;
Codice: Seleziona tutto
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);
require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;
require(DIR_WS_CLASSES . 'payment.php');
$payment_modules = new payment($payment);
require(DIR_WS_CLASSES . 'order.php');
$order = new order;
if (MODULE_ORDER_TOTAL_INSTALLED) {
$order_total_modules->process();
}
Marcus
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Visita la demo: http://oscpro.oscommercedev.com/index.php