Page 1 of 1

Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Tue Feb 19, 2013 5:36 pm
by antstyl
Καλημέρα σε όλους,

υπάρχει κάποιος εύκολος τρόπος να βάλω σε ένα module πληρωμής (το οποίο δεν έχει τέτοια δυνατότητα), τον περιορισμό να ενεργοποιηθεί μόνο όταν το ποσό π.χ. είναι πάνω από 50 ευρώ?

Σκέφτηκα να εισάγω κάτι τέτοιο αλλά δεν έπιασε! ???

Code: Select all

if ($total >= 50) {
			$status = true;
		} else {
			$status = false;
		} 
Καμιά ιδέα?

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Wed Feb 20, 2013 1:55 am
by People's Code
Πρέπει να περιβάλλεις και όλο το method array με if statement
πχ

Code: Select all

if ($status) {
    $method = array( bla, bla bla ...
                        .....
                        .....
                    );
 }

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Fri Feb 22, 2013 6:08 pm
by antstyl
Το προσπάθησα...το πάλεψα... αλλά με νίκησε! :P
Δεν βγάζω άκρη με τίποτα.. οποιαδήποτε βοήθεια δεκτή!! :)

Το τμήμα του κώδικα που με ενδιαφέρει είναι έτσι:

Code: Select all

if ($this->config->get('modulename_status')) {
      		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('hellaspay_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");
			
			if (!$this->config->get('modulename_geo_zone_id')) {
        		$status = TRUE;
      		} elseif ($query->num_rows) {
      		  	$status = TRUE;
      		} else {
     	  		$status = FALSE;
			}	
      	} else {
			$status = FALSE;
		}
		
		$method_data = array();
	
		if ($status) {  
      		$method_data = array( 
        		'code'         => 'modulename',
        		'title'      => $this->language->get('text_title'),
				'sort_order' => $this->config->get('modulename_sort_order')
      		);
    	}
   
    	return $method_data;
  	}
}
?>

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Fri Feb 22, 2013 9:09 pm
by People's Code
Δοκίμασε αυτό

Code: Select all

    if ($this->config->get('modulename_status')) {
                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('hellaspay_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");
             
             if (!$this->config->get('modulename_geo_zone_id')) {
                  $status = TRUE;
                } elseif ($query->num_rows) {
                     $status = TRUE;
                } else {
                    $status = FALSE;
             }   
             } else {
             $status = FALSE;
          }

          $status = $status && $total >= 50 ? true : false;
          $method_data = array();
       
          if ($status) { 
                $method_data = array(
                  'code'         => 'modulename',
                  'title'      => $this->language->get('text_title'),
                'sort_order' => $this->config->get('modulename_sort_order')
                );
           }
       
           return $method_data;
         }
    }
    ?>

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Thu Feb 28, 2013 5:17 pm
by antstyl
Το δοκίμασα αλλά μου βγάζει το εξής σφάλμα κατά το checkout στους τρόπους πληρωμής..

Notice: Undefined variable: total in /var/www/vhosts/gr/store/catalog/model/payment/modulename.php on line 22

Έχεις καμιά άλλη ιδέα? Σε ευχαριστώ πολύ..

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Thu Feb 28, 2013 8:47 pm
by People's Code
Μπορείς να ποστάρεις όλο το κώδικα που χρησιμοποιεί το extension (model, view, controller) ?

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Thu Feb 28, 2013 10:13 pm
by botonakis
Αυτό που ζητάς μπορεί να γίνει και με αυτό το extension:

http://www.opencart.com/index.php?route ... S9lICuSBK4

Δεν είναι δωρεάν. Σαν extension σου δίνει τη δυνατότητα να αλλάζεις την τιμή του συνόλου ανά τρόπο πληρωμής και ανά ποσό. Αλλά μπορείς να του δηλώσεις και ότι πχ εάν > 50 εμφάνισε τον τρόπο πληρωμής ή μην τον εμφανίζεις. Δες τις φωτογραφίες που έχει σαν demo.

Από κει και πέρα κάπου θα υπάρχει κάτι παρόμοιο, πιο φθηνό ή δωρεάν.
Μπορείς όμως να στείλεις ποιο payment module είναι (εάν είναι δωρεάν) ή να ζητήσεις από αυτόν που στο έφτιαξε να σου πει (εάν δεν είναι δωρεάν).

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Thu Feb 28, 2013 11:01 pm
by People's Code
Το δοκίμασα αλλά μου βγάζει το εξής σφάλμα κατά το checkout στους τρόπους πληρωμής..

Notice: Undefined variable: total in /var/www/vhosts/gr/store/catalog/model/payment/modulename.php on line 22

Έχεις καμιά άλλη ιδέα? Σε ευχαριστώ πολύ..
Πρέπει να έχει δηλωθεί το variable $total και στο method πχ:

Code: Select all

public function getMethod($address, $total) {

Re: Περιορισμός τρόπου πληρωμής με ελάχιστο ποσό αγοράς

Posted: Fri Mar 01, 2013 8:58 pm
by antstyl
Λύθηκε με τη συμπληρωματική αλλαγή του Opencart-Hellas.

botonakis σε ευχαριστώ, τώρα έκανα την δουλειά μου αλλά θα το έχω υπόψη για το μέλλον.