[RISOLTO] Spese di spedizione vs Metodi di pagamento

21 contenuti / 0 new
Ultimo contenuto
[RISOLTO] Spese di spedizione vs Metodi di pagamento

E' da diverso tempo che non vengo a capo di un problema che, per quanto banale, crea dei disagi agli amministratori dell'ecommerce realizzato con ubercart. Ho cercato in giro per questo forum ma non ho trovato nulla di simile.

Ho creato 2 metodi di spedizione (per la verità 4 ma quelli che mi danno problemi sono solo 2 poichè gli altri 2 saltano fuori con una serie di azioni condizionali che non sto a descrivere per questioni di tempo) e ho abilitato 2 metodi di pagamento:
1) pagamento con paypal
2) pagamento in contrassegno

Ora il problema è questo: un utente inizia a fare il Checkout della spesa... inserisce tutti i dati, bla bla bla... poi arriva a selezionare il metodo di spedizione, ovvero si trova a dove scegliere tra:
1) SPEDIZIONE CON CORRIERE CON PAGAMENTO ANTICIPATO TRAMITE PAYPAL A 9.48 EURO
2) SPEDIZIONE CON CORRIERE CON PAGAMENTO ALLA CONSEGNA (CONTRASSEGNO) A 11.48 EURO

L'utente ignaro (suppongo ignaro anche se credo fortemente che ci si siano tanti furbi al mondo) seleziona il primo e poi va al passaggio successivo e... nel metodo di pagamento seleziona "pagamento in contrassegno". Ecco dov'è il problema, l'utente può decidere quale pagamento fare me non va bene! Se l'utente sceglie il pagamento anticipato deve pagare con paypal!

Con le azioni condizionali non va una mazza e ne ho messe a spron battuto ma niente... tutto inutile! Come posso risolvere secondo voi?

Ma se tu gli fai già fare la scelta li perché gliela riproponi dopo? Nascondila e non mostrargliela.

no perché prima propongo il metodo di spedizione che ha costi diversi in base al pagamento che si andrà a selezionare, non so se mi spiego... ho provato ad invertirli, cioè mettere prima pagamento e poi spedizione ma non riesco a nascondere la spedizione sbagliata con le azioni condizionali... mi sembra di perdermi in un bicchiere d'acqua ma non ci salto fuori :D

Creane solo uno spedizione x costo y spedizione z costo m e così via senza far scegliere le 2 cose, se non ci riesci con le azioni condizionali aggira l'ostacolo, meno confusione per te e più chiarezza per l'utente.
P.S. dubito che siano furbi per me semplicemente sbagliano, in ogni caso basta che l'email indichi il punto 1 e caso mai puoi disabilitare e attivare te il metodo con un po' di jquery.

ealmuno grazie per la risposta ma non ho capito bene la frase: "Creane solo uno spedizione x costo y spedizione z costo m e così via senza far scegliere le 2 cose, se non ci riesci con le azioni condizionali aggira l'ostacolo" potresti spiegarmelo meglio? grazie :)

invece di scegliere il pagamento e il modo di spedizione metti tutte le possiiblità quando uno paga eliminando la seconda scelta.

aaah ok... ma come faccio? Cioè io ho usato la procedura standard di ubercart, quindi ho usato i suoi moduli integrati. Hai qualche suggerimento finchè ci siamo? Considera che non conosco jquery... grazie mille

Io direi di eliminare quella parte o di lasciare una voce standard e nasconderla con i css.
Oppure rimane sempre javascript ma con jquery è più rapido, comunque ci perdi poco tempo se sai js.

ok partiamo dal presupposto che non posso eliminare la sezione spedizione o la sezione pagamento dal checkout. In effetti potrei nascondere con css la parte spedizione e selezionare la spedizione in automatico in base al pagamento effettuato, usando javascript. Certo che è una soluzione non proprio semplice. Onestamente speravo in qualcosa senza programmazione... medito, medito...

Credo di aver già fatto quello che chiedi, Mattia: il mio cliente aveva bisogno che alcuni tipi di spedizione fossero disponibili solo per alcuni tipi di pagamento. La programmazione è indispensabile per rendere il tutto affidabile ed efficiente. Avrai bisogno anche di un pizzico di JS…

Cerco di ricostruire:
- ho modificato con JS la definizione dell'URL predefinito per il calcolo delle spese di spedizione, in questo modo, intercetto la procedura e posso modificarla
- con hook_menu definisco un'URL per il callback personalizzato
- con hook_form_alter, aggiungo un attributo al widget di selezione del tipo di pagamento, che fa partire onclick il callback di cui sopra
- scrivo la funzione callback per restituire le spese disponibili, che deve restituire un array tramite drupal_json()
- in questa funzione ne viene richiamata un'altra, che in realtà è la copia modificata secondo le esigenze di una funzione già presente in uc_quote.module

Purtroppo non ho annotato dove ho trovato questa soluzione (non ricordo se ho trovato indizi su drupal.org o su ubercart.org), comunque credo che con queste info puoi già iniziare a ragionarci sopra.

ah... grazie ma credo che mi accontenterò di un semplice "non si può fare" come risposta al cliente :D

Aimè devo risolvere questo problema...

Pinolo scusami, sono interessato a questo problema;
A te ti chiedo questo visto che parli del uc_quote.module e conosci JS, se puoi spiegarmi come posso richiamare dal codice in un'altro modulo la funzione/evento che ricalcola le spese;'Come se facessi click con il mouse'.
Dovrebbe essere quì (linea 280):

<?php
function uc_quote_process_checkout_address($element, $form_state) {
 
$ajax = array(
   
'callback' => 'uc_quote_checkout_returned_rates',
   
'effect' => 'slide',
   
'progress' => array(
     
'type' => 'throbber',
     
'message' => t('Receiving shipping quotes...'),
    ),
  );
  if (isset(
$element['delivery_postal_code'])) {
   
$element['delivery_postal_code']['#ajax'] = $ajax;
  }
  return
$element;
}
?>

non so se mi sono spiegato chiaramente?

Mattian,
che versione stai usando? Io uso Drupal 7 e Ubercart 3.

Io purtroppo D6 con U2

Vorrei risolvere questo problema senza scrivere codice nei moduli o nel core per evitare problemi con gli aggiornamenti. Chiaramente blocchi php e correzioni sul tema sono ben accette... a parte che so programmare php come camminare sbronzo... XD

ealmuno wrote:
invece di scegliere il pagamento e il modo di spedizione metti tutte le possiiblità quando uno paga eliminando la seconda scelta.

PS: mi si è accesa una lampadina, tra poco la provo :D

Scusa... forse non ho capito bene il tuo problema?
Io su D6 ho usato http://drupal.org/project/uc_pma (D6 e UC2) è un modulosemplice che ti permette di applicare una tariffa/maggiorazione o anche uno sconto, per tutti i tipi di pagamento che usi e che hai configuato.
Io l'ho usato per impostare le spese di spediozione + il contrassegno quando il cliente sceglie il pagamento alla consegna nel momento del Checkout, oppure una maggiorazione con carta di credito in quanto il prodotto con un costo basso di soli 5 euro 0.70 centesimi fanno la differenza.
Spero di non aver frainteso il tuo intoppo e di essere stato utile.

Grazie mille potresti aver trovato la soluzione al mio problema, l'ho attivato ma non capisco dove configurarlo... Sono qui admin/store/settings che giro ma non mi trovo XD

After enabling the uc_pma module you will be able to go to Administer->Store Administration->Configuration->Payment Settings->Payment Methods in order to set up these payment adjustments. Adjustment fields will be added to your form where you can specify a flat amount or percentage to be added or subtracted from an order that uses the associated payment method.

Don't understand...

Trovi una casella in più nella pagina dei metodo di pagamento (...admin/store/settings/payment/edit/methods) affianco alla descrizione e al peso.

Grazie nik, ti ho fatto la stampa nel primo post in alto (file aiutooo.png :) di quello che vedo io... non trovo nessuna descrizione del peso in admin/store/settings/payment/edit/methods
Cioè "Gateway predefinito" c'è sempre stato...

Ops pardon non so perchè ma drupal non ha preso l'attivazione del modulo "Payment Method Adjustments", ora compare la scritta Adjustment come dicevi, è una textbox ma non capisco cosa devo metterci...

Ok fatto! Dio ti benedica! XD

PS: C'era semplicemente da scrivere 4 (ad esempio per un sovrapprezzo di 4 euro) e nella pagina delle traduzioni mettere la voce in italiano!