Pagina 1 di 2

Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 09/10/2008, 0:25
da annastroz
Ciao a tutti ragazzi,
Dopo aver rinunciato per un po' di tempo, sono tornato armato delle migliori intenzioni, e dopo qualche tempo, seppure lavorando ancora in locale, qualche progresso l'ho fatto.
Premetto che uso oscommerce ver. 2.2 ago 2006, con easy php.
Dunque, il mio problema sono i pagamenti contrassegno, o meglio, il supplemento...

Ho i seguenti metodi di pagamento:
-Bonifico Bancario
-Paypal
-Postepay
-Vaglia Postale
-pagamento alla consegna

E, come metodo di spedizione, utilizzando solo pacco ordinario, ho settato la Table Rate secondo le mie esigenze.
A questo punto ho installato il modulo "Cash on Delivery", impostando sul database solo il prezzo per l'Italia riguardante la voce Table rate (l'unica che mi interessa).
Tutto bene, se non fosse per il fatto che NON MI CALCOLA IL SUPPLEMENTO quando provo a fare un ordine...
Mi sto scervellando, e non ne vengo a capo; ho letto un post nel forum anche recente in cui se ne parlava, ma non ho trovato una soluzione.
Potete darmi una mano?
grazie

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 09/10/2008, 1:35
da marcus
annastroz ha scritto: Potete darmi una mano?
grazie
Probabilmente il tuo modulo ot_cod_fee "non vede" il metodo di spedizione table rate.

Posta tutto il codice del file ot_cod_fee.php che vediamo di risolvere.

Saluti
Marcus

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 09/10/2008, 9:38
da annastroz
Grazie Marcus,

Posto quì di seguito il file:

<?php
/*
$Id: ot_cod_fee.php,v 1.00 2002/11/30 17:02:00 harley_vb Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2002 osCommerce

Released under the GNU General Public License
*/
/********************************************************************
* Copyright (C) 2002 TheMedia, Dipl.-Ing Thomas Plänkers.
* http://www.themedia.at & http://www.oscommerce.at
*
* All rights reserved.
*
* This program is free software licensed under the GNU General Public License (GPL).
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
*********************************************************************/

class ot_cod_fee {
var $title, $output;

function ot_cod_fee() {
$this->code = 'ot_cod_fee';
$this->title = MODULE_ORDER_TOTAL_COD_TITLE;
$this->description = MODULE_ORDER_TOTAL_COD_DESCRIPTION;
$this->enabled = ((MODULE_ORDER_TOTAL_COD_STATUS == 'true') ? true : false);
$this->sort_order = MODULE_ORDER_TOTAL_COD_SORT_ORDER;

$this->output = array();
}

function process() {
global $order, $currencies, $cod_cost, $cod_country, $shipping;

if (MODULE_ORDER_TOTAL_COD_STATUS == 'true') {
$tax = tep_get_tax_rate(MODULE_ORDER_TOTAL_COD_TAX_CLASS);

//Will become true, if cod can be processed.
$cod_country = false;

//check if payment method is cod. If yes, check if cod is possible.
if ($GLOBALS['payment'] == 'cod') {
//process installed shipping modules
if ($shipping['id'] == 'flat_flat') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_FLAT);
if ($shipping['id'] == 'item_item') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_ITEM);
if ($shipping['id'] == 'table_table') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_TABLE);
if ($shipping['id'] == 'ups_ups') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_UPS);
if ($shipping['id'] == 'usps_usps') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_USPS);
if ($shipping['id'] == 'zones_zones') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_ZONES);
if ($shipping['id'] == 'ap_ap') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_AP);
if ($shipping['id'] == 'dp_dp') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_DP);
//satt inn av Pompel
if ($shipping['id'] == 'servicepakke_servicepakke') $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_SERVICEPAKKE);

for ($i = 0; $i < count($cod_zones); $i++) {
if ($cod_zones[$i] == $order->delivery['country']['iso_code_2']) {
$cod_cost = $cod_zones[$i + 1];
$cod_country = true;
//print('match' . $i . ': ' . $cod_cost);
break;
} elseif ($cod_zones[$i] == '00') {
$cod_cost = $cod_zones[$i + 1];
$cod_country = true;
//print('match' . $i . ': ' . $cod_cost);
break;
} else {
//print('no match');
}
$i++;
}
} else {
//COD selected, but no shipping module which offers COD
}

if ($cod_country) {
$order->info['tax'] += tep_calculate_tax($cod_cost, $tax);
$order->info['tax_groups']["{$tax}"] += tep_calculate_tax($cod_cost, $tax);
$order->info['total'] += $cod_cost + tep_calculate_tax($cod_cost, $tax);

$this->output[] = array('title' => $this->title . ':',
'text' => $currencies->format(tep_add_tax($cod_cost, $tax), true, $order->info['currency'], $order->info['currency_value']),
'value' => tep_add_tax($cod_cost, $tax));
} else {
//Following code should be improved if we can't get the shipping modules disabled, who don't allow COD
// as well as countries who do not have cod
// $this->output[] = array('title' => $this->title . ':',
// 'text' => 'No COD for this module.',
// 'value' => '');
}
}
}

function check() {
if (!isset($this->_check)) {
$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_ORDER_TOTAL_COD_STATUS'");
$this->_check = tep_db_num_rows($check_query);
}

return $this->_check;
}
//lagt tilk servicepakke her!!!!
function keys() {
return array('MODULE_ORDER_TOTAL_COD_STATUS', 'MODULE_ORDER_TOTAL_COD_SORT_ORDER', 'MODULE_ORDER_TOTAL_COD_FEE_FLAT', 'MODULE_ORDER_TOTAL_COD_FEE_ITEM', 'MODULE_ORDER_TOTAL_COD_FEE_TABLE', 'MODULE_ORDER_TOTAL_COD_FEE_UPS', 'MODULE_ORDER_TOTAL_COD_FEE_USPS', 'MODULE_ORDER_TOTAL_COD_FEE_ZONES', 'MODULE_ORDER_TOTAL_COD_FEE_AP', 'MODULE_ORDER_TOTAL_COD_FEE_DP', 'MODULE_ORDER_TOTAL_COD_FEE_SERVICEPAKKE', 'MODULE_ORDER_TOTAL_COD_TAX_CLASS');
}

function install() {
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Display COD', 'MODULE_ORDER_TOTAL_COD_STATUS', 'true', 'Do you want this module to display?', '6', '1','tep_cfg_select_option(array(\'true\', \'false\'), ', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_ORDER_TOTAL_COD_SORT_ORDER', '4', 'Sort order of display.', '6', '2', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for FLAT', 'MODULE_ORDER_TOTAL_COD_FEE_FLAT', 'AT:3.00,DE:3.58,00:9.99', 'FLAT: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '3', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for ITEM', 'MODULE_ORDER_TOTAL_COD_FEE_ITEM', 'AT:3.00,DE:3.58,00:9.99', 'ITEM: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '4', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for TABLE', 'MODULE_ORDER_TOTAL_COD_FEE_TABLE', 'AT:3.00,DE:3.58,00:9.99', 'TABLE: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '5', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for UPS', 'MODULE_ORDER_TOTAL_COD_FEE_UPS', 'CA:4.50,US:3.00,00:9.99', 'UPS: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '6', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for USPS', 'MODULE_ORDER_TOTAL_COD_FEE_USPS', 'CA:4.50,US:3.00,00:9.99', 'USPS: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '7', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for ZONES', 'MODULE_ORDER_TOTAL_COD_FEE_ZONES', 'CA:4.50,US:3.00,00:9.99', 'ZONES: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '8', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for Austrian Post', 'MODULE_ORDER_TOTAL_COD_FEE_AP', 'AT:3.63,00:9.99', 'Austrian Post: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '9', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for German Post', 'MODULE_ORDER_TOTAL_COD_FEE_DP', 'DE:3.58,00:9.99', 'German Post: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '10', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for Servicepakke', 'MODULE_ORDER_TOTAL_COD_FEE_SERVICEPAKKE', 'NO:69', 'Servicepakke: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '12', now())");
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Tax Class', 'MODULE_ORDER_TOTAL_COD_TAX_CLASS', '0', 'Use the following tax class on the COD fee.', '6', '11', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())");
}


function remove() {
$keys = '';
$keys_array = $this->keys();
$keys_size = sizeof($keys_array);
for ($i=0; $i<$keys_size; $i++) {
$keys .= "'" . $keys_array[$i] . "',";
}
$keys = substr($keys, 0, -1);

tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in (" . $keys . ")");
}
}
?>

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 09/10/2008, 9:51
da marcus
Non è come pensavo: il modulo table è inserito!

Hai controllato l'ordine dei moduli order total? il supplemento deve venire prima del totale e dopo gli altri (sub totale, tassa, spedizione, supplemento, totale)

Saluti
Marcus

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 09/10/2008, 10:38
da annastroz
allora Marcus,
Il numero d'ordine del modulo in effetti è "4", lo stesso del Totale, come puoi vedere dall'immagine allegata.
Purtroppo il problema è che non riesco a cambiare i valori utilizzando il comando "Edita": cambio il valore, faccio aggiorna, e mi ritorna al valore predefinito. Infatti per cambiare i parametri sia di questo file che della Tabella spedizioni ho dovuto agire tramite mysql, andando a modificare i valori direttamente in tabella del database.
Ma è normale queto?

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 09/10/2008, 18:26
da annastroz
Grazie Marcus,
Grazie al tuo suggerimento ho risolto. Dava fastidio l'ordine, non settato adeguatamente.
Per modificarlo ho agito su databese tramite mysql.
:D

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 09/10/2008, 22:13
da marcus
annastroz ha scritto:Grazie Marcus,
Grazie al tuo suggerimento ho risolto. Dava fastidio l'ordine, non settato adeguatamente.
Per modificarlo ho agito su databese tramite mysql.
:D
Bene :D

Marcus

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 20/02/2009, 16:29
da eros23
Ragazzi io ho lo stesso problema...uso come metodi di pagamento paypal e carta di credito...solo che non capisco dove mettere pagamento con contrasegno...cioè che contribution devo usare? perchè quella normale viene inserita in shipping però se uno non seleziona come metodo di pagamento il contrasegno come fa?

Vi spiego meglio la mia procedura...uno compra con il Corriere e poi al momento del payment paga tramite contrasegno...solo che non si visualzza!!! come mai?? come deve essere impostato dal lato admin?

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 25/09/2010, 1:54
da jerys1974
Ciao a tutti,
sono alle prese con il Ot_cod_fee e non funziona. Ho letto tutto il leggibile sul forum ma non riesco a risolvere il problema. Quando si supera la soglia dell'ordine dove le spese di trasporto diventano gratis, non aggiunge il contributo per il contrassegno. Una cosa ho notato: l'ordine supera la soglia dei € 200 impostati, non paghi le spese di trasporto ma non compare neanche più il tipo di spedizione che si desidera. C'è solo la scritta che le spese di spedizione sono gratuite. E' forse questo il motivo perché non mi calcola il contributo per il contrassegno?
Suggerimenti?

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 25/09/2010, 9:07
da dynamo
ovviamente... quando superi la soglia il cliente non sceglie più nulla visto che lui non deve pagare ;) e visto che la contribution Ot_cod_fee funziona se si seleziona il cod non selezionandolo non si attiva ;)

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 25/09/2010, 12:59
da jerys1974
aspetta,
io ho attivato tutto e funziona tutto perfettamente (se non arrivi alla soglia della promozione). La mia era solo una supposizione:non vede il tipo di spedizione e non carica il contrassegno. Rimane il fatto che se superi la soglia ad esempio dei € 100 per avere la spedizione gratis, il contributo nel pagamento contrassegno non compare e il compratore acquista senza pagare il contributo contrassegno.
In questo post
viewtopic.php?f=3&t=10172
che riguarda una discussione proprio sul file ot_cod_fee.php, ho messo i vari passaggi che ho fatto e senza mai ottenere risultati (e risposte :cry: ).
Sembra che vada tutto bene ma nulla. Ho provato anche a mischiare o a cambiare comunque ordine nel sort order ma nulla.
Idee?

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 25/09/2010, 13:29
da dynamo
prova questa contribution Payment Type Charge

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 25/09/2010, 14:56
da jerys1974
ora ci provo... anche se la versione aggiornata a dicembre 2007 non è più disponibile.
Le faremo sapere :wink:
Grazie

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 25/09/2010, 17:11
da jerys1974
sembra funzioni, anche se ho alcuni problemi con l'iva del supplemento contrassegno. Problema facilmente aggirabile e che proverò a vedere in giro per il forum se c'è una soluzione.
Se metto il calcolo dell'IVA attivo, la spesa del contributo non è di 8 euro ma di 9,60. Sarebbe corretto se non fosse però che mi piacerebbe che l'IVA del contrassegno venisse aggiunta nel campo dell'IVA dove già viene calcolata l'IVA del trasporto e della merce.
Invece mi compare così quando non faccio calcolare l'IVA dal modulo
Sub totale € 107.70
Corriere Espresso (tariffa): 7.00
Contributo spese contrassegno: 8,00 (spese senza IVA)
IVA 20% : 22,98 (manca l'IVA del contributo spese)
Totale: 145,88

Cosi quando calcola l'IVA dal modulo
Sub totale € 107.70
Corriere Espresso (tariffa): 7.00
Contributo spese contrassegno: 9,60
IVA 20% : 22,98 (manca l'IVA del contributo spese)
Totale: 147,48

bah, ora vedrò
Grazie comunque dell'aiuto :D

Re: Problema con il SUPPLEMENTO CONTRASSEGNO..

Inviato: 25/09/2010, 23:43
da dynamo
è il classico problema dell'iva di osc... va fatta una modifica che ho già fatto mille volte su tutti gli shop che installo ma che ovviamente non mi ricordo mai su quale file :D

mi pare che sia sul file del subtotale