anchor.diff:  					(let ((prd-id (slot-value odt 'prd-id)))
   					  (search-prd-in-list prd-id products ))) odts)))
        (setf (hunchentoot:session-value :guest-email-address) email)
  -     (save-cust-order-params (list odts shopcart-products odate reqdate nil  shipaddress shopcart-total payment-mode comments customer custcomp order-cxt phone email))
  +     (save-cust-order-params (list odts shopcart-products odate reqdate nil  shipaddress shipzipcode shipcity shipstate billaddress billzipcode billcity billstate billsameasshipchecked claimitcchecked gstnumber gstorgname shopcart-total payment-mode comments customer custcomp order-cxt phone email custname))
        (if (equal payment-mode "OPY") 
   	 (online-payment shopcart-total wallet-id custcomp order-cxt)))))
   
  
positive.code: 		       (:div :class "row"
  			     (:div :class "col-xs-12 col-sm-12 col-md-12 col-lg-12"
  				   (:div :class "form-group" (:label :for "shipaddress" "Shipping Address" )
  					 (:textarea :class "form-control" :name "shipaddress" :rows "4" :required "true" :tabindex "5" ))
  				   
  				   (:div :class "form-group" (:label :for "zipcode" "Pincode" )
  					 (:input :class "form-control" :type "text" :class "form-control" :inputmode "numeric" :maxlength "6" :name "shipzipcode" :placeholder "Pincode" :tabindex "8" ))
  				   (:div :class "form-group" (:label :for "city" "City" )
  					 (:input :class "form-control" :type "text" :class "form-control" :name "shipcity" :placeholder "City" :readonly T))
  				   (:div :class "form-group" (:label :for "state" "State" )
  					 (:input :class "form-control" :type "text" :class "form-control" :name "shipstate" :placeholder "State"  :readonly T )))))
  		 
  	   (:div :class "col-xs-12 col-sm-12 col-md-6 col-lg-6" 
  		 (:div :class "row"
  
negative.code:       (setf params (acons "company" (get-login-customer-company)  params))
        
        (with-hhub-transaction "com-hhub-transaction-create-order" params
  	(multiple-value-bind (odts products odate reqdate ship-date shipaddress shipzipcode shipcity shipstate billaddress billzipcode billcity billstate billsameasshipchecked claimitcchecked gstnumber gstorgname shopcart-total payment-mode comments cust custcomp order-cxt phone email custname)
  	    (values-list (get-cust-order-params)) 
  	 (let* ((temp-ht (make-hash-table :test 'equal))
  		(vendor-list (get-shopcart-vendorlist odts))
  		(wallet-list (mapcar (lambda (vendor) (get-cust-wallet-by-vendor cust vendor custcomp)) vendor-list))
  		(cust-type (slot-value cust 'cust-type))
  		(temp-customer (make-instance 'DOD-CUST-PROFILE)))
  
  	   (setf (slot-value temp-customer 'name) custname)
  	   (setf (slot-value temp-customer 'address) shipaddress)
  	   (setf (slot-value temp-customer 'phone) phone)
  	   (setf (slot-value temp-customer 'email) email)
  	   	   
  		;; This function call is not pure. Try to make it pure. 
  		;; (guest-email (hunchentoot:session-value :guest-email-address)))
  
  	   ;; If the payment mode is PREPAID, then check whether we have enough balance first. If not, then redirect to the low wallet balance. 
  	   ;; Redirecting to some other place is not a pure function behavior. Is there a better way to handle this? 
  	   (setf (gethash "PRE" temp-ht) (symbol-function 'check-all-vendors-wallet-balance))
  	   (let ((func (gethash payment-mode temp-ht)))
  	     (if func (if (funcall (gethash payment-mode temp-ht) vendor-list wallet-list odts)	 (hunchentoot:redirect "/hhub/dodcustlowbalanceshopcarts"))))
  	   ;; If everything gets through, create order. 
  	   (let ((order-id (create-order-from-shopcart  odts products odate reqdate ship-date  shipaddress shopcart-total payment-mode comments cust custcomp)))
  	     (setf (gethash "GUEST-EMAIL" temp-ht) (symbol-function 'send-order-email-guest-customer))
  	     (setf (gethash "GUEST-SMS" temp-ht) (symbol-function 'send-order-sms-guest-customer))
  	     (setf (gethash "STANDARD-EMAIL" temp-ht) (symbol-function 'send-order-email-standard-customer))
  	     (setf (gethash "STANDARD-SMS" temp-ht) (symbol-function 'send-order-sms-standard-customer))
  
  	     (hunchentoot:log-message* :info (format nil "Email - ~A" email))
  
  	     
  	       ;; Send order SMS to guest customer if phone is provided. (Phone is required field for Guest customer, hence SMS will always be sent)
  	       (when (and (equal cust-type "GUEST") phone) (funcall (gethash (format nil "~A-SMS" cust-type) temp-ht) order-id phone))
  	       ;; Send order email to guest customer if email is provided. 
  	       (when (and (equal cust-type "GUEST") email)  (funcall (gethash (format nil "~A-EMAIL" cust-type) temp-ht) order-id email temp-customer  products odts))
  	       ;; If STANDARD customer has email, then send order email 
  	       (when (and (equal cust-type "STANDARD") email) (funcall (gethash (format nil "~A-EMAIL" cust-type) temp-ht) order-id email products odts))
  	       ;; If standard customer has phone, then send SMS 
  	       (when (and (equal cust-type "STANDARD") phone) (funcall (gethash (format nil "~A-SMS" cust-type) temp-ht) order-id phone))
  	     
  	     (reset-cust-order-params)
  	     (setf (hunchentoot:session-value :login-cusord-cache) (get-orders-for-customer cust))
  	     (setf (hunchentoot:session-value :login-shopping-cart ) nil)
  