Temando_Temando - Version 1.1.0

Version Notes

Temando Shipping Extension – Starter Version
• Increased limit for AVS results
• Added configuration wizard
• Various minor bug fixes

Download this release

Release Info

Developer Temando
Extension Temando_Temando
Version 1.1.0
Comparing to
See all releases


Code changes from version 1.0.0.1 to 1.1.0

Files changed (33) hide show
  1. app/code/community/Temando/Temando/Block/Adminhtml/Manifest.php +1 -1
  2. app/code/community/Temando/Temando/Block/Adminhtml/Manifest/Filter/Form.php +1 -1
  3. app/code/community/Temando/Temando/Block/Adminhtml/Shipment/Edit.php +8 -0
  4. app/code/community/Temando/Temando/Block/Adminhtml/Shipment/Grid.php +27 -0
  5. app/code/community/Temando/Temando/Block/Adminhtml/System/Config/Form/Button/Rule.php +17 -0
  6. app/code/community/Temando/Temando/Block/Adminhtml/System/Config/Form/Button/Warehouse.php +17 -0
  7. app/code/community/Temando/Temando/Block/Wizard/Html.php +271 -0
  8. app/code/community/Temando/Temando/Helper/Data.php +1 -1
  9. app/code/community/Temando/Temando/Helper/Wizard.php +47 -0
  10. app/code/community/Temando/Temando/Model/Pcs.php +1 -1
  11. app/code/community/Temando/Temando/Model/System/Config/Source/Wizard.php +25 -0
  12. app/code/community/Temando/Temando/Model/Wizard.php +200 -0
  13. app/code/community/Temando/Temando/controllers/Adminhtml/ShipmentController.php +3 -3
  14. app/code/community/Temando/Temando/controllers/Adminhtml/WizardController.php +34 -0
  15. app/code/community/Temando/Temando/controllers/WizardController.php +114 -0
  16. app/code/community/Temando/Temando/etc/adminhtml.xml +50 -24
  17. app/code/community/Temando/Temando/etc/config.xml +12 -2
  18. app/code/community/Temando/Temando/etc/system.xml +47 -29
  19. app/design/adminhtml/default/default/layout/temando.xml +42 -11
  20. app/design/adminhtml/default/default/template/temando/temando/menu.phtml +8 -0
  21. app/design/frontend/base/default/layout/temando.xml +11 -0
  22. app/design/frontend/base/default/template/temando/temando/wizard.phtml +125 -0
  23. app/design/frontend/base/default/template/temando/temando/wizard/account.phtml +80 -0
  24. app/design/frontend/base/default/template/temando/temando/wizard/carriers.phtml +121 -0
  25. app/design/frontend/base/default/template/temando/temando/wizard/catalog_product.phtml +91 -0
  26. app/design/frontend/base/default/template/temando/temando/wizard/countries.phtml +66 -0
  27. app/design/frontend/base/default/template/temando/temando/wizard/end.phtml +19 -0
  28. app/design/frontend/base/default/template/temando/temando/wizard/left.phtml +11 -0
  29. app/design/frontend/base/default/template/temando/temando/wizard/origin.phtml +140 -0
  30. app/design/frontend/base/default/template/temando/temando/wizard/rule.phtml +55 -0
  31. js/temando/avs.js +8 -9
  32. js/temando/menu.js +14 -0
  33. package.xml +7 -11
app/code/community/Temando/Temando/Block/Adminhtml/Manifest.php CHANGED
@@ -6,7 +6,7 @@ class Temando_Temando_Block_Adminhtml_Manifest extends Mage_Adminhtml_Block_Widg
6
  {
7
  $this->_blockGroup = 'temando';
8
  $this->_controller = 'adminhtml_manifest';
9
- $this->_headerText = Mage::helper('temando')->__('Manage Shipments');
10
  parent::__construct();
11
  $this->setTemplate('temando/temando/manifest.phtml');
12
  $this->removeButton('add');
6
  {
7
  $this->_blockGroup = 'temando';
8
  $this->_controller = 'adminhtml_manifest';
9
+ $this->_headerText = Mage::helper('temando')->__('Manage Manifests');
10
  parent::__construct();
11
  $this->setTemplate('temando/temando/manifest.phtml');
12
  $this->removeButton('add');
app/code/community/Temando/Temando/Block/Adminhtml/Manifest/Filter/Form.php CHANGED
@@ -15,7 +15,7 @@ class Temando_Temando_Block_Adminhtml_Manifest_Filter_Form extends Mage_Adminhtm
15
  );
16
  $htmlIdPrefix = 'add_manifest_';
17
  $form->setHtmlIdPrefix($htmlIdPrefix);
18
- $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('temando')->__('Create New Manifest')));
19
 
20
  $dateFormatIso = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
21
 
15
  );
16
  $htmlIdPrefix = 'add_manifest_';
17
  $form->setHtmlIdPrefix($htmlIdPrefix);
18
+ $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('temando')->__('Create New Manifest - Please note, to manifest you must have a permanent pickup. Contact <a href="mailto:sales@temando.com">sales@temando.com</a> for more information.')));
19
 
20
  $dateFormatIso = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
21
 
app/code/community/Temando/Temando/Block/Adminhtml/Shipment/Edit.php CHANGED
@@ -19,6 +19,14 @@ class Temando_Temando_Block_Adminhtml_Shipment_Edit extends Mage_Adminhtml_Block
19
  $add_button_method = '_addButton';
20
  }
21
 
 
 
 
 
 
 
 
 
22
  if ($this->getShipment()->getStatus() == Temando_Temando_Model_System_Config_Source_Shipment_Status::PENDING) {
23
  $this->$add_button_method('getquote', array(
24
  'label' => Mage::helper('temando')->__('Save and Get Quotes'),
19
  $add_button_method = '_addButton';
20
  }
21
 
22
+ $this->$add_button_method('disabled_pickslip', array(
23
+ 'label' => 'Pick Slip',
24
+ 'id' => 'disabled_pickslip',
25
+ 'onclick' => 'return false',
26
+ 'class' => 'go disabled',
27
+ 'title' => 'Available in the Business Extension'
28
+ ));
29
+
30
  if ($this->getShipment()->getStatus() == Temando_Temando_Model_System_Config_Source_Shipment_Status::PENDING) {
31
  $this->$add_button_method('getquote', array(
32
  'label' => Mage::helper('temando')->__('Save and Get Quotes'),
app/code/community/Temando/Temando/Block/Adminhtml/Shipment/Grid.php CHANGED
@@ -8,6 +8,33 @@ class Temando_Temando_Block_Adminhtml_Shipment_Grid extends Mage_Adminhtml_Block
8
  parent::__construct();
9
  $this->setSaveParametersInSession(true);
10
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  protected function _prepareCollection()
13
  {
8
  parent::__construct();
9
  $this->setSaveParametersInSession(true);
10
  }
11
+
12
+ protected function _prepareLayout() {
13
+ parent::_prepareLayout();
14
+ $this->setChild('batch_button', $this->getLayout()->createBlock('adminhtml/widget_button')
15
+ ->setData(array(
16
+ 'label' => Mage::helper('adminhtml')->__('Batch Booking'),
17
+ 'onclick' => 'return false',
18
+ 'class' => 'disabled',
19
+ 'title' => 'Available in the Business Extension'
20
+ ))
21
+ );
22
+ return $this;
23
+ }
24
+
25
+ public function getBatchButtonHtml() {
26
+ return $this->getChildHtml('batch_button');
27
+ }
28
+
29
+ public function getMainButtonsHtml() {
30
+ $html = '';
31
+ if ($this->getFilterVisibility()) {
32
+ $html.= $this->getBatchButtonHtml();
33
+ $html.= $this->getResetFilterButtonHtml();
34
+ $html.= $this->getSearchButtonHtml();
35
+ }
36
+ return $html;
37
+ }
38
 
39
  protected function _prepareCollection()
40
  {
app/code/community/Temando/Temando/Block/Adminhtml/System/Config/Form/Button/Rule.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_Block_Adminhtml_System_Config_Form_Button_Rule extends Mage_Adminhtml_Block_System_Config_Form_Field {
4
+
5
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
6
+ $this->setElement($element);
7
+ $html = $this->getLayout()
8
+ ->createBlock('adminhtml/widget_button')
9
+ ->setType('button')->setClass('scalable go disabled')
10
+ ->setLabel('Add New Rule')
11
+ ->setOnClick('return false;')
12
+ ->setTitle('Available in the Professional Plan')
13
+ ->toHtml();
14
+ return $html;
15
+ }
16
+
17
+ }
app/code/community/Temando/Temando/Block/Adminhtml/System/Config/Form/Button/Warehouse.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_Block_Adminhtml_System_Config_Form_Button_Warehouse extends Mage_Adminhtml_Block_System_Config_Form_Field {
4
+
5
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
6
+ $this->setElement($element);
7
+ $html = $this->getLayout()
8
+ ->createBlock('adminhtml/widget_button')
9
+ ->setType('button')->setClass('scalable go disabled')
10
+ ->setLabel('Add New Warehouse')
11
+ ->setOnClick('return false;')
12
+ ->setTitle('Available in the Professional Plan')
13
+ ->toHtml();
14
+ return $html;
15
+ }
16
+
17
+ }
app/code/community/Temando/Temando/Block/Wizard/Html.php ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_Block_Wizard_Html extends Mage_Install_Block_Abstract {
4
+
5
+ public function __construct() {
6
+ parent::__construct();
7
+ }
8
+
9
+ /**
10
+ * Creates HTML select box that outputs to the view
11
+ * @param string $type
12
+ * @return string
13
+ */
14
+ public function getHtmlSelect($type) {
15
+ $select = $this->getSelectOptions($type);
16
+ $html = $this->getLayout()->createBlock('core/html_select')
17
+ ->setExtraParams($select['extraParams'])
18
+ ->setName($select['name'])
19
+ ->setId($select['id'])
20
+ ->setTitle($select['title'])
21
+ ->setClass($select['html_class'])
22
+ ->setValue($select['value'])
23
+ ->setOptions($select['options'])
24
+ ->getHtml();
25
+ return $html;
26
+ }
27
+
28
+ /**
29
+ * Gets Temando Account mode options
30
+ * @return array
31
+ */
32
+ public function modeOptions() {
33
+ $mode = array(
34
+ array(
35
+ 'value' => 0,
36
+ 'label' => Mage::helper('temando')->__('Live')
37
+ ),
38
+ array(
39
+ 'value' => 1,
40
+ 'label' => Mage::helper('temando')->__('Sandbox')
41
+ ));
42
+ return $mode;
43
+ }
44
+
45
+ /**
46
+ * Gets Temando Fragile options
47
+ * @return array
48
+ */
49
+ public function yesNoOptions() {
50
+ $yesno = array(
51
+ array(
52
+ 'value' => 0,
53
+ 'label' => Mage::helper('temando')->__('No')
54
+ ),
55
+ array(
56
+ 'value' => 1,
57
+ 'label' => Mage::helper('temando')->__('Yes')
58
+ ));
59
+ return $yesno;
60
+ }
61
+
62
+ /**
63
+ * Gets Temando Account Payment options
64
+ * @return array
65
+ */
66
+ public function paymentOptions() {
67
+ $payment = array(
68
+ array(
69
+ 'value' => 'Credit',
70
+ 'label' => Mage::helper('temando')->__('Credit')
71
+ ),
72
+ array(
73
+ 'value' => 'Account',
74
+ 'label' => Mage::helper('temando')->__('Account')
75
+ ));
76
+ return $payment;
77
+ }
78
+
79
+ /**
80
+ * Gets Allowed or Specific Country options
81
+ * @return array
82
+ */
83
+ public function allowedCountryOptions() {
84
+ $country = array(
85
+ array(
86
+ 'value' => 0,
87
+ 'label' => Mage::helper('temando')->__('All Allowed Countries')
88
+ ),
89
+ array(
90
+ 'value' => 1,
91
+ 'label' => Mage::helper('temando')->__('Specific Countries')
92
+ ));
93
+ return $country;
94
+ }
95
+
96
+ /**
97
+ * Gets Temando Rule Type options
98
+ * @return string
99
+ */
100
+ public function ruleTypeOptions() {
101
+ $options = Mage::getModel('temando/system_config_source_pricing')->getOptions();
102
+ return $options;
103
+ }
104
+
105
+ /**
106
+ * Gets the value of a name/key combination in the Temando Wizard session
107
+ * @param string $name
108
+ * @param string $key
109
+ * @return null
110
+ */
111
+ public function getTmdSession($name, $key) {
112
+ $session = Mage::getSingleton('core/session')->getData($name);
113
+ if (is_array($session)) {
114
+ if (array_key_exists($key, $session)) {
115
+ return $session[$key];
116
+ } else {
117
+ return null;
118
+ }
119
+ } else {
120
+ return null;
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Gets Temando Carrier Data
126
+ * @param string $field
127
+ * @return string
128
+ */
129
+ public function getCarrierData($field) {
130
+ $path = 'carriers/temando/' . $field;
131
+ return Mage::getStoreConfig($path);
132
+ }
133
+
134
+ /**
135
+ * Gets Temando Carrier Data in Array
136
+ * @param string $field
137
+ * @return string
138
+ */
139
+ public function getCarrierDataArray($field) {
140
+ $values = explode(',', Mage::getStoreConfig('carriers/temando/' . $field));
141
+ return $values;
142
+ }
143
+
144
+ /**
145
+ * Gets current admin url
146
+ * @return string
147
+ */
148
+ public function getCancelUrl() {
149
+ return Mage::getSingleton('core/session')->getTemandoCancelUrl();
150
+ }
151
+
152
+ /**
153
+ * Gets options for rendering the select box based on type
154
+ * @param string $type
155
+ * @return array
156
+ */
157
+ protected function getSelectOptions($type) {
158
+ $types = array(
159
+ 'mode' => array(
160
+ 'extraParams' => '',
161
+ 'name' => 'general_sandbox',
162
+ 'id' => 'sandbox',
163
+ 'title' => Mage::helper('temando')->__('Mode'),
164
+ 'html_class' => 'required-entry',
165
+ 'value' => Mage::helper('temando')->getConfigData('general/sandbox'),
166
+ 'options' => $this->modeOptions()
167
+ ),
168
+ 'payment' => array(
169
+ 'extraParams' => '',
170
+ 'name' => 'general_payment_type',
171
+ 'id' => 'payment_type',
172
+ 'title' => Mage::helper('temando')->__('Payment'),
173
+ 'html_class' => 'required-entry',
174
+ 'value' => Mage::helper('temando')->getConfigData('general/payment_type'),
175
+ 'options' => $this->paymentOptions()
176
+ ),
177
+ 'allowedCountries' => array(
178
+ 'extraParams' => '',
179
+ 'name' => 'temando_sallowspecific',
180
+ 'id' => 'sallowspecific',
181
+ 'title' => Mage::helper('temando')->__('Allow Specific Countries'),
182
+ 'html_class' => 'required-entry',
183
+ 'value' => $this->getCarrierData('sallowspecific'),
184
+ 'options' => $this->allowedCountryOptions()
185
+ ),
186
+ 'specificCountries' => array(
187
+ 'extraParams' => 'multiple="multiple" size="10"',
188
+ 'name' => 'temando_specificcountry[]',
189
+ 'id' => 'specificcountry',
190
+ 'title' => Mage::helper('temando')->__('Specific Country'),
191
+ 'html_class' => 'required-entry multiselect',
192
+ 'value' => $this->getCarrierDataArray('specificcountry'),
193
+ 'options' => Mage::getModel('temando/system_config_source_country')->getOptions()
194
+ ),
195
+ 'allowedCarriers' => array(
196
+ 'extraParams' => 'multiple="multiple" size="10"',
197
+ 'name' => 'temando_allowed_methods[]',
198
+ 'id' => 'allowed_methods',
199
+ 'title' => Mage::helper('temando')->__('Allowed Carriers'),
200
+ 'html_class' => 'required-entry multiselect',
201
+ 'value' => $this->getCarrierDataArray('allowed_methods'),
202
+ 'options' => Mage::getModel('temando/shipping_carrier_temando_source_method')->getOptions()
203
+ ),
204
+ 'measureUnits' => array(
205
+ 'extraParams' => '',
206
+ 'name' => 'units_measure',
207
+ 'id' => 'measure',
208
+ 'title' => Mage::helper('temando')->__('Measure Unit'),
209
+ 'html_class' => 'required-entry',
210
+ 'value' => Mage::helper('temando')->getConfigData('units/measure'),
211
+ 'options' => Mage::getModel('temando/system_config_source_unit_measure')->getOptions()
212
+ ),
213
+ 'weightUnits' => array(
214
+ 'extraParams' => '',
215
+ 'name' => 'units_weight',
216
+ 'id' => 'weight',
217
+ 'title' => Mage::helper('temando')->__('Weight Unit'),
218
+ 'html_class' => 'required-entry',
219
+ 'value' => Mage::helper('temando')->getConfigData('units/weight'),
220
+ 'options' => Mage::getModel('temando/system_config_source_unit_weight')->getOptions()
221
+ ),
222
+ 'packagingType' => array(
223
+ 'extraParams' => '',
224
+ 'name' => 'defaults_packaging',
225
+ 'id' => 'packaging',
226
+ 'title' => Mage::helper('temando')->__('Packaging'),
227
+ 'html_class' => 'required-entry',
228
+ 'value' => Mage::helper('temando')->getConfigData('defaults/packaging'),
229
+ 'options' => Mage::getModel('temando/system_config_source_shipment_packaging')->getOptions()
230
+ ),
231
+ 'fragile' => array(
232
+ 'extraParams' => '',
233
+ 'name' => 'defaults_fragile',
234
+ 'id' => 'fragile',
235
+ 'title' => Mage::helper('temando')->__('Fragile'),
236
+ 'html_class' => 'required-entry',
237
+ 'value' => Mage::helper('temando')->getConfigData('defaults/fragile'),
238
+ 'options' => $this->yesNoOptions()
239
+ ),
240
+ 'countries' => array(
241
+ 'extraParams' => '',
242
+ 'name' => 'origin_country',
243
+ 'id' => 'origin_country',
244
+ 'title' => Mage::helper('temando')->__('Country'),
245
+ 'html_class' => 'required-entry',
246
+ 'value' => Mage::helper('temando')->getConfigData('origin/country'),
247
+ 'options' => Mage::getModel('temando/system_config_source_country')->getOptions()
248
+ ),
249
+ 'regions' => array(
250
+ 'extraParams' => '',
251
+ 'name' => 'origin_region',
252
+ 'id' => 'origin_region',
253
+ 'title' => Mage::helper('temando')->__('Region'),
254
+ 'html_class' => 'required-entry',
255
+ 'value' => Mage::helper('temando')->getConfigData('origin/region'),
256
+ 'options' => Mage::getModel('temando/system_config_source_regions')->getOptions(true)
257
+ ),
258
+ 'ruleType' => array(
259
+ 'extraParams' => '',
260
+ 'name' => 'pricing_method',
261
+ 'id' => 'pricing_method',
262
+ 'title' => Mage::helper('temando')->__('Rule Type'),
263
+ 'html_class' => 'required-entry',
264
+ 'value' => Mage::helper('temando')->getConfigData('pricing/method'),
265
+ 'options' => $this->ruleTypeOptions()
266
+ ),
267
+ );
268
+ return $types[$type];
269
+ }
270
+
271
+ }
app/code/community/Temando/Temando/Helper/Data.php CHANGED
@@ -400,7 +400,7 @@ class Temando_Temando_Helper_Data extends Mage_Core_Helper_Abstract {
400
  return true;
401
  }
402
 
403
- $templates = array('PO Box', 'P.O. Box', 'P.O Box', 'PO. Box', 'p o box');
404
  foreach ($templates as $t) {
405
  if (strpos(strtolower($street), strtolower($t)) !== false) {
406
  return true;
400
  return true;
401
  }
402
 
403
+ $templates = array('PO Box', 'P.O. Box', 'P.O Box', 'PO. Box', 'p o box', 'Post Office');
404
  foreach ($templates as $t) {
405
  if (strpos(strtolower($street), strtolower($t)) !== false) {
406
  return true;
app/code/community/Temando/Temando/Helper/Wizard.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_Helper_Wizard extends Mage_Directory_Helper_Data {
4
+
5
+ /**
6
+ * Retrieve regions data json
7
+ *
8
+ * @return string
9
+ */
10
+ public function getRegionJson() {
11
+
12
+ if (true/* empty($json) */) {
13
+ $countryIds = array();
14
+ foreach ($this->getCountryCollection() as $country) {
15
+ $countryIds[] = $country->getCountryId();
16
+ }
17
+ $collection = Mage::getModel('directory/region')->getResourceCollection()
18
+ //->addCountryFilter($countryIds)
19
+ ->load();
20
+ $regions = array(
21
+ 'config' => array(
22
+ 'show_all_regions' => $this->getShowNonRequiredState(),
23
+ 'regions_required' => $this->getCountriesWithStatesRequired()
24
+ )
25
+ );
26
+ foreach ($collection as $region) {
27
+ if (!$region->getRegionId()) {
28
+ continue;
29
+ }
30
+ $regions[$region->getCountryId()][strtoupper($region->getCode())] = array(
31
+ 'code' => $this->__($region->getCode()),
32
+ 'name' => $this->__($region->getName())
33
+ );
34
+ }
35
+ if (count($regions) > 0) {
36
+ array_unshift($regions, array(
37
+ 'code' => '',
38
+ 'name' => Mage::helper('temando')->__('-- Please select --')
39
+ ));
40
+ }
41
+ $json = Mage::helper('core')->jsonEncode($regions);
42
+ }
43
+
44
+ return $json;
45
+ }
46
+
47
+ }
app/code/community/Temando/Temando/Model/Pcs.php CHANGED
@@ -12,7 +12,7 @@ class Temando_Temando_Model_Pcs extends Mage_Core_Model_Abstract
12
  /**
13
  * Address validation Temando AVS URL
14
  */
15
- const AVS_URL = "http://avs.temando.com/avs/search/country/%s/%s.json";
16
 
17
  /**
18
  * The HTTP Client
12
  /**
13
  * Address validation Temando AVS URL
14
  */
15
+ const AVS_URL = "http://avs.temando.com/avs/search/country/%s/%s.json?limit=1000";
16
 
17
  /**
18
  * The HTTP Client
app/code/community/Temando/Temando/Model/System/Config/Source/Wizard.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_Model_System_Config_Source_Wizard extends Temando_Temando_Model_System_Config_Source
4
+ {
5
+
6
+ const ACCOUNT = 1;
7
+ const CARRIERS = 2;
8
+ const CATALOG_PRODUCT = 3;
9
+ const ORIGIN = 4;
10
+ const RULE = 5;
11
+ const END = 6;
12
+
13
+ protected function _setupOptions()
14
+ {
15
+ $this->_options = array(
16
+ self::ACCOUNT => 'temando/temando/wizard/account.phtml',
17
+ self::CARRIERS => 'temando/temando/wizard/carriers.phtml',
18
+ self::CATALOG_PRODUCT => 'temando/temando/wizard/catalog_product.phtml',
19
+ self::ORIGIN => 'temando/temando/wizard/origin.phtml',
20
+ self::RULE => 'temando/temando/wizard/rule.phtml',
21
+ self::END => 'temando/temando/wizard/end.phtml'
22
+ );
23
+ }
24
+
25
+ }
app/code/community/Temando/Temando/Model/Wizard.php ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_Model_Wizard extends Mage_Core_Model_Abstract {
4
+
5
+ const ERR_WHS_SYNC = 'An error occured when synchronizing with temando.com. Origin location not saved on temando.com.';
6
+ const SUC_WHS_SYNC = 'Origin location saved on temando.com.';
7
+
8
+ public function _construct() {
9
+ parent::_construct();
10
+ }
11
+
12
+ /**
13
+ * Creates the cancel url from the current admin url
14
+ */
15
+ public function createCancelUrl() {
16
+ $url = Mage::getBaseUrl() . Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');
17
+ Mage::getSingleton('core/session')->setTemandoCancelUrl($url);
18
+ }
19
+
20
+ /**
21
+ * Checks the user details with the api
22
+ * @param type $params
23
+ * @return boolean
24
+ */
25
+ public function checkAccount($params) {
26
+ try {
27
+ $api = Mage::getModel('temando/api_client');
28
+ /* @var $api Temando_Temando_Model_Api_Client */
29
+ $api->connect(
30
+ $params['general_username'], $params['general_password'], $params['general_sandbox']);
31
+ $result = $api->getLocations(array('clientId' => $params['general_client']));
32
+ if (!$result) {
33
+ Mage::getSingleton('core/session')->addError(self::ERR_NO_CONNECT);
34
+ return false;
35
+ }
36
+ } catch (Exception $e) {
37
+ Mage::getSingleton('core/session')->addError($e->getMessage());
38
+ return false;
39
+ }
40
+ return true;
41
+ }
42
+
43
+ /**
44
+ * Saves Temando data in core resource
45
+ * @param type $params
46
+ * @return \Temando_Temando_Model_Wizard
47
+ */
48
+ public function _saveTemando($params) {
49
+ foreach ($params as $key => $value) {
50
+ if (strstr($key, '_', TRUE) != 'region') {
51
+ $this->setTmdConfig('temando/' . $key, $value);
52
+ }
53
+ }
54
+
55
+ return $this;
56
+ }
57
+
58
+ /**
59
+ * Saves carrier data in core resource
60
+ * @param type $params
61
+ * @return \Temando_Temando_Model_Wizard
62
+ */
63
+ public function _saveCarrier($params) {
64
+ foreach ($params as $key => $value) {
65
+ if (strstr($key, '_', TRUE) != 'email') {
66
+ $this->setTmdConfig('carriers/' . $key, $value);
67
+ }
68
+ }
69
+ return $this;
70
+ }
71
+
72
+ /**
73
+ * Sync origin data with Temando
74
+ * @return \Temando_Temando_Model_Wizard
75
+ */
76
+ public function _syncOrigin() {
77
+
78
+ try {
79
+ $api = Mage::getModel('temando/api_client');
80
+ $api->connect(
81
+ Mage::helper('temando')->getConfigData('general/username'),
82
+ Mage::helper('temando')->getConfigData('general/password'),
83
+ Mage::helper('temando')->getConfigData('general/sandbox')
84
+ );
85
+
86
+ //try to update 'Magento Warehouse'
87
+ $magentoWarehouse = Mage::helper('temando')->getOriginRequestArray(new Varien_Object($this->getFieldsetData()));
88
+ try {
89
+ $api->updateLocation(array('location' => $magentoWarehouse));
90
+ } catch (Exception $e) {
91
+ try {
92
+ //if error updating location, location probably does not exist - try to create
93
+ Mage::log($e->getMessage());
94
+ $api->createLocation(array('location' => $magentoWarehouse));
95
+ Mage::getSingleton('core/session')->addSuccess(self::SUC_WHS_SYNC);
96
+ } catch (Exception $e) {
97
+ Mage::getSingleton('core/session')->addError(self::ERR_WHS_SYNC);
98
+ Mage::log($e->getMessage());
99
+ }
100
+ }
101
+ } catch (Exception $e) {
102
+ Mage::log($e->getMessage());
103
+ }
104
+
105
+ return $this;
106
+ }
107
+
108
+ /**
109
+ * Sets parameters in Temando session
110
+ * @param type $name
111
+ * @param type $params
112
+ * @return \Temando_Temando_Model_Wizard
113
+ */
114
+ public function setTmdSession($name, $params) {
115
+ Mage::getSingleton('core/session')->setData($name, $params);
116
+ return $this;
117
+ }
118
+
119
+ /**
120
+ * Gets parameters from Temando session
121
+ * @param type $name
122
+ * @return type
123
+ */
124
+ protected function getTmdSession($name) {
125
+ $session = Mage::getSingleton('core/session')->getData($name);
126
+ return $session;
127
+ }
128
+
129
+ /**
130
+ * Sets the current wizard step in the session
131
+ * @param type $step
132
+ * @return \Temando_Temando_Model_Wizard
133
+ */
134
+ public function setTmdStep($step) {
135
+ Mage::getSingleton('core/session')->setTemandoWizardStep($step);
136
+ return $this;
137
+ }
138
+
139
+ /**
140
+ * Unsets step data from the session
141
+ * @return \Temando_Temando_Model_Wizard
142
+ */
143
+ public function unsetTmdStep() {
144
+ Mage::getSingleton('core/session')->unsetTemandoWizardStep();
145
+ return $this;
146
+ }
147
+
148
+ /**
149
+ * Saves data in core resource
150
+ * @param type $key
151
+ * @param type $value
152
+ */
153
+ protected function setTmdConfig($key, $value) {
154
+ $path = strstr($key, '_', TRUE);
155
+ $key = substr(strstr($key, '_'), 1);
156
+ if (is_array($value)) {
157
+ $value = implode(',', $value);
158
+ }
159
+
160
+ Mage::getModel('core/config')->saveConfig($path . '/' . $key, $value);
161
+ }
162
+
163
+ /**
164
+ * Sends an email if customer wants more information
165
+ */
166
+ public function sendEmail() {
167
+
168
+ $email = $this->getTmdSession('temando_wizard_carriers');
169
+
170
+ if (!empty($email['email_checkbox'])) {
171
+
172
+ if (array_key_exists('email_checkbox', $email)) {
173
+
174
+ $line = '--------------------------------';
175
+ $body = 'Temando Carrier Enquiry Submitted<br>' . $line . '<br>';
176
+ $body .= 'Name: ' . $email['email_full_name'] . '<br>';
177
+ $body .= 'Email address: ' . $email['email_email_address'] . '<br>';
178
+ $body .= 'Phone: ' . $email['email_phone'] . '<br><br>';
179
+ $body .= 'Current Magento Details<br>' . $line . '<br>';
180
+ $body .= 'Client ID: ' . Mage::helper('temando')->getConfigData('general/client') . '<br>';
181
+ $body .= 'Login ID: ' . Mage::helper('temando')->getConfigData('general/username') . '<br>';
182
+ $body .= 'Payment Type: ' . Mage::helper('temando')->getConfigData('general/payment_type') . '<br>';
183
+
184
+ try {
185
+ $mail = new Zend_Mail();
186
+ $mail->setFrom("temando_bronze@temando.com", "Temando Bronze - Starter");
187
+ $mail->addTo("sales@temando.com", "Sales");
188
+ $mail->setSubject("Temando Carrier Enquiry");
189
+ $mail->setBodyHtml($body);
190
+ $mail->send();
191
+ Mage::getSingleton('core/session')->unsetData('temando_wizard_carriers');
192
+ } catch (Exception $e) {
193
+ //echo $e->getMessage();
194
+ }
195
+ }
196
+ }
197
+ return $this;
198
+ }
199
+
200
+ }
app/code/community/Temando/Temando/controllers/Adminhtml/ShipmentController.php CHANGED
@@ -508,9 +508,9 @@ class Temando_Temando_Adminhtml_ShipmentController extends Mage_Adminhtml_Contro
508
  ->setHeader('Pragma', 'public', true)
509
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
510
  ->setHeader('Content-type', $shipment->getConsignmentDocumentType(), true)
511
- ->setHeader('Content-Length', $document_length)
512
- ->setHeader('Content-Disposition', 'attachment; filename="order-' . $shipment->getOrderNumber() . '.pdf"')
513
- ->setHeader('Last-Modified', date('r'));
514
  $this->getResponse()->clearBody();
515
  $this->getResponse()->sendHeaders();
516
  print $document;
508
  ->setHeader('Pragma', 'public', true)
509
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
510
  ->setHeader('Content-type', $shipment->getConsignmentDocumentType(), true)
511
+ ->setHeader('Content-Length', $document_length, true)
512
+ ->setHeader('Content-Disposition', 'attachment; filename="order-' . $shipment->getOrderNumber() . '.pdf"', true)
513
+ ->setHeader('Last-Modified', date('r'), true);
514
  $this->getResponse()->clearBody();
515
  $this->getResponse()->sendHeaders();
516
  print $document;
app/code/community/Temando/Temando/controllers/Adminhtml/WizardController.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_Adminhtml_WizardController extends Mage_Adminhtml_Controller_Action {
4
+
5
+ const ERR_NO_SOAP = 'SOAP is not enabled on this server. Please enable SOAP to use the Temando plugin.';
6
+
7
+ /**
8
+ * Adminhtml controller that redirects to the front end view and starts the wizard.
9
+ * @return type
10
+ */
11
+ public function indexAction() {
12
+ $params = array('id' => md5(Mage::getSingleton('core/session')->getSessionId()));
13
+ if ($this->checkSoap()) {
14
+ Mage::getSingleton('adminhtml/session')->addError(self::ERR_NO_SOAP);
15
+ return $this->getResponse()->setRedirect($this->getRequest()->getServer('HTTP_REFERER'));
16
+ } else {
17
+ $this->_redirect('etemando/wizard/index', $params);
18
+ }
19
+ }
20
+
21
+ /**
22
+ * Checks to see if the SOAP extension is loaded
23
+ * @return boolean
24
+ */
25
+ public function checkSoap() {
26
+ if (!extension_loaded('soap')) {
27
+ return true;
28
+ } else {
29
+ return false;
30
+ }
31
+ }
32
+
33
+ }
34
+
app/code/community/Temando/Temando/controllers/WizardController.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Temando_Temando_WizardController extends Mage_Core_Controller_Front_Action {
4
+
5
+ const ERR_ORIGIN_EXISTS = 'This warehouse already exists. Please select another name.';
6
+ const ERR_NO_CONNECT = 'Cannot connect to the api. Please check your connection and try again.';
7
+
8
+ public function construct() {
9
+ parent:: construct();
10
+
11
+ $this->loadLayout();
12
+ $this->renderLayout();
13
+ }
14
+
15
+ /**
16
+ * Main index
17
+ */
18
+ public function indexAction() {
19
+ $params = $this->getRequest()->getParams();
20
+ if ($params) {
21
+ if ($params['key'] && $params['id'] == md5(Mage::getSingleton('admin/session')->getCookie()->get('adminhtml'))) {
22
+ Mage::getModel('temando/wizard')->setTmdStep(1);
23
+ Mage::getModel('temando/wizard')->createCancelUrl();
24
+ $this->_redirect('*/*/index');
25
+ }
26
+ }
27
+ $step = Mage::getSingleton('core/session')->getTemandoWizardStep();
28
+ $this->setControllerLayout($step);
29
+ }
30
+
31
+ /**
32
+ * Save action to save data
33
+ */
34
+ public function saveAction() {
35
+ $params = $this->getRequest()->getPost();
36
+ $step = (Mage::getSingleton('core/session')->getTemandoWizardStep());
37
+ $wizard = Mage::getModel('temando/wizard');
38
+ /* @var $wizard Temando_Temando_Model_Wizard */
39
+
40
+ if ($step == Temando_Temando_Model_System_Config_Source_Wizard::ACCOUNT) {
41
+ if (!$wizard->checkAccount($params)) {
42
+ $step = 0;
43
+ $wizard->_saveTemando($params);
44
+ };
45
+ }
46
+ if ($step == Temando_Temando_Model_System_Config_Source_Wizard::CARRIERS) {
47
+ $wizard->setTmdSession('temando_wizard_carriers', $params);
48
+ }
49
+ if ($step == Temando_Temando_Model_System_Config_Source_Wizard::ACCOUNT || $step == Temando_Temando_Model_System_Config_Source_Wizard::CATALOG_PRODUCT) {
50
+ $wizard->_saveTemando($params);
51
+ } else if ($step == Temando_Temando_Model_System_Config_Source_Wizard::CARRIERS) {
52
+ $wizard->_saveCarrier($params);
53
+ } else if ($step == Temando_Temando_Model_System_Config_Source_Wizard::ORIGIN) {
54
+ $wizard->_saveTemando($params)->_syncOrigin();
55
+ } else if ($step == Temando_Temando_Model_System_Config_Source_Wizard::RULE) {
56
+ $wizard->_saveTemando($params)->sendEmail();
57
+ }
58
+ Mage::getSingleton('core/session')->setTemandoWizardStep($step + 1);
59
+ Mage::app()->cleanCache(array('CONFIG'));
60
+ $this->_redirect('*/*/index');
61
+ }
62
+
63
+ /**
64
+ * Goes back to the previous step
65
+ */
66
+ public function backAction() {
67
+ $step = (Mage::getSingleton('core/session')->getTemandoWizardStep() - 1);
68
+ Mage::getSingleton('core/session')->setTemandoWizardStep($step);
69
+ $this->_redirect('*/*/index');
70
+ }
71
+
72
+ /**
73
+ * Skips the save function and goes to the next step
74
+ */
75
+ public function skipAction() {
76
+ $step = (Mage::getSingleton('core/session')->getTemandoWizardStep() + 1);
77
+ if ($step == Temando_Temando_Model_System_Config_Source_Wizard::END) {
78
+ Mage::getModel('temando/wizard')->sendEmail();
79
+ }
80
+ Mage::getSingleton('core/session')->setTemandoWizardStep($step);
81
+ $this->_redirect('*/*/index');
82
+ }
83
+
84
+ /**
85
+ * Sets the layout based on the current step saved in the session
86
+ * @param type $step
87
+ */
88
+ protected function setControllerLayout($step) {
89
+
90
+ $wizard = Mage::getModel('temando/system_config_source_wizard');
91
+ /* @var $wizard Temando_Temando_Model_System_Config_Source_Wizard */
92
+
93
+ if ($step) {
94
+
95
+ $this->loadLayout();
96
+ if ($step == Temando_Temando_Model_System_Config_Source_Wizard::ACCOUNT) {
97
+ $this->getLayout()->getBlock('root')->getChild('content')->setTemplate($wizard->getOptionLabel(Temando_Temando_Model_System_Config_Source_Wizard::ACCOUNT));
98
+ } elseif ($step == Temando_Temando_Model_System_Config_Source_Wizard::CARRIERS) {
99
+ $this->getLayout()->getBlock('root')->getChild('content')->setTemplate($wizard->getOptionLabel(Temando_Temando_Model_System_Config_Source_Wizard::CARRIERS));
100
+ } elseif ($step == Temando_Temando_Model_System_Config_Source_Wizard::CATALOG_PRODUCT) {
101
+ $this->getLayout()->getBlock('root')->getChild('content')->setTemplate($wizard->getOptionLabel(Temando_Temando_Model_System_Config_Source_Wizard::CATALOG_PRODUCT));
102
+ } elseif ($step == Temando_Temando_Model_System_Config_Source_Wizard::ORIGIN) {
103
+ $this->getLayout()->getBlock('root')->getChild('content')->setTemplate($wizard->getOptionLabel(Temando_Temando_Model_System_Config_Source_Wizard::ORIGIN));
104
+ } elseif ($step == Temando_Temando_Model_System_Config_Source_Wizard::RULE) {
105
+ $this->getLayout()->getBlock('root')->getChild('content')->setTemplate($wizard->getOptionLabel(Temando_Temando_Model_System_Config_Source_Wizard::RULE));
106
+ } else {
107
+ $this->getLayout()->getBlock('root')->getChild('content')->setTemplate($wizard->getOptionLabel(Temando_Temando_Model_System_Config_Source_Wizard::END));
108
+ Mage::getModel('temando/wizard')->unsetTmdStep();
109
+ }
110
+ $this->renderLayout();
111
+ }
112
+ }
113
+
114
+ }
app/code/community/Temando/Temando/etc/adminhtml.xml CHANGED
@@ -15,22 +15,39 @@
15
  <sort_order>20</sort_order>
16
  <action>temando/adminhtml_manifest</action>
17
  </manifest>
18
- <configuration translate="title" module="temando">
19
  <title>Configuration Settings</title>
20
  <sort_order>30</sort_order>
21
- <children>
22
- <temando_settings translate="title" module="temando">
23
- <title>Temando Settings</title>
24
- <sort_order>10</sort_order>
25
- <action>adminhtml/system_config/edit/section/temando</action>
26
- </temando_settings>
27
- <shipping_methods>
28
- <title>Shipping Methods</title>
29
- <sort_order>20</sort_order>
30
- <action>adminhtml/system_config/edit/section/carriers</action>
31
- </shipping_methods>
32
- </children>
 
 
 
 
 
33
  </configuration>
 
 
 
 
 
 
 
 
 
 
 
 
34
  </children>
35
  </temando>
36
  </menu>
@@ -51,17 +68,26 @@
51
  <manifest>
52
  <title>Manage Manifests</title>
53
  </manifest>
54
- <configuration>
55
- <title>Configuration Settings</title>
56
- <children>
57
- <temando_settings>
58
- <title>Temando Settings</title>
59
- </temando_settings>
60
- <shipping_methods>
61
- <title>Shipping Methods</title>
62
- </shipping_methods>
63
- </children>
64
- </configuration>
 
 
 
 
 
 
 
 
 
65
  </children>
66
  </temando>
67
  <system>
15
  <sort_order>20</sort_order>
16
  <action>temando/adminhtml_manifest</action>
17
  </manifest>
18
+ <configuration translate="title" module="temando">
19
  <title>Configuration Settings</title>
20
  <sort_order>30</sort_order>
21
+ <children>
22
+ <temando_settings translate="title" module="temando">
23
+ <title>Temando Settings</title>
24
+ <sort_order>10</sort_order>
25
+ <action>adminhtml/system_config/edit/section/temando</action>
26
+ </temando_settings>
27
+ <shipping_methods>
28
+ <title>Shipping Methods</title>
29
+ <sort_order>20</sort_order>
30
+ <action>adminhtml/system_config/edit/section/carriers</action>
31
+ </shipping_methods>
32
+ <wizard>
33
+ <title>Configuration Wizard</title>
34
+ <sort_order>30</sort_order>
35
+ <action>temando/adminhtml_wizard</action>
36
+ </wizard>
37
+ </children>
38
  </configuration>
39
+ <multiwarehouse translate="title" module="temando">
40
+ <title>Multi Warehouse - Professional plan</title>
41
+ <sort_order>40</sort_order>
42
+ </multiwarehouse>
43
+ <advancedrule translate="title" module="temando">
44
+ <title>Advance Shipping Rules - Professional plan</title>
45
+ <sort_order>50</sort_order>
46
+ </advancedrule>
47
+ <partialshipments translate="title" module="temando">
48
+ <title>Partial Shipments - Business plan</title>
49
+ <sort_order>60</sort_order>
50
+ </partialshipments>
51
  </children>
52
  </temando>
53
  </menu>
68
  <manifest>
69
  <title>Manage Manifests</title>
70
  </manifest>
71
+ <configuration>
72
+ <title>Configuration Settings</title>
73
+ <children>
74
+ <temando_settings>
75
+ <title>Temando Settings</title>
76
+ </temando_settings>
77
+ <shipping_methods>
78
+ <title>Shipping Methods</title>
79
+ </shipping_methods>
80
+ </children>
81
+ </configuration>
82
+ <multiwarehouse>
83
+ <title>Multi Warehouse - Professional plan</title>
84
+ </multiwarehouse>
85
+ <advancedrule>
86
+ <title>Advance Shipping Rules - Professional plan</title>
87
+ </advancedrule>
88
+ <partialshipments>
89
+ <title>Partial Shipments - Business plan</title>
90
+ </partialshipments>
91
  </children>
92
  </temando>
93
  <system>
app/code/community/Temando/Temando/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Temando_Temando>
5
- <version>1.0.0.1</version>
6
  </Temando_Temando>
7
  </modules>
8
  <global>
@@ -152,6 +152,7 @@
152
  <status><![CDATA[optional]]></status>
153
  </footprints>
154
  <pricing>
 
155
  <method><![CDATA[dynamic]]></method>
156
  <shipping_fee><![CDATA[0]]></shipping_fee>
157
  <handling_fee><![CDATA[0]]></handling_fee>
@@ -171,7 +172,16 @@
171
  <height><![CDATA[10]]></height>
172
  </defaults>
173
  <origin>
174
- <country><![CDATA[AU]]></country>
 
 
 
 
 
 
 
 
 
175
  </origin>
176
  </temando>
177
  <carriers>
2
  <config>
3
  <modules>
4
  <Temando_Temando>
5
+ <version>1.1.0</version>
6
  </Temando_Temando>
7
  </modules>
8
  <global>
152
  <status><![CDATA[optional]]></status>
153
  </footprints>
154
  <pricing>
155
+ <error_process><![CDATA[view]]></error_process>
156
  <method><![CDATA[dynamic]]></method>
157
  <shipping_fee><![CDATA[0]]></shipping_fee>
158
  <handling_fee><![CDATA[0]]></handling_fee>
172
  <height><![CDATA[10]]></height>
173
  </defaults>
174
  <origin>
175
+ <contact_name><![CDATA[Temando User]]></contact_name>
176
+ <company_name><![CDATA[Temando]]></company_name>
177
+ <street><![CDATA[Level 4, 140 William Street]]></street>
178
+ <city><![CDATA[WOOLLOOMOOLOO]]></city>
179
+ <postcode><![CDATA[2011]]></postcode>
180
+ <country><![CDATA[AU]]></country>
181
+ <region><![CDATA[NSW]]></region>
182
+ <type><![CDATA[Business]]></type>
183
+ <phone1><![CDATA[02 1234 5678]]></phone1>
184
+ <email><![CDATA[sales@temando.com]]></email>
185
  </origin>
186
  </temando>
187
  <carriers>
app/code/community/Temando/Temando/etc/system.xml CHANGED
@@ -35,8 +35,8 @@
35
  <show_in_store>1</show_in_store>
36
  <comment><![CDATA[If set to "Yes", the sandbox (testing) service will be used (usually set to "No" on a live site)]]></comment>
37
  </sandbox>
38
- <client>
39
- <label>Client ID</label>
40
  <frontend_type>text</frontend_type>
41
  <sort_order>30</sort_order>
42
  <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
@@ -44,7 +44,7 @@
44
  <show_in_default>1</show_in_default>
45
  <show_in_website>1</show_in_website>
46
  <show_in_store>1</show_in_store>
47
- </client>
48
  <username translate="label">
49
  <label>Login ID</label>
50
  <frontend_type>text</frontend_type>
@@ -104,24 +104,24 @@
104
  <show_in_website>1</show_in_website>
105
  <show_in_store>1</show_in_store>
106
  </label_type>
107
- <show_transit_type translate="label">
108
- <label>Show Transit Type</label>
109
  <frontend_type>select</frontend_type>
110
  <sort_order>30</sort_order>
111
  <source_model>adminhtml/system_config_source_yesno</source_model>
112
  <show_in_default>1</show_in_default>
113
  <show_in_website>1</show_in_website>
114
  <show_in_store>1</show_in_store>
115
- </show_transit_type>
116
- <show_transit_time translate="label">
117
- <label>Show Transit Time</label>
118
  <frontend_type>select</frontend_type>
119
  <sort_order>40</sort_order>
120
  <source_model>adminhtml/system_config_source_yesno</source_model>
121
  <show_in_default>1</show_in_default>
122
  <show_in_website>1</show_in_website>
123
  <show_in_store>1</show_in_store>
124
- </show_transit_time>
125
  </fields>
126
  </options>
127
  <insurance translate="label">
@@ -177,7 +177,7 @@
177
  </status>
178
  </fields>
179
  </carbon>
180
- <footprints translate="label">
181
  <label>Footprints</label>
182
  <frontend_type>text</frontend_type>
183
  <sort_order>50</sort_order>
@@ -203,7 +203,7 @@
203
  </status>
204
  </fields>
205
  </footprints>
206
- <pricing translate="label">
207
  <label>Pricing</label>
208
  <frontend_type>text</frontend_type>
209
  <sort_order>60</sort_order>
@@ -253,7 +253,7 @@
253
  <show_in_website>1</show_in_website>
254
  <show_in_store>1</show_in_store>
255
  </shipping_fee>
256
- <handling_fee translate="label">
257
  <label>Handling Fee / Markup</label>
258
  <frontend_type>text</frontend_type>
259
  <sort_order>30</sort_order>
@@ -270,6 +270,15 @@
270
  <show_in_website>1</show_in_website>
271
  <show_in_store>0</show_in_store>
272
  </handling_type>
 
 
 
 
 
 
 
 
 
273
  </fields>
274
  </pricing>
275
  <units translate="label">
@@ -311,7 +320,7 @@
311
  <show_in_store>1</show_in_store>
312
  <comment><![CDATA[Default values will be used for all products that do not have product specific dimensions & packaging information configured.]]></comment>
313
  <fields>
314
- <packaging translate="label">
315
  <label>Packaging</label>
316
  <frontend_type>select</frontend_type>
317
  <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
@@ -361,7 +370,7 @@
361
  </height>
362
  </fields>
363
  </defaults>
364
- <origin translate="label">
365
  <label>Stock origin (warehouse) details</label>
366
  <frontend_type>text</frontend_type>
367
  <sort_order>80</sort_order>
@@ -418,10 +427,10 @@
418
  <show_in_website>1</show_in_website>
419
  <show_in_store>0</show_in_store>
420
  </postcode>
421
- <country translate="label">
422
  <label>Country</label>
423
  <frontend_type>select</frontend_type>
424
- <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
425
  <frontend_class>temando-countries</frontend_class>
426
  <source_model>adminhtml/system_config_source_country</source_model>
427
  <sort_order>60</sort_order>
@@ -432,7 +441,7 @@
432
  <region translate="label">
433
  <label>Region/State</label>
434
  <frontend_type>text</frontend_type>
435
- <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
436
  <sort_order>70</sort_order>
437
  <show_in_default>1</show_in_default>
438
  <show_in_website>0</show_in_website>
@@ -485,7 +494,7 @@
485
  <show_in_website>0</show_in_website>
486
  <show_in_store>0</show_in_store>
487
  </email>
488
- <loading_facilities translate="label">
489
  <label>Loading Facilities</label>
490
  <frontend_type>select</frontend_type>
491
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -493,9 +502,9 @@
493
  <show_in_default>1</show_in_default>
494
  <show_in_website>0</show_in_website>
495
  <show_in_store>0</show_in_store>
496
- <comment><![CDATA[Does the warehouse have loading facilities?]]></comment>
497
  </loading_facilities>
498
- <forklift translate="label">
499
  <label>Forklift</label>
500
  <frontend_type>select</frontend_type>
501
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -503,9 +512,9 @@
503
  <show_in_default>1</show_in_default>
504
  <show_in_website>0</show_in_website>
505
  <show_in_store>0</show_in_store>
506
- <comment><![CDATA[Does the warehouse have a forklift?]]></comment>
507
  </forklift>
508
- <dock translate="label">
509
  <label>Dock</label>
510
  <frontend_type>select</frontend_type>
511
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -513,9 +522,9 @@
513
  <show_in_default>1</show_in_default>
514
  <show_in_website>0</show_in_website>
515
  <show_in_store>0</show_in_store>
516
- <comment><![CDATA[Does the warehouse have a dock?]]></comment>
517
  </dock>
518
- <limited_access translate="label">
519
  <label>Limited Access</label>
520
  <frontend_type>select</frontend_type>
521
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -523,9 +532,9 @@
523
  <show_in_default>1</show_in_default>
524
  <show_in_website>0</show_in_website>
525
  <show_in_store>0</show_in_store>
526
- <comment><![CDATA[Does the warehouse have limited access?]]></comment>
527
  </limited_access>
528
- <pobox translate="label">
529
  <label>PO Box</label>
530
  <frontend_type>select</frontend_type>
531
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -533,8 +542,17 @@
533
  <show_in_default>1</show_in_default>
534
  <show_in_website>0</show_in_website>
535
  <show_in_store>0</show_in_store>
536
- <comment><![CDATA[Is the address of this warehouse a postal box?]]></comment>
537
  </pobox>
 
 
 
 
 
 
 
 
 
538
  </fields>
539
  </origin>
540
  </groups>
@@ -588,7 +606,7 @@
588
  <show_in_website>1</show_in_website>
589
  <show_in_store>1</show_in_store>
590
  </showmethod>
591
- <free_shipping_enable translate="label">
592
  <label>Free Shipping with Minimum Order Amount</label>
593
  <frontend_type>select</frontend_type>
594
  <source_model>adminhtml/system_config_source_enabledisable</source_model>
@@ -623,7 +641,7 @@
623
  <show_in_default>1</show_in_default>
624
  <show_in_website>1</show_in_website>
625
  <show_in_store>1</show_in_store>
626
- <comment><![CDATA[Use CTRL + click to select multiple carriers]]></comment>
627
  </allowed_methods>
628
  </fields>
629
  </temando>
35
  <show_in_store>1</show_in_store>
36
  <comment><![CDATA[If set to "Yes", the sandbox (testing) service will be used (usually set to "No" on a live site)]]></comment>
37
  </sandbox>
38
+ <client>
39
+ <label>Client ID</label>
40
  <frontend_type>text</frontend_type>
41
  <sort_order>30</sort_order>
42
  <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
44
  <show_in_default>1</show_in_default>
45
  <show_in_website>1</show_in_website>
46
  <show_in_store>1</show_in_store>
47
+ </client>
48
  <username translate="label">
49
  <label>Login ID</label>
50
  <frontend_type>text</frontend_type>
104
  <show_in_website>1</show_in_website>
105
  <show_in_store>1</show_in_store>
106
  </label_type>
107
+ <show_transit_type translate="label">
108
+ <label>Show Transit Type</label>
109
  <frontend_type>select</frontend_type>
110
  <sort_order>30</sort_order>
111
  <source_model>adminhtml/system_config_source_yesno</source_model>
112
  <show_in_default>1</show_in_default>
113
  <show_in_website>1</show_in_website>
114
  <show_in_store>1</show_in_store>
115
+ </show_transit_type>
116
+ <show_transit_time translate="label">
117
+ <label>Show Transit Time</label>
118
  <frontend_type>select</frontend_type>
119
  <sort_order>40</sort_order>
120
  <source_model>adminhtml/system_config_source_yesno</source_model>
121
  <show_in_default>1</show_in_default>
122
  <show_in_website>1</show_in_website>
123
  <show_in_store>1</show_in_store>
124
+ </show_transit_time>
125
  </fields>
126
  </options>
127
  <insurance translate="label">
177
  </status>
178
  </fields>
179
  </carbon>
180
+ <footprints translate="label">
181
  <label>Footprints</label>
182
  <frontend_type>text</frontend_type>
183
  <sort_order>50</sort_order>
203
  </status>
204
  </fields>
205
  </footprints>
206
+ <pricing translate="label">
207
  <label>Pricing</label>
208
  <frontend_type>text</frontend_type>
209
  <sort_order>60</sort_order>
253
  <show_in_website>1</show_in_website>
254
  <show_in_store>1</show_in_store>
255
  </shipping_fee>
256
+ <handling_fee translate="label">
257
  <label>Handling Fee / Markup</label>
258
  <frontend_type>text</frontend_type>
259
  <sort_order>30</sort_order>
270
  <show_in_website>1</show_in_website>
271
  <show_in_store>0</show_in_store>
272
  </handling_type>
273
+ <rule_button translate="label">
274
+ <label></label>
275
+ <frontend_model>temando/adminhtml_system_config_form_button_rule</frontend_model>
276
+ <frontend_type>button</frontend_type>
277
+ <sort_order>50</sort_order>
278
+ <show_in_default>1</show_in_default>
279
+ <show_in_website>1</show_in_website>
280
+ <show_in_store>1</show_in_store>
281
+ </rule_button>
282
  </fields>
283
  </pricing>
284
  <units translate="label">
320
  <show_in_store>1</show_in_store>
321
  <comment><![CDATA[Default values will be used for all products that do not have product specific dimensions & packaging information configured.]]></comment>
322
  <fields>
323
+ <packaging translate="label">
324
  <label>Packaging</label>
325
  <frontend_type>select</frontend_type>
326
  <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
370
  </height>
371
  </fields>
372
  </defaults>
373
+ <origin translate="label">
374
  <label>Stock origin (warehouse) details</label>
375
  <frontend_type>text</frontend_type>
376
  <sort_order>80</sort_order>
427
  <show_in_website>1</show_in_website>
428
  <show_in_store>0</show_in_store>
429
  </postcode>
430
+ <country translate="label">
431
  <label>Country</label>
432
  <frontend_type>select</frontend_type>
433
+ <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
434
  <frontend_class>temando-countries</frontend_class>
435
  <source_model>adminhtml/system_config_source_country</source_model>
436
  <sort_order>60</sort_order>
441
  <region translate="label">
442
  <label>Region/State</label>
443
  <frontend_type>text</frontend_type>
444
+ <frontend_model>temando/adminhtml_system_config_form_field_required</frontend_model>
445
  <sort_order>70</sort_order>
446
  <show_in_default>1</show_in_default>
447
  <show_in_website>0</show_in_website>
494
  <show_in_website>0</show_in_website>
495
  <show_in_store>0</show_in_store>
496
  </email>
497
+ <loading_facilities translate="label">
498
  <label>Loading Facilities</label>
499
  <frontend_type>select</frontend_type>
500
  <source_model>adminhtml/system_config_source_yesno</source_model>
502
  <show_in_default>1</show_in_default>
503
  <show_in_website>0</show_in_website>
504
  <show_in_store>0</show_in_store>
505
+ <comment><![CDATA[Does the warehouse have loading facilities?]]></comment>
506
  </loading_facilities>
507
+ <forklift translate="label">
508
  <label>Forklift</label>
509
  <frontend_type>select</frontend_type>
510
  <source_model>adminhtml/system_config_source_yesno</source_model>
512
  <show_in_default>1</show_in_default>
513
  <show_in_website>0</show_in_website>
514
  <show_in_store>0</show_in_store>
515
+ <comment><![CDATA[Does the warehouse have a forklift?]]></comment>
516
  </forklift>
517
+ <dock translate="label">
518
  <label>Dock</label>
519
  <frontend_type>select</frontend_type>
520
  <source_model>adminhtml/system_config_source_yesno</source_model>
522
  <show_in_default>1</show_in_default>
523
  <show_in_website>0</show_in_website>
524
  <show_in_store>0</show_in_store>
525
+ <comment><![CDATA[Does the warehouse have a dock?]]></comment>
526
  </dock>
527
+ <limited_access translate="label">
528
  <label>Limited Access</label>
529
  <frontend_type>select</frontend_type>
530
  <source_model>adminhtml/system_config_source_yesno</source_model>
532
  <show_in_default>1</show_in_default>
533
  <show_in_website>0</show_in_website>
534
  <show_in_store>0</show_in_store>
535
+ <comment><![CDATA[Does the warehouse have limited access?]]></comment>
536
  </limited_access>
537
+ <pobox translate="label">
538
  <label>PO Box</label>
539
  <frontend_type>select</frontend_type>
540
  <source_model>adminhtml/system_config_source_yesno</source_model>
542
  <show_in_default>1</show_in_default>
543
  <show_in_website>0</show_in_website>
544
  <show_in_store>0</show_in_store>
545
+ <comment><![CDATA[Is the address of this warehouse a postal box?]]></comment>
546
  </pobox>
547
+ <warehouse_button translate="label">
548
+ <label></label>
549
+ <frontend_model>temando/adminhtml_system_config_form_button_warehouse</frontend_model>
550
+ <frontend_type>button</frontend_type>
551
+ <sort_order>170</sort_order>
552
+ <show_in_default>1</show_in_default>
553
+ <show_in_website>1</show_in_website>
554
+ <show_in_store>1</show_in_store>
555
+ </warehouse_button>
556
  </fields>
557
  </origin>
558
  </groups>
606
  <show_in_website>1</show_in_website>
607
  <show_in_store>1</show_in_store>
608
  </showmethod>
609
+ <free_shipping_enable translate="label">
610
  <label>Free Shipping with Minimum Order Amount</label>
611
  <frontend_type>select</frontend_type>
612
  <source_model>adminhtml/system_config_source_enabledisable</source_model>
641
  <show_in_default>1</show_in_default>
642
  <show_in_website>1</show_in_website>
643
  <show_in_store>1</show_in_store>
644
+ <comment><![CDATA[Use CTRL + click to select multiple carriers<br/>To load eParcel Australia Post rates please contact <a href="mailto:sales@temando.com">sales@temando.com</a>.]]></comment>
645
  </allowed_methods>
646
  </fields>
647
  </temando>
app/design/adminhtml/default/default/layout/temando.xml CHANGED
@@ -1,19 +1,43 @@
1
  <?xml version="1.0"?>
2
  <layout>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  <adminhtml_system_config_edit>
5
  <reference name="head">
6
- <action method="addItem"><type>skin_css</type><name>temando/styles.css</name></action>
7
- <action method="addJs"><script>temando/autocomplete.js</script></action>
8
- <action method="addJs"><script>temando/avs.js</script></action>
9
- <block type="adminhtml/template" template="temando/temando/region.phtml" name="temando_region" output="toHtml" />
10
- <block type="adminhtml/template" template="temando/temando/origin-avs.phtml" name="temando_origin_avs" output="toHtml" />
 
 
 
 
 
 
 
11
  </reference>
12
  </adminhtml_system_config_edit>
13
 
14
  <temando_adminhtml_shipment_index>
15
- <reference name="head">
16
- <action method="addItem"><type>skin_css</type><name>temando/styles.css</name></action>
 
 
 
17
  </reference>
18
  <reference name="content">
19
  <block type="temando/adminhtml_shipment" name="temando_shipment">
@@ -24,10 +48,17 @@
24
 
25
  <temando_adminhtml_shipment_edit>
26
  <reference name="head">
27
- <block type="adminhtml/template" template="temando/temando/region.phtml" name="temando_region" output="toHtml" />
28
- <action method="addItem"><type>skin_css</type><name>temando/styles.css</name></action>
29
- <action method="addJs"><script>temando/autocomplete.js</script></action>
30
- <action method="addJs"><script>temando/avs.js</script></action>
 
 
 
 
 
 
 
31
  </reference>
32
  <reference name="content">
33
  <block type="temando/adminhtml_shipment_edit" name="temando_shipment_edit" />
1
  <?xml version="1.0"?>
2
  <layout>
3
+
4
+ <default>
5
+ <reference name="head">
6
+ <action method="addJs">
7
+ <script>temando/menu.js</script>
8
+ </action>
9
+ </reference>
10
+ </default>
11
+
12
+ <default>
13
+ <reference name="before_body_end">
14
+ <block type='core/template' name="tmdmenu" template='temando/temando/menu.phtml' />
15
+ </reference>
16
+ </default>
17
 
18
  <adminhtml_system_config_edit>
19
  <reference name="head">
20
+ <action method="addItem">
21
+ <type>skin_css</type>
22
+ <name>temando/styles.css</name>
23
+ </action>
24
+ <action method="addJs">
25
+ <script>temando/autocomplete.js</script>
26
+ </action>
27
+ <action method="addJs">
28
+ <script>temando/avs.js</script>
29
+ </action>
30
+ <block type="adminhtml/template" template="temando/temando/region.phtml" name="temando_region" output="toHtml" />
31
+ <block type="adminhtml/template" template="temando/temando/origin-avs.phtml" name="temando_origin_avs" output="toHtml" />
32
  </reference>
33
  </adminhtml_system_config_edit>
34
 
35
  <temando_adminhtml_shipment_index>
36
+ <reference name="head">
37
+ <action method="addItem">
38
+ <type>skin_css</type>
39
+ <name>temando/styles.css</name>
40
+ </action>
41
  </reference>
42
  <reference name="content">
43
  <block type="temando/adminhtml_shipment" name="temando_shipment">
48
 
49
  <temando_adminhtml_shipment_edit>
50
  <reference name="head">
51
+ <block type="adminhtml/template" template="temando/temando/region.phtml" name="temando_region" output="toHtml" />
52
+ <action method="addItem">
53
+ <type>skin_css</type>
54
+ <name>temando/styles.css</name>
55
+ </action>
56
+ <action method="addJs">
57
+ <script>temando/autocomplete.js</script>
58
+ </action>
59
+ <action method="addJs">
60
+ <script>temando/avs.js</script>
61
+ </action>
62
  </reference>
63
  <reference name="content">
64
  <block type="temando/adminhtml_shipment_edit" name="temando_shipment_edit" />
app/design/adminhtml/default/default/template/temando/temando/menu.phtml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript">
2
+ //<![CDATA[
3
+
4
+ document.observe("dom:loaded", function() {
5
+ temandoMenu();
6
+ });
7
+ //]]>
8
+ </script>
app/design/frontend/base/default/layout/temando.xml CHANGED
@@ -21,6 +21,17 @@
21
  </reference>
22
  </etemando_pcs_product>
23
 
 
 
 
 
 
 
 
 
 
 
 
24
  <checkout_onepage_index>
25
  <reference name="head">
26
  <action method="addItem">
21
  </reference>
22
  </etemando_pcs_product>
23
 
24
+ <etemando_wizard_index>
25
+ <label>Temando Wizard</label>
26
+ <reference name="root">
27
+ <action method="setTemplate">
28
+ <template>temando/temando/wizard.phtml</template>
29
+ </action>
30
+ <block type="page/html" template="temando/temando/wizard/left.phtml" name="temando-left" as="temando-left"/>
31
+ <block type="temando/wizard_html" template="temando/temando/wizard/account.phtml" name="content" as="content"/>
32
+ </reference>
33
+ </etemando_wizard_index>
34
+
35
  <checkout_onepage_index>
36
  <reference name="head">
37
  <action method="addItem">
app/design/frontend/base/default/template/temando/temando/wizard.phtml ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Template for Mage_Page_Block_Html
30
+ */
31
+ ?>
32
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
33
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
34
+ <head>
35
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
36
+ <title><?php echo Mage::helper('install')->__('Temando Configuration Wizard') ?></title>
37
+
38
+ <link rel="icon" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'install/default/default/favicon.ico'; ?>" type="image/x-icon" />
39
+ <link rel="shortcut icon" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'install/default/default/favicon.ico'; ?>" type="image/x-icon" />
40
+
41
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>prototype/prototype.js"></script>
42
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>prototype/validation.js"></script>
43
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>scriptaculous/effects.js"></script>
44
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>mage/translate.js" ></script>
45
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>varien/js.js"></script>
46
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>varien/form.js"></script>
47
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>temando/avs.js"></script>
48
+ <script type="text/javascript" src="<?php echo $this->getJsUrl() ?>temando/autocomplete.js"></script>
49
+ <link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'install/default/default/css/reset.css'; ?>" type="text/css" media="all" />
50
+ <link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'install/default/default/css/boxes.css'; ?>" type="text/css" media="all" />
51
+ <link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'install/default/default/css/clears.css'; ?>" type="text/css" media="all" />
52
+ <link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'frontend/base/default/css/temando/autocomplete.css'; ?>" type="text/css" media="all" />
53
+ <!--[if IE]><link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'install/default/default/css/iestyles.css'; ?>" type="text/css" media="all" /><![endif]-->
54
+ <!--[if lt IE 7]><link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) . 'install/default/default/css/ie7minus.css'; ?>" type="text/css" media="all" /><![endif]-->
55
+
56
+ <?php echo $this->helper('core/js')->getTranslatorScript() ?>
57
+
58
+ </head>
59
+
60
+ <body>
61
+ <!-- [start] header -->
62
+ <div class="header">
63
+ <div class="header-top-container">
64
+ <div class="header-top">
65
+ <h1 id="logo">
66
+ <a href="<?php echo $this->getUrl('') ?>"><img src="<?php echo $this->getSkinUrl('images/logo.gif') ?>" title="<?php echo Mage::helper('install')->__('Magento') ?>" alt="<?php echo Mage::helper('install')->__('Magento') ?>" /></a>
67
+ </h1>
68
+
69
+ <?php echo $this->getChildHtml('topSearch') ?>
70
+
71
+ <div class="quick-access">
72
+ <div class="account-access">
73
+ <strong>&nbsp;<?php echo $this->getWelcome() ?></strong> <?php echo $this->getChildHtml('topLeftLinks') ?>
74
+ </div>
75
+ <div class="shop-access">
76
+ <?php echo $this->getChildHtml('topRightLinks') ?>
77
+ </div>
78
+ </div>
79
+
80
+ </div>
81
+ </div>
82
+ <?php echo $this->getChildHtml('topMenu') ?>
83
+ </div>
84
+ <!-- [end] header -->
85
+
86
+ <!-- [start] middle -->
87
+ <?php echo $this->getChildHtml('store') ?>
88
+ <div class="middle-container">
89
+ <div class="middle col-2-left-layout">
90
+ <?php echo $this->getChildHtml('breadcrumbs') ?>
91
+
92
+ <!-- [start] left -->
93
+ <div class="col-left side-col">
94
+ <?php echo $this->getChildHtml('temando-left') ?>
95
+ </div>
96
+ <div id="main" class="col-main">
97
+ <!-- [start] global messages -->
98
+ <?php echo $this->getChildHtml('global_messages') ?>
99
+ <!-- [end] global messages -->
100
+ <!-- [start] content -->
101
+ <?php echo $this->getChildHtml('content') ?>
102
+ <!-- [end] content -->
103
+ </div>
104
+ </div>
105
+ <!-- [end] center -->
106
+ </div>
107
+ <!-- [end] middle -->
108
+
109
+ <!-- [start] footer -->
110
+ <div class="footer-container">
111
+ <div class="footer">
112
+ <p class="legality">
113
+ <?php echo Mage::helper('install')->__('Help Us to Keep Magento Healthy') ?> - <a href="http://www.magentocommerce.com/bug-tracking" id="bug_tracking_link"><strong><?php echo Mage::helper('install')->__('Report All Bugs') ?></strong></a> <?php echo Mage::helper('install')->__('(ver. %s)', Mage::getVersion()) ?><br/>
114
+ <script type="text/javascript">
115
+ //<![CDATA[
116
+ $('bug_tracking_link').target = "varien_external";
117
+ //]]>
118
+ </script>
119
+ <?php echo Mage::helper('install')->__('Magento is a trademark of Magento Inc. Copyright &copy; %s Magento Inc.', date('Y')) ?>
120
+ </p>
121
+ </div>
122
+ </div>
123
+ <!-- [end] footer -->
124
+ </body>
125
+ </html>
app/design/frontend/base/default/template/temando/temando/wizard/account.phtml ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="page-head">
2
+ <h3><?php echo $this->__('Temando Account Details') ?></h3>
3
+ </div>
4
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
5
+ <h4>We have provided you with test credentials. To go live, enter your unique details.</h4>
6
+ <form action="<?php echo $this->getUrl('*/*/save', array('_current' => true)) ?>" method="post" id="form-validate">
7
+ <fieldset class="group-select wide">
8
+ <legend><?php echo $this->__('Account Details') ?></legend>
9
+ <h4 class="legend"><?php echo $this->__('Account Details') ?></h4>
10
+ <ul>
11
+ <li>
12
+ <div class="input-box">
13
+ <label for="sandbox"><?php echo $this->__('Mode') ?> <span class="required">*</span></label><br/>
14
+ </div>
15
+ <div class="input-box">
16
+ <?php echo $this->getHtmlSelect('mode'); ?>
17
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
18
+ <small><?php echo $this->__('Sandbox is used for testing.') ?></small>
19
+ </p>
20
+ </div>
21
+
22
+ </li>
23
+ <li>
24
+ <div class="input-box">
25
+ <label for="general_client"><?php echo $this->__('Client ID') ?> <span class="required">*</span></label><br/>
26
+ </div>
27
+ <div class="input-box">
28
+ <input type="text" name="general_client" value="<?php echo Mage::helper('temando')->getConfigData('general/client'); ?>" class="required-entry input-text">
29
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
30
+ <small><?php echo $this->__('If you are unsure contact <a href="mailto:support@temando.com">support@temando.com</a>.') ?></small>
31
+ </p>
32
+ </div>
33
+ </li>
34
+ <li>
35
+ <div class="input-box">
36
+ <label for="general_username"><?php echo $this->__('Login ID') ?> <span class="required">*</span></label><br/>
37
+ </div>
38
+ <div class="input-box">
39
+ <input type="text" name="general_username" value="<?php echo Mage::helper('temando')->getConfigData('general/username'); ?>" class="required-entry input-text">
40
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
41
+ <small><?php echo $this->__('The Login ID created when setting up your Temando.com profile.') ?></small>
42
+ </p>
43
+ </div>
44
+ </li>
45
+ <li>
46
+ <div class="input-box">
47
+ <label for="general_password"><?php echo $this->__('Password') ?> <span class="required">*</span></label><br/>
48
+ </div>
49
+ <div class="input-box">
50
+ <input type="password" name="general_password" value="<?php echo Mage::helper('temando')->getConfigData('general/password'); ?>" class="required-entry input-text">
51
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
52
+ <small><?php echo $this->__('The password created when setting up your Temando.com profile.') ?></small>
53
+ </p>
54
+ </div>
55
+ </li>
56
+ <li>
57
+ <div class="input-box">
58
+ <label for="payment_type"><?php echo $this->__('Payment Type') ?> <span class="required">*</span></label><br/>
59
+ </div>
60
+ <div class="input-box">
61
+ <?php echo $this->getHtmlSelect('payment'); ?>
62
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
63
+ <small><?php echo $this->__('Account for those with a pre-approved Trade Account, otherwise select Credit.') ?></small>
64
+ </p>
65
+ </div>
66
+
67
+ </li>
68
+ </ul>
69
+ </fieldset>
70
+ <div class="button-set">
71
+ <p class="required">* <?php echo $this->__('Required Fields') ?></p>
72
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getCancelUrl(); ?>');"><span><?php echo $this->__('Cancel') ?></span></button>
73
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/skip', array('_current' => true)) ?>');"><span><?php echo $this->__('Skip') ?></span></button>
74
+ <button class="form-button" type="submit"><span><?php echo $this->__('Continue') ?></span></button>
75
+ </div>
76
+ </form>
77
+ <script type="text/javascript">
78
+ var dataForm = new VarienForm('form-validate');
79
+ </script>
80
+
app/design/frontend/base/default/template/temando/temando/wizard/carriers.phtml ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="page-head">
2
+ <h3><?php echo $this->__('Allowed Carriers') ?></h3>
3
+ </div>
4
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
5
+ <h4>Allows you to specify which carriers you will receive quotes from.</h4>
6
+ <p style="font-size: 11px;">Please note you can only select carriers with (Bulk) next to the name if you have organised a permanent pickup through Temando.</p>
7
+ <form action="<?php echo $this->getUrl('*/*/save', array('_current' => true)) ?>" method="post" id="form-validate">
8
+ <fieldset class="group-select wide">
9
+ <legend><?php echo $this->__('Allowed Carriers') ?></legend>
10
+ <h4 class="legend"><?php echo $this->__('Allowed Carriers') ?></h4>
11
+ <ul>
12
+ <li>
13
+ <div class="input-box">
14
+ <label for="allowed_methods"><?php echo $this->__('Allowed Carriers') ?> <span class="required">*</span></label><br/>
15
+ </div>
16
+ <div class="input-box">
17
+ <?php echo $this->getHtmlSelect('allowedCarriers'); ?>
18
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
19
+ <small><?php echo $this->__('Click the name of the carrier/s you want.') ?></small>
20
+ </p>
21
+ </div>
22
+
23
+ </li>
24
+
25
+ </ul>
26
+ </fieldset>
27
+ <fieldset class="group-select wide">
28
+ <legend><?php echo $this->__('Additional Carriers') ?></legend>
29
+ <h4 class="legend"><?php echo $this->__('Additional Carriers') ?></h4>
30
+ <h5>Additional carriers are available with BYO rates</h5>
31
+ <ul>
32
+ <li>
33
+ <div class="input-box">
34
+ <label for="checkbox"><?php echo $this->__('Contact me with additional info') ?></label><br/>
35
+ </div>
36
+ <div class="input-box">
37
+ <input type="checkbox" id="email_checkbox" name="email_checkbox" value="<?php echo $this->getTmdSession('temando_wizard_carriers', 'email_checkbox') ? $this->getTmdSession('temando_wizard_carriers', 'email_checkbox') : 1; ?>" <?php
38
+ if ($this->getTmdSession('temando_wizard_carriers', 'email_checkbox') == '1') {
39
+ echo ' checked="checked"';
40
+ }
41
+ ?>class="input-text">
42
+ </div>
43
+ </li>
44
+ <li id="email_box_1">
45
+ <div class="input-box">
46
+ <label for="email_full_name"><?php echo $this->__('Full Name') ?> <span class="required">*</span></label><br/>
47
+ </div>
48
+ <div class="input-box">
49
+ <input type="text" id="email_full_name" name="email_full_name" value="<?php echo $this->getTmdSession('temando_wizard_carriers', 'email_full_name'); ?>" class="input-text">
50
+ </div>
51
+ </li>
52
+ <li id="email_box_2">
53
+ <div class="input-box">
54
+ <label for="email_email_address"><?php echo $this->__('Email Address') ?> <span class="required">*</span></label><br/>
55
+ </div>
56
+ <div class="input-box">
57
+ <input type="text" id="email_email_address" name="email_email_address" value="<?php echo $this->getTmdSession('temando_wizard_carriers', 'email_email_address'); ?>" class="input-text validate-email">
58
+ </div>
59
+ </li>
60
+ <li id="email_box_3">
61
+ <div class="input-box">
62
+ <label for="email_phone"><?php echo $this->__('Phone') ?> <span class="required">*</span></label><br/>
63
+ </div>
64
+ <div class="input-box">
65
+ <input type="text" id="email_phone" name="email_phone" value="<?php echo $this->getTmdSession('temando_wizard_carriers', 'email_phone'); ?>" class="input-text">
66
+ </div>
67
+ </li>
68
+
69
+ </ul>
70
+ </fieldset>
71
+ <div class="button-set">
72
+ <p class="required">* <?php echo $this->__('Required Fields') ?></p>
73
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getCancelUrl(); ?>');"><span><?php echo $this->__('Cancel') ?></span></button>
74
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/back', array('_current' => true)) ?>');"><span><?php echo $this->__('Back') ?></span></button>
75
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/skip', array('_current' => true)) ?>');"><span><?php echo $this->__('Skip') ?></span></button>
76
+ <button class="form-button" type="submit"><span><?php echo $this->__('Continue') ?></span></button>
77
+ </div>
78
+ </form>
79
+
80
+ <script type="text/javascript">
81
+ var dataForm = new VarienForm('form-validate');
82
+ if ($('email_checkbox').checked) {
83
+ $('email_full_name').addClassName('required-entry');
84
+ $('email_email_address').addClassName('required-entry');
85
+ $('email_phone').addClassName('required-entry');
86
+ $('email_box_1').show();
87
+ $('email_box_2').show();
88
+ $('email_box_3').show();
89
+ } else {
90
+ $('email_full_name').removeClassName('required-entry');
91
+ $('email_email_address').removeClassName('required-entry');
92
+ $('email_phone').removeClassName('required-entry');
93
+ $('email_box_1').hide();
94
+ $('email_box_2').hide();
95
+ $('email_box_3').hide();
96
+ }
97
+ </script>
98
+ <script type="text/javascript">
99
+ //<![CDATA[
100
+
101
+ Event.observe($('email_checkbox'), 'change', function() {
102
+ if ($('email_checkbox').checked) {
103
+ $('email_full_name').addClassName('required-entry');
104
+ $('email_email_address').addClassName('required-entry');
105
+ $('email_phone').addClassName('required-entry');
106
+ $('email_box_1').show();
107
+ $('email_box_2').show();
108
+ $('email_box_3').show();
109
+ } else {
110
+ $('email_full_name').removeClassName('required-entry');
111
+ $('email_email_address').removeClassName('required-entry');
112
+ $('email_phone').removeClassName('required-entry');
113
+ $('email_box_1').hide();
114
+ $('email_box_2').hide();
115
+ $('email_box_3').hide();
116
+ }
117
+ });
118
+ //]]>
119
+ </script>
120
+
121
+
app/design/frontend/base/default/template/temando/temando/wizard/catalog_product.phtml ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="page-head">
2
+ <h3><?php echo $this->__('Catalog/Product') ?></h3>
3
+ </div>
4
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
5
+ <h4>This area relates to the unique packaging of your products.</h4>
6
+ <p style="font-size: 11px;">Ensure you populate your Temando tab in the Magento Catalog section.</p>
7
+ <form action="<?php echo $this->getUrl('*/*/save', array('_current' => true)) ?>" method="post" id="form-validate">
8
+ <fieldset class="group-select wide">
9
+ <legend><?php echo $this->__('Units') ?></legend>
10
+ <h4 class="legend"><?php echo $this->__('Units') ?></h4>
11
+ <p style="font-size: 11px; color:#666;">Corresponds to the numerical values entered against each of your products in the catalogue.</p>
12
+ <ul>
13
+ <li>
14
+ <div class="input-box">
15
+ <label for="measure"><?php echo $this->__('Measure Unit') ?> <span class="required">*</span></label><br/>
16
+ </div>
17
+ <div class="input-box">
18
+ <?php echo $this->getHtmlSelect('measureUnits'); ?>
19
+ </div>
20
+
21
+ </li>
22
+ <li>
23
+ <div class="input-box">
24
+ <label for="weight"><?php echo $this->__('Weight Unit') ?> <span class="required">*</span></label><br/>
25
+ </div>
26
+ <div class="input-box">
27
+ <?php echo $this->getHtmlSelect('weightUnits'); ?>
28
+ </div>
29
+
30
+ </li>
31
+ </ul>
32
+ </fieldset>
33
+ <fieldset class="group-select wide">
34
+ <legend><?php echo $this->__('Default Packaing') ?></legend>
35
+ <h4 class="legend"><?php echo $this->__('Default Packaing') ?></h4>
36
+ <p style="font-size: 11px; color:#666;">The default package you create will be used for a product if you have not pre-defined dimensions of a product in the Temando Tab of the Catalog section.</p>
37
+ <ul>
38
+ <li>
39
+ <div class="input-box">
40
+ <label for="packaging"><?php echo $this->__('Packaging Type') ?> <span class="required">*</span></label><br/>
41
+ </div>
42
+ <div class="input-box">
43
+ <?php echo $this->getHtmlSelect('packagingType'); ?>
44
+ </div>
45
+ </li>
46
+ <li>
47
+ <div class="input-box">
48
+ <label for="fragile"><?php echo $this->__('Fragile') ?> <span class="required">*</span></label><br/>
49
+ </div>
50
+ <div class="input-box">
51
+ <?php echo $this->getHtmlSelect('fragile'); ?>
52
+ </div>
53
+ </li>
54
+ <li>
55
+ <div class="input-box">
56
+ <label for="length"><?php echo $this->__('Length') ?> <span class="required">*</span></label><br/>
57
+ </div>
58
+ <div class="input-box">
59
+ <input type="text" name="defaults_length" value="<?php echo Mage::helper('temando')->getConfigData('defaults/length'); ?>" class="required-entry input-text">
60
+ </div>
61
+ </li>
62
+ <li>
63
+ <div class="input-box">
64
+ <label for="width"><?php echo $this->__('Width') ?> <span class="required">*</span></label><br/>
65
+ </div>
66
+ <div class="input-box">
67
+ <input type="text" name="defaults_width" value="<?php echo Mage::helper('temando')->getConfigData('defaults/width'); ?>" class="required-entry input-text">
68
+ </div>
69
+ </li>
70
+ <li>
71
+ <div class="input-box">
72
+ <label for="height"><?php echo $this->__('Height') ?> <span class="required">*</span></label><br/>
73
+ </div>
74
+ <div class="input-box">
75
+ <input type="text" name="defaults_height" value="<?php echo Mage::helper('temando')->getConfigData('defaults/height'); ?>" class="required-entry input-text">
76
+ </div>
77
+ </li>
78
+ </ul>
79
+ </fieldset>
80
+ <div class="button-set">
81
+ <p class="required">* <?php echo $this->__('Required Fields') ?></p>
82
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getCancelUrl(); ?>');"><span><?php echo $this->__('Cancel') ?></span></button>
83
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/back', array('_current' => true)) ?>');"><span><?php echo $this->__('Back') ?></span></button>
84
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/skip', array('_current' => true)) ?>');"><span><?php echo $this->__('Skip') ?></span></button>
85
+ <button class="form-button" type="submit"><span><?php echo $this->__('Continue') ?></span></button>
86
+ </div>
87
+ </form>
88
+ <script type="text/javascript">
89
+ var dataForm = new VarienForm('form-validate');
90
+ </script>
91
+
app/design/frontend/base/default/template/temando/temando/wizard/countries.phtml ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="page-head">
2
+ <h3><?php echo $this->__('Allowed Countries') ?></h3>
3
+ </div>
4
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
5
+ <h4>Defines the countries you are using Temando to ship from and to.</h4>
6
+ <form action="<?php echo $this->getUrl('*/*/save', array('_current' => true)) ?>" method="post" id="form-validate">
7
+ <fieldset class="group-select wide">
8
+ <legend><?php echo $this->__('Allowed Countries') ?></legend>
9
+ <h4 class="legend"><?php echo $this->__('Allowed Countries') ?></h4>
10
+ <ul>
11
+ <li>
12
+ <div class="input-box">
13
+ <label for="allowed_methods"><?php echo $this->__('Mode') ?> <span class="required">*</span></label><br/>
14
+ </div>
15
+ <div class="input-box">
16
+ <?php echo $this->getHtmlSelect('allowedCountries'); ?>
17
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
18
+ <small><?php echo $this->__('Select Allowed Countries to allow all enabled countries. Select Specific Countries to pick & choose (ensure Australia is selected). ') ?></small>
19
+ </p>
20
+ </div>
21
+ </li>
22
+ <li id="specificcountry_box">
23
+ <div class="input-box">
24
+ <label for="specificcountry"><?php echo $this->__('Specific Countries') ?> <span class="required">*</span></label><br/>
25
+ </div>
26
+ <div class="input-box">
27
+ <?php echo $this->getHtmlSelect('specificCountries'); ?>
28
+ </div>
29
+ </li>
30
+ </ul>
31
+ </fieldset>
32
+ <div class="button-set">
33
+ <p class="required">* <?php echo $this->__('Required Fields') ?></p>
34
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getCancelUrl(); ?>');"><span><?php echo $this->__('Cancel') ?></span></button>
35
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/back', array('_current' => true)) ?>');"><span><?php echo $this->__('Back') ?></span></button>
36
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/skip', array('_current' => true)) ?>');"><span><?php echo $this->__('Skip') ?></span></button>
37
+ <button class="form-button" type="submit"><span><?php echo $this->__('Continue') ?></span></button>
38
+ </div>
39
+ </form>
40
+ <script type="text/javascript">
41
+ var dataForm = new VarienForm('form-validate');
42
+ if ($('sallowspecific').value == '1') {
43
+ $('sallowspecific').setValue('1');
44
+ $('specificcountry').addClassName('required-entry');
45
+ $('specificcountry_box').show();
46
+ } else {
47
+ $('sallowspecific').setValue('0');
48
+ $('specificcountry').removeClassName('required-entry');
49
+ $('specificcountry_box').hide();
50
+ }
51
+ </script>
52
+ <script type="text/javascript">
53
+ //<![CDATA[
54
+
55
+ Event.observe($('sallowspecific'), 'change', function() {
56
+ if ($('sallowspecific').value == '1') {
57
+ $('specificcountry').addClassName('required-entry');
58
+ $('specificcountry_box').show();
59
+ } else {
60
+ $('specificcountry').removeClassName('required-entry');
61
+ $('specificcountry_box').hide();
62
+ }
63
+ });
64
+ //]]>
65
+ </script>
66
+
app/design/frontend/base/default/template/temando/temando/wizard/end.phtml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="page-head">
2
+ <h3><?php echo $this->__('Configuration Complete') ?></h3>
3
+ </div>
4
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
5
+ Congratulations, you’ve just correctly configured Temando!<br/>
6
+ We have produced a selection of great guides and <a href="https://www.temando.com/education-centre/faq/magento" target="_new">FAQ’s</a> to help get you up and running.<br/>
7
+ If you have any further questions please contact our <a href="https://dashboard.temando.com/support" target="_new">customer support team</a>.<br/><br/>
8
+
9
+ Interested in exploring the full functionality of Temando? Contact our sales team
10
+ <form action="<?php echo $this->getPostUrl() ?>" method="get" id="form-validate">
11
+ <div class="button-set">
12
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/back', array('_current'=>true)) ?>');"><span><?php echo $this->__('Back') ?></span></button>
13
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getCancelUrl(); ?>');"><span><?php echo $this->__('Exit') ?></span></button>
14
+ </div>
15
+ </form>
16
+ <script type="text/javascript">
17
+ var dataForm = new VarienForm('form-validate');
18
+ </script>
19
+
app/design/frontend/base/default/template/temando/temando/wizard/left.phtml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <div style="border:1px solid #ccc; background:#f6f6f6;">
2
+ <h2 style="margin-bottom:0; border-bottom:1px solid #ccc; padding:4px 10px; color:#3c5974; font-size:1.4em;">Configuration</h2>
3
+ <ol style="padding:10px; border-top:1px solid #fff;">
4
+ <?php $step = Mage::getSingleton('core/session')->getTemandoWizardStep(); ?>
5
+ <?php if ($step == Temando_Temando_Model_System_Config_Source_Wizard::ACCOUNT) { ?><li style="color:green; font-weight:bold; "><?php } else { ?><li><?php }; ?>Account Details</li>
6
+ <?php if ($step == Temando_Temando_Model_System_Config_Source_Wizard::CARRIERS) { ?><li style="color:green; font-weight:bold; "><?php } else { ?><li><?php }; ?>Allowed Carriers</li>
7
+ <?php if ($step == Temando_Temando_Model_System_Config_Source_Wizard::CATALOG_PRODUCT) { ?><li style="color:green; font-weight:bold; "><?php } else { ?><li><?php }; ?>Catalog/Product</li>
8
+ <?php if ($step == Temando_Temando_Model_System_Config_Source_Wizard::ORIGIN) { ?><li style="color:green; font-weight:bold; "><?php } else { ?><li><?php }; ?>Origin Location</li>
9
+ <?php if ($step == Temando_Temando_Model_System_Config_Source_Wizard::RULE) { ?><li style="color:green; font-weight:bold; "><?php } else { ?><li><?php }; ?>Shipping Rule</li>
10
+ </ol>
11
+ </div>
app/design/frontend/base/default/template/temando/temando/wizard/origin.phtml ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="page-head">
2
+ <h3><?php echo $this->__('Origin Location') ?></h3>
3
+ </div>
4
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
5
+ <h4>Temando will return quotes based on the origin location address.</h4>
6
+ <form action="<?php echo $this->getUrl('*/*/save', array('_current' => true)) ?>" method="post" id="form-validate">
7
+ <fieldset class="group-select wide">
8
+ <legend><?php echo $this->__('Name & Address') ?></legend>
9
+ <h4 class="legend"><?php echo $this->__('Name & Address') ?></h4>
10
+ <ul>
11
+ <li>
12
+ <div class="input-box">
13
+ <label for="company_name"><?php echo $this->__('Company Name') ?> <span class="required">*</span></label><br/>
14
+ </div>
15
+ <div class="input-box">
16
+ <input type="text" id="origin_company_name" name="origin_company_name" value="<?php echo Mage::helper('temando')->getConfigData('origin/company_name'); ?>" class="required-entry input-text">
17
+
18
+ </div>
19
+
20
+ </li>
21
+ <li>
22
+ <div class="input-box">
23
+ <label for="origin_street"><?php echo $this->__('Street') ?> <span class="required">*</span></label><br/>
24
+ </div>
25
+ <div class="input-box">
26
+ <input type="text" id="origin_street" name="origin_street" value="<?php echo Mage::helper('temando')->getConfigData('origin/street'); ?>" class="required-entry input-text">
27
+ </div>
28
+
29
+ </li>
30
+ <li>
31
+ <div class="input-box">
32
+ <label for="origin_city"><?php echo $this->__('City') ?> <span class="required">*</span></label><br/>
33
+ </div>
34
+ <div class="input-box">
35
+ <input type="text" id="origin_city" name="origin_city" value="<?php echo Mage::helper('temando')->getConfigData('origin/city'); ?>" class="required-entry input-text">
36
+ </div>
37
+
38
+ </li>
39
+ <li>
40
+ <div class="input-box">
41
+ <label for="origin_postcode"><?php echo $this->__('ZIP/Postal Code') ?> <span class="required">*</span></label><br/>
42
+ </div>
43
+ <div class="input-box">
44
+ <input type="text" id="origin_postcode" name="origin_postcode" value="<?php echo Mage::helper('temando')->getConfigData('origin/postcode'); ?>" class="required-entry input-text">
45
+ </div>
46
+
47
+ </li>
48
+ <li>
49
+ <div class="input-box">
50
+ <label for="origin_country"><?php echo $this->__('Country') ?> <span class="required">*</span></label><br/>
51
+ </div>
52
+ <div class="input-box">
53
+ <?php echo $this->getHtmlSelect('countries'); ?>
54
+ </div>
55
+
56
+ </li>
57
+ <li>
58
+ <div class="input-box">
59
+ <label for="origin_region"><?php echo $this->__('Region') ?> <span class="required">*</span></label><br/>
60
+
61
+ </div>
62
+ <div class="input-box">
63
+ <?php echo $this->getHtmlSelect('regions'); ?>
64
+ <input type="hidden" id="region_name" name="region_name">
65
+ </div>
66
+ </li>
67
+ </ul>
68
+ </fieldset>
69
+ <fieldset class="group-select wide">
70
+ <legend><?php echo $this->__('Contact Details') ?></legend>
71
+ <h4 class="legend"><?php echo $this->__('Contact Details') ?></h4>
72
+ <ul>
73
+ <li>
74
+ <div class="input-box">
75
+ <label for="origin_contact_name"><?php echo $this->__('Contact Name') ?> <span class="required">*</span></label><br/>
76
+ </div>
77
+ <div class="input-box">
78
+ <input type="text" id="origin_contact_name" name="origin_contact_name" value="<?php echo Mage::helper('temando')->getConfigData('origin/contact_name'); ?>" class="required-entry input-text">
79
+ </div>
80
+ </li>
81
+ <li>
82
+ <div class="input-box">
83
+ <label for="origin_email"><?php echo $this->__('Contact Email') ?> <span class="required">*</span></label><br/>
84
+
85
+ </div>
86
+ <div class="input-box">
87
+ <input type="text" id="origin_email" name="origin_email" value="<?php echo Mage::helper('temando')->getConfigData('origin/email'); ?>" class="required-entry input-text">
88
+ </div>
89
+ </li>
90
+ <li>
91
+ <div class="input-box">
92
+ <label for="origin_phone1"><?php echo $this->__('Phone 1') ?> <span class="required">*</span></label><br/>
93
+
94
+ </div>
95
+ <div class="input-box">
96
+ <input type="text" id="origin_phone1" name="origin_phone1" value="<?php echo Mage::helper('temando')->getConfigData('origin/phone1'); ?>" class="required-entry input-text">
97
+ </div>
98
+ </li>
99
+ <li>
100
+ <div class="input-box">
101
+ <label for="origin_phone2"><?php echo $this->__('Phone 2') ?></label><br/>
102
+
103
+ </div>
104
+ <div class="input-box">
105
+ <input type="text" id="origin_phone2" name="origin_phone2" value="<?php echo Mage::helper('temando')->getConfigData('origin/phone2'); ?>" class="input-text">
106
+ </div>
107
+ </li>
108
+ <li>
109
+ <div class="input-box">
110
+ <label for="origin_fax"><?php echo $this->__('Fax') ?></label><br/>
111
+ </div>
112
+ <div class="input-box">
113
+ <input type="text" id="origin_fax" name="origin_fax" value="<?php echo Mage::helper('temando')->getConfigData('origin/fax'); ?>" class="input-text">
114
+ </div>
115
+ </li>
116
+ </ul>
117
+ </fieldset>
118
+ <div class="button-set">
119
+ <p class="required">* <?php echo $this->__('Required Fields') ?></p>
120
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getCancelUrl(); ?>');"><span><?php echo $this->__('Cancel') ?></span></button>
121
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/back', array('_current' => true)) ?>');"><span><?php echo $this->__('Back') ?></span></button>
122
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/skip', array('_current' => true)) ?>');"><span><?php echo $this->__('Skip') ?></span></button>
123
+ <button id="button" class="form-button" type="submit"><span><?php echo $this->__('Continue') ?></span></button>
124
+ </div>
125
+ </form>
126
+ <script type="text/javascript">
127
+ var dataForm = new VarienForm('form-validate');
128
+ var OriginRegionUpdater = new RegionUpdater('origin_country', 'region_name', 'origin_region', <?php echo $this->helper('temando/wizard')->getRegionJson() ?>, undefined, 'origin_postcode');
129
+ </script>
130
+ <script type="text/javascript">
131
+ //<[CDATA[
132
+ var shipping_estimator_url = '<?php echo $this->getUrl('etemando/pcs/autocompletecart', array('_secure' => Mage::app()->getStore()->isCurrentlySecure())); ?>';
133
+ var avs = new Avs(
134
+ shipping_estimator_url,
135
+ 'origin_postcode',
136
+ 'origin_city',
137
+ 'origin_country'
138
+ );
139
+ //]]>
140
+ </script>
app/design/frontend/base/default/template/temando/temando/wizard/rule.phtml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="page-head">
2
+ <h3><?php echo $this->__('Shipping Rule') ?></h3>
3
+ </div>
4
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
5
+ <h4>Create a shipping rule to customise the quotes displayed to your customers.</h4>
6
+ <form action="<?php echo $this->getUrl('*/*/save', array('_current' => true)) ?>" method="post" id="form-validate">
7
+ <fieldset class="group-select wide">
8
+ <legend><?php echo $this->__('Type') ?></legend>
9
+ <h4 class="legend"><?php echo $this->__('Type') ?></h4>
10
+ <ul>
11
+ <li>
12
+ <div class="input-box">
13
+ <label for="pricing_method"><?php echo $this->__('Shipping Rate Type') ?> <span class="required">*</span></label><br/>
14
+ </div>
15
+ <div class="input-box">
16
+ <?php echo $this->getHtmlSelect('ruleType'); ?>
17
+ <p style="margin-top:4px; line-height:1.3em; color:#666;">
18
+ <small>
19
+ <?php echo $this->__('Free Shipping - no charge to customer.') ?><br/>
20
+ <?php echo $this->__('Fixed Price / Flat Rate - customer always pays the amount set in "Shipping Price" below.') ?><br/>
21
+ <?php echo $this->__('Dynamic Pricing') ?><br/>
22
+ <?php echo $this->__('- All: All quotes from carriers in "allowed carriers" above are shown for the customer to choose from.') ?><br/>
23
+ <?php echo $this->__('- Cheapest: Only the cheapest quote is shown.') ?><br/>
24
+ <?php echo $this->__('- Fastest: Only the fastest quote is shown.') ?><br/>
25
+ <?php echo $this->__('- Cheapest and Fastest: The customer can choose between the cheapest or the fastest quote.') ?><br/>
26
+ </small>
27
+ </p>
28
+ </div>
29
+
30
+ </li>
31
+ </ul>
32
+ </fieldset>
33
+ <fieldset class="group-select wide" id="static">
34
+ <legend><?php echo $this->__('Static Rule Configuration') ?></legend>
35
+ <h4 class="legend"><?php echo $this->__('Static Rule Configuration') ?></h4>
36
+ <ul>
37
+ <li>
38
+ <div class="input-box">
39
+ <label for="pricing_shipping_fee"><?php echo $this->__('Shipping Price') ?> <span class="required">*</span></label><br/>
40
+ </div>
41
+ <div class="input-box">
42
+ <input type="text" name="pricing_shipping_fee" id="pricing_shipping_fee" value="<?php echo Mage::helper('temando')->getConfigData('pricing/shipping_fee'); ?>" class="required-entry input-text">
43
+ </div>
44
+
45
+ </li>
46
+ </ul>
47
+ </fieldset>
48
+ <div class="button-set">
49
+ <p class="required">* <?php echo $this->__('Required Fields') ?></p>
50
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getCancelUrl(); ?>');"><span><?php echo $this->__('Cancel') ?></span></button>
51
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/back', array('_current' => true)) ?>');"><span><?php echo $this->__('Back') ?></span></button>
52
+ <button class="form-button" type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/skip', array('_current' => true)) ?>');"><span><?php echo $this->__('Skip') ?></span></button>
53
+ <button class="form-button" type="submit"><span><?php echo $this->__('Finish') ?></span></button>
54
+ </div>
55
+ </form>
js/temando/avs.js CHANGED
@@ -46,16 +46,15 @@ if(typeof Validation != 'undefined') {
46
  });
47
  }
48
 
49
- function fireEvent(element,event){
50
- if (document.createEventObject){
51
- // dispatch for IE
52
- var evt = document.createEventObject();
53
- return element.fireEvent('on'+event,evt)
54
- }
55
- else{
56
- // dispatch for firefox + others
57
  var evt = document.createEvent("HTMLEvents");
58
- evt.initEvent(event, true, true ); // event type,bubbling,cancelable
59
  return !element.dispatchEvent(evt);
 
 
 
 
60
  }
61
  }
46
  });
47
  }
48
 
49
+ function fireEvent(element, event) {
50
+ if (document.addEventListener) {
51
+ // dispatch for firefox, IE9+ & others
 
 
 
 
 
52
  var evt = document.createEvent("HTMLEvents");
53
+ evt.initEvent(event, true, true); // event type,bubbling,cancelable
54
  return !element.dispatchEvent(evt);
55
+ } else {
56
+ // dispatch for IE < 9
57
+ var evt = document.createEventObject();
58
+ return element.fireEvent('on' + event, evt);
59
  }
60
  }
js/temando/menu.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function temandoMenu() {
2
+
3
+ var allSpans = document.getElementsByTagName("span");
4
+ Array.prototype.forEach.call(allSpans, function(span) {
5
+
6
+ if (span.textContent === 'Partial Shipments - Business plan' || span.textContent === 'Multi Warehouse - Professional plan' || span.textContent === 'Advance Shipping Rules - Professional plan') {
7
+ span.setStyle({backgroundColor: '#E5E5E5'});
8
+ span.setStyle({color: '#999999'});
9
+ span.up().up().setStyle({
10
+ color: '#DFDFDF'
11
+ });
12
+ }
13
+ });
14
+ }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Temando_Temando</name>
4
- <version>1.0.0.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software Licence</license>
7
  <channel>community</channel>
@@ -27,17 +27,13 @@ The Temando Magento shipping extension is more than just shipping software. Adva
27
  &#x2022; Packaging logic to predict box sizes&#xD;
28
  </description>
29
  <notes>Temando Shipping Extension &#x2013; Starter Version&#xD;
30
- &#x2022; Delivery options at checkout &#xD;
31
- &#x2022; Shipping calculator at checkout&#xD;
32
- &#x2022; Access multiple couriers&#xD;
33
- &#x2022; Address verification&#xD;
34
- &#x2022; Shipping label production&#xD;
35
- &#x2022; Manifesting, connote and parcel tracking&#xD;
36
- </notes>
37
  <authors><author><name>Temando</name><user>Temando</user><email>marketing@temando.com</email></author></authors>
38
- <date>2013-10-03</date>
39
- <time>23:16:37</time>
40
- <contents><target name="mageetc"><dir name="modules"><file name="Temando_Temando.xml" hash="61802a5dcba43fb186bf8c0ffac6950f"/></dir></target><target name="magecommunity"><dir name="Temando"><dir name="Temando"><dir name="Block"><dir name="Adminhtml"><dir name="Manifest"><dir name="Filter"><file name="Form.php" hash="7c19d09e25f806ef78a6cb0be54a395a"/></dir><dir name="Grid"><dir name="Renderer"><file name="Checkbox.php" hash="dbbf607c8fb511e62872cecb0ada8b88"/></dir></dir><file name="Grid.php" hash="4ea69275d91d98cc52d13e0f99398696"/></dir><file name="Manifest.php" hash="a07de17d6cd05d0b4793efddd6683331"/><dir name="Shipment"><dir name="Edit"><file name="Form.php" hash="d4d581256d38e9cd8b9ccf0242d18497"/><dir name="Tab"><file name="Abstract.php" hash="155de5f6e4727d461128291e8bcabe10"/><dir name="Form"><file name="Anytime.php" hash="2d3a4223b61a439bc55312b03eb7f883"/><file name="Anywhere.php" hash="27cffb5864d8999c85081bf3dc6714ce"/><file name="Boxes.php" hash="18b4b6325dc512621022eb912b187b28"/><file name="Insurance.php" hash="cbb8c1e5157b80a5af78efee20e016f7"/><file name="Products.php" hash="953cc0fe59529484e47e2c38ad7d3e0a"/><file name="Quotes.php" hash="8b135b7b568c5cd58da326070e02464e"/><file name="Status.php" hash="9c44fb52c6f9fd38f49942fa868c69d4"/></dir><file name="Form.php" hash="563c145f09c8b90d50d3b77f727fc7b5"/></dir><file name="Tabs.php" hash="1f65e9864e845110e9f86c80606a2652"/></dir><file name="Edit.php" hash="204d08be90ae6291dd6a792a606b95b8"/><file name="Grid.php" hash="cf0ddb34c0b15155c2967db445b951c6"/></dir><file name="Shipment.php" hash="aa9e8aaeb190b2b473a9fea9c461fd80"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Insurance.php" hash="cd0f849df18e4643d88e756f9dde071c"/><file name="Required.php" hash="0659fe9b8ef9c4c373a1190d92495e36"/></dir><dir name="Fieldset"><file name="General.php" hash="7395ec95b32b67e34b33e5c0efc806a5"/></dir></dir></dir></dir></dir><dir name="Cart"><file name="Shipping.php" hash="8c10f6f5c6b37e1172b73475b9ef08fc"/></dir><dir name="Onepage"><dir name="Shipping"><dir name="Method"><dir name="Available"><file name="Single.php" hash="c8c8741458ce6a114111411d8eb4b6db"/></dir><file name="Available.php" hash="1e4764e6fec91175b92b8127e67df91d"/></dir></dir></dir><dir name="Product"><dir name="Shipping"><file name="Methods.php" hash="dd1dabfa05cd2e83668a67cabcfd579f"/></dir><file name="Shipping.php" hash="f46ba19649cfd0e6ef65c428e743d987"/></dir></dir><dir name="Helper"><file name="Data.php" hash="d7a203df15e248cb31179dcd3f322de2"/><file name="Functions.php" hash="be974e86582c6235f06fcbbe751d3aa6"/></dir><dir name="Model"><dir name="Api"><file name="Client.php" hash="f45ac8c6a64434b83c6a3fa29cddd6b6"/><dir name="Request"><file name="Anything.php" hash="4f09aeef29fb6f96fb16141732f796eb"/><file name="Anythings.php" hash="d3fb55824ed60a0e836db74805038fa2"/><file name="Anytime.php" hash="0c06ea38006ecbb72de2956328cba062"/><file name="Anywhere.php" hash="472902806c8c5304983b18c9c3cfbd5f"/></dir><file name="Request.php" hash="43825b6d395d9a5fff760c07eebbb105"/></dir><file name="Box.php" hash="e70430957f55d49f1232d005af69f3b2"/><file name="Carrier.php" hash="50756d3ea67163919a75725527e8426c"/><dir name="Entity"><dir name="Attribute"><dir name="Source"><dir name="Packaging"><file name="Mode.php" hash="9df70852ceade33a14cf218097f25a36"/></dir><file name="Packaging.php" hash="ae6e48d5e498d11a11feed2f00e03fa8"/></dir></dir></dir><file name="Manifest.php" hash="b870f55b33b3855754a5a4347e2acfec"/><dir name="Mysql4"><dir name="Box"><file name="Collection.php" hash="17e5ff275a0aa8b04a64caab93768198"/></dir><file name="Box.php" hash="105acbf44a10b982413168c199514319"/><dir name="Carrier"><file name="Collection.php" hash="174b62be56ac079b36ca9a11a99f6142"/></dir><file name="Carrier.php" hash="39ac233fc0ef641ed457c651fd3c2eeb"/><dir name="Manifest"><file name="Collection.php" hash="0c2a69f2d9d5c2e9111bed3253d823ed"/></dir><file name="Manifest.php" hash="536353cfe126f5d43ae95452104ba448"/><dir name="Quote"><file name="Collection.php" hash="dfcd02a112c7f3abf2c3202bed33538a"/></dir><file name="Quote.php" hash="63becb2e43f8fc6ac06844dc6789b303"/><dir name="Shipment"><file name="Collection.php" hash="c8d2075067d5639a81869e95d44feaf1"/></dir><file name="Shipment.php" hash="a8d05cbed0386249f61af2e73c76230b"/></dir><file name="Observer.php" hash="219fac88d7a6c4e6fa750524bed4d739"/><dir name="Option"><file name="Abstract.php" hash="845fdf3b2fee7a96635a84eb06130e6c"/><dir name="Action"><file name="Abstract.php" hash="8e556a5043c78ba9800a64cbea2743a0"/><file name="Carbon.php" hash="2bf7a9c3905a2c4a9dd88bb9bf602ab4"/><file name="Footprints.php" hash="74ee69751cde833b464d6fad7e8bc7b5"/><file name="Insurance.php" hash="1c312f12a62f57f555007530ad9ed722"/><file name="Markup.php" hash="978738810a3d2ebf9b08105c9080bf10"/></dir><file name="Boolean.php" hash="0c4403b4ab0ec33e4439dfc054025a03"/><file name="Carbonoffset.php" hash="bf4d22d25297028013e79780d3256823"/><file name="Footprints.php" hash="c9b88d2871350f7620440cec4c512fb9"/><file name="Insurance.php" hash="955a1d660d55e81bc0fdf4e580605f1a"/></dir><file name="Options.php" hash="c46e411a9090f01704b491d9f6c19886"/><file name="Pcs.php" hash="10771a0a344512c7f39aaacb6fbf1118"/><file name="Quote.php" hash="496a119ce659efedab8d3f7ccbcb1148"/><file name="Shipment.php" hash="40dc3d6299af2646bdae57dfe15f8ffd"/><dir name="Shipping"><dir name="Carrier"><dir name="Temando"><dir name="Source"><file name="Method.php" hash="beea2c319ccd644d6b82073041c2ff65"/></dir></dir><file name="Temando.php" hash="79d1310ee7ceb9d72f13b4dc10aeaa1a"/></dir></dir><file name="Status.php" hash="1748281382c1f2b910d7488925ab3d60"/><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Form"><dir name="Field"><dir name="Required"><file name="Businessresidential.php" hash="6a4a4a22dece6e05986afbff0474e258"/><file name="Country.php" hash="7c15ab9b62776c3939f6680e81e1d994"/><file name="Location.php" hash="96507e0e7ed730c99f4dd5f6aa743016"/><file name="Text.php" hash="3961607ac0d632430b484ef141865806"/></dir></dir></dir></dir><dir name="Source"><file name="Carbon.php" hash="bafc416a404fc342fba9aefcef40bf4b"/><dir name="Client"><file name="Type.php" hash="835708cd4be50379608fb01f8dbd4850"/></dir><file name="Country.php" hash="0a2557957d861e4ea3ed193f47eba051"/><file name="Errorprocess.php" hash="23b94aa8e44a62fa81a5aa29ea31ac55"/><file name="Footprints.php" hash="1b4e3af5fcb8893d3392e7c6cc924b38"/><file name="Insurance.php" hash="3b60e9c82e8f9aa00c949ba45068d001"/><file name="Labeltype.php" hash="a5f7d209b06d65db647e2d3a6b4657ba"/><dir name="Origin"><file name="Type.php" hash="167e76f7b939e3c627b98ee0318ab264"/></dir><file name="Payment.php" hash="15b7ffb809d44e89a2a0d779e2b6d1e8"/><file name="Pricing.php" hash="8d0c73d3ffce5ad61d6aff4530c942b8"/><file name="Readytime.php" hash="dfe95a917cf3d4b5e26c7972e6574bc3"/><file name="Regions.php" hash="d5d46eeba382e53a8ede61aaba4836a4"/><dir name="Rule"><dir name="Action"><dir name="Adjustment"><file name="Type.php" hash="32b0133d904961669456aa2889985ce8"/></dir><file name="Filter.php" hash="ade56e85d4c9fea77b922629ba1db7c8"/></dir><dir name="Condition"><file name="Time.php" hash="075adcdcb0be9662b34c517665e912b7"/><file name="Type.php" hash="0622631836a3306e53a11e6b1e326e6d"/></dir><file name="Type.php" hash="5a2e0cee02f99c3f68536bf26cbea199"/></dir><dir name="Sales"><dir name="Order"><file name="Status.php" hash="39eceb8a78224871b19d5b09304a56be"/></dir></dir><dir name="Shipment"><file name="Class.php" hash="3291adbe6ba99934a2dbcf19f6b83e46"/><dir name="Packaging"><file name="Mode.php" hash="b245586603851d1a7b0470f6ca52974e"/></dir><file name="Packaging.php" hash="853ab9b82b429b2db6cace1da9429db9"/><file name="Service.php" hash="f866d8aca47fae13602885413f997ef5"/><file name="Status.php" hash="e74bb51a02f1357f44d8f0052c682181"/></dir><dir name="Unit"><file name="Measure.php" hash="01bbc3e2f7f688f9edf54f40bb46c686"/><file name="Weight.php" hash="6b74dde04ffdc951aeed3fb1db60599e"/></dir><file name="Unit.php" hash="b8e75f2efede007b004c47acadea6a84"/></dir><file name="Source.php" hash="c6a86ee4f9973a8793eec15660115b0c"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="JsonController.php" hash="ce01376bdf43f939c802448c880cfd32"/><file name="ManifestController.php" hash="27026e27331606aa81eef04ede715b82"/><file name="ShipmentController.php" hash="2d03157bf86923e6fe802e9cb17e6225"/></dir><file name="PcsController.php" hash="f66d705f4e628be375190410f5ffde13"/></dir><dir name="etc"><file name="adminhtml.xml" hash="54b907ffca044093ae7edfb83d080df3"/><file name="config.xml" hash="f69d2114a0de04987ae5c636ba540964"/><file name="system.xml" hash="341895ab6b9d9421e78aafccdba54c85"/></dir><dir name="sql"><dir name="temando_setup"><file name="mysql4-install-1.0.0.php" hash="8f22dad6cc2162119422a468b8af9941"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="temando.xml" hash="fafd045c42b263f370b1779f7a26d045"/></dir><dir name="template"><dir name="temando"><dir name="temando"><file name="manifest.phtml" hash="42425c5a9a479f803d5ff38258ef1afb"/><file name="origin-avs.phtml" hash="fb39b40b1171e2415860f9c7f162dedf"/><file name="region.phtml" hash="b4012e1a5fa90bcdcd1271ac05b8c763"/><dir name="shipment"><file name="anytime.phtml" hash="8a2ad03e2b01eed05d2929a21e480fd1"/><file name="anywhere.phtml" hash="766acc8aa797d1b64667c7c5060fdc99"/><file name="boxes.phtml" hash="9b97aba8d4ab21fa4d005d0b6f64cac1"/><file name="insurance.phtml" hash="ee70a81f5b1aa017c0095a3905cc55b1"/><file name="products.phtml" hash="a27abbbc5ea7d2437ce2596c8eb48e0a"/><file name="quotes.phtml" hash="1276987516b2f5c8d45b5d32697f3c28"/><file name="status.phtml" hash="3713124523aff92fac39d45548760f1f"/></dir><file name="shipment.phtml" hash="03f44e5048a9e23405abf6b2ca571c2b"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="temando.xml" hash="40e2612a14e6331b79263e58ea46e524"/></dir><dir name="template"><dir name="temando"><dir name="temando"><dir name="checkout"><dir name="cart"><file name="shipping.phtml" hash="9b527e2382b8723b754dcecd9f226c84"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="17b4da6acfcbdbac94ab507aaac3014f"/></dir></dir><dir name="onestep"><file name="options.phtml" hash="3e0bcc5ba754a31efca069df23637226"/><file name="shipping_method.phtml" hash="147758a6e7a9abc24133fe69167787eb"/></dir><file name="pcs.phtml" hash="2b6e59f811eb7e0a8f622b2f26cda4e2"/><dir name="product"><dir name="shipping"><file name="methods.phtml" hash="1117050cc8bdf9e1bf15189f91c6f56e"/></dir><file name="shipping.phtml" hash="a1d26bb6e8a6fe33a41d5ab00dd84681"/></dir><dir name="shipping_method"><dir name="available"><file name="options_single.phtml" hash="ceb901d5d7f8c8aa69865d6437b27436"/></dir><file name="available.phtml" hash="c42d3f047eed375641f2f0bd1a349392"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="temando"><file name="autocomplete.js" hash="7d9495b3041c1b528c0d9d4809ba9e58"/><file name="avs.js" hash="76d449546d0e1109d09091e31b2b2ca3"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="js"><file name="temando.js" hash="37bda1e3240b9f46fdc1fa8d0937ceba"/></dir><dir name="temando"><dir name="images"><file name="ajax-s-load.gif" hash="0ea8ba3fe3e60b73eda7d6de57fd8e01"/><file name="bg_notifications.gif" hash="d2a0489d0c3714bed22f9b06f4b81d43"/><file name="shadow.png" hash="b5b27e0dd88d44d4a5d8e63bb61a1239"/><file name="temando_logo.jpg" hash="04d2dbd664ff68a4be7364113f30572f"/></dir><file name="styles.css" hash="2d9c985c31622016db01e966974d70be"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="temando"><file name="autocomplete.css" hash="90387e5610631653a4bd97c7af3d444e"/><dir name="images"><file name="ajax-s-load.gif" hash="0ea8ba3fe3e60b73eda7d6de57fd8e01"/><file name="find_ext.png" hash="a6ba701a9256a2c775255965df1918c7"/><file name="i_shipping.gif" hash="91a0d2cc2eb2391f90ec8a75c04b3183"/><file name="shadow.png" hash="b5b27e0dd88d44d4a5d8e63bb61a1239"/></dir><file name="product.css" hash="d1679e756012f66391758a09d0918986"/><file name="styles.css" hash="990cb30792de7e9b46042a7d09be73d3"/></dir></dir><dir name="js"><dir name="temando"><file name="checkout.js" hash="4db7a8cd7888f3c7ca93e70f0ee16b84"/><file name="product.js" hash="6f4765fa49efa0c5bc023460624a0b4e"/></dir></dir></dir></dir></dir></target></contents>
41
  <compatible/>
42
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php><extension><name>soap</name><min>1.2</min><max/></extension></required></dependencies>
43
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Temando_Temando</name>
4
+ <version>1.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software Licence</license>
7
  <channel>community</channel>
27
  &#x2022; Packaging logic to predict box sizes&#xD;
28
  </description>
29
  <notes>Temando Shipping Extension &#x2013; Starter Version&#xD;
30
+ &#x2022; Increased limit for AVS results &#xD;
31
+ &#x2022; Added configuration wizard&#xD;
32
+ &#x2022; Various minor bug fixes</notes>
 
 
 
 
33
  <authors><author><name>Temando</name><user>Temando</user><email>marketing@temando.com</email></author></authors>
34
+ <date>2013-12-10</date>
35
+ <time>22:48:43</time>
36
+ <contents><target name="mageetc"><dir name="modules"><file name="Temando_Temando.xml" hash="61802a5dcba43fb186bf8c0ffac6950f"/></dir></target><target name="magecommunity"><dir name="Temando"><dir name="Temando"><dir name="Block"><dir name="Adminhtml"><dir name="Manifest"><dir name="Filter"><file name="Form.php" hash="bb7f115dc656a6d96c1408fa91fd57de"/></dir><dir name="Grid"><dir name="Renderer"><file name="Checkbox.php" hash="dbbf607c8fb511e62872cecb0ada8b88"/></dir></dir><file name="Grid.php" hash="4ea69275d91d98cc52d13e0f99398696"/></dir><file name="Manifest.php" hash="4adaea32d62a440413ca2400c962a8b9"/><dir name="Shipment"><dir name="Edit"><file name="Form.php" hash="d4d581256d38e9cd8b9ccf0242d18497"/><dir name="Tab"><file name="Abstract.php" hash="155de5f6e4727d461128291e8bcabe10"/><dir name="Form"><file name="Anytime.php" hash="2d3a4223b61a439bc55312b03eb7f883"/><file name="Anywhere.php" hash="27cffb5864d8999c85081bf3dc6714ce"/><file name="Boxes.php" hash="18b4b6325dc512621022eb912b187b28"/><file name="Insurance.php" hash="cbb8c1e5157b80a5af78efee20e016f7"/><file name="Products.php" hash="953cc0fe59529484e47e2c38ad7d3e0a"/><file name="Quotes.php" hash="8b135b7b568c5cd58da326070e02464e"/><file name="Status.php" hash="9c44fb52c6f9fd38f49942fa868c69d4"/></dir><file name="Form.php" hash="563c145f09c8b90d50d3b77f727fc7b5"/></dir><file name="Tabs.php" hash="1f65e9864e845110e9f86c80606a2652"/></dir><file name="Edit.php" hash="d9e157def8effe7b1e456a1d1934d11c"/><file name="Grid.php" hash="83ce78261c99ecd8b185ee44c14e520c"/></dir><file name="Shipment.php" hash="aa9e8aaeb190b2b473a9fea9c461fd80"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Button"><file name="Rule.php" hash="3bcd4b7971e825c02d70260e6d2d4b24"/><file name="Warehouse.php" hash="0669b05bcc25fdfb0570ffa65d7bb9b9"/></dir><dir name="Field"><file name="Insurance.php" hash="cd0f849df18e4643d88e756f9dde071c"/><file name="Required.php" hash="0659fe9b8ef9c4c373a1190d92495e36"/></dir><dir name="Fieldset"><file name="General.php" hash="7395ec95b32b67e34b33e5c0efc806a5"/></dir></dir></dir></dir></dir><dir name="Cart"><file name="Shipping.php" hash="8c10f6f5c6b37e1172b73475b9ef08fc"/></dir><dir name="Onepage"><dir name="Shipping"><dir name="Method"><dir name="Available"><file name="Single.php" hash="c8c8741458ce6a114111411d8eb4b6db"/></dir><file name="Available.php" hash="1e4764e6fec91175b92b8127e67df91d"/></dir></dir></dir><dir name="Product"><dir name="Shipping"><file name="Methods.php" hash="dd1dabfa05cd2e83668a67cabcfd579f"/></dir><file name="Shipping.php" hash="f46ba19649cfd0e6ef65c428e743d987"/></dir><dir name="Wizard"><file name="Html.php" hash="9cd02a7e33db9ec002be76f0f2f53dac"/></dir></dir><dir name="Helper"><file name="Data.php" hash="b2aadda243ae43cc926c7f868986d914"/><file name="Functions.php" hash="be974e86582c6235f06fcbbe751d3aa6"/><file name="Wizard.php" hash="e6e9d039d321b7495906ac4233a83b18"/></dir><dir name="Model"><dir name="Api"><file name="Client.php" hash="f45ac8c6a64434b83c6a3fa29cddd6b6"/><dir name="Request"><file name="Anything.php" hash="4f09aeef29fb6f96fb16141732f796eb"/><file name="Anythings.php" hash="d3fb55824ed60a0e836db74805038fa2"/><file name="Anytime.php" hash="0c06ea38006ecbb72de2956328cba062"/><file name="Anywhere.php" hash="472902806c8c5304983b18c9c3cfbd5f"/></dir><file name="Request.php" hash="43825b6d395d9a5fff760c07eebbb105"/></dir><file name="Box.php" hash="e70430957f55d49f1232d005af69f3b2"/><file name="Carrier.php" hash="50756d3ea67163919a75725527e8426c"/><dir name="Entity"><dir name="Attribute"><dir name="Source"><dir name="Packaging"><file name="Mode.php" hash="9df70852ceade33a14cf218097f25a36"/></dir><file name="Packaging.php" hash="ae6e48d5e498d11a11feed2f00e03fa8"/></dir></dir></dir><file name="Manifest.php" hash="b870f55b33b3855754a5a4347e2acfec"/><dir name="Mysql4"><dir name="Box"><file name="Collection.php" hash="17e5ff275a0aa8b04a64caab93768198"/></dir><file name="Box.php" hash="105acbf44a10b982413168c199514319"/><dir name="Carrier"><file name="Collection.php" hash="174b62be56ac079b36ca9a11a99f6142"/></dir><file name="Carrier.php" hash="39ac233fc0ef641ed457c651fd3c2eeb"/><dir name="Manifest"><file name="Collection.php" hash="0c2a69f2d9d5c2e9111bed3253d823ed"/></dir><file name="Manifest.php" hash="536353cfe126f5d43ae95452104ba448"/><dir name="Quote"><file name="Collection.php" hash="dfcd02a112c7f3abf2c3202bed33538a"/></dir><file name="Quote.php" hash="63becb2e43f8fc6ac06844dc6789b303"/><dir name="Shipment"><file name="Collection.php" hash="c8d2075067d5639a81869e95d44feaf1"/></dir><file name="Shipment.php" hash="a8d05cbed0386249f61af2e73c76230b"/></dir><file name="Observer.php" hash="219fac88d7a6c4e6fa750524bed4d739"/><dir name="Option"><file name="Abstract.php" hash="845fdf3b2fee7a96635a84eb06130e6c"/><dir name="Action"><file name="Abstract.php" hash="8e556a5043c78ba9800a64cbea2743a0"/><file name="Carbon.php" hash="2bf7a9c3905a2c4a9dd88bb9bf602ab4"/><file name="Footprints.php" hash="74ee69751cde833b464d6fad7e8bc7b5"/><file name="Insurance.php" hash="1c312f12a62f57f555007530ad9ed722"/><file name="Markup.php" hash="978738810a3d2ebf9b08105c9080bf10"/></dir><file name="Boolean.php" hash="0c4403b4ab0ec33e4439dfc054025a03"/><file name="Carbonoffset.php" hash="bf4d22d25297028013e79780d3256823"/><file name="Footprints.php" hash="c9b88d2871350f7620440cec4c512fb9"/><file name="Insurance.php" hash="955a1d660d55e81bc0fdf4e580605f1a"/></dir><file name="Options.php" hash="c46e411a9090f01704b491d9f6c19886"/><file name="Pcs.php" hash="3f36e6471b75b0cdf21fe29dad5508ee"/><file name="Quote.php" hash="496a119ce659efedab8d3f7ccbcb1148"/><file name="Shipment.php" hash="40dc3d6299af2646bdae57dfe15f8ffd"/><dir name="Shipping"><dir name="Carrier"><dir name="Temando"><dir name="Source"><file name="Method.php" hash="beea2c319ccd644d6b82073041c2ff65"/></dir></dir><file name="Temando.php" hash="79d1310ee7ceb9d72f13b4dc10aeaa1a"/></dir></dir><file name="Status.php" hash="1748281382c1f2b910d7488925ab3d60"/><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Form"><dir name="Field"><dir name="Required"><file name="Businessresidential.php" hash="6a4a4a22dece6e05986afbff0474e258"/><file name="Country.php" hash="7c15ab9b62776c3939f6680e81e1d994"/><file name="Location.php" hash="96507e0e7ed730c99f4dd5f6aa743016"/><file name="Text.php" hash="3961607ac0d632430b484ef141865806"/></dir></dir></dir></dir><dir name="Source"><file name="Carbon.php" hash="bafc416a404fc342fba9aefcef40bf4b"/><dir name="Client"><file name="Type.php" hash="835708cd4be50379608fb01f8dbd4850"/></dir><file name="Country.php" hash="0a2557957d861e4ea3ed193f47eba051"/><file name="Errorprocess.php" hash="23b94aa8e44a62fa81a5aa29ea31ac55"/><file name="Footprints.php" hash="1b4e3af5fcb8893d3392e7c6cc924b38"/><file name="Insurance.php" hash="3b60e9c82e8f9aa00c949ba45068d001"/><file name="Labeltype.php" hash="a5f7d209b06d65db647e2d3a6b4657ba"/><dir name="Origin"><file name="Type.php" hash="167e76f7b939e3c627b98ee0318ab264"/></dir><file name="Payment.php" hash="15b7ffb809d44e89a2a0d779e2b6d1e8"/><file name="Pricing.php" hash="8d0c73d3ffce5ad61d6aff4530c942b8"/><file name="Readytime.php" hash="dfe95a917cf3d4b5e26c7972e6574bc3"/><file name="Regions.php" hash="d5d46eeba382e53a8ede61aaba4836a4"/><dir name="Rule"><dir name="Action"><dir name="Adjustment"><file name="Type.php" hash="32b0133d904961669456aa2889985ce8"/></dir><file name="Filter.php" hash="ade56e85d4c9fea77b922629ba1db7c8"/></dir><dir name="Condition"><file name="Time.php" hash="075adcdcb0be9662b34c517665e912b7"/><file name="Type.php" hash="0622631836a3306e53a11e6b1e326e6d"/></dir><file name="Type.php" hash="5a2e0cee02f99c3f68536bf26cbea199"/></dir><dir name="Sales"><dir name="Order"><file name="Status.php" hash="39eceb8a78224871b19d5b09304a56be"/></dir></dir><dir name="Shipment"><file name="Class.php" hash="3291adbe6ba99934a2dbcf19f6b83e46"/><dir name="Packaging"><file name="Mode.php" hash="b245586603851d1a7b0470f6ca52974e"/></dir><file name="Packaging.php" hash="853ab9b82b429b2db6cace1da9429db9"/><file name="Service.php" hash="f866d8aca47fae13602885413f997ef5"/><file name="Status.php" hash="e74bb51a02f1357f44d8f0052c682181"/></dir><dir name="Unit"><file name="Measure.php" hash="01bbc3e2f7f688f9edf54f40bb46c686"/><file name="Weight.php" hash="6b74dde04ffdc951aeed3fb1db60599e"/></dir><file name="Unit.php" hash="b8e75f2efede007b004c47acadea6a84"/><file name="Wizard.php" hash="e15c3299e167f77d527a46e34b13639f"/></dir><file name="Source.php" hash="c6a86ee4f9973a8793eec15660115b0c"/></dir></dir><file name="Wizard.php" hash="f95c6731ffa7731012e7d0d73dd0099e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="JsonController.php" hash="ce01376bdf43f939c802448c880cfd32"/><file name="ManifestController.php" hash="27026e27331606aa81eef04ede715b82"/><file name="ShipmentController.php" hash="a85570091781f76ab4a8ad34ab427ce9"/><file name="WizardController.php" hash="f16d65423c9b5717c48b06683d16cf4b"/></dir><file name="PcsController.php" hash="f66d705f4e628be375190410f5ffde13"/><file name="WizardController.php" hash="5e5dac3f10dbdc8a07fb0e18fcf5409a"/></dir><dir name="etc"><file name="adminhtml.xml" hash="90cb3f86664459e832c6a7f5981d78f8"/><file name="config.xml" hash="13c9f95ab63ddd3292c6369c95bc4a66"/><file name="system.xml" hash="68cd892348b3551ca0f876321ce9da1b"/></dir><dir name="sql"><dir name="temando_setup"><file name="mysql4-install-1.0.0.php" hash="8f22dad6cc2162119422a468b8af9941"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="temando.xml" hash="8f57c8e8b1a3f50ef27cb1eec05d4db2"/></dir><dir name="template"><dir name="temando"><dir name="temando"><file name="manifest.phtml" hash="42425c5a9a479f803d5ff38258ef1afb"/><file name="menu.phtml" hash="f5cb7bcc33ee0788439d4704d6d01e9f"/><file name="origin-avs.phtml" hash="fb39b40b1171e2415860f9c7f162dedf"/><file name="region.phtml" hash="b4012e1a5fa90bcdcd1271ac05b8c763"/><dir name="shipment"><file name="anytime.phtml" hash="8a2ad03e2b01eed05d2929a21e480fd1"/><file name="anywhere.phtml" hash="766acc8aa797d1b64667c7c5060fdc99"/><file name="boxes.phtml" hash="9b97aba8d4ab21fa4d005d0b6f64cac1"/><file name="insurance.phtml" hash="ee70a81f5b1aa017c0095a3905cc55b1"/><file name="products.phtml" hash="a27abbbc5ea7d2437ce2596c8eb48e0a"/><file name="quotes.phtml" hash="1276987516b2f5c8d45b5d32697f3c28"/><file name="status.phtml" hash="3713124523aff92fac39d45548760f1f"/></dir><file name="shipment.phtml" hash="03f44e5048a9e23405abf6b2ca571c2b"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="temando.xml" hash="4b37f4b03daac947fcaf05fae2cafa1d"/></dir><dir name="template"><dir name="temando"><dir name="temando"><dir name="checkout"><dir name="cart"><file name="shipping.phtml" hash="9b527e2382b8723b754dcecd9f226c84"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="17b4da6acfcbdbac94ab507aaac3014f"/></dir></dir><dir name="onestep"><file name="options.phtml" hash="3e0bcc5ba754a31efca069df23637226"/><file name="shipping_method.phtml" hash="147758a6e7a9abc24133fe69167787eb"/></dir><file name="pcs.phtml" hash="2b6e59f811eb7e0a8f622b2f26cda4e2"/><dir name="product"><dir name="shipping"><file name="methods.phtml" hash="1117050cc8bdf9e1bf15189f91c6f56e"/></dir><file name="shipping.phtml" hash="a1d26bb6e8a6fe33a41d5ab00dd84681"/></dir><dir name="shipping_method"><dir name="available"><file name="options_single.phtml" hash="ceb901d5d7f8c8aa69865d6437b27436"/></dir><file name="available.phtml" hash="c42d3f047eed375641f2f0bd1a349392"/></dir><dir name="wizard"><file name="account.phtml" hash="84165433dd929008f83a487105db4570"/><file name="carriers.phtml" hash="369e6426183f5f88009c1c3231edfd75"/><file name="catalog_product.phtml" hash="9bf1b2884c7c44282802a620cc244999"/><file name="countries.phtml" hash="6f6c6f3f6c78762af357b53770f7ec78"/><file name="end.phtml" hash="5ffa2e4762b2739e77153aee60e7ade5"/><file name="left.phtml" hash="fa4c00234212bcb3dba69dcc01851948"/><file name="origin.phtml" hash="6786c2ada069ec849f1020e13a0b919c"/><file name="rule.phtml" hash="39ca6af6df44584c9f1300febfdf5f35"/></dir><file name="wizard.phtml" hash="6cdfeaba6f77d12058dd5174e250c9ea"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="temando"><file name="autocomplete.js" hash="7d9495b3041c1b528c0d9d4809ba9e58"/><file name="avs.js" hash="4f718d50fce5828381147f6130d76299"/><file name="menu.js" hash="88db5d750778f79da2d80099fb5764ca"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="js"><file name="temando.js" hash="37bda1e3240b9f46fdc1fa8d0937ceba"/></dir><dir name="temando"><dir name="images"><file name="ajax-s-load.gif" hash="0ea8ba3fe3e60b73eda7d6de57fd8e01"/><file name="bg_notifications.gif" hash="d2a0489d0c3714bed22f9b06f4b81d43"/><file name="shadow.png" hash="b5b27e0dd88d44d4a5d8e63bb61a1239"/><file name="temando_logo.jpg" hash="04d2dbd664ff68a4be7364113f30572f"/></dir><file name="styles.css" hash="2d9c985c31622016db01e966974d70be"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="temando"><file name="autocomplete.css" hash="90387e5610631653a4bd97c7af3d444e"/><dir name="images"><file name="ajax-s-load.gif" hash="0ea8ba3fe3e60b73eda7d6de57fd8e01"/><file name="find_ext.png" hash="a6ba701a9256a2c775255965df1918c7"/><file name="i_shipping.gif" hash="91a0d2cc2eb2391f90ec8a75c04b3183"/><file name="shadow.png" hash="b5b27e0dd88d44d4a5d8e63bb61a1239"/></dir><file name="product.css" hash="d1679e756012f66391758a09d0918986"/><file name="styles.css" hash="990cb30792de7e9b46042a7d09be73d3"/></dir></dir><dir name="js"><dir name="temando"><file name="checkout.js" hash="4db7a8cd7888f3c7ca93e70f0ee16b84"/><file name="product.js" hash="6f4765fa49efa0c5bc023460624a0b4e"/></dir></dir></dir></dir></dir></target></contents>
37
  <compatible/>
38
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php><extension><name>soap</name><min>1.2</min><max/></extension></required></dependencies>
39
  </package>