Implementare mail riepilogativa su plugin carrello

di il
2 risposte

Implementare mail riepilogativa su plugin carrello

Un saluto a tutti i membri del forum, avrei una richiesta da sottoporvi per risolvere un mio enigma!!
Vorrei integrare questo plugin carrello nel link https://www.jqueryscript.net/other/E-commerce-Cart-Plugin-For-jQuery.html nel mio sito ma vorrei che quando l'utente da il comando "paga con paypal" oltre ad andare alla pagina del pagamento vorrei che mi arrivasse una mail riepilogativa dell'ordine con tutti i dati inseriti dall'utente. Sono alle prime armi e non so come implementare questa funzione.
Ho notato anche che navigandoci sul browser da errore 405.0
Grazie anticipatamente.

2 Risposte

  • Re: Implementare mail riepilogativa su plugin carrello

    L'invio di una mail all'utente è una operazione tipicamente eseguita lato server, chiamando logica di backend che confeziona e spedisce il messaggio oppure lo inoltra a un servizio apposito, magari alimentando una coda.

    Per inviare mail tramite JavaScript dovresti verificare l'esistenza di una API che fornisca un endpoint da contattare con le informazioni necessarie e sottoscrivere un apposito contratto per l'utilizzo, poi seguire le indicazioni fornite dal provider del servizio stesso.

    In breve, non è una operazione complessa ma neanche banale, non risolvibile con il solo JavaScript a meno di non avere un supporto lato server, quindi su backend, che sia sviluppato da te oppure da terzi.

    Ciao!
  • Re: Implementare mail riepilogativa su plugin carrello

    Grazie per la risposta, in teoria vorrei che i dati raccolti dall'utente nel form piu' i dati del carrello prodotto, prezzo, quantita' e subtotale raccolti nella memoria della sessione venissero inviati via mail ad un unico bottone invio.
    Spero possiate darmi una mano.
    Grazie anticipatamente.

    Posto il codice jquery dei dati raccolti:


    Dati del form
    		_saveFormData: function( form ) {
    			var self = this;
    			var $visibleSet = form.find( "fieldset:visible" );
    			
    			$visibleSet.each(function() {
    				var $set = $( this );
    				if( $set.is( "#fieldset-billing" ) ) {
    					var name = $( "#name", $set ).val();
    					var email = $( "#email", $set ).val();
    					var phone = $( "#phone", $set ).val();
    					var city = $( "#city", $set ).val();
    					var province = $( "#province", $set ).val();
    					var address = $( "#address", $set ).val();
    					var zip = $( "#zip", $set ).val();
    					var country = $( "#country", $set ).val();
    					
    					self.storage.setItem( "billing-name", name );
    					self.storage.setItem( "billing-email", email );
    					self.storage.setItem( "billing-phone", phone );
    					self.storage.setItem( "billing-city", city );
    					self.storage.setItem( "billing-province", province );
    					self.storage.setItem( "billing-address", address );
    					self.storage.setItem( "billing-zip", zip );
    					self.storage.setItem( "billing-country", country );
    				} else {
    					var sName = $( "#sname", $set ).val();
    					var sEmail = $( "#semail", $set ).val();
    					var sCity = $( "#scity", $set ).val();
    					var sProvince = $( "#sprovince", $set ).val();
    					var sAddress = $( "#saddress", $set ).val();
    					var sZip = $( "#szip", $set ).val();
    					var sCountry = $( "#scountry", $set ).val();
    					
    					self.storage.setItem( "shipping-name", sName );
    					self.storage.setItem( "shipping-email", sEmail );
    					self.storage.setItem( "shipping-city", sCity );
    					self.storage.setItem( "shipping-province", sProvince );
    					self.storage.setItem( "shipping-address", sAddress );
    					self.storage.setItem( "shipping-zip", sZip );
    					self.storage.setItem( "shipping-country", sCountry );
    				
    				}
    			});
    		}
    	};
    


    Dati carrello prodotto, quantita', prezzo e subtotale
    // Aggiunge articoli al carrello
    		
    		handleAddToCartForm: function() {
    			var self = this;
    			self.$formAddToCart.each(function() {
    				var $form = $( this );
    				var $product = $form.parent();
    				var price = self._convertString( $product.data( "price" ) );
    				var name =  $product.data( "name" );
    				
    				$form.on( "submit", function() {
    					var qty = self._convertString( $form.find( ".qty" ).val() );
    					var subTotal = qty * price;
    					var total = self._convertString( self.storage.getItem( self.total ) );
    					var sTotal = total + subTotal;
    					self.storage.setItem( self.total, sTotal );
    					self._addToCart({
    						product: name,
    						price: price,
    						qty: qty
    					});
    					var shipping = self._convertString( self.storage.getItem( self.shippingRates ) );
    					var shippingRates = self._calculateShipping( qty );
    					var totalShipping = shipping + shippingRates;
    					
    					self.storage.setItem( self.shippingRates, totalShipping );
    				});
    			});
    		},
    
    
    		
                    // Visualizza il carrello
    		
    		displayCart: function() {
    			if( this.$formCart.length ) {
    				var cart = this._toJSONObject( this.storage.getItem( this.cartName ) );
    				var items = cart.items;
    				var $tableCart = this.$formCart.find( ".shopping-cart" );
    				var $tableCartBody = $tableCart.find( "tbody" );
    
    				if( items.length == 0 ) {
    					$tableCartBody.html( "" );	
    				} else {
    				
    				
    					for( var i = 0; i < items.length; ++i ) {
    						var item = items[i];
    						var product = item.product;
    						var price = this.currency + " " + item.price;
    						var qty = item.qty;
    						var html = "<tr><td class='pname'>" + product + "</td>" + "<td class='pqty'><input type='text' value='" + qty + "' class='qty'/></td>";
    					    	html += "<td class='pprice'>" + price + "</td><td class='pdelete'><a href='' data-product='" + product + "'>&times;</a></td></tr>";
    					
    						$tableCartBody.html( $tableCartBody.html() + html );
    					}
    
    				}
    
    				if( items.length == 0 ) {
    					this.$subTotal[0].innerHTML = this.currency + " " + 0.00;
    				} else {	
    				
    					var total = this.storage.getItem( this.total );
    					this.$subTotal[0].innerHTML = this.currency + " " + total;
    				}
    			} else if( this.$checkoutCart.length ) {
    				var checkoutCart = this._toJSONObject( this.storage.getItem( this.cartName ) );
    				var cartItems = checkoutCart.items;
    				var $cartBody = this.$checkoutCart.find( "tbody" );
    
    				if( cartItems.length > 0 ) {
    				
    					for( var j = 0; j < cartItems.length; ++j ) {
    						var cartItem = cartItems[j];
    						var cartProduct = cartItem.product;
    						var cartPrice = this.currency + " " + cartItem.price;
    						var cartQty = cartItem.qty;
    						var cartHTML = "<tr><td class='pname'>" + cartProduct + "</td>" + "<td class='pqty'>" + cartQty + "</td>" + "<td class='pprice'>" + cartPrice + "</td></tr>";
    					
    						$cartBody.html( $cartBody.html() + cartHTML );
    					}
    				} else {
    					$cartBody.html( "" );	
    				}
    
    				if( cartItems.length > 0 ) {
    				
    					var cartTotal = this.storage.getItem( this.total );
    					var cartShipping = this.storage.getItem( this.shippingRates );
    					var subTot = this._convertString( cartTotal ) + this._convertString( cartShipping );
    				
    					this.$subTotal[0].innerHTML = this.currency + " " + this._convertNumber( subTot );
    					this.$shipping[0].innerHTML = this.currency + " " + cartShipping;
    				} else {
    					this.$subTotal[0].innerHTML = this.currency + " " + 0.00;
    					this.$shipping[0].innerHTML = this.currency + " " + 0.00;	
    				}
    			
    			}
    		},
Devi accedere o registrarti per scrivere nel forum
2 risposte