Results 1 to 4 of 4

Hybrid View

  1. #1
    Join Date
    Oct 2009
    Posts
    6
    Plugin Contributions
    0

    Default Estonian SmartPost

    Hello

    I am just about done with setting up my shop, but now I have ran into a glitch.

    The details:

    Zen-Cart version: 1.3.8 patched to latest

    Addons: PDF Order Center, Lightbox, Image Handler2, Google Analytics


    The problem:

    I need a special shipping module for SmartPost, which is a delivery system where the packages get delivered into SmartPost parcel machines. I forward the client the PIN code for the door, and they can go pick up their package.

    Now for this to work, I need to present the customer with a drop-down box with available SmartPost parcel machine locations.

    So a long story short: I need to add a drop-down list to my flat rate clone. And the selection the customer makes, needs to be stored with the order for my reference.


    Hope this makes any sense. If you need me to be more specific, go ahead, just ask.

    Thanks

    Rait

  2. #2
    Join Date
    Oct 2009
    Posts
    6
    Plugin Contributions
    0

    Default Re: Estonian SmartPost

    Well, by now I've determined that it's either the SmartPost.php in my shipping modules that needs modification, or the shipping template tpl_checkout_shipping_default.php

    I could probably manage to add the dropdown into one of those, but the question is, how do I store the information on which of the locations was selected?

  3. #3
    Join Date
    Oct 2009
    Posts
    6
    Plugin Contributions
    0

    Default Re: Estonian SmartPost

    Ok, I have managed to create the dropdown menu where it needs to be. But now comes the question of how to store the selection?

    Could someone tell me which file is responsible for storing the order data? Like which payment option was chosen and which shipping type.

    This would help me greatly.

    Thanks.

  4. #4
    Join Date
    Oct 2009
    Posts
    6
    Plugin Contributions
    0

    Default Re: Estonian SmartPost

    Ok, so below is my SmartPost.php file now. Basically a flat rate clone with the addition of the selection of the parcel terminals. The small part I added is just before the function install() near the bottom of the file.

    Now all I need is to store the customers selection and atm I have absolutely no idea how to go about it. If anyone could point out a similar solution used somewhere within Zen Cart, I could study that and possibly make this work.

    Please, any help is greatly appreciated.

    Code:
    <?php
    //
    // +----------------------------------------------------------------------+
    // |zen-cart Open Source E-commerce                                       |
    // +----------------------------------------------------------------------+
    // | Copyright (c) 2009 Rait Lotamõis                           |
    // |                                                                      |
    // | http://www.zen-cart.com/index.php                                    |
    // |                                                                      |
    // | Portions Copyright (c) 2003 osCommerce                               |
    // +----------------------------------------------------------------------+
    // | This source file is subject to version 2.0 of the GPL license,       |
    // | that is bundled with this package in the file LICENSE, and is        |
    // | available through the world-wide-web at the following url:           |
    // | http://www.zen-cart.com/license/2_0.txt.                             |
    // | If you did not receive a copy of the zen-cart license and are unable |
    // | to obtain it through the world-wide-web, please send a note to       |
    // | [email protected] so we can mail you a copy immediately.          |
    // +----------------------------------------------------------------------+
    
    
      class SmartPost {
        var $code, $title, $description, $icon, $enabled;
    
    // class constructor
        function SmartPost() {
          global $order, $db;
    
          $this->code = 'SmartPost';
          $this->title = MODULE_SHIPPING_SMARTPOST_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_SMARTPOST_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_SMARTPOST_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_SMARTPOST_TAX_CLASS;
          $this->tax_basis = MODULE_SHIPPING_SMARTPOST_TAX_BASIS;
    
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
            $this->enabled = ((MODULE_SHIPPING_SMARTPOST_STATUS == 'True') ? true : false);
          }
    
          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_SMARTPOST_ZONE > 0) ) {
            $check_flag = false;
            $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_SMARTPOST_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;
            }
          }
        }
    
    // class methods
        function quote($method = '') {
          global $order;
    $this->generateSelect('smartpost');
          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_SMARTPOST_TEXT_TITLE,
                                'methods' => array(array('id' => $this->code,
                                                         'title' => MODULE_SHIPPING_SMARTPOST_TEXT_WAY,
                                                         'cost' => MODULE_SHIPPING_SMARTPOST_COST)));
    
          if ($this->tax_class > 0) {
            $this->quotes['tax'] = zen_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
          }
    
          if (zen_not_null($this->icon)) $this->quotes['icon'] = zen_image($this->icon, $this->title);
    
          return $this->quotes;
        }
    
        function check() {
          global $db;
          if (!isset($this->_check)) {
            $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_SMARTPOST_STATUS'");
            $this->_check = $check_query->RecordCount();
    
          }
          return $this->_check;
        }
    
    // let's try and add the dropdown with locations next
        function generateSelect($name) {
    	$arrSmartPostPlaces = unserialize(file_get_contents("http://www.smartpost.ee/places.php"));
    	$html = '<select name="'.$name.'">';
    	foreach ($arrSmartPostPlaces as $value) {
                		if ($value['active'] == 1) {
    		$html .= '<option value='.$value['name'].'>'.htmlentities($value['name']).'</option>';
                		}
    	}
    
    
    	$html .= '</select>';
    	return $html;
        }
    
    
        function install() {
          global $db;
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable SmartPost', 'MODULE_SHIPPING_SMARTPOST_STATUS', 'True', 'Do you want to offer SmartPost shipping?', '6', '0', '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, date_added) values ('Shipping Cost', 'MODULE_SHIPPING_SMARTPOST_COST', '29.00', 'The shipping cost for all orders using this shipping method.', '6', '0', 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 ('Tax Class', 'MODULE_SHIPPING_SMARTPOST_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'zen_get_tax_class_title', 'zen_cfg_pull_down_tax_classes(', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Tax Basis', 'MODULE_SHIPPING_SMARTPOST_TAX_BASIS', 'Shipping', 'On what basis is Shipping Tax calculated. Options are<br />Shipping - Based on customers Shipping Address<br />Billing Based on customers Billing address<br />Store - Based on Store address if Billing/Shipping Zone equals Store zone', '6', '0', 'zen_cfg_select_option(array(\'Shipping\', \'Billing\', \'Store\'), ', 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 ('Shipping Zone', 'MODULE_SHIPPING_SMARTPOST_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', '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 ('Sort Order', 'MODULE_SHIPPING_SMARTPOST_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");
        }
    
        function remove() {
          global $db;
          $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }
    
        function keys() {
          return array('MODULE_SHIPPING_SMARTPOST_LOCATION', 'MODULE_SHIPPING_SMARTPOST_STATUS', 'MODULE_SHIPPING_SMARTPOST_COST', 'MODULE_SHIPPING_SMARTPOST_TAX_CLASS', 'MODULE_SHIPPING_SMARTPOST_TAX_BASIS', 'MODULE_SHIPPING_SMARTPOST_ZONE', 'MODULE_SHIPPING_SMARTPOST_SORT_ORDER');
        }
      }
    ?>

 

 

Similar Threads

  1. v153 Smartpost plugin help needed
    By vexil in forum Addon Shipping Modules
    Replies: 0
    Last Post: 24 Jan 2015, 03:43 PM
  2. v151 FedEx SmartPost by Numinix
    By matzkemedia in forum Addon Shipping Modules
    Replies: 1
    Last Post: 28 Jun 2013, 07:45 PM
  3. FedEx SmartPost
    By thirtytwo16 in forum Addon Shipping Modules
    Replies: 3
    Last Post: 31 May 2013, 04:28 PM
  4. v151 Estonian language pack
    By ellivir in forum Addon Language Packs
    Replies: 0
    Last Post: 15 Nov 2012, 08:32 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR