Call For Pricing / Negotiable Pricing

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Call For Pricing / Negotiable Pricing

Messaggio da Spiderweb »

Ciao a tutti,
stavo provando questa contribution "Call For Pricing / Negotiable Pricing" (http://addons.oscommerce.com/info/2500) ma ho trovato un errore e non riesco ad andare avanti :cry:

Questa contribution serve nel caso si metta in vendita un prodotto con un prezzo non definito (nel mio caso se va creato su ordinazione, seguendo l'esempio del prodotto esposto ma modificato in base all'esigenza del cliente), a quel punto al posto del prezzo appare la scritta "Prezzo su richiesta".
Per farla funzionare basta inserire, dal lato admin, la cifra 999999 come prezzo.

La contribution deve funzionare in diverse pagine, tra cui la vetrina, i nuovi prodotti, la pagina del prodotto, la recensione ecc...

A me il problema lo dà nella pagina delle novità, cioè la product_new.php...
infatti non solo mostra il prezzo ma fa anche aggiungere il prodotto al carrello!!! (alla modica cifra di € 999,999.00)

Vi posto il codice da inserire in quella pagina e spero che qualcuno capisca dove sta l'errore:

in catalog-products_new al posto di:

<td valign="top" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br>' . TEXT_MANUFACTURER . ' ' . $products_new['manufacturers_name'] . '<br><br>' . TEXT_PRICE . ' ' . $products_price; ?></td>
<td align="right" valign="middle" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_NEW, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products_new['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) . '</a>'; ?></td>

bisogna mettere:

<td valign="top" class="main"></td>
<td valign="top" class="main"><?php
// echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br>' . TEXT_MANUFACTURER . ' ' . $products_new['manufacturers_name'] . '<br><br>' . TEXT_PRICE . ' ' . $products_price;
?></td>
<td align="right" valign="middle" class="main"><?php
if($products_price == '$999,999.00')
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br><br>' . TEXT_PRICE . ' ' . $lc_text = TEXT_CALL_FOR_PRICE; ;
}
else
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br><br>' . TEXT_PRICE . ' ' . $products_price;
}
?></td>
<td align="right" valign="middle" class="main"><?php
if($products_price == '$999,999.00')
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_NEW, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products_new['products_id']) . '">' . '</a>';
}
else
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_NEW, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products_new['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) . '</a>';
}
?></td>


Ho già provato a mettere € al posto di $ ma senza risultati, così come a mettere uno spazio tra € e il 9..... ho anche provato con prezzi diversi ma niente :twisted:

Adesso sono nelle vostre mani 8)
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
capoitaly
membro Junior
membro Junior
Messaggi: 22
Iscritto il: 16/02/2007, 16:55

Messaggio da capoitaly »

Anche io avevo avuto parecchi problemi, tant'è che l'avevo abbandonata.
Se non sbaglio il problema era il modo in cui la cifra veniva scritta nel db.
Prova a vedere per quell'oggetto qual'è il prezzo sul db e in che modo viene scritto (virgole, punti...)
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

Grazie per la risposta!
Provo a seguire il tuo suggerimento e poi se trovo la soluzione la posterò sicuramente.
Poi sei riuscito a installarla oppure ne hai trovata una simile?

Ciao, Stefano :)

EDIT:

Allora.... nel database il prezzo è registrato così: 999999.0000

Ho provato a metterlo nel codice e naturalmente non funziona, nè nella parte dei nuovi prodotti nè in quella delle recensioni, funziona invece benissimo nella descrizione del prodotto.
Ho anche modificato il database perchè registri i prezzi con 2 cifre dopo il punto invece che 4.

Nella contribution c'è scritto che chi usa l'Euro deve sostituire nel codice $999,999.00 con 999.999,00EUR... e non funziona ugualmente.
All'inizio ho modificato Oscommerce per far visualizzare i prezzi nel formato € xxx invece che xxxEUR, provato anche quel formato ma senza risultati.
Ho fatto tutte le prove che mi sono venute in mente, spostando punti -virgole - simbolo dell'euro ecc.... sto diventando matto! :?

In poche parole il problema sta tutto in questa parte:

if($products_price == '$999,999.00')

e anche in:

tep_get_tax_rate($review['products_tax_class_id'])) == '$999,999.00')

mentre queste funzionano bene:

if ($new_products['products_price'] == 999999)
if ($product_info['products_price'] == 999999)
if ($listing['products_price'] == 999999)
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

Proprio nessuno è riuscito a far funzionare questa contribution con l'Euro???? :roll:

Proverò a postare anche sul forum di Oscommerce.com per vedere se ricevo risposte, forse da chi l'ha creata.
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Spiderweb ha scritto:Proprio nessuno è riuscito a far funzionare questa contribution con l'Euro???? :roll:
Io l'ho fatta funzionare modificando il 99999 con lo 0, ma sarebbe lo stesso.
La cosa che va cambiata e' il richiamo a $products_price che viene formattata mentre utilizzando $products['products_price'] la contrib funziona senza bisogno di inserire euro o dolari vari.
In poche parole bisogna utilizzare come confronto un valore che non sia ancora passato per la funzione display_price

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

Con lo 0 avevo provato pure io ma non funzionava ugualmente.

Grazie Bass per la risposta, questa contribution serve veramente nel mio ecommerce e devo riuscire a usarla :wink:

Ho provato a modificare il codice così:

if ($products['products_price'] == 0){

ma adesso mi nasconde tutti i prezzi, anche quelli diversi da 0 :shock:

Con altri numeri invece ritorna a non funzionare, cioè visualizza tutti i prezzi normalmente, anche quello che dovrebbe nascondere.

Bass visto che sei l'unico che ha risposto potresti postare il codice che hai usato per farla funzionare? 8)
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Spiderweb ha scritto: Bass visto che sei l'unico che ha risposto potresti postare il codice che hai usato per farla funzionare? 8)
Ehm, intanto scusami per la cretinaggine, deve essere l'eta'... :?
In product_info non e' if ($products['products_price'] == 0){
ma if ($products_info['products_price'] == 0){
Il codice, uno di quelli che ho usato, ce l'ho su Semilandia ma modificato parecchio, quindi non ti andrebbe bene. Cosi' pero' dovrebbe andare
:wink:

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

Grazie ma non servono scuse, con tutto questo codice anch'io mi incasino parecchio :wink:
Comunque mi sembra di aver già provato il codice che mi hai suggerito adesso (senza risultato naturalmente) ma non vorrei dire fesserie e dopo faccio un altro tentativo :)

Ciao e grazie ancora :!:
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Spiderweb ha scritto: Comunque mi sembra di aver già provato il codice che mi hai suggerito adesso (senza risultato naturalmente) ma non vorrei dire fesserie e dopo faccio un altro tentativo :)
E' possibile che a quel punto anche quel valore sia formattato. Se non funziona fai una cosa del genere, subito dopo la query assegna il valore a una variabile che non venga utilizzata da nessun'altra parte.
Ad esempio

Codice: Seleziona tutto

$prezzo=$product_info['products_price'];
e poi utilizza la variabile $prezzo per il confronto. Cosi' deve funzionare per forza :D

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

Bisogna che mi metta a studiare Php :roll:

Ho provato a fare così ma non funziona ancora :twisted:

Questo è quello che ho aggiunto in products_new.php:

<?php
/*
$Id: products_new.php,v 1.27 2003/06/09 22:35:33 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
*/
require('includes/application_top.php');
require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCTS_NEW);
$breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_PRODUCTS_NEW));
$prezzo=$product_info['products_price'];
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>

poi dopo:

<td align="right" valign="middle" class="main"><?php
if($prezzo == '0.00')
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br><br>' . TEXT_PRICE . ' ' . $lc_text = TEXT_CALL_FOR_PRICE; ;
}
else
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_new['products_id']) . '"><b><u>' . $products_new['products_name'] . '</u></b></a><br>' . TEXT_DATE_ADDED . ' ' . tep_date_long($products_new['products_date_added']) . '<br><br>' . TEXT_PRICE . ' ' . $products_price;
}
?></td>
<td align="right" valign="middle" class="main"><?php
if($prezzo == '0.00')
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_NEW, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products_new['products_id']) . '">' . '</a>';
}
else
{
echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_NEW, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products_new['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) . '</a>';
}
?></td>

Non prende in considerazione l'if ma passa subito all'else... così ho porvato ad invertire le righe per vedere cosa veniva fuori e il risultato è che nasconde tutti i prezzi, anche quelli diversi da 0 :roll:

N.B. ho provato anche con il prezzo 0 invece che 0.00
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Spiderweb ha scritto:Bisogna che mi metta a studiare Php :roll:
Prova con if($prezzo < 1)
Io avevo invertito e utilizzavo >= 1 ma perche' dovevo gestire un'altra funzione

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Aspetta aspetta, ma qui sei in product_new non in product_info
Quindi devi metter $prezzo = $products_new['products_price']

:)

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

GRAZIE ANCORA, sopratutto per la pazienza :wink:
Adesso provo così.... speriamo poi di non avere tutti questi problemi anche per la pagina delle recensioni, perchè anche quella aveva la solita funzione.

Al massimo quelle le tolgo del tutto 8)
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

Ci credi se ti dico che non funziona????

Allora.... se metto if($prezzo < 1) al posto di tutti i prezzi mi visualizza il contenuto di TEXT_CALL_FOR_PRICE (cioè la scritta prezzo su richiesta) mentre ho provato a invertire mettendo if($prezzo > 1) e così mi visualizza tutti i prezzi, 0 compreso :twisted:

Guarda che questa contribution le fa girare veramente...

Ah, dimenticavo, non funziona nemmeno la parte dopo naturalmente, cioè quella che dovrebbe nascondere il bottone Aggiungi al carrello se il prezzo è < 1.
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Spiderweb ha scritto:Ci credi se ti dico che non funziona????
Credo anche di avere capito il perche' non ti funziona, hai assegnato la variabile troppo in alto, dove l'hai messa tu $new_products['products_price'] non e' ancora valorizzato.
Mettila dopo questa linea

Codice: Seleziona tutto

    while ($products_new = tep_db_fetch_array($products_new_query)) {
'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Rispondi