Oggi è ven mar 29, 2024 11:21 am

Benvenuto!

Lo stato dell'Arte come software Open Source gratuito E-commerce.
 

Zen Cart Italia

Spedizioni e Pagamenti

Contrassegno - Con varianti articolate

Richieste, idee e suggerimenti per il miglior settaggio o modifiche dei moduli previsti.

Moderatori: Sandro Carniel aka webmaster, Paolo De Dionigi aka Spike00

Contrassegno - Con varianti articolate

Messaggioda Ivan83 » gio gen 24, 2013 2:41 pm

Ciao a tutti,

ho inserito alcune modifiche al modulo del contrassegno (versione zencart 1.5.1), rifacendomi un po' a quanto trovato su questo forum e ad un altro modulo recuperato su un altro sito.

Di fatto l'attuale modulo si disattiva se:
1) Il totale dell'ordine supera la soglia di 500 euro
2) Uno dei prodotti inseriti nel carrello ha giacenza zero

Quello che però non sono riuscito a fare è di disabilitarlo anche se nel carrello hai inserito tutti prodotti attualmente in giacenza ma uno di essi è stato inserito in quantità maggiori di quelle disponibili.

Ecco il contenuto del modulo:

Codice: Seleziona tutto
<?php
/**
 * COD Payment Module
 *
 * @package paymentMethod
 * @copyright Copyright 2003-2010 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: cod.php 15420 2010-02-04 21:27:05Z drbyte $
 */
  class cod {
    var $code, $title, $description, $enabled;

// class constructor
    function cod() {
      global $order;

      $this->code = 'cod';
      $this->title = MODULE_PAYMENT_COD_TEXT_TITLE;
      $this->description = MODULE_PAYMENT_COD_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_PAYMENT_COD_SORT_ORDER;
      $this->enabled = ((MODULE_PAYMENT_COD_STATUS == 'True') ? true : false);

      if ((int)MODULE_PAYMENT_COD_ORDER_STATUS_ID > 0) {
        $this->order_status = MODULE_PAYMENT_COD_ORDER_STATUS_ID;
      }

      if (is_object($order)) $this->update_status();
    }

// class methods
    function update_status() {
      global $order, $db;
   
   if ($order->info['subtotal'] > 500) {
     $this->enabled = false;
     }

    // modifica
          $ko = 0;

      foreach ($order->products as $key) {
   $product_query = "select products_quantity from " . TABLE_PRODUCTS . "
                        where products_id = '" . (int)$key['id'] . "' ";
   if ($product = $db->Execute($product_query)){
                           $quantity = $product->fields['products_quantity'];
                           }
   if ($ko >0 or $quantity <= 0) { $ko = 1; break ;}
  }
 // fine
     
     if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_COD_ZONE > 0) ) {
        $check_flag = false;
        $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_COD_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
        while (!$check->EOF) {
          if ($check->fields['zone_id'] < 1) {
            $check_flag = true;
            break;
          } elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) {
            $check_flag = true;
            break;
          }
          $check->MoveNext();
        }

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }

// disable the module if the order only contains virtual products
      if ($this->enabled == true) {
        if ($order->content_type != 'physical') {
          $this->enabled = false;
        }
//DISATTIVA IL MODULO

      if ($ko  == 1) {
            $this->enabled = false;
        }
//FINE
      }
    }

    function javascript_validation() {
      return false;
    }

    function selection() {
      return array('id' => $this->code,
                   'module' => $this->title);
    }

    function pre_confirmation_check() {
      return false;
    }

    function confirmation() {
      return false;
    }

    function process_button() {
      return false;
    }

    function before_process() {
      return false;
    }

    function after_process() {
      return false;
    }

    function get_error() {
      return false;
    }

    function check() {
      global $db;
      if (!isset($this->_check)) {
        $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_COD_STATUS'");
        $this->_check = $check_query->RecordCount();
      }
      return $this->_check;
    }

    function install() {
      global $db, $messageStack;
      if (defined('MODULE_PAYMENT_COD_STATUS')) {
        $messageStack->add_session('Modulo Contrassegno gi&agrave; installato.', 'error');
        zen_redirect(zen_href_link(FILENAME_MODULES, 'set=payment&module=cod', 'NONSSL'));
        return 'failed';
      }
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Abilita il Modulo Contrassegno', 'MODULE_PAYMENT_COD_STATUS', 'True', 'Accettare pagamenti con Contrassegno?', '6', '1', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Zona di Pagamento', 'MODULE_PAYMENT_COD_ZONE', '0', 'Se viene selezionata una Zona, attiva questo metodo di pagamento soltanto per questa Zona.', '6', '2', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Ordine di Visualizzazione', 'MODULE_PAYMENT_COD_SORT_ORDER', '0', 'Ordine di Visualizzazione. Il pi&ugrave; basso viene visualizzato per primo.', '6', '0', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Imposta Stato Ordine', 'MODULE_PAYMENT_COD_ORDER_STATUS_ID', '0', 'Imposta lo Stato degli Ordini eseguiti con questo modulo di pagamento a questo valore.', '6', '0', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
   }

    function remove() {
      global $db;
      $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
      return array('MODULE_PAYMENT_COD_STATUS', 'MODULE_PAYMENT_COD_ZONE', 'MODULE_PAYMENT_COD_ORDER_STATUS_ID', 'MODULE_PAYMENT_COD_SORT_ORDER');
    }
  }


Avete idee su come fare?

Grazie mille
Ivan
Ivan :-D
Ivan83
 
Messaggi: 70
Iscritto il: gio mar 01, 2007 11:17 pm
Località: Provincia di Varese

Re: Contrassegno - Con varianti articolate

Messaggioda gianc69 » ven gen 25, 2013 11:36 am

Salve, per disabilitare il checkout, vai in Configurazioni>magazzino scorte> consenti checkout e lo metti a false.
Saluti
https://www.erboristeriabio.com la tua erboristeria on line.
Avatar utente
gianc69
 
Messaggi: 660
Iscritto il: mar mar 27, 2007 11:04 am

Re: Contrassegno - Con varianti articolate

Messaggioda Ivan83 » ven gen 25, 2013 5:17 pm

Ciao,

in realtà io non voglio non consentire il check out ma solo eliminare il contrassegno se il prodotto non è disponibile.

Purtroppo va di moda ordinare il materiale in contrassegno, il negozio non lo ha disponibile e lo ordina a sua volta, quando poi vai per spedire il pacco viene rifiutato ed il cliente ti dice fresco fresco che ha già risolto, boia se ti avvisa prima.

Quindi se l'ho in casa te lo mando subito in contrassegno. Se lo devo ordinare me lo paghi così son sicuro che se ci ripensi ti prendi la briga di avvisare.

Così come è adesso spedisco diminuendo le quantità al solo "disponibile"

Ivan
Ivan :-D
Ivan83
 
Messaggi: 70
Iscritto il: gio mar 01, 2007 11:17 pm
Località: Provincia di Varese


Torna a Spedizioni e Pagamenti

cron

Login

Real Time Analytics