Version Notes
v1.1.9 is ShipHawk's initial production release for Magento clients that allows interaction with ShipHawk test and production environments.
Download this release
Release Info
Developer | Mr. Shiphawk |
Extension | ShipHawk |
Version | 1.1.9 |
Comparing to | |
See all releases |
Code changes from version 1.0.0 to 1.1.9
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins.php +12 -0
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins/Edit.php +27 -0
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins/Edit/Form.php +140 -0
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins/Grid.php +97 -0
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/Sales/Order/Shipment/View.php +2 -2
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/Sales/Order/View.php +16 -2
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/Shipment.php +599 -0
- app/code/community/Shiphawk/Shipping/Block/Adminhtml/System/Config/Form/Button.php +50 -0
- app/code/community/Shiphawk/Shipping/Block/Shipping/Tracking/Popup.php +10 -0
- app/code/community/Shiphawk/Shipping/Block/Version.php +14 -0
- app/code/community/Shiphawk/Shipping/Helper/Data.php +409 -3
- app/code/community/Shiphawk/Shipping/Helper/Origin.php +76 -0
- app/code/community/Shiphawk/Shipping/Model/Api.php +357 -75
- app/code/community/Shiphawk/Shipping/Model/Carrier.php +834 -96
- app/code/community/Shiphawk/Shipping/Model/Observer.php +300 -27
- app/code/community/Shiphawk/Shipping/Model/Origins.php +9 -0
- app/code/community/Shiphawk/Shipping/Model/Resource/Origins.php +8 -0
- app/code/community/Shiphawk/Shipping/Model/Resource/Origins/Collection.php +8 -0
- app/code/community/Shiphawk/Shipping/Model/Source/Adminratefilter.php +11 -0
- app/code/community/Shiphawk/Shipping/Model/Source/Carriertype.php +15 -0
- app/code/community/Shiphawk/Shipping/Model/Source/Freeshipping.php +12 -0
- app/code/community/Shiphawk/Shipping/Model/Source/Gateway.php +3 -3
- app/code/community/Shiphawk/Shipping/Model/Source/Ratefilter.php +4 -0
- app/code/community/Shiphawk/Shipping/controllers/Adminhtml/ImportController.php +87 -0
- app/code/community/Shiphawk/Shipping/controllers/Adminhtml/OriginsController.php +133 -0
- app/code/community/Shiphawk/Shipping/controllers/Adminhtml/ShipmentController.php +264 -92
- app/code/community/Shiphawk/Shipping/controllers/IndexController.php +125 -13
- app/code/community/Shiphawk/Shipping/etc/adminhtml.xml +16 -0
- app/code/community/Shiphawk/Shipping/etc/config.xml +119 -12
- app/code/community/Shiphawk/Shipping/etc/system.xml +200 -68
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-install-0.1.0.php +48 -3
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-0.7.1-0.7.2.php +0 -33
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/{mysql4-upgrade-0.7.2-1.0.0.php → mysql4-upgrade-1.0.0-1.0.1.php} +5 -3
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.1-1.0.2.php +27 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.10-1.0.11.php +43 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.11-1.0.12.php +10 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.12-1.0.13.php +10 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.13-1.1.0.php +41 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.2-1.0.3.php +21 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.4-1.0.5.php +9 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.5-1.0.6.php +19 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.6-1.0.7.php +7 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.7-1.0.8.php +7 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.8-1.0.9.php +9 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.9-1.0.10.php +10 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.0-1.1.1.php +32 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.3-1.1.4.php +33 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.4-1.1.5.php +19 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.5.1-1.1.5.3.php +44 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.5.3-1.1.6.php +8 -0
- app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.7-1.1.8.php +49 -0
- app/design/adminhtml/default/default/layout/shiphawk.xml +104 -2
- app/design/adminhtml/default/default/template/shiphawk/amount.phtml +287 -0
- app/design/adminhtml/default/default/template/shiphawk/button.phtml +24 -0
- app/design/adminhtml/default/default/template/shiphawk/shiphawkjsfile.phtml +8 -0
- app/design/adminhtml/default/default/template/shiphawk/shipment.phtml +137 -0
- app/design/adminhtml/default/default/template/shiphawk/shipping/form.phtml +193 -0
- app/design/adminhtml/default/default/template/shiphawk/shipping/method/form.phtml +268 -0
- app/design/frontend/base/default/layout/shiphawk.xml +61 -0
- app/design/frontend/base/default/template/shiphawk/checkout/onepage/billing.phtml +227 -0
- app/design/frontend/base/default/template/shiphawk/checkout/onepage/progress/billing.phtml +44 -0
- app/design/frontend/base/default/template/shiphawk/checkout/onepage/progress/shipping.phtml +48 -0
- app/design/frontend/base/default/template/shiphawk/checkout/onepage/progress/shipping_method.phtml +74 -0
- app/design/frontend/base/default/template/shiphawk/checkout/onepage/review/totals.phtml +70 -0
- app/design/frontend/base/default/template/shiphawk/checkout/onepage/shipping.phtml +167 -0
- app/design/frontend/base/default/template/shiphawk/checkout/onepage/shipping_method/available.phtml +157 -0
- app/design/frontend/base/default/template/shiphawk/popup.phtml +244 -0
- app/etc/modules/Shiphawk_Shipping.xml +9 -9
- app/locale/en_US/template/email/shiphawk_error_email.html +21 -0
- js/shiphawk/shiphawk.css +27 -0
- js/shiphawk/shiphawk.js +113 -3
- js/shiphawk/shiphawk_order.js +6 -0
- js/shiphawk/shiphawk_shipment.js +50 -0
- package.xml +20 -6
- skin/frontend/base/default/shiphawk/css/sh-style.css +19 -0
app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Block_Adminhtml_Origins extends Mage_Adminhtml_Block_Widget_Grid_Container
|
3 |
+
{
|
4 |
+
protected function _construct()
|
5 |
+
{
|
6 |
+
$this->_addButtonLabel = Mage::helper('shiphawk_shipping')->__('Add New Origins');
|
7 |
+
|
8 |
+
$this->_blockGroup = 'shiphawk_shipping';
|
9 |
+
$this->_controller = 'adminhtml_origins';
|
10 |
+
$this->_headerText = Mage::helper('shiphawk_shipping')->__('Origins');
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins/Edit.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Block_Adminhtml_Origins_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
|
3 |
+
{
|
4 |
+
protected function _construct()
|
5 |
+
{
|
6 |
+
$this->_blockGroup = 'shiphawk_shipping';
|
7 |
+
$this->_mode = 'edit';
|
8 |
+
$this->_controller = 'adminhtml_origins';
|
9 |
+
|
10 |
+
$faq_id = (int)$this->getRequest()->getParam($this->_objectId);
|
11 |
+
|
12 |
+
$faq = Mage::getModel('shiphawk_shipping/origins')->load($faq_id);
|
13 |
+
Mage::register('current_origins', $faq);
|
14 |
+
|
15 |
+
$this->_removeButton('reset');
|
16 |
+
}
|
17 |
+
|
18 |
+
public function getHeaderText()
|
19 |
+
{
|
20 |
+
$faq = Mage::registry('current_origins');
|
21 |
+
if ($faq->getId()) {
|
22 |
+
return Mage::helper('shiphawk_shipping')->__("Edit origins '%s'", $this->escapeHtml($faq->getShiphawkOriginTitle()));
|
23 |
+
} else {
|
24 |
+
return Mage::helper('shiphawk_shipping')->__("Add new origins");
|
25 |
+
}
|
26 |
+
}
|
27 |
+
}
|
app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins/Edit/Form.php
ADDED
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Block_Adminhtml_Origins_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
|
3 |
+
{
|
4 |
+
protected function _prepareForm()
|
5 |
+
{
|
6 |
+
$faq = Mage::registry('current_origins');
|
7 |
+
$form = new Varien_Data_Form();
|
8 |
+
$fieldset = $form->addFieldset('edit_origins', array(
|
9 |
+
'legend' => Mage::helper('shiphawk_shipping')->__('Origins Details')
|
10 |
+
));
|
11 |
+
|
12 |
+
if ($faq->getId()) {
|
13 |
+
$fieldset->addField('id', 'hidden', array(
|
14 |
+
'name' => 'id',
|
15 |
+
'required' => true
|
16 |
+
));
|
17 |
+
}
|
18 |
+
|
19 |
+
|
20 |
+
$fieldset->addField('shiphawk_origin_title', 'text', array(
|
21 |
+
'name' => 'shiphawk_origin_title',
|
22 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Title'),
|
23 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Title'),
|
24 |
+
'required' => true,
|
25 |
+
'width' => '400px'
|
26 |
+
));
|
27 |
+
|
28 |
+
$fieldset->addField('shiphawk_origin_firstname', 'text', array(
|
29 |
+
'name' => 'shiphawk_origin_firstname',
|
30 |
+
'title' => Mage::helper('shiphawk_shipping')->__('First Name'),
|
31 |
+
'label' => Mage::helper('shiphawk_shipping')->__('First Name'),
|
32 |
+
'required' => true,
|
33 |
+
'width' => '400px'
|
34 |
+
));
|
35 |
+
|
36 |
+
$fieldset->addField('shiphawk_origin_lastname', 'text', array(
|
37 |
+
'name' => 'shiphawk_origin_lastname',
|
38 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Last Name'),
|
39 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Last Name'),
|
40 |
+
'required' => true,
|
41 |
+
'width' => '400px'
|
42 |
+
));
|
43 |
+
|
44 |
+
$fieldset->addField('shiphawk_origin_addressline1', 'text', array(
|
45 |
+
'name' => 'shiphawk_origin_addressline1',
|
46 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Address'),
|
47 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Address'),
|
48 |
+
'required' => true,
|
49 |
+
'width' => '400px'
|
50 |
+
));
|
51 |
+
|
52 |
+
$fieldset->addField('shiphawk_origin_addressline2', 'text', array(
|
53 |
+
'name' => 'shiphawk_origin_addressline2',
|
54 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Address'),
|
55 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Address Line 2'),
|
56 |
+
'required' => false,
|
57 |
+
'width' => '400px'
|
58 |
+
));
|
59 |
+
|
60 |
+
$fieldset->addField('shiphawk_origin_city', 'text', array(
|
61 |
+
'name' => 'shiphawk_origin_city',
|
62 |
+
'title' => Mage::helper('shiphawk_shipping')->__('City'),
|
63 |
+
'label' => Mage::helper('shiphawk_shipping')->__('City'),
|
64 |
+
'required' => true,
|
65 |
+
'width' => '400px'
|
66 |
+
));
|
67 |
+
|
68 |
+
$regions = $this->getRegions();
|
69 |
+
|
70 |
+
$fieldset->addField('shiphawk_origin_state', 'select', array(
|
71 |
+
'name' => 'shiphawk_origin_state',
|
72 |
+
'title' => Mage::helper('shiphawk_shipping')->__('State'),
|
73 |
+
'label' => Mage::helper('shiphawk_shipping')->__('State'),
|
74 |
+
'required' => true,
|
75 |
+
'values' => $regions,
|
76 |
+
'width' => '100%'
|
77 |
+
));
|
78 |
+
|
79 |
+
$fieldset->addField('shiphawk_origin_zipcode', 'text', array(
|
80 |
+
'name' => 'shiphawk_origin_zipcode',
|
81 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Zip Code'),
|
82 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Zip Code'),
|
83 |
+
'required' => true,
|
84 |
+
'width' => '400px'
|
85 |
+
));
|
86 |
+
|
87 |
+
|
88 |
+
$fieldset->addField('shiphawk_origin_phonenum', 'text', array(
|
89 |
+
'name' => 'shiphawk_origin_phonenum',
|
90 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Phone number'),
|
91 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Phone number'),
|
92 |
+
'required' => true,
|
93 |
+
'width' => '400px'
|
94 |
+
));
|
95 |
+
|
96 |
+
$fieldset->addField('shiphawk_origin_location', 'select', array(
|
97 |
+
'name' => 'shiphawk_origin_location',
|
98 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Location'),
|
99 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Location'),
|
100 |
+
'required' => true,
|
101 |
+
'values' => array(
|
102 |
+
array( 'value'=>'commercial', 'label'=>'commercial'),
|
103 |
+
array( 'value'=>'residential', 'label'=>'residential'),
|
104 |
+
),
|
105 |
+
'width' => '400px'
|
106 |
+
));
|
107 |
+
|
108 |
+
$fieldset->addField('shiphawk_origin_email', 'text', array(
|
109 |
+
'name' => 'shiphawk_origin_email',
|
110 |
+
'title' => Mage::helper('shiphawk_shipping')->__('Email'),
|
111 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Email'),
|
112 |
+
'required' => false,
|
113 |
+
'width' => '400px'
|
114 |
+
));
|
115 |
+
|
116 |
+
$form->setMethod('post');
|
117 |
+
$form->setUseContainer(true);
|
118 |
+
$form->setId('edit_form');
|
119 |
+
$form->setAction($this->getUrl('*/*/save'));
|
120 |
+
$form->setValues($faq->getData());
|
121 |
+
|
122 |
+
$this->setForm($form);
|
123 |
+
}
|
124 |
+
|
125 |
+
public function getRegions($county_code = 'US') {
|
126 |
+
$regions = array();
|
127 |
+
$regionCollection = Mage::getModel('directory/region_api')->items($county_code);
|
128 |
+
foreach($regionCollection as $region) {
|
129 |
+
$regions[]= array(
|
130 |
+
'value' => $region['code'],
|
131 |
+
'label' => $region['name']
|
132 |
+
);
|
133 |
+
}
|
134 |
+
return $regions;
|
135 |
+
}
|
136 |
+
|
137 |
+
|
138 |
+
|
139 |
+
|
140 |
+
}
|
app/code/community/Shiphawk/Shipping/Block/Adminhtml/Origins/Grid.php
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Block_Adminhtml_Origins_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
3 |
+
{
|
4 |
+
|
5 |
+
protected function _construct()
|
6 |
+
{
|
7 |
+
$this->setId('originsGrid');
|
8 |
+
$this->_controller = 'adminhtml_origins';
|
9 |
+
$this->setUseAjax(true);
|
10 |
+
|
11 |
+
$this->setDefaultSort('id');
|
12 |
+
$this->setDefaultDir('desc');
|
13 |
+
}
|
14 |
+
|
15 |
+
protected function _prepareCollection()
|
16 |
+
{
|
17 |
+
$collection = Mage::getModel('shiphawk_shipping/origins')->getCollection();
|
18 |
+
$this->setCollection($collection);
|
19 |
+
|
20 |
+
return parent::_prepareCollection();
|
21 |
+
}
|
22 |
+
|
23 |
+
protected function _prepareColumns()
|
24 |
+
{
|
25 |
+
$this->addColumn('id', array(
|
26 |
+
'header' => Mage::helper('shiphawk_shipping')->__('ID'),
|
27 |
+
'align' => 'right',
|
28 |
+
'width' => '20px',
|
29 |
+
'filter_index' => 'id',
|
30 |
+
'index' => 'id'
|
31 |
+
));
|
32 |
+
|
33 |
+
$this->addColumn('shiphawk_origin_title', array(
|
34 |
+
'header' => Mage::helper('shiphawk_shipping')->__('Title'),
|
35 |
+
'align' => 'right',
|
36 |
+
|
37 |
+
'filter_index' => 'shiphawk_origin_title',
|
38 |
+
'index' => 'shiphawk_origin_title'
|
39 |
+
));
|
40 |
+
|
41 |
+
$this->addColumn('shiphawk_origin_firstname', array(
|
42 |
+
'header' => Mage::helper('shiphawk_shipping')->__('First name'),
|
43 |
+
'align' => 'left',
|
44 |
+
'filter_index' => 'shiphawk_origin_firstname',
|
45 |
+
'index' => 'shiphawk_origin_firstname',
|
46 |
+
|
47 |
+
));
|
48 |
+
|
49 |
+
$this->addColumn('shiphawk_origin_lastname', array(
|
50 |
+
'header' => Mage::helper('shiphawk_shipping')->__('Last name'),
|
51 |
+
'align' => 'left',
|
52 |
+
'filter_index' => 'shiphawk_origin_lastname',
|
53 |
+
'index' => 'shiphawk_origin_lastname',
|
54 |
+
|
55 |
+
));
|
56 |
+
|
57 |
+
$this->addColumn('shiphawk_origin_zipcode', array(
|
58 |
+
'header' => Mage::helper('shiphawk_shipping')->__('Origin Zip Code'),
|
59 |
+
'align' => 'left',
|
60 |
+
'filter_index' => 'shiphawk_origin_zipcode',
|
61 |
+
'index' => 'shiphawk_origin_zipcode',
|
62 |
+
|
63 |
+
));
|
64 |
+
|
65 |
+
$this->addExportType('*/*/export', Mage::helper('shiphawk_shipping')->__('CSV'));
|
66 |
+
|
67 |
+
return parent::_prepareColumns();
|
68 |
+
}
|
69 |
+
|
70 |
+
protected function _prepareMassaction()
|
71 |
+
{
|
72 |
+
$this->setMassactionIdField('id');
|
73 |
+
$this->getMassactionBlock()->setFormFieldName('origins');
|
74 |
+
|
75 |
+
$this->getMassactionBlock()->addItem('delete', array(
|
76 |
+
'label' => Mage::helper('shiphawk_shipping')->__('Delete'),
|
77 |
+
'url' => $this->getUrl('*/*/massDelete'),
|
78 |
+
'confirm' => Mage::helper('shiphawk_shipping')->__('Are you sure?')
|
79 |
+
));
|
80 |
+
|
81 |
+
|
82 |
+
return $this;
|
83 |
+
}
|
84 |
+
|
85 |
+
|
86 |
+
public function getRowUrl($faqs)
|
87 |
+
{
|
88 |
+
return $this->getUrl('*/*/edit', array(
|
89 |
+
'id' => $faqs->getId(),
|
90 |
+
));
|
91 |
+
}
|
92 |
+
|
93 |
+
public function getGridUrl()
|
94 |
+
{
|
95 |
+
return $this->getUrl('*/*/grid', array('_current'=>true));
|
96 |
+
}
|
97 |
+
}
|
app/code/community/Shiphawk/Shipping/Block/Adminhtml/Sales/Order/Shipment/View.php
CHANGED
@@ -4,14 +4,14 @@ class Shiphawk_Shipping_Block_Adminhtml_Sales_Order_Shipment_View extends Mage_A
|
|
4 |
|
5 |
parent::__construct();
|
6 |
|
7 |
-
|
8 |
$this->_addButton('subscribe', array(
|
9 |
'label' => Mage::helper('sales')->__('Subscribe to Tracking Information'),
|
10 |
'class' => 'save',
|
11 |
'onclick' => 'setLocation(\''.$this->getShipTrackUrl($this->getShipment()->getId()).'\')'
|
12 |
)
|
13 |
);
|
14 |
-
}
|
15 |
}
|
16 |
|
17 |
public function getShipTrackUrl($shipment_id) {
|
4 |
|
5 |
parent::__construct();
|
6 |
|
7 |
+
/* if ($this->getShipment()->getId()) {
|
8 |
$this->_addButton('subscribe', array(
|
9 |
'label' => Mage::helper('sales')->__('Subscribe to Tracking Information'),
|
10 |
'class' => 'save',
|
11 |
'onclick' => 'setLocation(\''.$this->getShipTrackUrl($this->getShipment()->getId()).'\')'
|
12 |
)
|
13 |
);
|
14 |
+
}*/
|
15 |
}
|
16 |
|
17 |
public function getShipTrackUrl($shipment_id) {
|
app/code/community/Shiphawk/Shipping/Block/Adminhtml/Sales/Order/View.php
CHANGED
@@ -12,20 +12,34 @@ class Shiphawk_Shipping_Block_Adminhtml_Sales_Order_View extends Mage_Adminhtml_
|
|
12 |
|
13 |
$confirm_messsage = $this->__('Are you sure to process?');
|
14 |
$check_shiphawk = Mage::helper('shiphawk_shipping')->isShipHawkShipping($shipping_code);
|
15 |
-
if($check_shiphawk !== false)
|
16 |
if ($order->canShip()) {
|
17 |
if($manual_shipping) {
|
18 |
$this->_addButton('shiphawk_shipping', array(
|
19 |
'label' => Mage::helper('shiphawk_shipping')->__('ShipHawk Shipment'),
|
20 |
-
'onclick' => "confirmSetLocation('{$confirm_messsage}', '{$this->getShipHawkUrl($order_id)}')",
|
|
|
21 |
'class' => 'go'
|
22 |
), 0, 100, 'header', 'header');
|
23 |
}
|
24 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
}
|
27 |
|
28 |
public function getShipHawkUrl($order_id) {
|
29 |
return Mage::helper("adminhtml")->getUrl("adminshiphawk/adminhtml_shipment/saveshipment", array('order_id' => $order_id));
|
30 |
}
|
|
|
|
|
|
|
|
|
31 |
}
|
12 |
|
13 |
$confirm_messsage = $this->__('Are you sure to process?');
|
14 |
$check_shiphawk = Mage::helper('shiphawk_shipping')->isShipHawkShipping($shipping_code);
|
15 |
+
if($check_shiphawk !== false) {
|
16 |
if ($order->canShip()) {
|
17 |
if($manual_shipping) {
|
18 |
$this->_addButton('shiphawk_shipping', array(
|
19 |
'label' => Mage::helper('shiphawk_shipping')->__('ShipHawk Shipment'),
|
20 |
+
//'onclick' => "confirmSetLocation('{$confirm_messsage}', '{$this->getShipHawkUrl($order_id)}')",
|
21 |
+
'onclick' => "reBook('{$this->getShipHawkUrl($order_id)}', '{$order_id}', '{$this->getNewShipHawkUrl($order_id)}')",
|
22 |
'class' => 'go'
|
23 |
), 0, 100, 'header', 'header');
|
24 |
}
|
25 |
}
|
26 |
+
}else{
|
27 |
+
if ($order->canShip()) {
|
28 |
+
$this->_addButton('shiphawk_shipping_new', array(
|
29 |
+
'label' => Mage::helper('shiphawk_shipping')->__('New ShipHawk Shipment'),
|
30 |
+
'class' => 'newshipment',
|
31 |
+
'onclick' => "showPopup('{$this->getNewShipHawkUrl($order_id)}')"
|
32 |
+
), 0, 150, 'header', 'header');
|
33 |
+
}
|
34 |
+
}
|
35 |
|
36 |
}
|
37 |
|
38 |
public function getShipHawkUrl($order_id) {
|
39 |
return Mage::helper("adminhtml")->getUrl("adminshiphawk/adminhtml_shipment/saveshipment", array('order_id' => $order_id));
|
40 |
}
|
41 |
+
|
42 |
+
public function getNewShipHawkUrl($order_id) {
|
43 |
+
return Mage::helper("adminhtml")->getUrl("adminshiphawk/adminhtml_shipment/newshipment", array('order_id' => $order_id));
|
44 |
+
}
|
45 |
}
|
app/code/community/Shiphawk/Shipping/Block/Adminhtml/Shipment.php
ADDED
@@ -0,0 +1,599 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Block_Adminhtml_Shipment extends Mage_Core_Block_Template
|
3 |
+
{
|
4 |
+
/**
|
5 |
+
* Get ShipHawk Shipping Rate for order with not ShipHawk shipping method
|
6 |
+
* @param $order
|
7 |
+
* @return array|null
|
8 |
+
*/
|
9 |
+
public function getNewShipHawkRate($order) {
|
10 |
+
|
11 |
+
$carrier = Mage::getModel('shiphawk_shipping/carrier');
|
12 |
+
$api = Mage::getModel('shiphawk_shipping/api');
|
13 |
+
$helper = Mage::helper('shiphawk_shipping');
|
14 |
+
|
15 |
+
$shLocationType = $order->getShiphawkLocationType();
|
16 |
+
|
17 |
+
$result = array();
|
18 |
+
|
19 |
+
$items = $carrier->getShiphawkItems($order);
|
20 |
+
|
21 |
+
/* sort items by origin id */
|
22 |
+
$grouped_items_by_zip = $carrier->getGroupedItemsByZip($items);
|
23 |
+
|
24 |
+
// sort items by carrier type
|
25 |
+
$grouped_items_by_carrier_type = $carrier->getGroupedItemsByCarrierType($items);
|
26 |
+
|
27 |
+
$error_message = 'Sorry, not all products have necessary ShipHawk fields filled in. Please add necessary data for next products (or check required attributes):';
|
28 |
+
|
29 |
+
$shippingAddress = $order->getShippingAddress();
|
30 |
+
$to_zip = $shippingAddress->getPostcode();
|
31 |
+
|
32 |
+
$ship_responces = array();
|
33 |
+
$toOrder= array();
|
34 |
+
$api_error = false;
|
35 |
+
$is_multi_zip = false;
|
36 |
+
$is_multi_carrier = false;
|
37 |
+
|
38 |
+
if(count($grouped_items_by_zip) > 1) {
|
39 |
+
$is_multi_zip = true;
|
40 |
+
}
|
41 |
+
|
42 |
+
if(count($grouped_items_by_carrier_type) > 1) {
|
43 |
+
$is_multi_carrier = true;
|
44 |
+
$is_multi_zip = true;
|
45 |
+
}
|
46 |
+
|
47 |
+
$is_admin = $helper->checkIsAdmin();
|
48 |
+
$rate_filter = Mage::helper('shiphawk_shipping')->getRateFilter($is_admin, $order);
|
49 |
+
$carrier_type = Mage::getStoreConfig('carriers/shiphawk_shipping/carrier_type');
|
50 |
+
|
51 |
+
$custom_packing_price_setting = Mage::getStoreConfig('carriers/shiphawk_shipping/shiphawk_custom_packing_price');
|
52 |
+
|
53 |
+
$self_pack = $helper->getSelfPacked();
|
54 |
+
|
55 |
+
$charge_customer_for_packing = Mage::getStoreConfig('carriers/shiphawk_shipping/charge_customer_for_packing');
|
56 |
+
|
57 |
+
$result['error'] = '';
|
58 |
+
//default origin zip code
|
59 |
+
$from_zip = Mage::getStoreConfig('carriers/shiphawk_shipping/default_origin');
|
60 |
+
|
61 |
+
/* items has various carrier type */
|
62 |
+
if($is_multi_carrier) {
|
63 |
+
foreach($grouped_items_by_carrier_type as $carrier_type=>$items_) {
|
64 |
+
|
65 |
+
if($carrier_type) {
|
66 |
+
$carrier_type = explode(',', $carrier_type);
|
67 |
+
}else{
|
68 |
+
$carrier_type = '';
|
69 |
+
}
|
70 |
+
|
71 |
+
$grouped_items_by_origin = $carrier->getGroupedItemsByZip($items_);
|
72 |
+
|
73 |
+
foreach($grouped_items_by_origin as $origin_id=>$items__) {
|
74 |
+
|
75 |
+
if ($origin_id != 'origin_per_product') { // product has origin id or primary origin
|
76 |
+
|
77 |
+
$rate_filter = 'best'; // multi carrier
|
78 |
+
|
79 |
+
if($origin_id) {
|
80 |
+
$shipHawkOrigin = Mage::getModel('shiphawk_shipping/origins')->load($origin_id);
|
81 |
+
$from_zip = $shipHawkOrigin->getShiphawkOriginZipcode();
|
82 |
+
}
|
83 |
+
|
84 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items__, $rate_filter);
|
85 |
+
|
86 |
+
if(empty($checkattributes)) {
|
87 |
+
|
88 |
+
$grouped_items_by_discount_or_markup = $carrier->getGroupedItemsByDiscountOrMarkup($items__);
|
89 |
+
|
90 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
91 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
92 |
+
$from_zip = $items__[0]['zip'];
|
93 |
+
$location_type = $items__[0]['location_type'];
|
94 |
+
// 1. multi carrier, multi origin, not origin per product
|
95 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
96 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
97 |
+
|
98 |
+
$custom_products_packing_price = 0;
|
99 |
+
|
100 |
+
if($custom_packing_price_setting) {
|
101 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
102 |
+
}
|
103 |
+
|
104 |
+
$ship_responces[] = $responceObject;
|
105 |
+
|
106 |
+
if(is_object($responceObject)) {
|
107 |
+
$api_error = true;
|
108 |
+
$shiphawk_error = (string) $responceObject->error;
|
109 |
+
//Mage::log('ShipHawk response: '. $shiphawk_error, null, 'ShipHawk.log');
|
110 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
111 |
+
$error_message = 'ShipHawk error: '. $shiphawk_error;
|
112 |
+
echo $error_message ;
|
113 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
114 |
+
return null;
|
115 |
+
}else{
|
116 |
+
// if $rate_filter = 'best' then it is only one rate
|
117 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
118 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
119 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
120 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
121 |
+
|
122 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $carrier->getProductIds($discount_items);
|
123 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0]);
|
124 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
125 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
126 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
127 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
128 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
129 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
130 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $carrier->getCarrierName($responceObject[0]);
|
131 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $carrier->getPackeges($responceObject[0]);
|
132 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
133 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
134 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
135 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
136 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
137 |
+
$toOrder[$responceObject[0]->id]['carrier_accessorial'] = $responceObject[0]->shipping->carrier_accessorial;
|
138 |
+
//$responce->shipping->carrier_accessorial;
|
139 |
+
}
|
140 |
+
}
|
141 |
+
|
142 |
+
if($is_multi_zip) {
|
143 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
}else{
|
148 |
+
$api_error = true;
|
149 |
+
/*foreach($checkattributes as $rate_error) {
|
150 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
151 |
+
}*/
|
152 |
+
echo $error_message . '<br />';
|
153 |
+
if(!empty($checkattributes['items']['name']))
|
154 |
+
if(count($checkattributes['items']['name'])>0)
|
155 |
+
foreach($checkattributes['items']['name'] as $names) {
|
156 |
+
echo $names . '<br />';
|
157 |
+
}
|
158 |
+
|
159 |
+
if (!empty($checkattributes['from_zip'])) {
|
160 |
+
echo 'From Zip' . '<br />';
|
161 |
+
}
|
162 |
+
if (!empty($checkattributes['to_zip'])) {
|
163 |
+
echo 'To Zip' . '<br />';
|
164 |
+
}
|
165 |
+
|
166 |
+
if (!empty($checkattributes['rate_filter'])) {
|
167 |
+
echo 'Rate Filter' . '<br />';
|
168 |
+
}
|
169 |
+
return null;
|
170 |
+
}
|
171 |
+
}else{ // product items has all required shipping origin fields
|
172 |
+
|
173 |
+
$grouped_items_per_product_by_zip = $carrier->getGroupedItemsByZipPerProduct($items__);
|
174 |
+
|
175 |
+
if(count($grouped_items_per_product_by_zip) > 1 ) {
|
176 |
+
$is_multi_zip = true;
|
177 |
+
}
|
178 |
+
|
179 |
+
if($is_multi_zip) {
|
180 |
+
$rate_filter = 'best';
|
181 |
+
}
|
182 |
+
|
183 |
+
foreach ($grouped_items_per_product_by_zip as $from_zip=>$items_per_product) {
|
184 |
+
|
185 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items_per_product, $rate_filter);
|
186 |
+
|
187 |
+
if(empty($checkattributes)) {
|
188 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
189 |
+
$from_zip = $items_[0]['zip'];
|
190 |
+
$location_type = $items_[0]['location_type'];
|
191 |
+
|
192 |
+
$grouped_items_by_discount_or_markup = $carrier->getGroupedItemsByDiscountOrMarkup($items_per_product);
|
193 |
+
|
194 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
195 |
+
|
196 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
197 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
198 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
199 |
+
|
200 |
+
if($carrier_type) {
|
201 |
+
$carrier_type = explode(',', $carrier_type);
|
202 |
+
}else{
|
203 |
+
$carrier_type = '';
|
204 |
+
}
|
205 |
+
|
206 |
+
// 2. multi carrier, multi origin, origin per product
|
207 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
208 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
209 |
+
|
210 |
+
$custom_products_packing_price = 0;
|
211 |
+
|
212 |
+
if($custom_packing_price_setting) {
|
213 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
214 |
+
}
|
215 |
+
|
216 |
+
$ship_responces[] = $responceObject;
|
217 |
+
|
218 |
+
if(is_object($responceObject)) {
|
219 |
+
$api_error = true;
|
220 |
+
$shiphawk_error = (string) $responceObject->error;
|
221 |
+
//Mage::log('ShipHawk response: '. $shiphawk_error, null, 'ShipHawk.log');
|
222 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
223 |
+
$error_message = 'ShipHawk error: '. $shiphawk_error;
|
224 |
+
echo $error_message ;
|
225 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
226 |
+
return null;
|
227 |
+
}else{
|
228 |
+
// if $rate_filter = 'best' then it is only one rate
|
229 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
230 |
+
|
231 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $carrier->getProductIds($discount_items);
|
232 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0]);
|
233 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
234 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
235 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
236 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
237 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
238 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
239 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $carrier->getCarrierName($responceObject[0]);
|
240 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $carrier->getPackeges($responceObject[0]);
|
241 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
242 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
243 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
244 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
245 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
246 |
+
$toOrder[$responceObject[0]->id]['carrier_accessorial'] = $responceObject[0]->shipping->carrier_accessorial;
|
247 |
+
|
248 |
+
}
|
249 |
+
}
|
250 |
+
|
251 |
+
if($is_multi_zip) {
|
252 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
253 |
+
}
|
254 |
+
|
255 |
+
}
|
256 |
+
|
257 |
+
}else{
|
258 |
+
$api_error = true;
|
259 |
+
/*foreach($checkattributes as $rate_error) {
|
260 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
261 |
+
}*/
|
262 |
+
echo $error_message . '<br />';
|
263 |
+
if(!empty($checkattributes['items']['name']))
|
264 |
+
if(count($checkattributes['items']['name'])>0)
|
265 |
+
foreach($checkattributes['items']['name'] as $names) {
|
266 |
+
echo $names . '<br />';
|
267 |
+
}
|
268 |
+
|
269 |
+
if (!empty($checkattributes['from_zip'])) {
|
270 |
+
echo 'From Zip' . '<br />';
|
271 |
+
}
|
272 |
+
if (!empty($checkattributes['to_zip'])) {
|
273 |
+
echo 'To Zip' . '<br />';
|
274 |
+
}
|
275 |
+
|
276 |
+
if (!empty($checkattributes['rate_filter'])) {
|
277 |
+
echo 'Rate Filter' . '<br />';
|
278 |
+
}
|
279 |
+
return null;
|
280 |
+
}
|
281 |
+
|
282 |
+
}
|
283 |
+
|
284 |
+
}
|
285 |
+
|
286 |
+
}
|
287 |
+
}
|
288 |
+
}else{
|
289 |
+
|
290 |
+
/* all product items has one carrier type or carrier type is null in all items */
|
291 |
+
foreach($grouped_items_by_zip as $origin_id=>$items_) {
|
292 |
+
|
293 |
+
/* get carrier type from first item because items grouped by carrier type and not multi carrier */
|
294 |
+
/* if carrier type is null, get default carrier type from settings */
|
295 |
+
if($items_[0]['shiphawk_carrier_type']) {
|
296 |
+
$carrier_type = (explode(',', $items_[0]['shiphawk_carrier_type'])) ? (explode(',', $items_[0]['shiphawk_carrier_type'])) : Mage::getStoreConfig('carriers/shiphawk_shipping/carrier_type');
|
297 |
+
}else{
|
298 |
+
$carrier_type = '';
|
299 |
+
}
|
300 |
+
|
301 |
+
if ($origin_id != 'origin_per_product') {
|
302 |
+
|
303 |
+
if($is_multi_zip) {
|
304 |
+
$rate_filter = 'best';
|
305 |
+
}
|
306 |
+
|
307 |
+
if($origin_id) {
|
308 |
+
$shipHawkOrigin = Mage::getModel('shiphawk_shipping/origins')->load($origin_id);
|
309 |
+
$from_zip = $shipHawkOrigin->getShiphawkOriginZipcode();
|
310 |
+
}
|
311 |
+
|
312 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items_, $rate_filter);
|
313 |
+
|
314 |
+
if(empty($checkattributes)) {
|
315 |
+
|
316 |
+
$grouped_items_by_discount_or_markup = $carrier->getGroupedItemsByDiscountOrMarkup($items_);
|
317 |
+
|
318 |
+
if(count($grouped_items_by_discount_or_markup)>1) {
|
319 |
+
$is_multi_zip = true;
|
320 |
+
}
|
321 |
+
|
322 |
+
if($is_multi_zip) {
|
323 |
+
$rate_filter = 'best';
|
324 |
+
}
|
325 |
+
|
326 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
327 |
+
|
328 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
329 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
330 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
331 |
+
|
332 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
333 |
+
$from_zip = $discount_items[0]['zip'];
|
334 |
+
$location_type = $discount_items[0]['location_type'];
|
335 |
+
|
336 |
+
// 3. one carrier, multi origin, not origin per product
|
337 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
338 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
339 |
+
|
340 |
+
$custom_products_packing_price = 0;
|
341 |
+
|
342 |
+
if($custom_packing_price_setting) {
|
343 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
344 |
+
}
|
345 |
+
|
346 |
+
$ship_responces[] = $responceObject;
|
347 |
+
|
348 |
+
if(is_object($responceObject) or (empty($responceObject))) {
|
349 |
+
$api_error = true;
|
350 |
+
$shiphawk_error = (string) $responceObject->error;
|
351 |
+
//Mage::log('ShipHawk response: '. $shiphawk_error, null, 'ShipHawk.log');
|
352 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
353 |
+
$error_message = 'ShipHawk error: '. $shiphawk_error;
|
354 |
+
echo $error_message ;
|
355 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
356 |
+
return null;
|
357 |
+
}else{
|
358 |
+
// if $rate_filter = 'best' then it is only one rate
|
359 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
360 |
+
|
361 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $carrier->getProductIds($discount_items);
|
362 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0]);
|
363 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
364 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
365 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
366 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
367 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
368 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
369 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $carrier->getCarrierName($responceObject[0]);
|
370 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $carrier->getPackeges($responceObject[0]);
|
371 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
372 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
373 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
374 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
375 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
376 |
+
$toOrder[$responceObject[0]->id]['carrier_accessorial'] = $responceObject[0]->shipping->carrier_accessorial;
|
377 |
+
}else{
|
378 |
+
Mage::getSingleton('core/session')->setMultiZipCode(false);
|
379 |
+
foreach ($responceObject as $responce) {
|
380 |
+
$toOrder[$responce->id]['product_ids'] = $carrier->getProductIds($discount_items);
|
381 |
+
//$toOrder[$responce->id]['price'] = $helper->getSummaryPrice($responce);
|
382 |
+
//$toOrder[$responce->id]['price'] = $helper->getShipHawkPrice($responce, $self_pack, $charge_customer_for_packing);
|
383 |
+
$toOrder[$responce->id]['price'] = $helper->getSummaryPrice($responce, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
384 |
+
$toOrder[$responce->id]['name'] = $responce->shipping->service;//
|
385 |
+
$toOrder[$responce->id]['items'] = $discount_items;
|
386 |
+
$toOrder[$responce->id]['from_zip'] = $from_zip;
|
387 |
+
$toOrder[$responce->id]['to_zip'] = $to_zip;
|
388 |
+
$toOrder[$responce->id]['carrier'] = $carrier->getCarrierName($responce);
|
389 |
+
$toOrder[$responce->id]['packing_info'] = $carrier->getPackeges($responce);
|
390 |
+
$toOrder[$responce->id]['carrier_type'] = $carrier_type;
|
391 |
+
$toOrder[$responce->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
392 |
+
$toOrder[$responce->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
393 |
+
$toOrder[$responce->id]['self_pack'] = $self_pack;
|
394 |
+
$toOrder[$responce->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
395 |
+
$toOrder[$responce->id]['carrier_accessorial'] = $responce->shipping->carrier_accessorial;
|
396 |
+
}
|
397 |
+
}
|
398 |
+
|
399 |
+
if($is_multi_zip) {
|
400 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
401 |
+
}
|
402 |
+
}
|
403 |
+
}
|
404 |
+
}else{
|
405 |
+
$api_error = true;
|
406 |
+
/*foreach($checkattributes as $rate_error) {
|
407 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
408 |
+
}*/
|
409 |
+
echo $error_message . '<br />';
|
410 |
+
if(!empty($checkattributes['items']['name']))
|
411 |
+
if(count($checkattributes['items']['name'])>0)
|
412 |
+
foreach($checkattributes['items']['name'] as $names) {
|
413 |
+
echo $names . '<br />';
|
414 |
+
}
|
415 |
+
|
416 |
+
if (!empty($checkattributes['from_zip'])) {
|
417 |
+
echo 'From Zip' . '<br />';
|
418 |
+
}
|
419 |
+
if (!empty($checkattributes['to_zip'])) {
|
420 |
+
echo 'To Zip' . '<br />';
|
421 |
+
}
|
422 |
+
|
423 |
+
if (!empty($checkattributes['rate_filter'])) {
|
424 |
+
echo 'Rate Filter' . '<br />';
|
425 |
+
}
|
426 |
+
return null;
|
427 |
+
}
|
428 |
+
}else{
|
429 |
+
|
430 |
+
/* product items has per product origin, grouped by zip code */
|
431 |
+
$grouped_items_per_product_by_zip = $carrier->getGroupedItemsByZipPerProduct($items_);
|
432 |
+
|
433 |
+
if(count($grouped_items_per_product_by_zip) > 1 ) {
|
434 |
+
$is_multi_zip = true;
|
435 |
+
}
|
436 |
+
|
437 |
+
if($is_multi_zip) {
|
438 |
+
$rate_filter = 'best';
|
439 |
+
}
|
440 |
+
|
441 |
+
foreach ($grouped_items_per_product_by_zip as $from_zip=>$items_per_product) {
|
442 |
+
|
443 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items_per_product, $rate_filter);
|
444 |
+
|
445 |
+
if(empty($checkattributes)) {
|
446 |
+
|
447 |
+
$grouped_items_by_discount_or_markup = $carrier->getGroupedItemsByDiscountOrMarkup($items_per_product);
|
448 |
+
|
449 |
+
if(count($grouped_items_by_discount_or_markup)>1) {
|
450 |
+
$is_multi_zip = true;
|
451 |
+
}
|
452 |
+
|
453 |
+
if($is_multi_zip) {
|
454 |
+
$rate_filter = 'best';
|
455 |
+
}
|
456 |
+
|
457 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
458 |
+
|
459 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
460 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
461 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
462 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
463 |
+
$from_zip = $discount_items[0]['zip'];
|
464 |
+
$location_type = $discount_items[0]['location_type'];
|
465 |
+
|
466 |
+
// 4. one carrier, multi origin, origin per product
|
467 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
468 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
469 |
+
|
470 |
+
$custom_products_packing_price = 0;
|
471 |
+
|
472 |
+
if($custom_packing_price_setting) {
|
473 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
474 |
+
}
|
475 |
+
|
476 |
+
$ship_responces[] = $responceObject;
|
477 |
+
|
478 |
+
if(is_object($responceObject)) {
|
479 |
+
$api_error = true;
|
480 |
+
$shiphawk_error = (string) $responceObject->error;
|
481 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
482 |
+
$error_message = 'ShipHawk error: '. $shiphawk_error;
|
483 |
+
echo $error_message ;
|
484 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
485 |
+
return null;
|
486 |
+
}else{
|
487 |
+
// if $rate_filter = 'best' then it is only one rate
|
488 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
489 |
+
|
490 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $carrier->getProductIds($discount_items);
|
491 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0]);
|
492 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
493 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
494 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
495 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
496 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
497 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
498 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $carrier->getCarrierName($responceObject[0]);
|
499 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $carrier->getPackeges($responceObject[0]);
|
500 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
501 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
502 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
503 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
504 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
505 |
+
$toOrder[$responceObject[0]->id]['carrier_accessorial'] = $responceObject[0]->shipping->carrier_accessorial;
|
506 |
+
}else{
|
507 |
+
Mage::getSingleton('core/session')->setMultiZipCode(false);
|
508 |
+
foreach ($responceObject as $responce) {
|
509 |
+
$toOrder[$responce->id]['product_ids'] = $carrier->getProductIds($discount_items);
|
510 |
+
//$toOrder[$responce->id]['price'] = $helper->getSummaryPrice($responce);
|
511 |
+
//$toOrder[$responce->id]['price'] = $helper->getShipHawkPrice($responce, $self_pack, $charge_customer_for_packing);
|
512 |
+
$toOrder[$responce->id]['price'] = $helper->getSummaryPrice($responce, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
513 |
+
$toOrder[$responce->id]['name'] = $responce->shipping->service;//
|
514 |
+
$toOrder[$responce->id]['items'] = $discount_items;
|
515 |
+
$toOrder[$responce->id]['from_zip'] = $from_zip;
|
516 |
+
$toOrder[$responce->id]['to_zip'] = $to_zip;
|
517 |
+
$toOrder[$responce->id]['carrier'] = $carrier->getCarrierName($responce);
|
518 |
+
$toOrder[$responce->id]['packing_info'] = $carrier->getPackeges($responce);
|
519 |
+
$toOrder[$responce->id]['carrier_type'] = $carrier_type;
|
520 |
+
$toOrder[$responce->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
521 |
+
$toOrder[$responce->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
522 |
+
$toOrder[$responce->id]['self_pack'] = $self_pack;
|
523 |
+
$toOrder[$responce->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
524 |
+
$toOrder[$responce->id]['carrier_accessorial'] = $responce->shipping->carrier_accessorial;
|
525 |
+
}
|
526 |
+
}
|
527 |
+
|
528 |
+
if($is_multi_zip) {
|
529 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
530 |
+
}
|
531 |
+
}
|
532 |
+
}
|
533 |
+
}else{
|
534 |
+
$api_error = true;
|
535 |
+
/*foreach($checkattributes as $rate_error) {
|
536 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
537 |
+
}*/
|
538 |
+
|
539 |
+
echo $error_message . '<br />';
|
540 |
+
if(!empty($checkattributes['items']['name']))
|
541 |
+
if(count($checkattributes['items']['name'])>0)
|
542 |
+
foreach($checkattributes['items']['name'] as $names) {
|
543 |
+
echo $names . '<br />';
|
544 |
+
}
|
545 |
+
|
546 |
+
if (!empty($checkattributes['from_zip'])) {
|
547 |
+
echo 'From Zip' . '<br />';
|
548 |
+
}
|
549 |
+
if (!empty($checkattributes['to_zip'])) {
|
550 |
+
echo 'To Zip' . '<br />';
|
551 |
+
}
|
552 |
+
|
553 |
+
if (!empty($checkattributes['rate_filter'])) {
|
554 |
+
echo 'Rate Filter' . '<br />';
|
555 |
+
}
|
556 |
+
return null;
|
557 |
+
}
|
558 |
+
|
559 |
+
}
|
560 |
+
|
561 |
+
}
|
562 |
+
}
|
563 |
+
}
|
564 |
+
|
565 |
+
$name_service = '';
|
566 |
+
$summ_price = 0;
|
567 |
+
if(!$api_error) {
|
568 |
+
|
569 |
+
$services = $carrier->getServices($ship_responces, $toOrder, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting);
|
570 |
+
|
571 |
+
foreach ($services as $id_service=>$service) {
|
572 |
+
if (!$is_multi_zip) {
|
573 |
+
|
574 |
+
}else{
|
575 |
+
$name_service .= $service['name'] . ', ';
|
576 |
+
$summ_price += $service['price'];
|
577 |
+
}
|
578 |
+
}
|
579 |
+
//save rate_id info for Book in PopUP
|
580 |
+
Mage::getSingleton('core/session')->setNewShiphawkBookId($toOrder);
|
581 |
+
|
582 |
+
//remove last comma
|
583 |
+
if(strlen($name_service) >2) {
|
584 |
+
if ($name_service{strlen($name_service)-2} == ',') {
|
585 |
+
$name_service = substr($name_service,0,-2);
|
586 |
+
}
|
587 |
+
}
|
588 |
+
}
|
589 |
+
|
590 |
+
$result['name_service'] = $name_service;
|
591 |
+
$result['summ_price'] = $summ_price;
|
592 |
+
$result['rate_filter'] = $rate_filter;
|
593 |
+
$result['is_multi_zip'] = $is_multi_zip;
|
594 |
+
$result['to_order'] = $toOrder;
|
595 |
+
|
596 |
+
return $result;
|
597 |
+
}
|
598 |
+
|
599 |
+
}
|
app/code/community/Shiphawk/Shipping/Block/Adminhtml/System/Config/Form/Button.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Block_Adminhtml_System_Config_Form_Button extends Mage_Adminhtml_Block_System_Config_Form_Field
|
3 |
+
{
|
4 |
+
/*
|
5 |
+
* Set template
|
6 |
+
*/
|
7 |
+
protected function _construct()
|
8 |
+
{
|
9 |
+
parent::_construct();
|
10 |
+
$this->setTemplate('shiphawk/button.phtml');
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Return element html
|
15 |
+
*
|
16 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
20 |
+
{
|
21 |
+
return $this->_toHtml();
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Return ajax url for button
|
26 |
+
*
|
27 |
+
* @return string
|
28 |
+
*/
|
29 |
+
public function getAjaxCheckUrl()
|
30 |
+
{
|
31 |
+
return Mage::helper("adminhtml")->getUrl("adminshiphawk/adminhtml_import/import");
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Generate button html
|
36 |
+
*
|
37 |
+
* @return string
|
38 |
+
*/
|
39 |
+
public function getButtonHtml()
|
40 |
+
{
|
41 |
+
$button = $this->getLayout()->createBlock('adminhtml/widget_button')
|
42 |
+
->setData(array(
|
43 |
+
'id' => 'faqs_button',
|
44 |
+
'label' => $this->helper('adminhtml')->__('Start Import'),
|
45 |
+
'onclick' => 'javascript:importcsv(); return false;'
|
46 |
+
));
|
47 |
+
|
48 |
+
return $button->toHtml();
|
49 |
+
}
|
50 |
+
}
|
app/code/community/Shiphawk/Shipping/Block/Shipping/Tracking/Popup.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Block_Shipping_Tracking_Popup extends Mage_Shipping_Block_Tracking_Popup
|
3 |
+
{
|
4 |
+
public function getTrackingInfo()
|
5 |
+
{
|
6 |
+
$_results = parent::getTrackingInfo();
|
7 |
+
return $_results;
|
8 |
+
}
|
9 |
+
|
10 |
+
}
|
app/code/community/Shiphawk/Shipping/Block/Version.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Shiphawk_Shipping_Block_Version extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
4 |
+
{
|
5 |
+
|
6 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
7 |
+
{
|
8 |
+
$ver = (Mage::getConfig()->getModuleConfig('Shiphawk_Shipping')->version);
|
9 |
+
$html = 'You current config version is ' . $ver;
|
10 |
+
|
11 |
+
return $html;
|
12 |
+
}
|
13 |
+
|
14 |
+
}
|
app/code/community/Shiphawk/Shipping/Helper/Data.php
CHANGED
@@ -23,8 +23,18 @@ class Shiphawk_Shipping_Helper_Data extends
|
|
23 |
return Mage::getUrl('shiphawk/index/tracking', array('api_key' => $api_key));
|
24 |
}
|
25 |
|
26 |
-
public function getRateFilter()
|
27 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
return Mage::getStoreConfig('carriers/shiphawk_shipping/rate_filter');
|
29 |
}
|
30 |
|
@@ -58,16 +68,412 @@ class Shiphawk_Shipping_Helper_Data extends
|
|
58 |
return $result;
|
59 |
}
|
60 |
|
61 |
-
public function
|
62 |
$result = array();
|
|
|
63 |
foreach ($shiphawk_book_id as $rate_id=>$method_data) {
|
64 |
-
if( strpos($shipping_description, $method_data['name']) !== false ) {
|
|
|
|
|
|
|
65 |
$result = array($rate_id => $method_data);
|
66 |
return $result;
|
67 |
}
|
68 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
return null;
|
70 |
}
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
|
73 |
}
|
23 |
return Mage::getUrl('shiphawk/index/tracking', array('api_key' => $api_key));
|
24 |
}
|
25 |
|
26 |
+
public function getRateFilter($is_admin = false, $order = null)
|
27 |
{
|
28 |
+
if($order) {
|
29 |
+
if($order->getShiphawkRateFilter()) {
|
30 |
+
return $order->getShiphawkRateFilter();
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
if ($is_admin == true) {
|
35 |
+
return Mage::getStoreConfig('carriers/shiphawk_shipping/admin_rate_filter');
|
36 |
+
}
|
37 |
+
|
38 |
return Mage::getStoreConfig('carriers/shiphawk_shipping/rate_filter');
|
39 |
}
|
40 |
|
68 |
return $result;
|
69 |
}
|
70 |
|
71 |
+
public function getShipHawkCode($shiphawk_book_id, $shipping_code) {
|
72 |
$result = array();
|
73 |
+
|
74 |
foreach ($shiphawk_book_id as $rate_id=>$method_data) {
|
75 |
+
//if( strpos($shipping_description, $method_data['name']) !== false ) {
|
76 |
+
//if( $shipping_code == $method_data['price'] ) {
|
77 |
+
$shipping_price = (string) $method_data['price'];
|
78 |
+
if($this->getOriginalShipHawkShippingPrice($shipping_code, $shipping_price)) {
|
79 |
$result = array($rate_id => $method_data);
|
80 |
return $result;
|
81 |
}
|
82 |
}
|
83 |
+
return $result;
|
84 |
+
}
|
85 |
+
|
86 |
+
public function checkIsAdmin () {
|
87 |
+
if(Mage::app()->getStore()->isAdmin())
|
88 |
+
{
|
89 |
+
return true;
|
90 |
+
}
|
91 |
+
|
92 |
+
if(Mage::getDesign()->getArea() == 'adminhtml')
|
93 |
+
{
|
94 |
+
return true;
|
95 |
+
}
|
96 |
+
|
97 |
+
return false;
|
98 |
+
}
|
99 |
+
|
100 |
+
public function generateRandomString($length = 10) {
|
101 |
+
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
102 |
+
$charactersLength = strlen($characters);
|
103 |
+
$randomString = '';
|
104 |
+
for ($i = 0; $i < $length; $i++) {
|
105 |
+
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
106 |
+
}
|
107 |
+
return $randomString;
|
108 |
+
}
|
109 |
+
|
110 |
+
public function checkShipHawkAttributes($from_zip, $to_zip, $items_, $rate_filter) {
|
111 |
+
$error = array();
|
112 |
+
if (empty($from_zip)) {
|
113 |
+
$error['from_zip'] = 'empty from zip';
|
114 |
+
}
|
115 |
+
|
116 |
+
if (empty($to_zip)) {
|
117 |
+
$error['to_zip'] = 'empty to zip';
|
118 |
+
}
|
119 |
+
|
120 |
+
if (empty($rate_filter)) {
|
121 |
+
$error['rate_filter'] = 'rate_filter error';
|
122 |
+
}
|
123 |
+
|
124 |
+
foreach ($items_ as $item) {
|
125 |
+
|
126 |
+
if($this->checkItem($item)) {
|
127 |
+
$error['items'][] = $this->checkItem($item);
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
return $error;
|
132 |
+
}
|
133 |
+
|
134 |
+
public function checkItem($item) {
|
135 |
+
$product_name = Mage::getModel('catalog/product')->load($item['product_id'])->getName();
|
136 |
+
|
137 |
+
if(empty($item['width'])) return $product_name . " doesn't have width";
|
138 |
+
if(empty($item['length'])) return $product_name . " doesn't have length";
|
139 |
+
if(empty($item['height'])) return $product_name . " doesn't have height";
|
140 |
+
if(empty($item['quantity'])) return $product_name . " doesn't have quantity";
|
141 |
+
if(empty($item['packed'])) return $product_name . " doesn't have packed";
|
142 |
+
if(empty($item['id'])) return $product_name . " doesn't have product type id";
|
143 |
+
|
144 |
return null;
|
145 |
}
|
146 |
|
147 |
+
public function discountPercentage($price) {
|
148 |
+
$discountPercentage = Mage::getStoreConfig('carriers/shiphawk_shipping/discount_percentage');
|
149 |
+
|
150 |
+
if(!empty($discountPercentage)) {
|
151 |
+
$price = $price + ($price * ($discountPercentage/100));
|
152 |
+
}
|
153 |
+
|
154 |
+
|
155 |
+
return $price;
|
156 |
+
}
|
157 |
+
|
158 |
+
public function discountFixed($price) {
|
159 |
+
$discountFixed = Mage::getStoreConfig('carriers/shiphawk_shipping/discount_fixed');
|
160 |
+
if(!empty($discountFixed)) {
|
161 |
+
$price = $price + ($discountFixed);
|
162 |
+
}
|
163 |
+
|
164 |
+
return $price;
|
165 |
+
}
|
166 |
+
|
167 |
+
public function getDiscountShippingPrice($price) {
|
168 |
+
$price = $this->discountPercentage($price);
|
169 |
+
$price = $this->discountFixed($price);
|
170 |
+
|
171 |
+
if($price <= 0) {
|
172 |
+
return 0;
|
173 |
+
}
|
174 |
+
return $price;
|
175 |
+
}
|
176 |
+
|
177 |
+
public function getOriginalShipHawkShippingPrice($shipping_code, $shipping_method_value) {
|
178 |
+
$result = strpos($shipping_code, $shipping_method_value);
|
179 |
+
return $result;
|
180 |
+
}
|
181 |
+
|
182 |
+
public function checkShipHawkOriginAttributes($product) {
|
183 |
+
|
184 |
+
$required_origins_attributes = array('shiphawk_origin_firstname', 'shiphawk_origin_lastname', 'shiphawk_origin_addressline1', 'shiphawk_origin_city', 'shiphawk_origin_state', 'shiphawk_origin_zipcode', 'shiphawk_origin_phonenum', 'shiphawk_origin_location');
|
185 |
+
|
186 |
+
foreach($required_origins_attributes as $attribute_code) {
|
187 |
+
$attribute_value = $product->getData($attribute_code);
|
188 |
+
if(empty($attribute_value)) {
|
189 |
+
return false;
|
190 |
+
}
|
191 |
+
}
|
192 |
+
|
193 |
+
return true;
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* @param $object Object of rate response
|
198 |
+
* @param null $opt_to_self_pack "Opt to Self Pack" from settings
|
199 |
+
* @param null $charge_customer_for_packing
|
200 |
+
* @param null $custom_packing_price "Custom Packing Prices?" from settings
|
201 |
+
* @param null $custom_packing_price_amount Sum of custom prices for product packaging
|
202 |
+
* @return mixed
|
203 |
+
*/
|
204 |
+
|
205 |
+
public function getSummaryPrice($object, $opt_to_self_pack = null, $charge_customer_for_packing = null, $custom_packing_price = null, $custom_packing_price_amount = null) {
|
206 |
+
|
207 |
+
if(!$opt_to_self_pack) {
|
208 |
+
return $object->shipping->price + $object->packing->price + $object->pickup->price + $object->delivery->price + $object->insurance->price;
|
209 |
+
}else{
|
210 |
+
if (( $opt_to_self_pack == 1) && ($custom_packing_price == 1)) {
|
211 |
+
|
212 |
+
if($this->ChargeCustomerForPacking($opt_to_self_pack, $charge_customer_for_packing) == false) {
|
213 |
+
return $object->shipping->price + $object->delivery->price + $object->insurance->price;
|
214 |
+
}
|
215 |
+
|
216 |
+
return $object->shipping->price + $object->delivery->price + $object->insurance->price + $custom_packing_price_amount;
|
217 |
+
|
218 |
+
}else{
|
219 |
+
if($this->ChargeCustomerForPacking($opt_to_self_pack, $charge_customer_for_packing) == false) {
|
220 |
+
return $object->shipping->price + $object->delivery->price + $object->insurance->price;
|
221 |
+
}
|
222 |
+
|
223 |
+
|
224 |
+
}
|
225 |
+
return $object->shipping->price + $object->packing->price + $object->pickup->price + $object->delivery->price + $object->insurance->price;
|
226 |
+
|
227 |
+
}
|
228 |
+
|
229 |
+
}
|
230 |
+
|
231 |
+
public function getShipHawkPrice($object, $opt_to_self_pack = null, $charge_customer_for_packing = null) {
|
232 |
+
|
233 |
+
if(!$opt_to_self_pack) {
|
234 |
+
return $object->shipping->price + $object->packing->price + $object->pickup->price + $object->delivery->price + $object->insurance->price;
|
235 |
+
}else{
|
236 |
+
|
237 |
+
return $object->shipping->price + $object->delivery->price + $object->insurance->price;
|
238 |
+
|
239 |
+
}
|
240 |
+
|
241 |
+
}
|
242 |
+
|
243 |
+
public function ChargeCustomerForPacking($opt_to_self_pack = null, $charge_customer_for_packing = null) {
|
244 |
+
|
245 |
+
$opt_to_self_pack = ($opt_to_self_pack === null) ? Mage::getStoreConfig('carriers/shiphawk_shipping/opt_to_self_pack') : $opt_to_self_pack;
|
246 |
+
|
247 |
+
$charge_customer_for_packing = ($charge_customer_for_packing === null) ? Mage::getStoreConfig('carriers/shiphawk_shipping/charge_customer_for_packing') : $charge_customer_for_packing;
|
248 |
+
|
249 |
+
if(($opt_to_self_pack == 1)) {
|
250 |
+
return $charge_customer_for_packing;
|
251 |
+
}
|
252 |
+
|
253 |
+
return false;
|
254 |
+
}
|
255 |
+
|
256 |
+
public function getCustomPackingPriceSumm($items) {
|
257 |
+
$packing_summ = 0;
|
258 |
+
foreach($items as $item) {
|
259 |
+
if(isset($item['shiphawk_custom_packing_price']))
|
260 |
+
$packing_summ += $item['shiphawk_custom_packing_price']*$item['quantity'];
|
261 |
+
}
|
262 |
+
|
263 |
+
return $packing_summ;
|
264 |
+
}
|
265 |
+
|
266 |
+
public function getSelfPacked() {
|
267 |
+
$opt_to_self_pack = Mage::getStoreConfig('carriers/shiphawk_shipping/opt_to_self_pack');
|
268 |
+
$charge_customer_for_packing = Mage::getStoreConfig('carriers/shiphawk_shipping/charge_customer_for_packing');
|
269 |
+
|
270 |
+
/* if(($opt_to_self_pack == 1) && ($charge_customer_for_packing == 1)) {
|
271 |
+
return 0;
|
272 |
+
}*/
|
273 |
+
|
274 |
+
return $opt_to_self_pack;
|
275 |
+
}
|
276 |
+
|
277 |
+
public function getBOLurl($shipment_id) {
|
278 |
+
|
279 |
+
$api_key = $this->getApiKey();
|
280 |
+
|
281 |
+
$bol_url = $this->getApiUrl() . 'shipments/' . $shipment_id . '/bol?api_key=' . $api_key;
|
282 |
+
|
283 |
+
$curl = curl_init();
|
284 |
+
|
285 |
+
curl_setopt($curl, CURLOPT_URL, $bol_url);
|
286 |
+
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
|
287 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
288 |
+
|
289 |
+
$resp = curl_exec($curl);
|
290 |
+
$arr_res = json_decode($resp);
|
291 |
+
|
292 |
+
return $arr_res;
|
293 |
+
|
294 |
+
}
|
295 |
+
|
296 |
+
/**
|
297 |
+
* For get shipping price with personal product shipping discount
|
298 |
+
*
|
299 |
+
* @param $price
|
300 |
+
* @param $orderData
|
301 |
+
* @return int
|
302 |
+
*
|
303 |
+
* @version 20150706
|
304 |
+
*/
|
305 |
+
public function getTotalDiscountShippingPrice($price, $orderData) {
|
306 |
+
$items = $orderData['items'];
|
307 |
+
$result = 0;
|
308 |
+
|
309 |
+
if (empty($items)) {
|
310 |
+
return $result;
|
311 |
+
}
|
312 |
+
|
313 |
+
$productModel = Mage::getModel('catalog/product');
|
314 |
+
|
315 |
+
// if one items in pack get discount from product, if it empty then for sys. config
|
316 |
+
if (count($items) == 1) {
|
317 |
+
$product = $productModel->load($items[0]['product_id']);
|
318 |
+
$shiphawkDiscountPercentage = $product->getShiphawkDiscountPercentage();
|
319 |
+
$shiphawkDiscountFixed = $product->getShiphawkDiscountFixed();
|
320 |
+
|
321 |
+
if (empty($shiphawkDiscountPercentage) && empty($shiphawkDiscountFixed)) {
|
322 |
+
return $this->getDiscountShippingPrice($price);
|
323 |
+
}
|
324 |
+
|
325 |
+
$result = $price + ($price * ($shiphawkDiscountPercentage/100));
|
326 |
+
$result = $result + ($shiphawkDiscountFixed);
|
327 |
+
|
328 |
+
if($result <= 0) {
|
329 |
+
return 0;
|
330 |
+
}
|
331 |
+
} else {
|
332 |
+
$discount_arr = array();
|
333 |
+
foreach($items as $item) {
|
334 |
+
$product = $productModel->load($item['product_id']);
|
335 |
+
$shiphawkDiscountPercentage = $product->getShiphawkDiscountPercentage();
|
336 |
+
$shiphawkDiscountFixed = $product->getShiphawkDiscountFixed();
|
337 |
+
|
338 |
+
if (empty($shiphawkDiscountFixed) && empty($shiphawkDiscountPercentage)) {
|
339 |
+
$discount_arr['empty_val'] = array('percentage' => 0, 'fixed' => 0);
|
340 |
+
} else {
|
341 |
+
$discount_arr[$shiphawkDiscountPercentage . '_' . $shiphawkDiscountFixed] = array(
|
342 |
+
'percentage' => $shiphawkDiscountPercentage,
|
343 |
+
'fixed' => $shiphawkDiscountFixed
|
344 |
+
);
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
if (count($discount_arr) == 1 && !empty($discount_arr['empty_val'])) {
|
349 |
+
return $this->getDiscountShippingPrice($price);
|
350 |
+
}
|
351 |
+
|
352 |
+
if (count($discount_arr) > 1) {
|
353 |
+
return $price;
|
354 |
+
}
|
355 |
+
|
356 |
+
foreach($discount_arr as $discount) {
|
357 |
+
$result = $price + ($price * ($discount['percentage']/100));
|
358 |
+
$result = $result + ($discount['fixed']);
|
359 |
+
break;
|
360 |
+
}
|
361 |
+
}
|
362 |
+
|
363 |
+
return $result;
|
364 |
+
}
|
365 |
+
|
366 |
+
public function getProductCarrierType($product) {
|
367 |
+
$carrier_types = explode(',', $product->getShiphawkCarrierType());
|
368 |
+
|
369 |
+
$attr = Mage::getModel('catalog/product')->getResource()->getAttribute('shiphawk_carrier_type');
|
370 |
+
$carrier_types_labels = array();
|
371 |
+
|
372 |
+
foreach($carrier_types as $carrier_type) {
|
373 |
+
if ($attr->usesSource()) {
|
374 |
+
$carrier_types_label = $attr->getSource()->getOptionText($carrier_type);
|
375 |
+
|
376 |
+
if(($carrier_types_label == 'All')||(!$carrier_types_label)) {
|
377 |
+
return '';
|
378 |
+
}
|
379 |
+
|
380 |
+
$carrier_types_labels[] = $carrier_types_label;
|
381 |
+
}
|
382 |
+
}
|
383 |
+
|
384 |
+
return implode(",", $carrier_types_labels);
|
385 |
+
|
386 |
+
}
|
387 |
+
|
388 |
+
public function getProductDiscountMarkupPrice($shipping_price, $shiphawk_discount_percentage, $shiphawk_discount_fixed) {
|
389 |
+
|
390 |
+
if(!empty($shiphawk_discount_percentage)) {
|
391 |
+
$shipping_price = $shipping_price + ($shipping_price * ($shiphawk_discount_percentage/100));
|
392 |
+
}
|
393 |
+
|
394 |
+
if(!empty($shiphawk_discount_fixed)) {
|
395 |
+
$shipping_price = $shipping_price + ($shiphawk_discount_fixed);
|
396 |
+
}
|
397 |
+
|
398 |
+
if($shipping_price <= 0) {
|
399 |
+
return 0;
|
400 |
+
}
|
401 |
+
|
402 |
+
return $shipping_price;
|
403 |
+
}
|
404 |
+
|
405 |
+
public function shlog($var, $file = 'shiphawk-error.log') {
|
406 |
+
$enable_log = Mage::getStoreConfig('carriers/shiphawk_shipping/enable_log');
|
407 |
+
|
408 |
+
if($enable_log == 1) {
|
409 |
+
Mage::log($var, null, $file);
|
410 |
+
}
|
411 |
+
}
|
412 |
+
|
413 |
+
public function sendErrorMessageToShipHawk($error_text) {
|
414 |
+
$enable_log = Mage::getStoreConfig('carriers/shiphawk_shipping/enable_log');
|
415 |
+
$enable_sending_message = Mage::getStoreConfig('carriers/shiphawk_shipping/email_error_to_shiphawk');
|
416 |
+
|
417 |
+
if(($enable_log == 1)&&($enable_sending_message == 1)) {
|
418 |
+
|
419 |
+
$this->sendMailToShiphawk($error_text);
|
420 |
+
|
421 |
+
}
|
422 |
+
}
|
423 |
+
|
424 |
+
public function sendMailToShiphawk($shiphawk_error_log) {
|
425 |
+
$template_id = 'shiphawk_error_email';
|
426 |
+
$shiphawk_api_key = $this->getApiKey();
|
427 |
+
|
428 |
+
$email_to = 'extensionslog@shiphawk.com';
|
429 |
+
|
430 |
+
$email_template = Mage::getModel('core/email_template')->loadDefault($template_id);
|
431 |
+
|
432 |
+
$email_template_variables = array(
|
433 |
+
'shiphawk_error_log' => $shiphawk_error_log,
|
434 |
+
'shiphawk_api_key' => $shiphawk_api_key
|
435 |
+
);
|
436 |
+
|
437 |
+
|
438 |
+
$sender_name = 'store owner';
|
439 |
+
|
440 |
+
$sender_email = Mage::getStoreConfig('trans_email/ident_general/email');
|
441 |
+
$email_template->setSenderName('Store Owner');
|
442 |
+
$email_template->setSenderEmail($sender_email);
|
443 |
+
|
444 |
+
$email_template->send($email_to, $sender_name, $email_template_variables);
|
445 |
+
|
446 |
+
}
|
447 |
+
|
448 |
+
public function getAccessoriesPrice($accessoriesPriceData) {
|
449 |
+
$accessoriesPrice = 0;
|
450 |
+
|
451 |
+
if(!empty($accessoriesPriceData)) {
|
452 |
+
foreach($accessoriesPriceData as $typeName => $type) {
|
453 |
+
foreach($type as $name => $values) {
|
454 |
+
foreach($values as $key => $value) {
|
455 |
+
|
456 |
+
$accessoriesPrice += (float)$value;
|
457 |
+
}
|
458 |
+
}
|
459 |
+
}
|
460 |
+
}
|
461 |
+
|
462 |
+
return $accessoriesPrice;
|
463 |
+
}
|
464 |
+
|
465 |
+
public function checkIsItCartPage() {
|
466 |
+
$request = Mage::app()->getFrontController()->getRequest();
|
467 |
+
$module = $request->getModuleName();
|
468 |
+
$controller = $request->getControllerName();
|
469 |
+
$action = $request->getActionName();
|
470 |
+
|
471 |
+
if($module == 'checkout' && $controller == 'cart' && $action == 'index')
|
472 |
+
{
|
473 |
+
return true;
|
474 |
+
}
|
475 |
+
|
476 |
+
return false;
|
477 |
+
}
|
478 |
|
479 |
}
|
app/code/community/Shiphawk/Shipping/Helper/Origin.php
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Shiphawk_Shipping_Helper_Origin extends
|
4 |
+
Mage_Core_Helper_Abstract
|
5 |
+
{
|
6 |
+
/**
|
7 |
+
* Contains current collection
|
8 |
+
* @var string
|
9 |
+
*/
|
10 |
+
protected $_list = null;
|
11 |
+
|
12 |
+
public function __construct()
|
13 |
+
{
|
14 |
+
$collection = Mage::getModel('shiphawk_shipping/origins')->getCollection()
|
15 |
+
;
|
16 |
+
|
17 |
+
$this->setList($collection);
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Sets current collection
|
22 |
+
* @param $query
|
23 |
+
*/
|
24 |
+
public function setList($collection)
|
25 |
+
{
|
26 |
+
$this->_list = $collection;
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Returns indexes of the fetched array as headers for CSV
|
31 |
+
* @param array $products
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
protected function _getCsvHeaders($questions)
|
35 |
+
{
|
36 |
+
$question = current($questions);
|
37 |
+
$headers = array_keys($question->getData());
|
38 |
+
|
39 |
+
return $headers;
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Generates CSV file with items's list according to the collection in the $this->_list
|
44 |
+
* @return array
|
45 |
+
*/
|
46 |
+
public function generateQuestList()
|
47 |
+
{
|
48 |
+
if (!is_null($this->_list)) {
|
49 |
+
$items = $this->_list->getItems();
|
50 |
+
if (count($items) > 0) {
|
51 |
+
|
52 |
+
$io = new Varien_Io_File();
|
53 |
+
$path = Mage::getBaseDir('var') . DS . 'export' . DS;
|
54 |
+
$name = md5(microtime());
|
55 |
+
$file = $path . DS . $name . '.csv';
|
56 |
+
$io->setAllowCreateFolders(true);
|
57 |
+
$io->open(array('path' => $path));
|
58 |
+
$io->streamOpen($file, 'w+');
|
59 |
+
$io->streamLock(true);
|
60 |
+
|
61 |
+
$io->streamWriteCsv($this->_getCsvHeaders($items));
|
62 |
+
foreach ($items as $question) {
|
63 |
+
$io->streamWriteCsv($question->getData());
|
64 |
+
}
|
65 |
+
|
66 |
+
return array(
|
67 |
+
'type' => 'filename',
|
68 |
+
'value' => $file,
|
69 |
+
'rm' => true // can delete file after use
|
70 |
+
);
|
71 |
+
}
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
|
76 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Api.php
CHANGED
@@ -1,26 +1,37 @@
|
|
1 |
<?php
|
2 |
class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
3 |
{
|
4 |
-
public function getShiphawkRate($from_zip, $to_zip, $items, $rate_filter) {
|
5 |
|
6 |
$helper = Mage::helper('shiphawk_shipping');
|
7 |
$api_key = $helper->getApiKey();
|
8 |
-
|
|
|
9 |
|
10 |
-
$from_type = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_location_type');
|
11 |
-
//$rate_filter = $helper->getRateFilter();
|
12 |
$curl = curl_init();
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
-
|
24 |
|
25 |
curl_setopt($curl, CURLOPT_URL, $url_api_rates);
|
26 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
|
@@ -40,64 +51,91 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
40 |
return $arr_res;
|
41 |
}
|
42 |
|
43 |
-
public function toBook($order
|
44 |
{
|
45 |
-
$ship_addr =
|
46 |
-
$bill_addr =
|
47 |
-
|
48 |
-
|
49 |
-
$ship_addr = $order->getShippingAddress()->getData();
|
50 |
-
$bill_addr = $order->getBillingAddress()->getData();
|
51 |
-
$order_increment_id = $order->getIncrementId();
|
52 |
-
}
|
53 |
|
54 |
$api_key = Mage::helper('shiphawk_shipping')->getApiKey();
|
55 |
$api_url = Mage::helper('shiphawk_shipping')->getApiUrl();
|
56 |
-
$url_api = $api_url . 'shipments
|
57 |
|
58 |
-
|
59 |
-
|
|
|
|
|
|
|
|
|
60 |
/* */
|
61 |
|
62 |
$curl = curl_init();
|
63 |
|
64 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
$next_bussines_day = date('Y-m-d', strtotime('now +1 Weekday'));
|
67 |
$items_array = array(
|
68 |
'rate_id'=> $rate_id,
|
69 |
-
'order_email'=> $
|
70 |
'xid'=>$order_increment_id,
|
|
|
|
|
71 |
'origin_address' =>
|
72 |
-
|
73 |
-
'first_name' => $origin_address_product['origin_first_name'] ? $origin_address_product['origin_first_name'] : $origin_address['origin_first_name'],
|
74 |
-
'last_name' => $origin_address_product['origin_last_name'] ? $origin_address_product['origin_last_name'] : $origin_address['origin_last_name'],
|
75 |
-
'address_line_1' => $origin_address_product['origin_address'] ? $origin_address_product['origin_address'] : $origin_address['origin_address'],
|
76 |
-
'address_line_2' => $origin_address_product['origin_address2'] ? $origin_address_product['origin_address2'] : $origin_address['origin_address2'],
|
77 |
-
'phone_num' => $origin_address_product['origin_phone'] ? $origin_address_product['origin_phone'] : $origin_address['origin_phone'],
|
78 |
-
'city' => $origin_address_product['origin_city'] ? $origin_address_product['origin_city'] : $origin_address['origin_city'],
|
79 |
-
'state' => $origin_address_product['origin_state'] ? $origin_address_product['origin_state'] : $origin_address['origin_state'],
|
80 |
-
'zipcode' => $origin_address_product['default_origin_zip'] ? $origin_address_product['default_origin_zip'] : $origin_address['default_origin_zip']
|
81 |
-
),
|
82 |
'destination_address' =>
|
83 |
array(
|
84 |
'first_name' => $ship_addr['firstname'],
|
85 |
'last_name' => $ship_addr['lastname'],
|
86 |
-
'
|
87 |
-
'
|
88 |
'city' => $ship_addr['city'],
|
89 |
'state' => $ship_addr['region'],
|
90 |
-
'
|
|
|
91 |
),
|
92 |
'billing_address' =>
|
93 |
array(
|
94 |
'first_name' => $bill_addr['firstname'],
|
95 |
'last_name' => $bill_addr['lastname'],
|
96 |
-
'
|
97 |
-
'
|
98 |
'city' => $bill_addr['city'],
|
99 |
'state' => $bill_addr['region'], //'NY',
|
100 |
-
'
|
|
|
101 |
),
|
102 |
'pickup' =>
|
103 |
array(
|
@@ -111,10 +149,13 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
111 |
)
|
112 |
),
|
113 |
|
114 |
-
'accessorials' =>
|
115 |
|
116 |
);
|
117 |
|
|
|
|
|
|
|
118 |
$items_array = json_encode($items_array);
|
119 |
|
120 |
curl_setopt($curl, CURLOPT_URL, $url_api);
|
@@ -130,43 +171,73 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
130 |
$resp = curl_exec($curl);
|
131 |
$arr_res = json_decode($resp);
|
132 |
|
|
|
|
|
133 |
curl_close($curl);
|
134 |
|
135 |
return $arr_res;
|
136 |
|
137 |
}
|
138 |
|
139 |
-
protected function
|
140 |
$origin_address = array();
|
141 |
|
142 |
-
$origin_address['
|
143 |
-
$origin_address['
|
144 |
-
$origin_address['
|
145 |
-
$origin_address['
|
146 |
-
$origin_address['
|
147 |
-
$origin_address['
|
148 |
-
$origin_address['
|
149 |
-
$origin_address['
|
|
|
150 |
|
151 |
return $origin_address;
|
152 |
}
|
153 |
|
154 |
-
protected function _getProductOriginData($
|
155 |
$origin_address_product = array();
|
|
|
156 |
try
|
157 |
{
|
158 |
-
$order_items = $order->getAllItems();
|
159 |
// get first product item
|
160 |
-
$origin_product = Mage::getModel('catalog/product')->load($
|
161 |
-
|
162 |
-
$
|
163 |
-
$
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
$
|
169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
}
|
171 |
catch(Exception $e)
|
172 |
{
|
@@ -176,17 +247,34 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
176 |
return $origin_address_product;
|
177 |
}
|
178 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
|
180 |
/**
|
181 |
-
* Save shipment
|
182 |
* We can save only new shipment. Existing shipments are not editable
|
183 |
*
|
184 |
-
*
|
185 |
*/
|
186 |
public function saveshipment($orderId)
|
187 |
{
|
188 |
try {
|
189 |
$order = Mage::getModel('sales/order')->load($orderId);
|
|
|
190 |
|
191 |
$shiphawk_rate_data = unserialize($order->getData('shiphawk_book_id')); //rate id
|
192 |
|
@@ -195,15 +283,27 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
195 |
|
196 |
$shipment->register();
|
197 |
|
198 |
-
$this->_saveShiphawkShipment($shipment);
|
|
|
|
|
199 |
|
200 |
-
// add book
|
|
|
201 |
|
202 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
|
204 |
// add track
|
205 |
-
if($track_number = $track_data->
|
206 |
$this->addTrackNumber($shipment, $track_number);
|
|
|
|
|
207 |
}
|
208 |
}
|
209 |
|
@@ -261,9 +361,11 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
261 |
* @param Mage_Sales_Model_Order_Shipment $shipment
|
262 |
* @return Mage_Adminhtml_Sales_Order_ShipmentController
|
263 |
*/
|
264 |
-
public function _saveShiphawkShipment($shipment)
|
265 |
{
|
266 |
$shipment->getOrder()->setIsInProcess(true);
|
|
|
|
|
267 |
$transactionSave = Mage::getModel('core/resource_transaction')
|
268 |
->addObject($shipment)
|
269 |
->addObject($shipment->getOrder())
|
@@ -279,7 +381,7 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
279 |
{
|
280 |
try {
|
281 |
$carrier = 'shiphawk_shipping';
|
282 |
-
|
283 |
$title = 'ShipHawk Shipping';
|
284 |
if (empty($carrier)) {
|
285 |
Mage::throwException($this->__('The carrier needs to be specified.'));
|
@@ -297,14 +399,194 @@ class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
|
297 |
->save();
|
298 |
|
299 |
} else {
|
300 |
-
|
301 |
}
|
302 |
} catch (Mage_Core_Exception $e) {
|
303 |
Mage::log($e->getMessage());
|
304 |
} catch (Exception $e) {
|
305 |
-
Mage::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
}
|
307 |
|
|
|
308 |
}
|
309 |
|
310 |
}
|
1 |
<?php
|
2 |
class Shiphawk_Shipping_Model_Api extends Mage_Core_Model_Abstract
|
3 |
{
|
4 |
+
public function getShiphawkRate($from_zip, $to_zip, $items, $rate_filter, $carrier_type, $location_type, $shLocationType) {
|
5 |
|
6 |
$helper = Mage::helper('shiphawk_shipping');
|
7 |
$api_key = $helper->getApiKey();
|
8 |
+
//$url_api_rates = $helper->getApiUrl() . 'rates/full?api_key=' . $api_key;
|
9 |
+
$url_api_rates = $helper->getApiUrl() . 'rates?api_key=' . $api_key;
|
10 |
|
|
|
|
|
11 |
$curl = curl_init();
|
12 |
|
13 |
+
if($carrier_type == '') {
|
14 |
+
$items_array = array(
|
15 |
+
'from_zip'=> $from_zip,
|
16 |
+
'to_zip'=> $to_zip,
|
17 |
+
'rate_filter' => $rate_filter,
|
18 |
+
'items' => $items,
|
19 |
+
'from_type' => $location_type,
|
20 |
+
'to_type' => $shLocationType,
|
21 |
+
);
|
22 |
+
}else{
|
23 |
+
$items_array = array(
|
24 |
+
'from_zip'=> $from_zip,
|
25 |
+
'to_zip'=> $to_zip,
|
26 |
+
'rate_filter' => $rate_filter,
|
27 |
+
'carrier_type' => $carrier_type,
|
28 |
+
'items' => $items,
|
29 |
+
'from_type' => $location_type,
|
30 |
+
'to_type' => $shLocationType,
|
31 |
+
);
|
32 |
+
}
|
33 |
|
34 |
+
$items_array = json_encode($items_array);
|
35 |
|
36 |
curl_setopt($curl, CURLOPT_URL, $url_api_rates);
|
37 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
|
51 |
return $arr_res;
|
52 |
}
|
53 |
|
54 |
+
public function toBook($order, $rate_id, $products_ids, $accessories = array(), $is_auto = false, $self_packed, $is_rerate = null)
|
55 |
{
|
56 |
+
$ship_addr = $order->getShippingAddress()->getData();
|
57 |
+
$bill_addr = $order->getBillingAddress()->getData();
|
58 |
+
$order_increment_id = $order->getIncrementId();
|
59 |
+
$helper = Mage::helper('shiphawk_shipping');
|
|
|
|
|
|
|
|
|
60 |
|
61 |
$api_key = Mage::helper('shiphawk_shipping')->getApiKey();
|
62 |
$api_url = Mage::helper('shiphawk_shipping')->getApiUrl();
|
63 |
+
$url_api = $api_url . 'shipments?api_key=' . $api_key;
|
64 |
|
65 |
+
$self_packed = $self_packed ? 'true' : 'false';
|
66 |
+
|
67 |
+
/* get shiphawk origin data from first product, because products are grouped by origin (or by zip code) and have same address */
|
68 |
+
$origin_product = Mage::getModel('catalog/product')->load($products_ids['product_ids'][0]);
|
69 |
+
$per_product = Mage::helper('shiphawk_shipping')->checkShipHawkOriginAttributes($origin_product);
|
70 |
+
$origin_address_product = $this->_getProductOriginData($products_ids['product_ids'][0], $per_product);
|
71 |
/* */
|
72 |
|
73 |
$curl = curl_init();
|
74 |
|
75 |
+
$default_origin_address = $this->_getDefaultOriginData();
|
76 |
+
|
77 |
+
$order_email = $ship_addr['email'];
|
78 |
+
|
79 |
+
if (Mage::getStoreConfig('carriers/shiphawk_shipping/order_received') == 1) {
|
80 |
+
$administrator_email = Mage::getStoreConfig('carriers/shiphawk_shipping/administrator_email');
|
81 |
+
$order_email = ($administrator_email) ? $administrator_email : $ship_addr['email'];
|
82 |
+
}
|
83 |
+
|
84 |
+
$origin_address = (empty($origin_address_product)) ? $default_origin_address : $origin_address_product;
|
85 |
+
|
86 |
+
/* For accessories */
|
87 |
+
$orderAccessories = $order->getShiphawkShippingAccessories();
|
88 |
+
|
89 |
+
if ($is_auto) {
|
90 |
+
$orderAccessories = json_decode($orderAccessories, true);
|
91 |
+
if($is_rerate) {
|
92 |
+
|
93 |
+
foreach($accessories as $orderAccessoriesType => $orderAccessor) {
|
94 |
+
foreach($orderAccessor as $key => $orderAccessorValues) {
|
95 |
+
$itemsAccessories[] = array('id' => str_replace("'", '', $key));
|
96 |
+
}
|
97 |
+
}
|
98 |
+
}else{
|
99 |
+
foreach($orderAccessories as $orderAccessoriesType => $orderAccessor) {
|
100 |
+
foreach($orderAccessor as $key => $orderAccessorValues) {
|
101 |
+
$itemsAccessories[] = array('id' => str_replace("'", '', $key));
|
102 |
+
}
|
103 |
+
}
|
104 |
+
}
|
105 |
+
} else {
|
106 |
+
$itemsAccessories = $this->getAccessoriesForBook($accessories, $orderAccessories);
|
107 |
+
}
|
108 |
|
109 |
$next_bussines_day = date('Y-m-d', strtotime('now +1 Weekday'));
|
110 |
$items_array = array(
|
111 |
'rate_id'=> $rate_id,
|
112 |
+
'order_email'=> $order_email,
|
113 |
'xid'=>$order_increment_id,
|
114 |
+
'self_packed'=>$self_packed,
|
115 |
+
'insurance'=>'true',
|
116 |
'origin_address' =>
|
117 |
+
$origin_address,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
'destination_address' =>
|
119 |
array(
|
120 |
'first_name' => $ship_addr['firstname'],
|
121 |
'last_name' => $ship_addr['lastname'],
|
122 |
+
'street1' => $ship_addr['street'],
|
123 |
+
'phone_number' => $ship_addr['telephone'],
|
124 |
'city' => $ship_addr['city'],
|
125 |
'state' => $ship_addr['region'],
|
126 |
+
'zip' => $ship_addr['postcode'],
|
127 |
+
'email' => $ship_addr['email']
|
128 |
),
|
129 |
'billing_address' =>
|
130 |
array(
|
131 |
'first_name' => $bill_addr['firstname'],
|
132 |
'last_name' => $bill_addr['lastname'],
|
133 |
+
'street1' => $bill_addr['street'],
|
134 |
+
'phone_number' => $bill_addr['telephone'],
|
135 |
'city' => $bill_addr['city'],
|
136 |
'state' => $bill_addr['region'], //'NY',
|
137 |
+
'zip' => $bill_addr['postcode'],
|
138 |
+
'email' => $bill_addr['email']
|
139 |
),
|
140 |
'pickup' =>
|
141 |
array(
|
149 |
)
|
150 |
),
|
151 |
|
152 |
+
'accessorials' => $itemsAccessories
|
153 |
|
154 |
);
|
155 |
|
156 |
+
|
157 |
+
$helper->shlog($items_array, 'shiphawk-book.log');
|
158 |
+
|
159 |
$items_array = json_encode($items_array);
|
160 |
|
161 |
curl_setopt($curl, CURLOPT_URL, $url_api);
|
171 |
$resp = curl_exec($curl);
|
172 |
$arr_res = json_decode($resp);
|
173 |
|
174 |
+
//$helper->shlog($arr_res, 'shiphawk-book.log');
|
175 |
+
|
176 |
curl_close($curl);
|
177 |
|
178 |
return $arr_res;
|
179 |
|
180 |
}
|
181 |
|
182 |
+
protected function _getDefaultOriginData() {
|
183 |
$origin_address = array();
|
184 |
|
185 |
+
$origin_address['first_name'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_first_name');
|
186 |
+
$origin_address['last_name'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_last_name');
|
187 |
+
$origin_address['street1'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_address');
|
188 |
+
$origin_address['street2'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_address2');
|
189 |
+
$origin_address['state'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_state');
|
190 |
+
$origin_address['city'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_city');
|
191 |
+
$origin_address['zip'] = Mage::getStoreConfig('carriers/shiphawk_shipping/default_origin');
|
192 |
+
$origin_address['phone_number'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_phone');
|
193 |
+
$origin_address['email'] = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_email');
|
194 |
|
195 |
return $origin_address;
|
196 |
}
|
197 |
|
198 |
+
protected function _getProductOriginData($products_id, $per_product = false) {
|
199 |
$origin_address_product = array();
|
200 |
+
|
201 |
try
|
202 |
{
|
|
|
203 |
// get first product item
|
204 |
+
$origin_product = Mage::getModel('catalog/product')->load($products_id);
|
205 |
+
|
206 |
+
$shipping_origin_id = $origin_product->getData('shiphawk_shipping_origins');
|
207 |
+
$helper = Mage::helper('shiphawk_shipping');
|
208 |
+
|
209 |
+
|
210 |
+
/* if product origin id == default (origin id == '') and product have all per product origin attribute
|
211 |
+
than get origin address from first product in origin group */
|
212 |
+
if($per_product == true) {
|
213 |
+
|
214 |
+
$origin_address_product['first_name'] = $origin_product->getData('shiphawk_origin_firstname');
|
215 |
+
$origin_address_product['last_name'] = $origin_product->getData('shiphawk_origin_lastname');
|
216 |
+
$origin_address_product['street1'] = $origin_product->getData('shiphawk_origin_addressline1');
|
217 |
+
$origin_address_product['street2'] = $origin_product->getData('shiphawk_origin_addressline2');
|
218 |
+
$origin_address_product['state'] = $origin_product->getData('shiphawk_origin_state');
|
219 |
+
$origin_address_product['city'] = $origin_product->getData('shiphawk_origin_city');
|
220 |
+
$origin_address_product['zip'] = $origin_product->getData('shiphawk_origin_zipcode');
|
221 |
+
$origin_address_product['phone_number'] = $origin_product->getData('shiphawk_origin_phonenum');
|
222 |
+
$origin_address_product['email'] = $origin_product->getData('shiphawk_origin_email');
|
223 |
+
}else{
|
224 |
+
if($shipping_origin_id) {
|
225 |
+
/* if product have origin id, then get origin address from origin model */
|
226 |
+
$shipping_origin = Mage::getModel('shiphawk_shipping/origins')->load($shipping_origin_id);
|
227 |
+
|
228 |
+
$origin_address_product['first_name'] = $shipping_origin->getData('shiphawk_origin_firstname');
|
229 |
+
$origin_address_product['last_name'] = $shipping_origin->getData('shiphawk_origin_lastname');
|
230 |
+
$origin_address_product['street1'] = $shipping_origin->getData('shiphawk_origin_addressline1');
|
231 |
+
$origin_address_product['street2'] = $shipping_origin->getData('shiphawk_origin_addressline2');
|
232 |
+
$origin_address_product['state'] = $shipping_origin->getData('shiphawk_origin_state');
|
233 |
+
$origin_address_product['city'] = $shipping_origin->getData('shiphawk_origin_city');
|
234 |
+
$origin_address_product['zip'] = $shipping_origin->getData('shiphawk_origin_zipcode');
|
235 |
+
$origin_address_product['phone_number'] = $shipping_origin->getData('shiphawk_origin_phonenum');
|
236 |
+
$origin_address_product['email'] = $shipping_origin->getData('shiphawk_origin_email');
|
237 |
+
|
238 |
+
}
|
239 |
+
}
|
240 |
+
|
241 |
}
|
242 |
catch(Exception $e)
|
243 |
{
|
247 |
return $origin_address_product;
|
248 |
}
|
249 |
|
250 |
+
protected function getOriginAddress($origin_address_product, $default_origin_address) {
|
251 |
+
|
252 |
+
|
253 |
+
foreach($origin_address_product as $key=>$value) {
|
254 |
+
|
255 |
+
if($key != 'origin_address2') {
|
256 |
+
if(empty($value)) {
|
257 |
+
return $default_origin_address;
|
258 |
+
}
|
259 |
+
}
|
260 |
+
}
|
261 |
+
|
262 |
+
return $origin_address_product;
|
263 |
+
|
264 |
+
}
|
265 |
+
|
266 |
|
267 |
/**
|
268 |
+
* Auto booking. Save shipment in sales_order_place_after event, if manual booking set to No
|
269 |
* We can save only new shipment. Existing shipments are not editable
|
270 |
*
|
271 |
+
*
|
272 |
*/
|
273 |
public function saveshipment($orderId)
|
274 |
{
|
275 |
try {
|
276 |
$order = Mage::getModel('sales/order')->load($orderId);
|
277 |
+
$helper = Mage::helper('shiphawk_shipping');
|
278 |
|
279 |
$shiphawk_rate_data = unserialize($order->getData('shiphawk_book_id')); //rate id
|
280 |
|
283 |
|
284 |
$shipment->register();
|
285 |
|
286 |
+
$this->_saveShiphawkShipment($shipment, $products_ids['name'], $products_ids['price']);
|
287 |
+
|
288 |
+
$self_pack = $products_ids['self_pack'];
|
289 |
|
290 |
+
// add book, auto booking - true
|
291 |
+
$track_data = $this->toBook($order, $rate_id, $products_ids, array(), true, $self_pack);
|
292 |
|
293 |
+
$helper->shlog($track_data, 'shiphawk-book-response.log');
|
294 |
+
|
295 |
+
if (property_exists($track_data, 'error')) {
|
296 |
+
Mage::getSingleton('core/session')->addError("The booking was not successful, please try again later.");
|
297 |
+
//Mage::getSingleton('core/session')->addError($track_data->error);
|
298 |
+
$helper->shlog('ShipHawk response: '.$track_data->error);
|
299 |
+
return;
|
300 |
+
}
|
301 |
|
302 |
// add track
|
303 |
+
if($track_number = $track_data->details->id) {
|
304 |
$this->addTrackNumber($shipment, $track_number);
|
305 |
+
// subscribe automaticaly after book
|
306 |
+
$this->subscribeToTrackingInfo($shipment->getId());
|
307 |
}
|
308 |
}
|
309 |
|
361 |
* @param Mage_Sales_Model_Order_Shipment $shipment
|
362 |
* @return Mage_Adminhtml_Sales_Order_ShipmentController
|
363 |
*/
|
364 |
+
public function _saveShiphawkShipment($shipment, $shiphawk_shipment_title = null, $shiphawk_shipment_price = null)
|
365 |
{
|
366 |
$shipment->getOrder()->setIsInProcess(true);
|
367 |
+
$shipment->setShiphawkShippingMethodTitle($shiphawk_shipment_title);
|
368 |
+
$shipment->setShiphawkShippingPrice($shiphawk_shipment_price);
|
369 |
$transactionSave = Mage::getModel('core/resource_transaction')
|
370 |
->addObject($shipment)
|
371 |
->addObject($shipment->getOrder())
|
381 |
{
|
382 |
try {
|
383 |
$carrier = 'shiphawk_shipping';
|
384 |
+
$helper = Mage::helper('shiphawk_shipping');
|
385 |
$title = 'ShipHawk Shipping';
|
386 |
if (empty($carrier)) {
|
387 |
Mage::throwException($this->__('The carrier needs to be specified.'));
|
399 |
->save();
|
400 |
|
401 |
} else {
|
402 |
+
$helper->shlog('Cannot initialize shipment for adding tracking number.', 'shiphawk-tracking.log');
|
403 |
}
|
404 |
} catch (Mage_Core_Exception $e) {
|
405 |
Mage::log($e->getMessage());
|
406 |
} catch (Exception $e) {
|
407 |
+
$helper = Mage::helper('shiphawk_shipping');
|
408 |
+
$helper->shlog('Cannot add tracking number.', 'shiphawk-tracking.log');
|
409 |
+
}
|
410 |
+
|
411 |
+
}
|
412 |
+
|
413 |
+
public function subscribeToTrackingInfo($shipment_id) {
|
414 |
+
|
415 |
+
$helper = Mage::helper('shiphawk_shipping');
|
416 |
+
$api_key = $helper->getApiKey();
|
417 |
+
|
418 |
+
if($shipment_id) {
|
419 |
+
try{
|
420 |
+
$shipment = Mage::getModel('sales/order_shipment')->load($shipment_id);
|
421 |
+
|
422 |
+
$shipment_id_track = $this->_getTrackNumber($shipment);
|
423 |
+
|
424 |
+
//PUT /api/v3/shipments/{id}/tracking
|
425 |
+
$subscribe_url = $helper->getApiUrl() . 'shipments/' . $shipment_id_track . '/tracking?api_key=' . $api_key;
|
426 |
+
$callback_url = $helper->getCallbackUrl($api_key);
|
427 |
+
|
428 |
+
$items_array = array(
|
429 |
+
'callback_url'=> $callback_url
|
430 |
+
);
|
431 |
+
|
432 |
+
$curl = curl_init();
|
433 |
+
$items_array = json_encode($items_array);
|
434 |
+
|
435 |
+
curl_setopt($curl, CURLOPT_URL, $subscribe_url);
|
436 |
+
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
|
437 |
+
curl_setopt($curl, CURLOPT_POSTFIELDS, $items_array);
|
438 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
439 |
+
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
440 |
+
'Content-Type: application/json',
|
441 |
+
'Content-Length: ' . strlen($items_array)
|
442 |
+
)
|
443 |
+
);
|
444 |
+
|
445 |
+
$resp = curl_exec($curl);
|
446 |
+
$arr_res = json_decode($resp);
|
447 |
+
|
448 |
+
$helper->shlog($arr_res, 'shiphawk-tracking.log');
|
449 |
+
|
450 |
+
if (!empty($arr_res)) {
|
451 |
+
$comment = '';
|
452 |
+
$event_list = '';
|
453 |
+
|
454 |
+
if (count($arr_res->events)) {
|
455 |
+
|
456 |
+
foreach ($arr_res->events as $event) {
|
457 |
+
$event_list .= $event . '<br>';
|
458 |
+
}
|
459 |
+
}
|
460 |
+
|
461 |
+
try {
|
462 |
+
|
463 |
+
$crated_time = $this->convertDateTome($arr_res->created_at);
|
464 |
+
|
465 |
+
$comment = $arr_res->resource_name . ': ' . $arr_res->id . '<br>' . 'Created: ' . $crated_time['date'] . ' at ' . $crated_time['time'] . '<br>' . $event_list;
|
466 |
+
$shipment->addComment($comment);
|
467 |
+
$shipment->sendEmail(true,$comment);
|
468 |
+
|
469 |
+
}catch (Mage_Core_Exception $e) {
|
470 |
+
Mage::logException($e);
|
471 |
+
}
|
472 |
+
|
473 |
+
}
|
474 |
+
|
475 |
+
$shipment->save();
|
476 |
+
|
477 |
+
curl_close($curl);
|
478 |
+
|
479 |
+
}catch (Mage_Core_Exception $e) {
|
480 |
+
$this->_getSession()->addError($e->getMessage());
|
481 |
+
Mage::logException($e);
|
482 |
+
|
483 |
+
} catch (Exception $e) {
|
484 |
+
Mage::logException($e);
|
485 |
+
|
486 |
+
}
|
487 |
+
|
488 |
+
}else{
|
489 |
+
|
490 |
+
Mage::logException($this->__('No ShipHawk tracking number'));
|
491 |
+
}
|
492 |
+
|
493 |
+
}
|
494 |
+
|
495 |
+
public function convertDateTome ($date_time) {
|
496 |
+
$result = array();
|
497 |
+
$t = explode('T', $date_time);
|
498 |
+
$result['date'] = date("m/d/y", strtotime($t[0]));
|
499 |
+
|
500 |
+
$result['time'] = date("g:i a", strtotime(substr($t[1], 0, -1)));
|
501 |
+
|
502 |
+
return $result;
|
503 |
+
}
|
504 |
+
|
505 |
+
protected function _getTrackNumber($shipment) {
|
506 |
+
|
507 |
+
foreach($shipment->getAllTracks() as $tracknum)
|
508 |
+
{
|
509 |
+
//ShipHawk track number only one
|
510 |
+
if($tracknum->getCarrierCode() == 'shiphawk_shipping') {
|
511 |
+
return $tracknum->getNumber();
|
512 |
+
}
|
513 |
+
}
|
514 |
+
return null;
|
515 |
+
}
|
516 |
+
|
517 |
+
public function getShipmentStatus($shipment_id_track) {
|
518 |
+
|
519 |
+
$helper = Mage::helper('shiphawk_shipping');
|
520 |
+
$api_key = $helper->getApiKey();
|
521 |
+
|
522 |
+
$subscribe_url = $helper->getApiUrl() . 'shipments/' . $shipment_id_track . '/tracking?api_key=' . $api_key;
|
523 |
+
|
524 |
+
$curl = curl_init();
|
525 |
+
|
526 |
+
curl_setopt($curl, CURLOPT_URL, $subscribe_url);
|
527 |
+
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
|
528 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
529 |
+
|
530 |
+
$resp = curl_exec($curl);
|
531 |
+
$arr_res = json_decode($resp);
|
532 |
+
|
533 |
+
return $arr_res;
|
534 |
+
|
535 |
+
}
|
536 |
+
|
537 |
+
/**
|
538 |
+
* For book shipping with accessories
|
539 |
+
*
|
540 |
+
* @param $accessories
|
541 |
+
* @param $orderAccessories
|
542 |
+
* @return array
|
543 |
+
*
|
544 |
+
* @version 20150624, WhideGroup
|
545 |
+
*/
|
546 |
+
public function getAccessoriesForBook($accessories, $orderAccessories) {
|
547 |
+
|
548 |
+
if (empty($accessories) || empty($orderAccessories)) {
|
549 |
+
return array();
|
550 |
+
}
|
551 |
+
|
552 |
+
$helper = Mage::helper('shiphawk_shipping');
|
553 |
+
|
554 |
+
$orderAccessories = json_decode($orderAccessories, true);
|
555 |
+
$itemsAccessories = array();
|
556 |
+
|
557 |
+
foreach ($accessories as $accessoriesType => $accessor) {
|
558 |
+
foreach($accessor as $accessorRow) {
|
559 |
+
foreach($orderAccessories as $orderAccessoriesType => $orderAccessor) {
|
560 |
+
foreach($orderAccessor as $orderAccessorValues) {
|
561 |
+
$orderAccessorValuesName = str_replace("'", '', $orderAccessorValues['name']);
|
562 |
+
$orderAccessorValuesName = trim($orderAccessorValuesName);
|
563 |
+
|
564 |
+
$accessorName = (string)$accessorRow->accessorial_type . ' (' . (string)$accessorRow->accessorial_options . ')';
|
565 |
+
$accessorName = trim($accessorName);
|
566 |
+
|
567 |
+
if (str_replace("'", '', $orderAccessoriesType) == $accessoriesType && $accessorName == $orderAccessorValuesName) {
|
568 |
+
$itemsAccessories[] = array('id' => $accessorRow->id);
|
569 |
+
}
|
570 |
+
}
|
571 |
+
}
|
572 |
+
}
|
573 |
+
}
|
574 |
+
|
575 |
+
if (empty($itemsAccessories)) {
|
576 |
+
|
577 |
+
$helper->shlog('Empty accessories!', 'shiphawk-book.log');
|
578 |
+
|
579 |
+
$helper->shlog($accessories, 'shiphawk-book.log');
|
580 |
+
|
581 |
+
$helper->shlog($orderAccessories, 'shiphawk-book.log');
|
582 |
+
} else {
|
583 |
+
|
584 |
+
$helper->shlog('Accessories!', 'shiphawk-book.log');
|
585 |
+
|
586 |
+
$helper->shlog($itemsAccessories, 'shiphawk-book.log');
|
587 |
}
|
588 |
|
589 |
+
return $itemsAccessories;
|
590 |
}
|
591 |
|
592 |
}
|
app/code/community/Shiphawk/Shipping/Model/Carrier.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
|
2 |
|
3 |
class Shiphawk_Shipping_Model_Carrier
|
4 |
extends Mage_Shipping_Model_Carrier_Abstract
|
@@ -25,109 +25,585 @@ class Shiphawk_Shipping_Model_Carrier
|
|
25 |
$helper = Mage::helper('shiphawk_shipping');
|
26 |
$default_origin_zip = Mage::getStoreConfig('carriers/shiphawk_shipping/default_origin');
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
$to_zip = $this->getShippingZip();
|
29 |
$api = Mage::getModel('shiphawk_shipping/api');
|
30 |
$items = $this->getShiphawkItems($request);
|
31 |
|
32 |
$grouped_items_by_zip = $this->getGroupedItemsByZip($items);
|
33 |
|
|
|
|
|
34 |
$ship_responces = array();
|
35 |
$toOrder= array();
|
36 |
$api_error = false;
|
37 |
-
$is_multi_zip =
|
38 |
-
$
|
39 |
-
|
40 |
-
|
|
|
41 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
try {
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
$
|
50 |
-
Mage::log('ShipHawk responce: '.$responceObject->error, null, 'ShipHawk.log');
|
51 |
-
}else{
|
52 |
-
// if $rate_filter = 'best' then it is only one rate
|
53 |
-
if(($is_multi_zip)||($rate_filter == 'best')) {
|
54 |
-
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
55 |
-
$toOrder[$responceObject[0]->id]['product_ids'] = $this->_getProductIds($items_);
|
56 |
-
$toOrder[$responceObject[0]->id]['price'] = $responceObject[0]->price;
|
57 |
-
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->service;
|
58 |
-
$toOrder[$responceObject[0]->id]['items'] = $items_;
|
59 |
-
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
60 |
-
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
61 |
}else{
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
}
|
|
|
71 |
}
|
72 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
$
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
$
|
83 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
}else{
|
85 |
-
|
86 |
-
foreach
|
87 |
-
$
|
88 |
-
$
|
89 |
-
$toOrder[$responce->id]['name'] = $responce->service;
|
90 |
-
$toOrder[$responce->id]['items'] = $items_;
|
91 |
-
$toOrder[$responce->id]['from_zip'] = $from_zip;
|
92 |
-
$toOrder[$responce->id]['to_zip'] = $to_zip;
|
93 |
}
|
94 |
}
|
95 |
}else{
|
96 |
-
$api_error = true;
|
97 |
-
Mage::log('ShipHawk responce: '.$responceObject->error, null, 'ShipHawk.log');
|
98 |
-
}*/
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
}
|
101 |
|
|
|
102 |
if(!$api_error) {
|
103 |
-
$services
|
104 |
-
$name_service
|
105 |
-
$summ_price
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
foreach ($services as $id_service=>$service) {
|
108 |
if (!$is_multi_zip) {
|
109 |
//add ShipHawk shipping
|
110 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
}else{
|
112 |
$name_service .= $service['name'] . ', ';
|
113 |
$summ_price += $service['price'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
115 |
}
|
116 |
|
117 |
//save rate_id info for Book
|
118 |
Mage::getSingleton('core/session')->setShiphawkBookId($toOrder);
|
119 |
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
}
|
125 |
-
}
|
126 |
|
127 |
if($is_multi_zip) {
|
128 |
//add ShipHawk shipping
|
129 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
}
|
|
|
|
|
|
|
131 |
}
|
132 |
|
133 |
}catch (Mage_Core_Exception $e) {
|
@@ -135,9 +611,24 @@ class Shiphawk_Shipping_Model_Carrier
|
|
135 |
} catch (Exception $e) {
|
136 |
Mage::logException($e->getMessage());
|
137 |
}
|
|
|
138 |
return $result;
|
139 |
}
|
140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
/**
|
142 |
* Returns Allowed shipping methods
|
143 |
*
|
@@ -146,12 +637,12 @@ class Shiphawk_Shipping_Model_Carrier
|
|
146 |
public function getAllowedMethods()
|
147 |
{
|
148 |
return array(
|
149 |
-
'ground' => 'Ground delivery'
|
150 |
);
|
151 |
}
|
152 |
|
153 |
-
|
154 |
-
|
155 |
foreach($_items as $_item) {
|
156 |
$products_ids[] = $_item['product_id'];
|
157 |
}
|
@@ -163,60 +654,104 @@ class Shiphawk_Shipping_Model_Carrier
|
|
163 |
*
|
164 |
* @return Mage_Shipping_Model_Rate_Result_Method
|
165 |
*/
|
166 |
-
protected function _getShiphawkRateObject($method_title, $price)
|
167 |
{
|
168 |
/** @var Mage_Shipping_Model_Rate_Result_Method $rate */
|
169 |
$rate = Mage::getModel('shipping/rate_result_method');
|
170 |
|
|
|
|
|
171 |
$rate->setCarrier($this->_code);
|
172 |
-
//$rate->setCarrierTitle($this->getConfigData('title'));
|
173 |
$rate->setCarrierTitle('ShipHawk');
|
174 |
$rate->setMethodTitle($method_title);
|
175 |
-
$rate->setMethod(
|
176 |
$rate->setPrice($price);
|
177 |
$rate->setCost($price);
|
|
|
|
|
|
|
|
|
178 |
|
179 |
return $rate;
|
180 |
}
|
181 |
|
182 |
public function getShiphawkItems($request) {
|
183 |
-
$items
|
|
|
|
|
|
|
184 |
|
185 |
foreach ($request->getAllItems() as $item) {
|
186 |
$product_id = $item->getProductId();
|
187 |
$product = Mage::getModel('catalog/product')->load($product_id);
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
$items[] = array(
|
203 |
'width' => $product->getShiphawkWidth(),
|
204 |
'length' => $product->getShiphawkLength(),
|
205 |
'height' => $product->getShiphawkHeight(),
|
|
|
206 |
'value' => $this->getShipHawkItemValue($product),
|
207 |
-
'quantity' => $
|
208 |
-
'
|
|
|
209 |
'id' => $product->getShiphawkTypeOfProductValue(),
|
210 |
'zip'=> $this->getOriginZip($product),
|
211 |
-
'product_id'=> $product_id
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
);
|
213 |
}
|
214 |
-
|
215 |
}
|
216 |
|
217 |
return $items;
|
218 |
}
|
219 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
public function getShippingZip() {
|
221 |
if (Mage::app()->getStore()->isAdmin()) {
|
222 |
$quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
|
@@ -225,7 +760,6 @@ class Shiphawk_Shipping_Model_Carrier
|
|
225 |
$cart = Mage::getSingleton('checkout/cart');
|
226 |
$quote = $cart->getQuote();
|
227 |
}
|
228 |
-
|
229 |
$shippingAddress = $quote->getShippingAddress();
|
230 |
$zip_code = $shippingAddress->getPostcode();
|
231 |
return $zip_code;
|
@@ -243,10 +777,48 @@ class Shiphawk_Shipping_Model_Carrier
|
|
243 |
|
244 |
public function getOriginZip($product) {
|
245 |
$default_origin_zip = Mage::getStoreConfig('carriers/shiphawk_shipping/default_origin');
|
246 |
-
$product_origin_zip_code = $product->getShiphawkOriginZipcode();
|
247 |
-
$product_origin_zip_code = (empty($product_origin_zip_code)) ? $default_origin_zip : $product_origin_zip_code;
|
248 |
|
249 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
}
|
251 |
|
252 |
public function getIsPacked($product) {
|
@@ -254,10 +826,20 @@ class Shiphawk_Shipping_Model_Carrier
|
|
254 |
$product_is_packed = $product->getShiphawkItemIsPacked();
|
255 |
$product_is_packed = ($product_is_packed == 2) ? $default_is_packed : $product_is_packed;
|
256 |
|
257 |
-
return $product_is_packed;
|
258 |
}
|
259 |
|
|
|
260 |
public function getGroupedItemsByZip($items) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
$tmp = array();
|
262 |
foreach($items as $item) {
|
263 |
$tmp[$item['zip']][] = $item;
|
@@ -265,13 +847,87 @@ class Shiphawk_Shipping_Model_Carrier
|
|
265 |
return $tmp;
|
266 |
}
|
267 |
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
$services = array();
|
|
|
270 |
foreach($ship_responces as $ship_responce) {
|
271 |
if(is_array($ship_responce)) {
|
|
|
272 |
foreach($ship_responce as $object) {
|
273 |
-
$services[$object->id]['name'] = $object
|
274 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
276 |
}
|
277 |
}
|
@@ -279,5 +935,87 @@ class Shiphawk_Shipping_Model_Carrier
|
|
279 |
return $services;
|
280 |
}
|
281 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
|
283 |
}
|
1 |
+
<?php
|
2 |
|
3 |
class Shiphawk_Shipping_Model_Carrier
|
4 |
extends Mage_Shipping_Model_Carrier_Abstract
|
25 |
$helper = Mage::helper('shiphawk_shipping');
|
26 |
$default_origin_zip = Mage::getStoreConfig('carriers/shiphawk_shipping/default_origin');
|
27 |
|
28 |
+
$hide_on_frontend = Mage::getStoreConfig('carriers/shiphawk_shipping/hide_on_frontend');
|
29 |
+
$is_admin = $helper->checkIsAdmin();
|
30 |
+
// hide ShipHawk method on frontend , allow only in admin area
|
31 |
+
if (($hide_on_frontend == 1) && (!$is_admin)) {
|
32 |
+
return $result;
|
33 |
+
}
|
34 |
+
|
35 |
+
/* For location type */
|
36 |
+
$shLocationType = 'residential';
|
37 |
+
if ($is_admin) {
|
38 |
+
// if is admin this means that we have already set the value in setlocationtypeAction
|
39 |
+
$shLocationType = Mage::getSingleton('checkout/session')->getData('shiphawk_location_type_shipping');
|
40 |
+
} else {
|
41 |
+
$shippingRequest = Mage::app()->getRequest()->getPost();
|
42 |
+
|
43 |
+
if (!empty($shippingRequest['billing'])) {
|
44 |
+
$shLocationType = $shippingRequest['billing']['shiphawk_location_type'];
|
45 |
+
$shLocationType = $shLocationType != 'commercial' && $shLocationType != 'residential' ? 'residential' : $shLocationType;
|
46 |
+
Mage::getSingleton('checkout/session')->setData('shiphawk_location_type_billing', $shLocationType);
|
47 |
+
|
48 |
+
if ($shippingRequest['billing']['use_for_shipping']) {
|
49 |
+
Mage::getSingleton('checkout/session')->setData('shiphawk_location_type_shipping', $shLocationType);
|
50 |
+
}
|
51 |
+
} else if (!empty($shippingRequest['shipping'])) {
|
52 |
+
$shLocationType = $shippingRequest['shipping']['shiphawk_location_type'];
|
53 |
+
$shLocationType = $shLocationType != 'commercial' && $shLocationType != 'residential' ? 'residential' : $shLocationType;
|
54 |
+
Mage::getSingleton('checkout/session')->setData('shiphawk_location_type_shipping', $shLocationType);
|
55 |
+
} else {
|
56 |
+
$shLocationType = Mage::getSingleton('checkout/session')->getData('shiphawk_location_type_shipping');
|
57 |
+
$shLocationType = $shLocationType != 'commercial' && $shLocationType != 'residential' ? 'residential' : $shLocationType;
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
$to_zip = $this->getShippingZip();
|
62 |
$api = Mage::getModel('shiphawk_shipping/api');
|
63 |
$items = $this->getShiphawkItems($request);
|
64 |
|
65 |
$grouped_items_by_zip = $this->getGroupedItemsByZip($items);
|
66 |
|
67 |
+
$grouped_items_by_carrier_type = $this->getGroupedItemsByCarrierType($items);
|
68 |
+
|
69 |
$ship_responces = array();
|
70 |
$toOrder= array();
|
71 |
$api_error = false;
|
72 |
+
$is_multi_zip = false;
|
73 |
+
$is_multi_carrier = false;
|
74 |
+
|
75 |
+
if(count($grouped_items_by_zip) > 1) {
|
76 |
+
$is_multi_zip = true;
|
77 |
}
|
78 |
+
|
79 |
+
if(count($grouped_items_by_carrier_type) > 1) {
|
80 |
+
$is_multi_carrier = true;
|
81 |
+
$is_multi_zip = true;
|
82 |
+
}
|
83 |
+
|
84 |
+
$rate_filter = Mage::helper('shiphawk_shipping')->getRateFilter($is_admin);
|
85 |
+
|
86 |
+
$custom_packing_price_setting = Mage::getStoreConfig('carriers/shiphawk_shipping/shiphawk_custom_packing_price');
|
87 |
+
|
88 |
+
$self_pack = $helper->getSelfPacked();
|
89 |
+
|
90 |
+
$charge_customer_for_packing = Mage::getStoreConfig('carriers/shiphawk_shipping/charge_customer_for_packing');
|
91 |
+
|
92 |
+
//default origin zip code from config settings
|
93 |
+
$from_zip = Mage::getStoreConfig('carriers/shiphawk_shipping/default_origin');
|
94 |
+
|
95 |
try {
|
96 |
+
|
97 |
+
/* items has various carrier type */
|
98 |
+
if($is_multi_carrier) {
|
99 |
+
foreach($grouped_items_by_carrier_type as $carrier_type=>$items_) {
|
100 |
+
|
101 |
+
if($carrier_type) {
|
102 |
+
$carrier_type = explode(',', $carrier_type);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
}else{
|
104 |
+
$carrier_type = '';
|
105 |
+
}
|
106 |
+
|
107 |
+
|
108 |
+
$grouped_items_by_origin = $this->getGroupedItemsByZip($items_);
|
109 |
+
|
110 |
+
foreach($grouped_items_by_origin as $origin_id=>$items__) {
|
111 |
+
|
112 |
+
if ($origin_id != 'origin_per_product') { // product has origin id or primary origin
|
113 |
+
|
114 |
+
$rate_filter = 'best'; // multi carrier
|
115 |
+
|
116 |
+
if($origin_id) {
|
117 |
+
$shipHawkOrigin = Mage::getModel('shiphawk_shipping/origins')->load($origin_id);
|
118 |
+
$from_zip = $shipHawkOrigin->getShiphawkOriginZipcode();
|
119 |
+
}
|
120 |
+
|
121 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items__, $rate_filter);
|
122 |
+
|
123 |
+
if(empty($checkattributes)) {
|
124 |
+
|
125 |
+
$grouped_items_by_discount_or_markup = $this->getGroupedItemsByDiscountOrMarkup($items__);
|
126 |
+
|
127 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
128 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
129 |
+
$from_zip = $items__[0]['zip'];
|
130 |
+
$location_type = $items__[0]['location_type'];
|
131 |
+
// 1. multi carrier, multi origin, not origin per product
|
132 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
133 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
134 |
+
|
135 |
+
$custom_products_packing_price = 0;
|
136 |
+
|
137 |
+
if($custom_packing_price_setting) {
|
138 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
139 |
+
}
|
140 |
+
|
141 |
+
$ship_responces[] = $responceObject;
|
142 |
+
|
143 |
+
if(is_object($responceObject)) {
|
144 |
+
$api_error = true;
|
145 |
+
$shiphawk_error = (string) $responceObject->error;
|
146 |
+
//Mage::log('ShipHawk response: '. $shiphawk_error, null, 'ShipHawk.log');
|
147 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
148 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
149 |
+
}else{
|
150 |
+
// if $rate_filter = 'best' then it is only one rate
|
151 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
152 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
153 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
154 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
155 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $this->getProductIds($discount_items);
|
156 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
157 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
158 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
159 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
160 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
161 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
162 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $this->getCarrierName($responceObject[0]);
|
163 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $this->getPackeges($responceObject[0]);
|
164 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
165 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
166 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
167 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
168 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
169 |
+
}
|
170 |
+
|
171 |
+
if($is_multi_zip) {
|
172 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
173 |
+
}
|
174 |
+
}
|
175 |
+
}
|
176 |
+
|
177 |
+
}else{
|
178 |
+
$api_error = true;
|
179 |
+
foreach($checkattributes as $rate_error) {
|
180 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
181 |
+
$helper->sendErrorMessageToShipHawk($rate_error);
|
182 |
+
}
|
183 |
+
}
|
184 |
+
}else{ // product items has all required shipping origin fields
|
185 |
+
|
186 |
+
$grouped_items_per_product_by_zip = $this->getGroupedItemsByZipPerProduct($items__);
|
187 |
+
|
188 |
+
if(count($grouped_items_per_product_by_zip) > 1 ) {
|
189 |
+
$is_multi_zip = true;
|
190 |
+
}
|
191 |
+
|
192 |
+
if($is_multi_zip) {
|
193 |
+
$rate_filter = 'best';
|
194 |
+
}
|
195 |
+
|
196 |
+
foreach ($grouped_items_per_product_by_zip as $from_zip=>$items_per_product) {
|
197 |
+
|
198 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items_per_product, $rate_filter);
|
199 |
+
|
200 |
+
if(empty($checkattributes)) {
|
201 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
202 |
+
$from_zip = $items_[0]['zip'];
|
203 |
+
$location_type = $items_[0]['location_type'];
|
204 |
+
|
205 |
+
$grouped_items_by_discount_or_markup = $this->getGroupedItemsByDiscountOrMarkup($items_per_product);
|
206 |
+
|
207 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
208 |
+
|
209 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
210 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
211 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
212 |
+
|
213 |
+
if($carrier_type) {
|
214 |
+
$carrier_type = explode(',', $carrier_type);
|
215 |
+
}else{
|
216 |
+
$carrier_type = '';
|
217 |
+
}
|
218 |
+
|
219 |
+
|
220 |
+
// 2. multi carrier, multi origin, origin per product
|
221 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
222 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
223 |
+
|
224 |
+
$custom_products_packing_price = 0;
|
225 |
+
|
226 |
+
if($custom_packing_price_setting) {
|
227 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
228 |
+
}
|
229 |
+
|
230 |
+
|
231 |
+
$ship_responces[] = $responceObject;
|
232 |
+
|
233 |
+
if(is_object($responceObject)) {
|
234 |
+
$api_error = true;
|
235 |
+
$shiphawk_error = (string) $responceObject->error;
|
236 |
+
//Mage::log('ShipHawk response: '. $shiphawk_error, null, 'ShipHawk.log');
|
237 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
238 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
239 |
+
}else{
|
240 |
+
// if $rate_filter = 'best' then it is only one rate
|
241 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
242 |
+
|
243 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $this->getProductIds($discount_items);
|
244 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
245 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
246 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
247 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
248 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
249 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
250 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $this->getCarrierName($responceObject[0]);
|
251 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $this->getPackeges($responceObject[0]);
|
252 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
253 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
254 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
255 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
256 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
257 |
+
|
258 |
+
}
|
259 |
+
|
260 |
+
if($is_multi_zip) {
|
261 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
+
}
|
266 |
+
|
267 |
+
|
268 |
+
}else{
|
269 |
+
$api_error = true;
|
270 |
+
foreach($checkattributes as $rate_error) {
|
271 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
272 |
+
$helper->sendErrorMessageToShipHawk($rate_error);
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
}
|
277 |
+
|
278 |
}
|
279 |
+
|
280 |
}
|
281 |
}
|
282 |
+
}else{
|
283 |
+
|
284 |
+
/* all product items has one carrier type or carrier type is null in all items */
|
285 |
+
foreach($grouped_items_by_zip as $origin_id=>$items_) {
|
286 |
+
|
287 |
+
/* get carrier type from first item because items grouped by carrier type and not multi carrier */
|
288 |
+
/* if carrier type is null, get default carrier type from settings */
|
289 |
+
if($items_[0]['shiphawk_carrier_type']) {
|
290 |
+
$carrier_type = (explode(',', $items_[0]['shiphawk_carrier_type'])) ? (explode(',', $items_[0]['shiphawk_carrier_type'])) : Mage::getStoreConfig('carriers/shiphawk_shipping/carrier_type');
|
291 |
+
}else{
|
292 |
+
$carrier_type = '';
|
293 |
+
}
|
294 |
|
295 |
+
|
296 |
+
if ($origin_id != 'origin_per_product') {
|
297 |
+
|
298 |
+
if($is_multi_zip) {
|
299 |
+
$rate_filter = 'best';
|
300 |
+
}
|
301 |
+
|
302 |
+
if($origin_id) {
|
303 |
+
$shipHawkOrigin = Mage::getModel('shiphawk_shipping/origins')->load($origin_id);
|
304 |
+
$from_zip = $shipHawkOrigin->getShiphawkOriginZipcode();
|
305 |
+
}
|
306 |
+
|
307 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items_, $rate_filter);
|
308 |
+
|
309 |
+
if(empty($checkattributes)) {
|
310 |
+
|
311 |
+
$grouped_items_by_discount_or_markup = $this->getGroupedItemsByDiscountOrMarkup($items_);
|
312 |
+
|
313 |
+
if(count($grouped_items_by_discount_or_markup)>1) {
|
314 |
+
$is_multi_zip = true;
|
315 |
+
}
|
316 |
+
|
317 |
+
if($is_multi_zip) {
|
318 |
+
$rate_filter = 'best';
|
319 |
+
}
|
320 |
+
|
321 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
322 |
+
|
323 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
324 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
325 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
326 |
+
|
327 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
328 |
+
$from_zip = $discount_items[0]['zip'];
|
329 |
+
$location_type = $discount_items[0]['location_type'];
|
330 |
+
|
331 |
+
// 3. one carrier, multi origin, not origin per product
|
332 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
333 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
334 |
+
|
335 |
+
$custom_products_packing_price = 0;
|
336 |
+
|
337 |
+
if($custom_packing_price_setting) {
|
338 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
339 |
+
}
|
340 |
+
|
341 |
+
$ship_responces[] = $responceObject;
|
342 |
+
|
343 |
+
if(is_object($responceObject) or (empty($responceObject))) {
|
344 |
+
$api_error = true;
|
345 |
+
$shiphawk_error = (string) $responceObject->error;
|
346 |
+
//Mage::log('ShipHawk response: '. $shiphawk_error, null, 'ShipHawk.log');
|
347 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
348 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
349 |
+
}else{
|
350 |
+
// if $rate_filter = 'best' then it is only one rate
|
351 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
352 |
+
|
353 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $this->getProductIds($discount_items);
|
354 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
355 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
356 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
357 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
358 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
359 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
360 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $this->getCarrierName($responceObject[0]);
|
361 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $this->getPackeges($responceObject[0]);
|
362 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
363 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
364 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
365 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
366 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
367 |
+
}else{
|
368 |
+
Mage::getSingleton('core/session')->setMultiZipCode(false);
|
369 |
+
foreach ($responceObject as $responce) {
|
370 |
+
$toOrder[$responce->id]['product_ids'] = $this->getProductIds($discount_items);
|
371 |
+
//$toOrder[$responce->id]['price'] = $helper->getSummaryPrice($responce, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
372 |
+
$toOrder[$responce->id]['price'] = $helper->getShipHawkPrice($responce, $self_pack, $charge_customer_for_packing);
|
373 |
+
$toOrder[$responce->id]['name'] = $responce->shipping->service;//
|
374 |
+
$toOrder[$responce->id]['items'] = $discount_items;
|
375 |
+
$toOrder[$responce->id]['from_zip'] = $from_zip;
|
376 |
+
$toOrder[$responce->id]['to_zip'] = $to_zip;
|
377 |
+
$toOrder[$responce->id]['carrier'] = $this->getCarrierName($responce);
|
378 |
+
$toOrder[$responce->id]['packing_info'] = $this->getPackeges($responce);
|
379 |
+
$toOrder[$responce->id]['carrier_type'] = $carrier_type;
|
380 |
+
$toOrder[$responce->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
381 |
+
$toOrder[$responce->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
382 |
+
$toOrder[$responce->id]['self_pack'] = $self_pack;
|
383 |
+
$toOrder[$responce->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
384 |
+
|
385 |
+
}
|
386 |
+
}
|
387 |
+
|
388 |
+
if($is_multi_zip) {
|
389 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
390 |
+
}
|
391 |
+
}
|
392 |
+
}
|
393 |
}else{
|
394 |
+
$api_error = true;
|
395 |
+
foreach($checkattributes as $rate_error) {
|
396 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
397 |
+
$helper->sendErrorMessageToShipHawk($rate_error);
|
|
|
|
|
|
|
|
|
398 |
}
|
399 |
}
|
400 |
}else{
|
|
|
|
|
|
|
401 |
|
402 |
+
/* product items has per product origin, grouped by zip code */
|
403 |
+
$grouped_items_per_product_by_zip = $this->getGroupedItemsByZipPerProduct($items_);
|
404 |
+
|
405 |
+
if(count($grouped_items_per_product_by_zip) > 1 ) {
|
406 |
+
$is_multi_zip = true;
|
407 |
+
}
|
408 |
+
|
409 |
+
if($is_multi_zip) {
|
410 |
+
$rate_filter = 'best';
|
411 |
+
}
|
412 |
+
|
413 |
+
foreach ($grouped_items_per_product_by_zip as $from_zip=>$items_per_product) {
|
414 |
+
|
415 |
+
$checkattributes = $helper->checkShipHawkAttributes($from_zip, $to_zip, $items_per_product, $rate_filter);
|
416 |
+
|
417 |
+
if(empty($checkattributes)) {
|
418 |
+
|
419 |
+
$grouped_items_by_discount_or_markup = $this->getGroupedItemsByDiscountOrMarkup($items_per_product);
|
420 |
+
|
421 |
+
if(count($grouped_items_by_discount_or_markup)>1) {
|
422 |
+
$is_multi_zip = true;
|
423 |
+
}
|
424 |
+
|
425 |
+
if($is_multi_zip) {
|
426 |
+
$rate_filter = 'best';
|
427 |
+
}
|
428 |
+
|
429 |
+
foreach($grouped_items_by_discount_or_markup as $mark_up_discount=>$discount_items) {
|
430 |
+
|
431 |
+
//get percentage and flat markup-discount from first item, because all item in group has identical markup-discount
|
432 |
+
$flat_markup_discount = $discount_items[0]['shiphawk_discount_fixed'];
|
433 |
+
$percentage_markup_discount = $discount_items[0]['shiphawk_discount_percentage'];
|
434 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
435 |
+
$from_zip = $discount_items[0]['zip'];
|
436 |
+
$location_type = $discount_items[0]['location_type'];
|
437 |
+
|
438 |
+
// 4. one carrier, multi origin, origin per product
|
439 |
+
$responceObject = $api->getShiphawkRate($from_zip, $to_zip, $discount_items, $rate_filter, $carrier_type, $location_type, $shLocationType);
|
440 |
+
$helper->shlog($discount_items, 'shiphawk-items-request.log');
|
441 |
+
// $helper->shlog($responceObject, 'shiphawk-rate-responce.log');
|
442 |
+
|
443 |
+
$custom_products_packing_price = 0;
|
444 |
+
|
445 |
+
if($custom_packing_price_setting) {
|
446 |
+
$custom_products_packing_price = $helper->getCustomPackingPriceSumm($discount_items);
|
447 |
+
}
|
448 |
+
|
449 |
+
$ship_responces[] = $responceObject;
|
450 |
+
|
451 |
+
if(is_object($responceObject)) {
|
452 |
+
$api_error = true;
|
453 |
+
$shiphawk_error = (string) $responceObject->error;
|
454 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
455 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
456 |
+
}else{
|
457 |
+
// if $rate_filter = 'best' then it is only one rate
|
458 |
+
if(($is_multi_zip)||($rate_filter == 'best')) {
|
459 |
+
|
460 |
+
$toOrder[$responceObject[0]->id]['product_ids'] = $this->getProductIds($discount_items);
|
461 |
+
//$toOrder[$responceObject[0]->id]['price'] = $helper->getSummaryPrice($responceObject[0], $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
462 |
+
$toOrder[$responceObject[0]->id]['price'] = $helper->getShipHawkPrice($responceObject[0], $self_pack, $charge_customer_for_packing);
|
463 |
+
$toOrder[$responceObject[0]->id]['name'] = $responceObject[0]->shipping->service;//
|
464 |
+
$toOrder[$responceObject[0]->id]['items'] = $discount_items;
|
465 |
+
$toOrder[$responceObject[0]->id]['from_zip'] = $from_zip;
|
466 |
+
$toOrder[$responceObject[0]->id]['to_zip'] = $to_zip;
|
467 |
+
$toOrder[$responceObject[0]->id]['carrier'] = $this->getCarrierName($responceObject[0]);
|
468 |
+
$toOrder[$responceObject[0]->id]['packing_info'] = $this->getPackeges($responceObject[0]);
|
469 |
+
$toOrder[$responceObject[0]->id]['carrier_type'] = $carrier_type;
|
470 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
471 |
+
$toOrder[$responceObject[0]->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
472 |
+
$toOrder[$responceObject[0]->id]['self_pack'] = $self_pack;
|
473 |
+
$toOrder[$responceObject[0]->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
474 |
+
}else{
|
475 |
+
Mage::getSingleton('core/session')->setMultiZipCode(false);
|
476 |
+
foreach ($responceObject as $responce) {
|
477 |
+
$toOrder[$responce->id]['product_ids'] = $this->getProductIds($discount_items);
|
478 |
+
//$toOrder[$responce->id]['price'] = $helper->getSummaryPrice($responce, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
479 |
+
$toOrder[$responce->id]['price'] = $helper->getShipHawkPrice($responce, $self_pack, $charge_customer_for_packing);
|
480 |
+
$toOrder[$responce->id]['name'] = $responce->shipping->service;//
|
481 |
+
$toOrder[$responce->id]['items'] = $discount_items;
|
482 |
+
$toOrder[$responce->id]['from_zip'] = $from_zip;
|
483 |
+
$toOrder[$responce->id]['to_zip'] = $to_zip;
|
484 |
+
$toOrder[$responce->id]['carrier'] = $this->getCarrierName($responce);
|
485 |
+
$toOrder[$responce->id]['packing_info'] = $this->getPackeges($responce);
|
486 |
+
$toOrder[$responce->id]['carrier_type'] = $carrier_type;
|
487 |
+
$toOrder[$responce->id]['shiphawk_discount_fixed'] = $flat_markup_discount;
|
488 |
+
$toOrder[$responce->id]['shiphawk_discount_percentage'] = $percentage_markup_discount;
|
489 |
+
$toOrder[$responce->id]['self_pack'] = $self_pack;
|
490 |
+
$toOrder[$responce->id]['custom_products_packing_price'] = $custom_products_packing_price;
|
491 |
+
}
|
492 |
+
}
|
493 |
+
|
494 |
+
if($is_multi_zip) {
|
495 |
+
Mage::getSingleton('core/session')->setMultiZipCode(true);
|
496 |
+
}
|
497 |
+
}
|
498 |
+
}
|
499 |
+
}else{
|
500 |
+
$api_error = true;
|
501 |
+
foreach($checkattributes as $rate_error) {
|
502 |
+
$helper->shlog('ShipHawk error: '.$rate_error);
|
503 |
+
$helper->sendErrorMessageToShipHawk($rate_error);
|
504 |
+
}
|
505 |
+
}
|
506 |
+
|
507 |
+
}
|
508 |
+
|
509 |
+
}
|
510 |
+
}
|
511 |
}
|
512 |
|
513 |
+
|
514 |
if(!$api_error) {
|
515 |
+
$services = $this->getServices($ship_responces, $toOrder, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting);
|
516 |
+
$name_service = '';
|
517 |
+
$summ_price = 0;
|
518 |
+
$package_info = '';
|
519 |
+
$multi_shipping_price = 0;
|
520 |
+
|
521 |
+
$free_shipping_setting = Mage::getStoreConfig('carriers/shiphawk_shipping/free_method');
|
522 |
+
|
523 |
+
$chipiest_rate_id = $this->_getChipiestRateId($services);
|
524 |
+
|
525 |
|
526 |
foreach ($services as $id_service=>$service) {
|
527 |
if (!$is_multi_zip) {
|
528 |
//add ShipHawk shipping
|
529 |
+
//$shipping_price = $helper->getTotalDiscountShippingPrice($service['price'], $toOrder[$id_service]);
|
530 |
+
$shipping_price = $service['price'];
|
531 |
+
if((empty($service['shiphawk_discount_fixed']))&&(empty($service['shiphawk_discount_percentage']))) {
|
532 |
+
$shipping_price = $helper->getDiscountShippingPrice($service['price']);
|
533 |
+
}else{
|
534 |
+
$shipping_price = $helper->getProductDiscountMarkupPrice($service['price'], $service['shiphawk_discount_percentage'], $service['shiphawk_discount_fixed']);
|
535 |
+
}
|
536 |
+
|
537 |
+
if($free_shipping_setting != 'none') {
|
538 |
+
if ($request->getFreeShipping()) {
|
539 |
+
|
540 |
+
// get chipiest rate id
|
541 |
+
if($chipiest_rate_id == $id_service){
|
542 |
+
$shipping_price = 0;
|
543 |
+
}
|
544 |
+
|
545 |
+
if ($free_shipping_setting == 'all') {
|
546 |
+
$shipping_price = 0;
|
547 |
+
}
|
548 |
+
}
|
549 |
+
}
|
550 |
+
|
551 |
+
if($is_admin == false) {
|
552 |
+
$result->append($this->_getShiphawkRateObject($service['name'], $shipping_price, $service['shiphawk_price'], $service['accessorial']));
|
553 |
+
}else{
|
554 |
+
$result->append($this->_getShiphawkRateObject($service['name'] . ' - ' . $service['carrier'], $shipping_price, $service['shiphawk_price'], $service['accessorial']));
|
555 |
+
}
|
556 |
+
|
557 |
}else{
|
558 |
$name_service .= $service['name'] . ', ';
|
559 |
$summ_price += $service['price'];
|
560 |
+
|
561 |
+
$shipping_price = $service['price'];
|
562 |
+
if((empty($service['shiphawk_discount_fixed']))&&(empty($service['shiphawk_discount_percentage']))) {
|
563 |
+
$shipping_price = $helper->getDiscountShippingPrice($service['price']);
|
564 |
+
}else{
|
565 |
+
$shipping_price = $helper->getProductDiscountMarkupPrice($service['price'], $service['shiphawk_discount_percentage'], $service['shiphawk_discount_fixed']);
|
566 |
+
}
|
567 |
+
|
568 |
+
$multi_shipping_price += $shipping_price;
|
569 |
+
if ($request->getFreeShipping()) {
|
570 |
+
/**
|
571 |
+
* If the request has the free shipping flag,
|
572 |
+
* append a free shipping rate to the result.
|
573 |
+
*/
|
574 |
+
if($free_shipping_setting != 'none') {
|
575 |
+
$multi_shipping_price = 0;
|
576 |
+
}
|
577 |
+
|
578 |
+
}
|
579 |
+
//$multi_shipping_price += $helper->getTotalDiscountShippingPrice($service['price'], $toOrder[$id_service]);
|
580 |
}
|
581 |
}
|
582 |
|
583 |
//save rate_id info for Book
|
584 |
Mage::getSingleton('core/session')->setShiphawkBookId($toOrder);
|
585 |
|
586 |
+
$helper->shlog($toOrder, 'shiphawk-toOrder.log');
|
587 |
+
|
588 |
+
//save rate filter to order
|
589 |
+
Mage::getSingleton('core/session')->setShiphawkRateFilter($rate_filter);
|
|
|
|
|
590 |
|
591 |
if($is_multi_zip) {
|
592 |
//add ShipHawk shipping
|
593 |
+
$name_service = 'Shipping from multiple locations';
|
594 |
+
$shipping_price = $multi_shipping_price;
|
595 |
+
Mage::getSingleton('core/session')->setSummPrice($summ_price);
|
596 |
+
|
597 |
+
foreach($toOrder as $rateid=>$rate_data) {
|
598 |
+
$package_info .= $rate_data['name']. ' - ' . $rate_data['carrier'] . ' - ' .$rate_data['packing_info'];
|
599 |
+
}
|
600 |
+
|
601 |
+
Mage::getSingleton('core/session')->setPackageInfo($package_info);
|
602 |
+
$result->append($this->_getShiphawkRateObject($name_service, $shipping_price, $summ_price, null));
|
603 |
}
|
604 |
+
}else{
|
605 |
+
$error_text_from_config = Mage::getStoreConfig('carriers/shiphawk_shipping/shiphawk_error_message');
|
606 |
+
Mage::getSingleton('core/session')->setShiphawkErrorRate($error_text_from_config);
|
607 |
}
|
608 |
|
609 |
}catch (Mage_Core_Exception $e) {
|
611 |
} catch (Exception $e) {
|
612 |
Mage::logException($e->getMessage());
|
613 |
}
|
614 |
+
|
615 |
return $result;
|
616 |
}
|
617 |
|
618 |
+
protected function _getFreeShippingRate()
|
619 |
+
{
|
620 |
+
$rate = Mage::getModel('shipping/rate_result_method');
|
621 |
+
/* @var $rate Mage_Shipping_Model_Rate_Result_Method */
|
622 |
+
$rate->setCarrier($this->_code);
|
623 |
+
$rate->setCarrierTitle($this->getConfigData('title'));
|
624 |
+
$rate->setMethod('free_shipping');
|
625 |
+
$rate->setMethodTitle('Free Shipping');
|
626 |
+
$rate->setPrice(0);
|
627 |
+
$rate->setCost(0);
|
628 |
+
return $rate;
|
629 |
+
}
|
630 |
+
|
631 |
+
|
632 |
/**
|
633 |
* Returns Allowed shipping methods
|
634 |
*
|
637 |
public function getAllowedMethods()
|
638 |
{
|
639 |
return array(
|
640 |
+
'ground' => 'Ground delivery'
|
641 |
);
|
642 |
}
|
643 |
|
644 |
+
public function getProductIds($_items) {
|
645 |
+
$products_ids = array();
|
646 |
foreach($_items as $_item) {
|
647 |
$products_ids[] = $_item['product_id'];
|
648 |
}
|
654 |
*
|
655 |
* @return Mage_Shipping_Model_Rate_Result_Method
|
656 |
*/
|
657 |
+
protected function _getShiphawkRateObject($method_title, $price, $true_price, $accessorial)
|
658 |
{
|
659 |
/** @var Mage_Shipping_Model_Rate_Result_Method $rate */
|
660 |
$rate = Mage::getModel('shipping/rate_result_method');
|
661 |
|
662 |
+
$ship_rate_id = str_replace('-', '_', str_replace(',', '', str_replace(' ', '_', $method_title.$true_price)));
|
663 |
+
|
664 |
$rate->setCarrier($this->_code);
|
|
|
665 |
$rate->setCarrierTitle('ShipHawk');
|
666 |
$rate->setMethodTitle($method_title);
|
667 |
+
$rate->setMethod($ship_rate_id);
|
668 |
$rate->setPrice($price);
|
669 |
$rate->setCost($price);
|
670 |
+
if(!empty($accessorial)) {
|
671 |
+
$rate->setMethodDescription(serialize($accessorial));
|
672 |
+
|
673 |
+
}
|
674 |
|
675 |
return $rate;
|
676 |
}
|
677 |
|
678 |
public function getShiphawkItems($request) {
|
679 |
+
$items = array();
|
680 |
+
$productModel = Mage::getModel('catalog/product');
|
681 |
+
|
682 |
+
$custom_packing_price_setting = Mage::getStoreConfig('carriers/shiphawk_shipping/shiphawk_custom_packing_price');
|
683 |
|
684 |
foreach ($request->getAllItems() as $item) {
|
685 |
$product_id = $item->getProductId();
|
686 |
$product = Mage::getModel('catalog/product')->load($product_id);
|
687 |
+
|
688 |
+
$freightClass = $product->getShiphawkFreightClass();
|
689 |
+
$freightClassValue = '';
|
690 |
+
|
691 |
+
if (!empty($freightClass)) {
|
692 |
+
$attr = $productModel->getResource()->getAttribute('shiphawk_freight_class');
|
693 |
+
$freightClassValue = $attr->getSource()->getOptionText($freightClass);
|
694 |
+
}
|
695 |
+
|
696 |
+
$type_id = $product->getTypeId();
|
697 |
+
if($type_id == 'simple') {
|
698 |
+
$product_qty = (($product->getShiphawkQuantity() > 0)) ? $product->getShiphawkQuantity() : 1;
|
699 |
+
|
700 |
+
/** @var $helper Shiphawk_Shipping_Helper_Data */
|
701 |
+
$helper = Mage::helper('shiphawk_shipping');
|
702 |
+
$carrier_type = $helper->getProductCarrierType($product);
|
703 |
+
|
704 |
+
//hack for admin shipment in popup
|
705 |
+
$qty_ordered = ($item->getQty() > 0 ) ? $item->getQty() : $item->getData('qty_ordered');
|
706 |
+
|
707 |
$items[] = array(
|
708 |
'width' => $product->getShiphawkWidth(),
|
709 |
'length' => $product->getShiphawkLength(),
|
710 |
'height' => $product->getShiphawkHeight(),
|
711 |
+
'weight' => ($product->getWeight()) ? ($product->getWeight()) : 0,
|
712 |
'value' => $this->getShipHawkItemValue($product),
|
713 |
+
//'quantity' => $product_qty*$item->getQty(),
|
714 |
+
'quantity' => $product_qty*$qty_ordered,
|
715 |
+
'packed' => $this->getIsPacked($product),
|
716 |
'id' => $product->getShiphawkTypeOfProductValue(),
|
717 |
'zip'=> $this->getOriginZip($product),
|
718 |
+
'product_id'=> $product_id,
|
719 |
+
'xid'=> $product_id,
|
720 |
+
'origin'=> $this->getShiphawkShippingOrigin($product),
|
721 |
+
'location_type'=> $this->getOriginLocation($product),
|
722 |
+
'require_crating'=> false,
|
723 |
+
'nmfc'=> '',
|
724 |
+
'freight_class'=> $freightClassValue,
|
725 |
+
'shiphawk_carrier_type'=> $carrier_type,
|
726 |
+
'shiphawk_discount_fixed'=> $product->getShiphawkDiscountFixed(),
|
727 |
+
'shiphawk_discount_percentage'=> $product->getShiphawkDiscountPercentage(),
|
728 |
+
'shiphawk_custom_packing_price'=> (($this->getIsPacked($product) == 'true')&&($custom_packing_price_setting)) ? null : $product->getShiphawkCustomPackingPrice(),
|
729 |
);
|
730 |
}
|
|
|
731 |
}
|
732 |
|
733 |
return $items;
|
734 |
}
|
735 |
|
736 |
+
public function getShiphawkShippingOrigin($product) {
|
737 |
+
|
738 |
+
/** @var $helper Shiphawk_Shipping_Helper_Data */
|
739 |
+
$helper = Mage::helper('shiphawk_shipping');
|
740 |
+
|
741 |
+
if($helper->checkShipHawkOriginAttributes($product)) {
|
742 |
+
return 'origin_per_product';
|
743 |
+
}
|
744 |
+
|
745 |
+
$product_origin_id = $product->getShiphawkShippingOrigins();
|
746 |
+
|
747 |
+
if ($product_origin_id) {
|
748 |
+
return $product_origin_id;
|
749 |
+
}
|
750 |
+
|
751 |
+
return null;
|
752 |
+
|
753 |
+
}
|
754 |
+
|
755 |
public function getShippingZip() {
|
756 |
if (Mage::app()->getStore()->isAdmin()) {
|
757 |
$quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
|
760 |
$cart = Mage::getSingleton('checkout/cart');
|
761 |
$quote = $cart->getQuote();
|
762 |
}
|
|
|
763 |
$shippingAddress = $quote->getShippingAddress();
|
764 |
$zip_code = $shippingAddress->getPostcode();
|
765 |
return $zip_code;
|
777 |
|
778 |
public function getOriginZip($product) {
|
779 |
$default_origin_zip = Mage::getStoreConfig('carriers/shiphawk_shipping/default_origin');
|
|
|
|
|
780 |
|
781 |
+
$shipping_origin_id = $product->getData('shiphawk_shipping_origins');
|
782 |
+
|
783 |
+
$helper = Mage::helper('shiphawk_shipping');
|
784 |
+
/* check if all origin attributes are set */
|
785 |
+
$per_product = $helper->checkShipHawkOriginAttributes($product);
|
786 |
+
|
787 |
+
if($per_product == true) {
|
788 |
+
return $product->getData('shiphawk_origin_zipcode');
|
789 |
+
}
|
790 |
+
|
791 |
+
if($shipping_origin_id) {
|
792 |
+
// get zip code from Shiping Origin
|
793 |
+
$shipping_origin = Mage::getModel('shiphawk_shipping/origins')->load($shipping_origin_id);
|
794 |
+
$product_origin_zip_code = $shipping_origin->getData('shiphawk_origin_zipcode');
|
795 |
+
return $product_origin_zip_code;
|
796 |
+
}
|
797 |
+
|
798 |
+
return $default_origin_zip;
|
799 |
+
}
|
800 |
+
|
801 |
+
public function getOriginLocation($product) {
|
802 |
+
$default_origin_location = Mage::getStoreConfig('carriers/shiphawk_shipping/origin_location_type');
|
803 |
+
|
804 |
+
$shipping_origin_id = $product->getData('shiphawk_shipping_origins');
|
805 |
+
|
806 |
+
$helper = Mage::helper('shiphawk_shipping');
|
807 |
+
/* check if all origin attributes are set */
|
808 |
+
$per_product = $helper->checkShipHawkOriginAttributes($product);
|
809 |
+
|
810 |
+
if($per_product == true) {
|
811 |
+
return $product->getAttributeText('shiphawk_origin_location');
|
812 |
+
}
|
813 |
+
|
814 |
+
if($shipping_origin_id) {
|
815 |
+
// get zip code from Shiping Origin
|
816 |
+
$shipping_origin = Mage::getModel('shiphawk_shipping/origins')->load($shipping_origin_id);
|
817 |
+
$product_origin_zip_code = $shipping_origin->getData('shiphawk_origin_location');
|
818 |
+
return $product_origin_zip_code;
|
819 |
+
}
|
820 |
+
|
821 |
+
return $default_origin_location;
|
822 |
}
|
823 |
|
824 |
public function getIsPacked($product) {
|
826 |
$product_is_packed = $product->getShiphawkItemIsPacked();
|
827 |
$product_is_packed = ($product_is_packed == 2) ? $default_is_packed : $product_is_packed;
|
828 |
|
829 |
+
return ($product_is_packed ? 'true' : 'false');
|
830 |
}
|
831 |
|
832 |
+
/* sort items by origin id */
|
833 |
public function getGroupedItemsByZip($items) {
|
834 |
+
$tmp = array();
|
835 |
+
foreach($items as $item) {
|
836 |
+
$tmp[$item['origin']][] = $item;
|
837 |
+
}
|
838 |
+
return $tmp;
|
839 |
+
}
|
840 |
+
|
841 |
+
/* sort items by origin zip code */
|
842 |
+
public function getGroupedItemsByZipPerProduct($items) {
|
843 |
$tmp = array();
|
844 |
foreach($items as $item) {
|
845 |
$tmp[$item['zip']][] = $item;
|
847 |
return $tmp;
|
848 |
}
|
849 |
|
850 |
+
/* sort items by carrier type */
|
851 |
+
public function getGroupedItemsByCarrierType($items) {
|
852 |
+
$tmp = array();
|
853 |
+
foreach($items as $item) {
|
854 |
+
$tmp[$item['shiphawk_carrier_type']][] = $item;
|
855 |
+
}
|
856 |
+
return $tmp;
|
857 |
+
}
|
858 |
+
|
859 |
+
/* sort items by discount or markup */
|
860 |
+
public function getGroupedItemsByDiscountOrMarkup($items) {
|
861 |
+
$tmp = array();
|
862 |
+
foreach($items as $item) {
|
863 |
+
$tmp[$item['shiphawk_discount_percentage']. '-' .$item['shiphawk_discount_fixed']][] = $item;
|
864 |
+
}
|
865 |
+
return $tmp;
|
866 |
+
}
|
867 |
+
|
868 |
+
/* sort items by shiphawk_custom_packing_price */
|
869 |
+
public function getGroupedItemsByCustomPackingPrice($items) {
|
870 |
+
$tmp = array();
|
871 |
+
foreach($items as $item) {
|
872 |
+
$tmp[$item['shiphawk_custom_packing_price']][] = $item;
|
873 |
+
}
|
874 |
+
return $tmp;
|
875 |
+
}
|
876 |
+
|
877 |
+
protected function _getChipiestRateId($services) {
|
878 |
+
|
879 |
+
$t = array();
|
880 |
+
foreach ($services as $id_service=>$service) {
|
881 |
+
$t[$id_service] = $service['price'];
|
882 |
+
}
|
883 |
+
|
884 |
+
asort($t);
|
885 |
+
|
886 |
+
$rate_id = key($t);
|
887 |
+
|
888 |
+
return $rate_id;
|
889 |
+
}
|
890 |
+
|
891 |
+
public function getServices($ship_responces, $toOrder, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting) {
|
892 |
+
|
893 |
$services = array();
|
894 |
+
$helper = Mage::helper('shiphawk_shipping');
|
895 |
foreach($ship_responces as $ship_responce) {
|
896 |
if(is_array($ship_responce)) {
|
897 |
+
$custom_products_packing_price = 0;
|
898 |
foreach($ship_responce as $object) {
|
899 |
+
$services[$object->id]['name'] = $this->_getServiceName($object);
|
900 |
+
|
901 |
+
foreach($toOrder as $rate_id=>$rate_data) {
|
902 |
+
if($rate_id == $object->id){
|
903 |
+
$services[$object->id]['custom_products_packing_price'] = $rate_data['custom_products_packing_price'];
|
904 |
+
$custom_products_packing_price = $rate_data['custom_products_packing_price'];
|
905 |
+
break;
|
906 |
+
}
|
907 |
+
}
|
908 |
+
|
909 |
+
$services[$object->id]['price'] = $helper->getSummaryPrice($object, $self_pack, $charge_customer_for_packing, $custom_packing_price_setting, $custom_products_packing_price);
|
910 |
+
$services[$object->id]['carrier'] = $this->getCarrierName($object);
|
911 |
+
$services[$object->id]['shiphawk_price'] = $helper->getShipHawkPrice($object, $self_pack, $charge_customer_for_packing);
|
912 |
+
|
913 |
+
/* packing info */
|
914 |
+
$services[$object->id]['packing']['price'] = $object->packing->price;
|
915 |
+
$services[$object->id]['packing']['info'] = $this->getPackeges($object);
|
916 |
+
$services[$object->id]['delivery'] = ''; //todo delivery
|
917 |
+
$services[$object->id]['carrier_type'] = ''; //todo carrier type
|
918 |
+
|
919 |
+
/* accesorial info */
|
920 |
+
$services[$object->id]['accessorial'] = $object->shipping->carrier_accessorial;
|
921 |
+
|
922 |
+
/* discount-markup by product or by sys. conf. */
|
923 |
+
|
924 |
+
foreach($toOrder as $rate_id=>$rate_data) {
|
925 |
+
if($rate_id == $object->id){
|
926 |
+
$services[$object->id]['shiphawk_discount_fixed'] = $rate_data['shiphawk_discount_fixed'];
|
927 |
+
$services[$object->id]['shiphawk_discount_percentage'] = $rate_data['shiphawk_discount_percentage'];
|
928 |
+
break;
|
929 |
+
}
|
930 |
+
}
|
931 |
}
|
932 |
}
|
933 |
}
|
935 |
return $services;
|
936 |
}
|
937 |
|
938 |
+
public function getPackeges($object) {
|
939 |
+
$result = array();
|
940 |
+
$i=0;
|
941 |
+
$package_info = '';
|
942 |
+
foreach ($object->packing->packages as $package_object) {
|
943 |
+
$result[$i]['tracking_number'] = $package_object->tracking_number;
|
944 |
+
$result[$i]['tracking_url'] = $package_object->tracking_url;
|
945 |
+
$result[$i]['packing_type'] = $package_object->packing_type;
|
946 |
+
$result[$i]['dimensions']['length'] = $package_object->dimensions->length;
|
947 |
+
$result[$i]['dimensions']['width'] = $package_object->dimensions->width;
|
948 |
+
$result[$i]['dimensions']['height'] = $package_object->dimensions->height;
|
949 |
+
$result[$i]['dimensions']['weight'] = $package_object->dimensions->weight;
|
950 |
+
$result[$i]['dimensions']['volume'] = $package_object->dimensions->volume;
|
951 |
+
$result[$i]['dimensions']['density'] = $package_object->dimensions->density;
|
952 |
+
|
953 |
+
$package_info .= $package_object->dimensions->length .
|
954 |
+
'x' . $package_object->dimensions->width .
|
955 |
+
'x' . $package_object->dimensions->height .
|
956 |
+
', ' . $package_object->dimensions->weight . ' lbs. ';
|
957 |
+
|
958 |
+
$i++;
|
959 |
+
}
|
960 |
+
|
961 |
+
return $package_info;
|
962 |
+
}
|
963 |
+
|
964 |
+
protected function _getServiceName($object) {
|
965 |
+
|
966 |
+
if ( $object->shipping->carrier_type == "Small Parcel" ) {
|
967 |
+
return $object->shipping->service;
|
968 |
+
}
|
969 |
+
|
970 |
+
if ( $object->shipping->carrier_type == "Blanket Wrap" ) {
|
971 |
+
return "Standard White Glove Delivery (3-6 weeks)";
|
972 |
+
}
|
973 |
+
|
974 |
+
if ( ( ( $object->shipping->carrier_type == "LTL" ) || ( $object->shipping->carrier_type == "3PL" ) || ( $object->shipping->carrier_type == "Intermodal" ) ) && ($object->delivery->price == 0) ) {
|
975 |
+
return "Curbside Delivery (1-2 weeks)";
|
976 |
+
}
|
977 |
+
|
978 |
+
if ( ( ( $object->shipping->carrier_type == "LTL" ) || ( $object->shipping->carrier_type == "3PL" ) || ( $object->shipping->carrier_type == "Intermodal" ) ) && ($object->delivery->price > 0) ) {
|
979 |
+
return "Expedited White Glove Delivery (2-3 weeks)";
|
980 |
+
}
|
981 |
+
|
982 |
+
if ( $object->shipping->carrier_type == "Home Delivery" ) {
|
983 |
+
return "Home Delivery - " . $object->shipping->service . " (1-2 weeks)";
|
984 |
+
}
|
985 |
+
|
986 |
+
return $object->shipping->service;
|
987 |
+
|
988 |
+
}
|
989 |
+
|
990 |
+
public function getCarrierName($object) {
|
991 |
+
return $object->shipping->carrier_friendly_name;
|
992 |
+
}
|
993 |
+
|
994 |
+
/*
|
995 |
+
1. If carrier_type = "Small Parcel" display name should be what's included in field [Service] (example: Ground)
|
996 |
+
|
997 |
+
2. If carrier_type = "Blanket Wrap" display name should be:
|
998 |
+
"Standard White Glove Delivery (3-6 weeks)"
|
999 |
+
|
1000 |
+
3. If carrier_type = "LTL","3PL","Intermodal" AND delivery field inside [details][price]=$0.00 display name should be:
|
1001 |
+
"Curbside delivery (1-2 weeks)"
|
1002 |
+
|
1003 |
+
4. If carrier_type = "LTL","3PL" "Intermodal" AND delivery field inside [details][price] > $0.00 display name should be:
|
1004 |
+
"Expedited White Glove Delivery (2-3 weeks)"
|
1005 |
+
|
1006 |
+
Additional rule for naming (both frontend and backend):
|
1007 |
+
|
1008 |
+
If carrier_type = "Home Delivery" display name should be:
|
1009 |
+
"Home Delivery - {{
|
1010 |
+
{Service name from received rate}
|
1011 |
+
}} (1-2 weeks)"
|
1012 |
+
==> example: Home Delivery - One Man (1-2 weeks)
|
1013 |
+
|
1014 |
+
*/
|
1015 |
+
|
1016 |
+
public function isTrackingAvailable()
|
1017 |
+
{
|
1018 |
+
return true;
|
1019 |
+
}
|
1020 |
|
1021 |
}
|
app/code/community/Shiphawk/Shipping/Model/Observer.php
CHANGED
@@ -1,17 +1,6 @@
|
|
1 |
<?php
|
2 |
class Shiphawk_Shipping_Model_Observer extends Mage_Core_Model_Abstract
|
3 |
{
|
4 |
-
public function configSaveAfter($observer){
|
5 |
-
|
6 |
-
/*$is_requered_attr = Mage::getStoreConfig('carriers/shiphawk_shipping/required_attribute');
|
7 |
-
$shiphawk_attributes = Mage::helper('shiphawk_shipping')->getAttributes();
|
8 |
-
|
9 |
-
foreach($shiphawk_attributes as $attributeCode) {
|
10 |
-
$this->_setAttributeRequired($attributeCode,$is_requered_attr);
|
11 |
-
}*/
|
12 |
-
|
13 |
-
}
|
14 |
-
|
15 |
protected function _setAttributeRequired($attributeCode, $is_active) {
|
16 |
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode( 'catalog_product', $attributeCode);
|
17 |
$attributeModel->setIsRequired($is_active);
|
@@ -23,23 +12,85 @@ class Shiphawk_Shipping_Model_Observer extends Mage_Core_Model_Abstract
|
|
23 |
$order = $event->getOrder();
|
24 |
$orderId = $order->getId();
|
25 |
|
26 |
-
|
|
|
|
|
27 |
|
28 |
$manual_shipping = Mage::getStoreConfig('carriers/shiphawk_shipping/book_shipment');
|
29 |
$shipping_code = $order->getShippingMethod();
|
30 |
$shipping_description = $order->getShippingDescription();
|
31 |
$check_shiphawk = Mage::helper('shiphawk_shipping')->isShipHawkShipping($shipping_code);
|
32 |
if($check_shiphawk !== false) {
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
$shiphawk_book_id = Mage::getSingleton('core/session')->getShiphawkBookId();
|
35 |
|
36 |
$multi_zip_code = Mage::getSingleton('core/session')->getMultiZipCode();
|
37 |
|
|
|
|
|
|
|
|
|
|
|
38 |
if($multi_zip_code == false) {
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
42 |
$order->setShiphawkBookId(serialize($shiphawk_book_id));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
$order->save();
|
44 |
if(!$manual_shipping) {
|
45 |
if ($order->canShip()) {
|
@@ -51,28 +102,250 @@ class Shiphawk_Shipping_Model_Observer extends Mage_Core_Model_Abstract
|
|
51 |
|
52 |
Mage::getSingleton('core/session')->unsShiphawkBookId();
|
53 |
Mage::getSingleton('core/session')->unsMultiZipCode();
|
|
|
|
|
54 |
|
|
|
55 |
}
|
56 |
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
|
60 |
-
|
61 |
-
$
|
|
|
62 |
|
63 |
-
|
64 |
-
$
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
|
71 |
-
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
$event = $observer->getEvent();
|
74 |
-
$
|
75 |
-
|
76 |
-
$
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
1 |
<?php
|
2 |
class Shiphawk_Shipping_Model_Observer extends Mage_Core_Model_Abstract
|
3 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
protected function _setAttributeRequired($attributeCode, $is_active) {
|
5 |
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode( 'catalog_product', $attributeCode);
|
6 |
$attributeModel->setIsRequired($is_active);
|
12 |
$order = $event->getOrder();
|
13 |
$orderId = $order->getId();
|
14 |
|
15 |
+
/* For accessories */
|
16 |
+
$accessories = Mage::app()->getRequest()->getPost('accessories', array());
|
17 |
+
$helper = Mage::helper('shiphawk_shipping');
|
18 |
|
19 |
$manual_shipping = Mage::getStoreConfig('carriers/shiphawk_shipping/book_shipment');
|
20 |
$shipping_code = $order->getShippingMethod();
|
21 |
$shipping_description = $order->getShippingDescription();
|
22 |
$check_shiphawk = Mage::helper('shiphawk_shipping')->isShipHawkShipping($shipping_code);
|
23 |
if($check_shiphawk !== false) {
|
24 |
+
|
25 |
+
/* For location type */
|
26 |
+
$shLocationType = Mage::getSingleton('checkout/session')->getData('shiphawk_location_type_shipping');
|
27 |
+
|
28 |
+
if (!empty($shLocationType)) $order->setShiphawkLocationType($shLocationType);
|
29 |
+
|
30 |
+
// set ShipHawk rate todo ship to multiply shiping address, only one shipping order save to session
|
31 |
$shiphawk_book_id = Mage::getSingleton('core/session')->getShiphawkBookId();
|
32 |
|
33 |
$multi_zip_code = Mage::getSingleton('core/session')->getMultiZipCode();
|
34 |
|
35 |
+
// set ShipHawk rate filter
|
36 |
+
$shiphawkRateFilter = Mage::getSingleton('core/session')->getShiphawkRateFilter();
|
37 |
+
$order->setShiphawkRateFilter($shiphawkRateFilter);
|
38 |
+
|
39 |
+
//shiphawk_shipping_amount
|
40 |
if($multi_zip_code == false) {
|
41 |
+
|
42 |
+
$shiphawk_book_id = $helper->getShipHawkCode($shiphawk_book_id, $shipping_code);
|
43 |
+
foreach ($shiphawk_book_id as $rate_id=>$method_data) {
|
44 |
+
//$order->setShiphawkShippingAmount($method_data['price']);
|
45 |
+
$shiphawk_shipping_amount = $method_data['price'];
|
46 |
+
$order->setShiphawkShippingPackageInfo($method_data['packing_info']);
|
47 |
+
}
|
48 |
+
|
49 |
+
}else{
|
50 |
+
//if multi origin shipping
|
51 |
+
$shiphawk_shipping_amount = Mage::getSingleton('core/session')->getSummPrice();
|
52 |
+
$shiphawk_shipping_package_info = Mage::getSingleton('core/session')->getPackageInfo();
|
53 |
+
//$order->setShiphawkShippingAmount($shiphawk_shipping_amount);
|
54 |
+
$order->setShiphawkShippingPackageInfo($shiphawk_shipping_package_info);
|
55 |
}
|
56 |
|
57 |
$order->setShiphawkBookId(serialize($shiphawk_book_id));
|
58 |
+
|
59 |
+
// it's for admin order
|
60 |
+
if (!empty($accessories)) {
|
61 |
+
/* For accessories */
|
62 |
+
$accessoriesPrice = 0;
|
63 |
+
$accessoriesData = array();
|
64 |
+
foreach($accessories as $typeName => $type) {
|
65 |
+
foreach($type as $name => $values) {
|
66 |
+
foreach($values as $key => $value) {
|
67 |
+
$accessoriesData[$typeName][$key]['name'] = $name;
|
68 |
+
$accessoriesData[$typeName][$key]['value'] = (float)$value;
|
69 |
+
|
70 |
+
$accessoriesPrice += (float)$value;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
$newAccessoriesPrice = $order->getShippingAmount() + $accessoriesPrice;
|
76 |
+
$newGtandTotal = $order->getGrandTotal() + $accessoriesPrice;
|
77 |
+
|
78 |
+
$order->setShiphawkShippingAccessories(json_encode($accessoriesData));
|
79 |
+
$order->setShippingAmount($newAccessoriesPrice);
|
80 |
+
$order->setBaseShippingAmount($newAccessoriesPrice);
|
81 |
+
$order->setGrandTotal($newGtandTotal);
|
82 |
+
$order->setBaseGrandTotal($newGtandTotal);
|
83 |
+
|
84 |
+
$order->setShiphawkShippingAmount($shiphawk_shipping_amount + $accessoriesPrice);
|
85 |
+
}else{
|
86 |
+
|
87 |
+
// it is for frontend order - accessories saved in checkout_type_onepage_save_order event
|
88 |
+
$accessoriesPriceData = json_decode($order->getData('shiphawk_shipping_accessories'));
|
89 |
+
$accessoriesPrice = $helper->getAccessoriesPrice($accessoriesPriceData);
|
90 |
+
|
91 |
+
$order->setShiphawkShippingAmount($shiphawk_shipping_amount + $accessoriesPrice);
|
92 |
+
}
|
93 |
+
|
94 |
$order->save();
|
95 |
if(!$manual_shipping) {
|
96 |
if ($order->canShip()) {
|
102 |
|
103 |
Mage::getSingleton('core/session')->unsShiphawkBookId();
|
104 |
Mage::getSingleton('core/session')->unsMultiZipCode();
|
105 |
+
Mage::getSingleton('core/session')->unsSummPrice();
|
106 |
+
Mage::getSingleton('core/session')->unsPackageInfo();
|
107 |
|
108 |
+
Mage::getSingleton('core/session')->unsetData('admin_accessories_price');
|
109 |
}
|
110 |
|
111 |
+
/**
|
112 |
+
* For rewrite address collectTotals
|
113 |
+
*
|
114 |
+
* @param $observer
|
115 |
+
*
|
116 |
+
* @version 20150617
|
117 |
+
*/
|
118 |
+
public function recalculationTotals($observer) {
|
119 |
+
$event = $observer->getEvent();
|
120 |
+
$address = $event->getQuoteAddress();
|
121 |
|
122 |
+
$session = Mage::getSingleton('checkout/session');
|
123 |
+
$accessories = $session->getData('shipment_accessories');
|
124 |
+
$method = $address->getShippingMethod();
|
125 |
|
126 |
+
// we have no accessories on cart page
|
127 |
+
$is_it_cart_page = Mage::helper('shiphawk_shipping')->checkIsItCartPage();
|
128 |
|
129 |
+
if (empty($accessories['accessories_price']) || !$method || $is_it_cart_page) {
|
130 |
+
return;
|
131 |
+
}
|
132 |
+
|
133 |
+
$totals = Mage::getSingleton('checkout/session')->getQuote()->getTotals();
|
134 |
+
$discount = 0;
|
135 |
+
if(isset($totals['discount'])&&$totals['discount']->getValue()) {
|
136 |
+
$discount = round($totals['discount']->getValue(), 2); //Discount value if applied
|
137 |
+
}
|
138 |
|
139 |
+
$accessoriesPrice = (float)$accessories['accessories_price'];
|
140 |
+
$grandTotal = (float)$accessories['grand_total'];
|
141 |
+
$baseGrandTotal = (float)$accessories['base_grand_total'];
|
142 |
+
$shippingAmount = (float)$accessories['shipping_amount'];
|
143 |
+
$baseShippingAmount = (float)$accessories['base_shipping_amount'];
|
144 |
|
145 |
+
//$shippingAmount = empty($shippingAmount) ? $address->getShippingAmount() : $shippingAmount;
|
146 |
+
$shippingAmount = $address->getShippingAmount();
|
147 |
+
//$baseShippingAmount = empty($baseShippingAmount) ? $address->getBaseShippingAmount() : $baseShippingAmount;
|
148 |
+
$baseShippingAmount = $address->getBaseShippingAmount();
|
149 |
+
|
150 |
+
$newShippingPrice = $shippingAmount + $accessoriesPrice;
|
151 |
+
$newShippingBasePrice = $baseShippingAmount + $accessoriesPrice;
|
152 |
+
|
153 |
+
$address->setShippingAmount($newShippingPrice);
|
154 |
+
$address->setBaseShippingAmount($baseShippingAmount + $accessoriesPrice);
|
155 |
+
$address->setGrandTotal($grandTotal + $newShippingPrice + ($discount));
|
156 |
+
$address->setBaseGrandTotal($baseGrandTotal + $newShippingBasePrice);
|
157 |
}
|
158 |
|
159 |
+
/**
|
160 |
+
* For save accessories in checkout session
|
161 |
+
*
|
162 |
+
* @param $observer
|
163 |
+
*
|
164 |
+
* @version 20150617
|
165 |
+
*/
|
166 |
+
public function setAccessories($observer) {
|
167 |
+
$event = $observer->getEvent();
|
168 |
+
$accessories = $event->getRequest()->getPost('accessories', array());
|
169 |
+
$address = $event->getQuote()->getShippingAddress();
|
170 |
+
$grandTotal = $address->getSubtotal();
|
171 |
+
$baseGrandTotal = $address->getBaseSubtotal();
|
172 |
+
$shippingAmount = $address->getShippingInclTax();
|
173 |
+
$baseShippingAmount = $address->getBaseShippingInclTax();
|
174 |
+
$session = Mage::getSingleton('checkout/session');
|
175 |
+
|
176 |
+
if (empty($accessories)) {
|
177 |
+
$session->setData("shipment_accessories", array());
|
178 |
+
return;
|
179 |
+
}
|
180 |
+
|
181 |
+
$accessoriesPrice = 0;
|
182 |
+
$accessoriesData = array();
|
183 |
+
foreach($accessories as $typeName => $type) {
|
184 |
+
foreach($type as $name => $values) {
|
185 |
+
foreach($values as $key => $value) {
|
186 |
+
$accessoriesData[$typeName][$key]['name'] = $name;
|
187 |
+
$accessoriesData[$typeName][$key]['value'] = (float)$value;
|
188 |
+
|
189 |
+
$accessoriesPrice += (float)$value;
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
$params['data'] = $accessoriesData;
|
195 |
+
$params['grand_total'] = $grandTotal;
|
196 |
+
$params['base_grand_total'] = $baseGrandTotal;
|
197 |
+
$params['accessories_price'] = $accessoriesPrice;
|
198 |
+
$params['shipping_amount'] = $shippingAmount;
|
199 |
+
$params['base_shipping_amount'] = $baseShippingAmount;
|
200 |
+
|
201 |
+
$session->setData("shipment_accessories", $params);
|
202 |
+
$session->setAccessoriesprice($accessoriesPrice);
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* For save accessories in order
|
207 |
+
*
|
208 |
+
* @param $observer
|
209 |
+
*
|
210 |
+
* @version 20150618
|
211 |
+
*/
|
212 |
+
public function saveAccessoriesInOrder($observer) {
|
213 |
$event = $observer->getEvent();
|
214 |
+
$order = $event->getOrder();
|
215 |
+
|
216 |
+
$session = Mage::getSingleton('checkout/session');
|
217 |
+
$accessories = $session->getData("shipment_accessories");
|
218 |
+
|
219 |
+
//clear session data
|
220 |
+
$session->unsetData('shipment_accessories');
|
221 |
+
|
222 |
+
if (empty($accessories['accessories_price'])) {
|
223 |
+
return;
|
224 |
+
}
|
225 |
+
|
226 |
+
$order->setShiphawkShippingAccessories(json_encode($accessories['data']));
|
227 |
+
$order->save();
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* For rewrite shipping/method/form.phtml template
|
232 |
+
*
|
233 |
+
* @param $observer
|
234 |
+
*
|
235 |
+
* @version 20150622
|
236 |
+
*/
|
237 |
+
public function changeSippingMethodTemplate($observer) {
|
238 |
+
if ($observer->getBlock() instanceof Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Method_Form) {
|
239 |
+
$observer->getBlock()->setTemplate('shiphawk/shipping/method/form.phtml')->renderView();
|
240 |
+
}
|
241 |
+
}
|
242 |
+
|
243 |
+
/**
|
244 |
+
* For override shipping cost by admin, when he create order
|
245 |
+
*
|
246 |
+
* @param $observer
|
247 |
+
*
|
248 |
+
* @version 20150626
|
249 |
+
*/
|
250 |
+
public function overrideShippingCost($observer) {
|
251 |
+
$event = $observer->getEvent();
|
252 |
+
$order = $event->getOrder();
|
253 |
+
$subTotal = $order->getSubtotal();
|
254 |
+
|
255 |
+
$overrideCost = Mage::app()->getRequest()->getPost('sh_override_shipping_cost', 0);
|
256 |
+
|
257 |
+
if ((floatval($overrideCost) < 0)||($overrideCost === null)||( $overrideCost === "")) {
|
258 |
+
return;
|
259 |
+
}
|
260 |
+
|
261 |
+
$overrideCost = floatval($overrideCost);
|
262 |
+
|
263 |
+
$grandTotal = $subTotal + $overrideCost;
|
264 |
+
|
265 |
+
$order->setShippingAmount($overrideCost);
|
266 |
+
$order->setBaseShippingAmount($overrideCost);
|
267 |
+
$order->setGrandTotal($grandTotal);
|
268 |
+
$order->setBaseGrandTotal($grandTotal);
|
269 |
+
|
270 |
+
$order->save();
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* @param $observer
|
275 |
+
*/
|
276 |
+
public function showShiphawkRateError($observer) {
|
277 |
+
|
278 |
+
$err_text = Mage::getSingleton('core/session')->getShiphawkErrorRate();
|
279 |
+
if($err_text) {
|
280 |
+
Mage::getSingleton('core/session')->getMessages(true); // The true is for clearing them after loading them
|
281 |
+
Mage::getSingleton('core/session')->addError($err_text);
|
282 |
+
}
|
283 |
+
|
284 |
+
Mage::getSingleton('core/session')->unsShiphawkErrorRate();
|
285 |
+
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* Update accessories & shipping price in admin order view
|
290 |
+
* @param $observer
|
291 |
+
*/
|
292 |
+
public function addAccessoriesToTotals($observer) {
|
293 |
+
|
294 |
+
if(!Mage::helper('shiphawk_shipping')->checkIsAdmin()) {
|
295 |
+
return;
|
296 |
+
}
|
297 |
+
|
298 |
+
$event = $observer->getEvent();
|
299 |
+
$address = $event->getQuoteAddress();
|
300 |
+
|
301 |
+
$accessories_price_admin = Mage::getSingleton('core/session')->getData('admin_accessories_price');
|
302 |
+
|
303 |
+
$shiphawk_override_cost = Mage::getSingleton('core/session')->getData('shiphawk_override_cost');
|
304 |
+
|
305 |
+
$shippingAmount = $address->getShippingAmount();
|
306 |
+
|
307 |
+
if(empty($shippingAmount)) {
|
308 |
+
return;
|
309 |
+
}
|
310 |
+
|
311 |
+
$baseShippingAmount = $address->getBaseShippingAmount();
|
312 |
+
|
313 |
+
$grandTotal = $address->getSubtotal();
|
314 |
+
$baseGrandTotal = $address->getBaseSubtotal();
|
315 |
+
|
316 |
+
$newShippingPrice = $shippingAmount + $accessories_price_admin;
|
317 |
+
$newShippingBasePrice = $baseShippingAmount + $accessories_price_admin;
|
318 |
+
|
319 |
+
$totals = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getTotals();
|
320 |
+
$discount = 0;
|
321 |
+
if(isset($totals['discount'])&&$totals['discount']->getValue()) {
|
322 |
+
$discount = round($totals['discount']->getValue(), 2); //Discount value if applied
|
323 |
+
}
|
324 |
+
|
325 |
+
$address->setShippingAmount($newShippingPrice);
|
326 |
+
$address->setBaseShippingAmount($baseShippingAmount + $accessories_price_admin);
|
327 |
+
$address->setGrandTotal($grandTotal + $newShippingPrice + ($discount));
|
328 |
+
$address->setBaseGrandTotal($baseGrandTotal + $newShippingBasePrice);
|
329 |
+
|
330 |
+
Mage::getSingleton('core/session')->unsetData('admin_accessories_price');
|
331 |
+
|
332 |
+
if ((floatval($shiphawk_override_cost) < 0)||($shiphawk_override_cost === null)||( $shiphawk_override_cost === "")) {
|
333 |
+
return;
|
334 |
+
}
|
335 |
+
|
336 |
+
$overrideCost = floatval($shiphawk_override_cost);
|
337 |
+
|
338 |
+
$subTotal = $address->getSubtotal();
|
339 |
+
$grandTotal = $subTotal + $overrideCost;
|
340 |
+
|
341 |
+
|
342 |
+
$address->setShippingAmount($overrideCost);
|
343 |
+
$address->setBaseShippingAmount($overrideCost);
|
344 |
+
$address->setGrandTotal($grandTotal);
|
345 |
+
$address->setBaseGrandTotal($grandTotal);
|
346 |
+
|
347 |
+
Mage::getSingleton('core/session')->unsetData('shiphawk_override_cost');
|
348 |
+
|
349 |
+
}
|
350 |
+
|
351 |
}
|
app/code/community/Shiphawk/Shipping/Model/Origins.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Model_Origins extends Mage_Core_Model_Abstract
|
3 |
+
{
|
4 |
+
|
5 |
+
protected function _construct()
|
6 |
+
{
|
7 |
+
$this->_init('shiphawk_shipping/origins');
|
8 |
+
}
|
9 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Resource/Origins.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Model_Resource_Origins extends Mage_Core_Model_Mysql4_Abstract
|
3 |
+
{
|
4 |
+
protected function _construct()
|
5 |
+
{
|
6 |
+
$this->_init('shiphawk_shipping/origins', 'id');
|
7 |
+
}
|
8 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Resource/Origins/Collection.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Model_Resource_Origins_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
3 |
+
{
|
4 |
+
protected function _construct()
|
5 |
+
{
|
6 |
+
$this->_init('shiphawk_shipping/origins');
|
7 |
+
}
|
8 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Source/Adminratefilter.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Model_Source_Adminratefilter
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'consumer', 'label'=>Mage::helper('adminhtml')->__('consumer')),
|
8 |
+
array('value'=>'top_10', 'label'=>Mage::helper('adminhtml')->__('top 10')),
|
9 |
+
);
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Source/Carriertype.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Model_Source_Carriertype
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'', 'label'=>Mage::helper('adminhtml')->__('All')),
|
8 |
+
array('value'=>'ltl', 'label'=>Mage::helper('adminhtml')->__('ltl')),
|
9 |
+
array('value'=>'blanket wrap', 'label'=>Mage::helper('adminhtml')->__('blanket wrap')),
|
10 |
+
array('value'=>'small parcel', 'label'=>Mage::helper('adminhtml')->__('small parcel')),
|
11 |
+
array('value'=>'vehicle', 'label'=>Mage::helper('adminhtml')->__('vehicle')),
|
12 |
+
array('value'=>'intermodal', 'label'=>Mage::helper('adminhtml')->__('intermodal')),
|
13 |
+
);
|
14 |
+
}
|
15 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Source/Freeshipping.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Model_Source_Freeshipping
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'none', 'label'=>Mage::helper('adminhtml')->__('None')),
|
8 |
+
array('value'=>'cheapest', 'label'=>Mage::helper('adminhtml')->__('Cheapest')),
|
9 |
+
array('value'=>'all', 'label'=>Mage::helper('adminhtml')->__('All'))
|
10 |
+
);
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Source/Gateway.php
CHANGED
@@ -4,8 +4,8 @@ class Shiphawk_Shipping_Model_Source_Gateway
|
|
4 |
public function toOptionArray()
|
5 |
{
|
6 |
return array(
|
7 |
-
array('value'=>'https://shiphawk.com/api/
|
8 |
-
array('value'=>'https://sandbox.shiphawk.com/api/
|
9 |
);
|
10 |
}
|
11 |
-
}
|
4 |
public function toOptionArray()
|
5 |
{
|
6 |
return array(
|
7 |
+
array('value'=>'https://shiphawk.com/api/v3/', 'label'=>Mage::helper('adminhtml')->__('Live')),
|
8 |
+
array('value'=>'https://sandbox.shiphawk.com/api/v3/', 'label'=>Mage::helper('adminhtml')->__('Sandbox')),
|
9 |
);
|
10 |
}
|
11 |
+
}
|
app/code/community/Shiphawk/Shipping/Model/Source/Ratefilter.php
CHANGED
@@ -6,6 +6,10 @@ class Shiphawk_Shipping_Model_Source_Ratefilter
|
|
6 |
return array(
|
7 |
array('value'=>'consumer', 'label'=>Mage::helper('adminhtml')->__('consumer')),
|
8 |
array('value'=>'best', 'label'=>Mage::helper('adminhtml')->__('best')),
|
|
|
|
|
|
|
|
|
9 |
);
|
10 |
}
|
11 |
}
|
6 |
return array(
|
7 |
array('value'=>'consumer', 'label'=>Mage::helper('adminhtml')->__('consumer')),
|
8 |
array('value'=>'best', 'label'=>Mage::helper('adminhtml')->__('best')),
|
9 |
+
/*array('value'=>'min_rate', 'label'=>Mage::helper('adminhtml')->__('min_rate')),
|
10 |
+
array('value'=>'fastest', 'label'=>Mage::helper('adminhtml')->__('fastest')),
|
11 |
+
array('value'=>'asc', 'label'=>Mage::helper('adminhtml')->__('asc')),
|
12 |
+
array('value'=>'desc', 'label'=>Mage::helper('adminhtml')->__('desc')),*/
|
13 |
);
|
14 |
}
|
15 |
}
|
app/code/community/Shiphawk/Shipping/controllers/Adminhtml/ImportController.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Adminhtml_ImportController extends Mage_Adminhtml_Controller_Action
|
3 |
+
{
|
4 |
+
|
5 |
+
public function importAction() {
|
6 |
+
|
7 |
+
$fileimport = Mage::getStoreConfig('carriers/shiphawk_shipping/file_import');
|
8 |
+
|
9 |
+
$urlpath = Mage::getBaseDir('var') . DS . 'shiphawk' . DS.'import' . DS . $fileimport;
|
10 |
+
|
11 |
+
$row = 1;
|
12 |
+
if (($handle = fopen($urlpath, "r")) !== FALSE) {
|
13 |
+
|
14 |
+
while (($data = fgetcsv($handle, 1000, ",", '"')) !== FALSE) {
|
15 |
+
if($row == 1){ $row++; continue; }
|
16 |
+
|
17 |
+
$row++;
|
18 |
+
try {
|
19 |
+
list($id, $shiphawk_origin_firstname, $shiphawk_origin_lastname, $shiphawk_origin_addressline1, $shiphawk_origin_addressline2, $shiphawk_origin_city, $shiphawk_origin_state,
|
20 |
+
$shiphawk_origin_zipcode, $shiphawk_origin_phonenum, $shiphawk_origin_location, $shiphawk_origin_email, $shiphawk_origin_title) = $data;
|
21 |
+
$answer = Mage::getModel('shiphawk_shipping/origins');
|
22 |
+
$answer->setShiphawkOriginFirstname($shiphawk_origin_firstname)
|
23 |
+
->setShiphawkOriginLastname($shiphawk_origin_lastname)
|
24 |
+
->setShiphawkOriginAddressline1($shiphawk_origin_addressline1)
|
25 |
+
->setShiphawkOriginAddressline2($shiphawk_origin_addressline2)
|
26 |
+
->setShiphawkOriginCity($shiphawk_origin_city)
|
27 |
+
->setShiphawkOriginState($shiphawk_origin_state)
|
28 |
+
->setShiphawkOriginZipcode($shiphawk_origin_zipcode)
|
29 |
+
->setShiphawkOriginPhonenum($shiphawk_origin_phonenum)
|
30 |
+
->setShiphawkOriginLocation($shiphawk_origin_location)
|
31 |
+
->setShiphawkOriginEmail($shiphawk_origin_email)
|
32 |
+
->setShiphawkOriginTitle($shiphawk_origin_title)
|
33 |
+
->save();
|
34 |
+
|
35 |
+
|
36 |
+
Mage::app()->getResponse()->setBody('Import successful');
|
37 |
+
|
38 |
+
} catch (Mage_Core_Exception $e) {
|
39 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
40 |
+
Mage::app()->getResponse()->setBody($e->getMessage());
|
41 |
+
} catch (Exception $e) {
|
42 |
+
Mage::logException($e);
|
43 |
+
|
44 |
+
Mage::app()->getResponse()->setBody($e->getMessage());
|
45 |
+
}
|
46 |
+
}
|
47 |
+
fclose($handle);
|
48 |
+
|
49 |
+
}else{
|
50 |
+
Mage::app()->getResponse()->setBody('Please upload file');
|
51 |
+
}
|
52 |
+
|
53 |
+
|
54 |
+
}
|
55 |
+
|
56 |
+
protected function _uploadImportFile() {
|
57 |
+
if ($data = $this->getRequest()->getPost()) {
|
58 |
+
|
59 |
+
if(isset($_FILES['filename']['name']) && $_FILES['filename']['name'] != '') {
|
60 |
+
try {
|
61 |
+
/* Starting upload */
|
62 |
+
$uploader = new Varien_File_Uploader('filename');
|
63 |
+
|
64 |
+
// Any extention would work
|
65 |
+
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
|
66 |
+
$uploader->setAllowRenameFiles(false);
|
67 |
+
|
68 |
+
// Set the file upload mode
|
69 |
+
// false -> get the file directly in the specified folder
|
70 |
+
// true -> get the file in the product like folders
|
71 |
+
// (file.jpg will go in something like /media/f/i/file.jpg)
|
72 |
+
$uploader->setFilesDispersion(false);
|
73 |
+
|
74 |
+
// We set media as the upload dir
|
75 |
+
$path = Mage::getBaseDir('media') . DS ;
|
76 |
+
$uploader->save($path, $_FILES['filename']['name'] );
|
77 |
+
|
78 |
+
} catch (Exception $e) {
|
79 |
+
|
80 |
+
}
|
81 |
+
|
82 |
+
//this way the name is saved in DB
|
83 |
+
$data['filename'] = $_FILES['filename']['name'];
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
app/code/community/Shiphawk/Shipping/controllers/Adminhtml/OriginsController.php
ADDED
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Shiphawk_Shipping_Adminhtml_OriginsController extends Mage_Adminhtml_Controller_Action
|
3 |
+
{
|
4 |
+
public function indexAction()
|
5 |
+
{
|
6 |
+
$this->_title($this->__('Shipping Origins'));
|
7 |
+
|
8 |
+
$this->loadLayout();
|
9 |
+
$this->_setActiveMenu('shiphawk_shipping');
|
10 |
+
$this->_addBreadcrumb(Mage::helper('shiphawk_shipping')->__('Shipping Origins'), Mage::helper('shiphawk_shipping')->__('Shipping Origins'));
|
11 |
+
$this->renderLayout();
|
12 |
+
}
|
13 |
+
|
14 |
+
public function newAction()
|
15 |
+
{
|
16 |
+
$this->_title($this->__('Add new Origins'));
|
17 |
+
$this->loadLayout();
|
18 |
+
$this->_setActiveMenu('shiphawk_shipping');
|
19 |
+
$this->_addBreadcrumb(Mage::helper('shiphawk_shipping')->__('Add new Origins'), Mage::helper('shiphawk_shipping')->__('Add new Origins'));
|
20 |
+
$this->renderLayout();
|
21 |
+
}
|
22 |
+
|
23 |
+
public function editAction()
|
24 |
+
{
|
25 |
+
$this->_title($this->__('Edit Origins'));
|
26 |
+
|
27 |
+
$this->loadLayout();
|
28 |
+
$this->_setActiveMenu('shiphawk_shipping');
|
29 |
+
$this->_addBreadcrumb(Mage::helper('shiphawk_shipping')->__('Edit Origins'), Mage::helper('shiphawk_shipping')->__('Edit Origins'));
|
30 |
+
$this->renderLayout();
|
31 |
+
}
|
32 |
+
|
33 |
+
public function deleteAction()
|
34 |
+
{
|
35 |
+
$tipId = $this->getRequest()->getParam('id', false);
|
36 |
+
|
37 |
+
try {
|
38 |
+
Mage::getModel('shiphawk_shipping/origins')->setId($tipId)->delete();
|
39 |
+
|
40 |
+
|
41 |
+
Mage::dispatchEvent('origins_delete_after', array('id'=>$tipId));
|
42 |
+
|
43 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('shiphawk_shipping')->__('origins successfully deleted'));
|
44 |
+
|
45 |
+
return $this->_redirect('*/*/');
|
46 |
+
} catch (Mage_Core_Exception $e){
|
47 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
48 |
+
} catch (Exception $e) {
|
49 |
+
Mage::logException($e);
|
50 |
+
Mage::getSingleton('adminhtml/session')->addError($this->__('Somethings went wrong'));
|
51 |
+
}
|
52 |
+
|
53 |
+
$this->_redirectReferer();
|
54 |
+
}
|
55 |
+
|
56 |
+
public function saveAction()
|
57 |
+
{
|
58 |
+
$data = $this->getRequest()->getPost();
|
59 |
+
|
60 |
+
foreach ($data as $key => $value)
|
61 |
+
{
|
62 |
+
if (is_array($value))
|
63 |
+
{
|
64 |
+
$data[$key] = implode(',',$this->getRequest()->getParam($key));
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
if (!empty($data)) {
|
69 |
+
try {
|
70 |
+
$origins = Mage::getModel('shiphawk_shipping/origins')
|
71 |
+
->setData($data)
|
72 |
+
->save();
|
73 |
+
|
74 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('shiphawk_shipping')->__('origins successfully saved'));
|
75 |
+
} catch (Mage_Core_Exception $e) {
|
76 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
77 |
+
} catch (Exception $e) {
|
78 |
+
Mage::logException($e);
|
79 |
+
Mage::getSingleton('adminhtml/session')->addError($this->__('Somethings went wrong'));
|
80 |
+
}
|
81 |
+
}
|
82 |
+
return $this->_redirect('*/*/');
|
83 |
+
}
|
84 |
+
|
85 |
+
public function gridAction()
|
86 |
+
{
|
87 |
+
$this->loadLayout();
|
88 |
+
$this->getResponse()->setBody(
|
89 |
+
$this->getLayout()->createBlock('shiphawk_shipping/adminhtml_origins_grid')->toHtml()
|
90 |
+
);
|
91 |
+
}
|
92 |
+
|
93 |
+
public function massDeleteAction()
|
94 |
+
{
|
95 |
+
$answersIds = $this->getRequest()->getParam('origins');
|
96 |
+
if(!is_array($answersIds)) {
|
97 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select origin(s).'));
|
98 |
+
} else {
|
99 |
+
try {
|
100 |
+
$answer = Mage::getModel('shiphawk_shipping/origins');
|
101 |
+
foreach ($answersIds as $answerId) {
|
102 |
+
$answer
|
103 |
+
->load($answerId)
|
104 |
+
->delete();
|
105 |
+
|
106 |
+
Mage::dispatchEvent('origins_delete_after', array('id'=>$answerId));
|
107 |
+
}
|
108 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(
|
109 |
+
Mage::helper('adminhtml')->__('Total of %d record(s) were deleted.', count($answersIds))
|
110 |
+
);
|
111 |
+
} catch (Exception $e) {
|
112 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
$this->_redirect('*/*/index');
|
117 |
+
}
|
118 |
+
|
119 |
+
public function exportAction() {
|
120 |
+
/**
|
121 |
+
* Returns generated CSV file
|
122 |
+
*/
|
123 |
+
|
124 |
+
$filename = 'origins.csv';
|
125 |
+
$content = Mage::helper('shiphawk_shipping/origin')->generateQuestList();
|
126 |
+
|
127 |
+
$this->_prepareDownloadResponse($filename, $content);
|
128 |
+
|
129 |
+
}
|
130 |
+
|
131 |
+
|
132 |
+
|
133 |
+
}
|
app/code/community/Shiphawk/Shipping/controllers/Adminhtml/ShipmentController.php
CHANGED
@@ -1,94 +1,30 @@
|
|
1 |
<?php
|
2 |
class Shiphawk_Shipping_Adminhtml_ShipmentController extends Mage_Adminhtml_Controller_Action
|
3 |
{
|
4 |
-
public function subscribeAction() {
|
5 |
-
$shipment_id = $this->getRequest()->getParam('shipment_id');
|
6 |
-
|
7 |
-
$helper = Mage::helper('shiphawk_shipping');
|
8 |
-
$api_key = $helper->getApiKey();
|
9 |
-
|
10 |
-
|
11 |
-
if($shipment_id) {
|
12 |
-
try{
|
13 |
-
$shipment = Mage::getModel('sales/order_shipment')->load($shipment_id);
|
14 |
-
|
15 |
-
$shipment_id_track = $this->_getTrackNumber($shipment);
|
16 |
-
|
17 |
-
$subscribe_url = $helper->getApiUrl() . 'shipments/' . $shipment_id_track . '/subscribe?api_key=' . $api_key;
|
18 |
-
$callback_url = $helper->getCallbackUrl($api_key);
|
19 |
-
|
20 |
-
$items_array = array(
|
21 |
-
'callback_url'=> $callback_url
|
22 |
-
);
|
23 |
-
|
24 |
-
$curl = curl_init();
|
25 |
-
$items_array = json_encode($items_array);
|
26 |
-
|
27 |
-
curl_setopt($curl, CURLOPT_URL, $subscribe_url);
|
28 |
-
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
|
29 |
-
curl_setopt($curl, CURLOPT_POSTFIELDS, $items_array);
|
30 |
-
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
31 |
-
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
32 |
-
'Content-Type: application/json',
|
33 |
-
'Content-Length: ' . strlen($items_array)
|
34 |
-
)
|
35 |
-
);
|
36 |
-
|
37 |
-
$resp = curl_exec($curl);
|
38 |
-
$arr_res = json_decode($resp);
|
39 |
-
|
40 |
-
if (!empty($arr_res)) {
|
41 |
-
$shipment->addComment($resp);
|
42 |
-
}
|
43 |
-
|
44 |
-
$shipment->save();
|
45 |
-
|
46 |
-
curl_close($curl);
|
47 |
-
|
48 |
-
}catch (Mage_Core_Exception $e) {
|
49 |
-
$this->_getSession()->addError($e->getMessage());
|
50 |
-
|
51 |
-
} catch (Exception $e) {
|
52 |
-
Mage::logException($e);
|
53 |
-
$this->_getSession()->addError($this->__('Cannot load shipment.'));
|
54 |
-
}
|
55 |
-
|
56 |
-
}else{
|
57 |
-
$this->_getSession()->addWarning($this->__('No ShipHawk tracking number'));
|
58 |
-
}
|
59 |
-
|
60 |
-
//$this->_getSession()->addSuccess($this->__('Subscribe'));
|
61 |
-
$this->_redirect('adminhtml/sales_shipment/view', array('shipment_id' => $shipment_id));
|
62 |
-
}
|
63 |
-
|
64 |
-
protected function _getTrackNumber($shipment) {
|
65 |
-
|
66 |
-
foreach($shipment->getAllTracks() as $tracknum)
|
67 |
-
{
|
68 |
-
//ShipHawk track number only one
|
69 |
-
if($tracknum->getCarrierCode() == 'shiphawk_shipping') {
|
70 |
-
return $tracknum->getNumber();
|
71 |
-
}
|
72 |
-
}
|
73 |
-
return null;
|
74 |
-
}
|
75 |
-
|
76 |
/**
|
77 |
-
*
|
78 |
-
*
|
79 |
*
|
80 |
* @return null
|
81 |
*/
|
82 |
public function saveshipmentAction()
|
83 |
{
|
84 |
$orderId= $this->getRequest()->getParam('order_id');
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
try {
|
87 |
$order = Mage::getModel('sales/order')->load($orderId);
|
88 |
|
|
|
|
|
89 |
$shiphawk_rate_data = unserialize($order->getData('shiphawk_book_id')); //rate id
|
90 |
|
91 |
$api = Mage::getModel('shiphawk_shipping/api');
|
|
|
92 |
|
93 |
$items = Mage::getModel('shiphawk_shipping/carrier')->getShiphawkItems($order);
|
94 |
|
@@ -97,25 +33,66 @@ class Shiphawk_Shipping_Adminhtml_ShipmentController extends Mage_Adminhtml_Cont
|
|
97 |
$shipping_description = $order->getShippingDescription();
|
98 |
|
99 |
$is_multi_zip = (count($grouped_items_by_zip) > 1) ? true : false;
|
100 |
-
$
|
|
|
|
|
|
|
|
|
|
|
101 |
if($is_multi_zip) {
|
102 |
$rate_filter = 'best';
|
103 |
}
|
104 |
|
|
|
|
|
105 |
foreach($shiphawk_rate_data as $rate_id=>$products_ids) {
|
106 |
$is_rate = false;
|
107 |
-
|
108 |
if(($is_multi_zip)||($rate_filter == 'best')) {
|
109 |
-
|
110 |
-
|
111 |
-
$
|
112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
}else{
|
114 |
-
|
|
|
|
|
|
|
|
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
foreach ($responceObject as $responce) {
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
|
|
119 |
$is_rate = true;
|
120 |
break;
|
121 |
}
|
@@ -124,36 +101,231 @@ class Shiphawk_Shipping_Adminhtml_ShipmentController extends Mage_Adminhtml_Cont
|
|
124 |
|
125 |
if($is_rate == true) {
|
126 |
// add book
|
127 |
-
$track_data = $api->toBook($order
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
|
129 |
$shipment = $api->_initShipHawkShipment($order,$products_ids);
|
130 |
$shipment->register();
|
131 |
-
$api->_saveShiphawkShipment($shipment);
|
132 |
|
133 |
// add track
|
134 |
-
if($
|
135 |
-
$api->addTrackNumber($shipment, $
|
|
|
|
|
136 |
}
|
137 |
|
138 |
$shipmentCreatedMessage = $this->__('The shipment has been created.');
|
139 |
$this->_getSession()->addSuccess($shipmentCreatedMessage);
|
140 |
}else{
|
141 |
-
Mage::getSingleton('core/session')->addError("Unfortunately the method that was chosen by a customer during checkout is currently unavailable. Please contact ShipHawk's customer service to manually book this shipment.");
|
142 |
-
|
143 |
|
|
|
|
|
|
|
|
|
144 |
}
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
} catch (Mage_Core_Exception $e) {
|
148 |
$this->_getSession()->addError($e->getMessage());
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
} catch (Exception $e) {
|
151 |
Mage::logException($e);
|
152 |
$this->_getSession()->addError($this->__('Cannot save shipment.'));
|
153 |
-
$this->_redirect('adminhtml/sales_order/view', array('order_id' => $orderId));
|
154 |
}
|
155 |
|
156 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
}
|
158 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
}
|
1 |
<?php
|
2 |
class Shiphawk_Shipping_Adminhtml_ShipmentController extends Mage_Adminhtml_Controller_Action
|
3 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
/**
|
5 |
+
* Get rate and book shipments order, Manual booking
|
6 |
+
*
|
7 |
*
|
8 |
* @return null
|
9 |
*/
|
10 |
public function saveshipmentAction()
|
11 |
{
|
12 |
$orderId= $this->getRequest()->getParam('order_id');
|
13 |
+
$sUrl = $this->getRequest()->getParam('sUrl');
|
14 |
+
$response = array();
|
15 |
+
$response['error_text'] = null;
|
16 |
+
$response['order_id'] = null;
|
17 |
+
$response['sUrl'] = null;
|
18 |
|
19 |
try {
|
20 |
$order = Mage::getModel('sales/order')->load($orderId);
|
21 |
|
22 |
+
$shLocationType = $order->getShiphawkLocationType();
|
23 |
+
|
24 |
$shiphawk_rate_data = unserialize($order->getData('shiphawk_book_id')); //rate id
|
25 |
|
26 |
$api = Mage::getModel('shiphawk_shipping/api');
|
27 |
+
$helper = Mage::helper('shiphawk_shipping');
|
28 |
|
29 |
$items = Mage::getModel('shiphawk_shipping/carrier')->getShiphawkItems($order);
|
30 |
|
33 |
$shipping_description = $order->getShippingDescription();
|
34 |
|
35 |
$is_multi_zip = (count($grouped_items_by_zip) > 1) ? true : false;
|
36 |
+
$is_admin = $helper->checkIsAdmin();
|
37 |
+
|
38 |
+
$rate_filter = Mage::helper('shiphawk_shipping')->getRateFilter($is_admin, $order);
|
39 |
+
|
40 |
+
//$carrier_type = Mage::getStoreConfig('carriers/shiphawk_shipping/carrier_type');
|
41 |
+
|
42 |
if($is_multi_zip) {
|
43 |
$rate_filter = 'best';
|
44 |
}
|
45 |
|
46 |
+
$accessories = array();
|
47 |
+
|
48 |
foreach($shiphawk_rate_data as $rate_id=>$products_ids) {
|
49 |
$is_rate = false;
|
50 |
+
|
51 |
if(($is_multi_zip)||($rate_filter == 'best')) {
|
52 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
53 |
+
$from_zip = $products_ids['items'][0]['zip'];
|
54 |
+
$location_type = $products_ids['items'][0]['location_type'];
|
55 |
+
|
56 |
+
$carrier_type = $products_ids['carrier_type'];
|
57 |
+
$self_pack = $products_ids['self_pack'];
|
58 |
+
|
59 |
+
$responceObject = $api->getShiphawkRate($from_zip, $products_ids['to_zip'], $products_ids['items'], $rate_filter, $carrier_type, $location_type, $shLocationType);
|
60 |
+
// get only one method for each group of product
|
61 |
+
if(is_object($responceObject)) {
|
62 |
+
if($responceObject->error) {
|
63 |
+
$shiphawk_error = $responceObject->error;
|
64 |
+
$helper->shlog('ShipHawk response: '. $shiphawk_error);
|
65 |
+
$helper->sendErrorMessageToShipHawk($shiphawk_error);
|
66 |
+
$is_rate = false;
|
67 |
+
}
|
68 |
+
}else{
|
69 |
+
$rate_id = $responceObject[0]->id;
|
70 |
+
$accessories = $responceObject[0]->shipping->carrier_accessorial;
|
71 |
+
$is_rate = true;
|
72 |
+
}
|
73 |
+
|
74 |
}else{
|
75 |
+
/* get zipcode and location type from first item in grouped by origin (zipcode) products */
|
76 |
+
$from_zip = $products_ids['items'][0]['zip'];
|
77 |
+
$location_type = $products_ids['items'][0]['location_type'];
|
78 |
+
|
79 |
+
$carrier_type = $products_ids['carrier_type'];
|
80 |
|
81 |
+
$self_pack = $products_ids['self_pack'];
|
82 |
+
|
83 |
+
$responceObject = $api->getShiphawkRate($from_zip, $products_ids['to_zip'], $products_ids['items'], $rate_filter, $carrier_type, $location_type, $shLocationType);
|
84 |
+
|
85 |
+
$accessoriesPriceData = json_decode($order->getData('shiphawk_shipping_accessories'));
|
86 |
+
$accessoriesPrice = Mage::helper('shiphawk_shipping')->getAccessoriesPrice($accessoriesPriceData);
|
87 |
+
// ShipHawk Shipping Amount includes accessories price
|
88 |
+
$original_shipping_price = floatval($order->getShiphawkShippingAmount() - $accessoriesPrice);
|
89 |
foreach ($responceObject as $responce) {
|
90 |
+
|
91 |
+
// shipping rate price from new response
|
92 |
+
$shipping_price = $helper->getShipHawkPrice($responce, $self_pack);
|
93 |
+
if(round($original_shipping_price,3) == round($shipping_price,3)) {
|
94 |
+
$rate_id = $responce->id;
|
95 |
+
$accessories = $responce->shipping->carrier_accessorial;
|
96 |
$is_rate = true;
|
97 |
break;
|
98 |
}
|
101 |
|
102 |
if($is_rate == true) {
|
103 |
// add book
|
104 |
+
$track_data = $api->toBook($order, $rate_id, $products_ids, $accessories, false, $self_pack);
|
105 |
+
|
106 |
+
if (property_exists($track_data, 'error')) {
|
107 |
+
Mage::getSingleton('core/session')->addError("The booking was not successful, please try again later.");
|
108 |
+
$helper->shlog('ShipHawk response: '.$track_data->error);
|
109 |
+
$helper->sendErrorMessageToShipHawk($track_data->error);
|
110 |
+
continue;
|
111 |
+
}
|
112 |
|
113 |
$shipment = $api->_initShipHawkShipment($order,$products_ids);
|
114 |
$shipment->register();
|
115 |
+
$api->_saveShiphawkShipment($shipment, $products_ids['name'], $products_ids['price']);
|
116 |
|
117 |
// add track
|
118 |
+
if($track_data->details->id) {
|
119 |
+
$api->addTrackNumber($shipment, $track_data->details->id);
|
120 |
+
|
121 |
+
$api->subscribeToTrackingInfo($shipment->getId());
|
122 |
}
|
123 |
|
124 |
$shipmentCreatedMessage = $this->__('The shipment has been created.');
|
125 |
$this->_getSession()->addSuccess($shipmentCreatedMessage);
|
126 |
}else{
|
127 |
+
//Mage::getSingleton('core/session')->addError("Unfortunately the method that was chosen by a customer during checkout is currently unavailable. Please contact ShipHawk's customer service to manually book this shipment.");
|
128 |
+
Mage::getSingleton('core/session')->setErrorPriceText("Sorry, we can't find the rate identical to the one that this order has. Please select another rate:");
|
129 |
|
130 |
+
$response['error_text'] = "Sorry, we can't find the rate identical to the one that this order has. Please select another rate:";
|
131 |
+
$response['order_id'] = $orderId;
|
132 |
+
$response['sUrl'] = $sUrl;
|
133 |
+
}
|
134 |
}
|
135 |
|
136 |
+
} catch (Mage_Core_Exception $e) {
|
137 |
+
$this->_getSession()->addError($e->getMessage());
|
138 |
+
//$this->_redirect('adminhtml/sales_order/view', array('order_id' => $orderId));
|
139 |
+
} catch (Exception $e) {
|
140 |
+
Mage::logException($e);
|
141 |
+
$this->_getSession()->addError($this->__('Cannot save shipment.'));
|
142 |
+
// $this->_redirect('adminhtml/sales_order/view', array('order_id' => $orderId));
|
143 |
+
}
|
144 |
+
|
145 |
+
//$this->_redirect('adminhtml/sales_order/view', array('order_id' => $orderId));
|
146 |
+
$this->getResponse()->setBody(json_encode($response));
|
147 |
+
}
|
148 |
+
|
149 |
+
/* Show PopUp for new ShipHawk Shipment */
|
150 |
+
public function newshipmentAction()
|
151 |
+
{
|
152 |
+
$orderId= $this->getRequest()->getParam('order_id');
|
153 |
+
|
154 |
+
try {
|
155 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
156 |
+
|
157 |
+
$this->loadLayout();
|
158 |
+
|
159 |
+
$this->getLayout()->getBlock('content')->append($this->getLayout()->createBlock('shiphawk_shipping/adminhtml_shipment')->setTemplate('shiphawk/shipment.phtml')->setOrder($order));
|
160 |
+
|
161 |
+
$this->renderLayout();
|
162 |
|
163 |
} catch (Mage_Core_Exception $e) {
|
164 |
$this->_getSession()->addError($e->getMessage());
|
165 |
+
|
166 |
+
} catch (Exception $e) {
|
167 |
+
Mage::logException($e);
|
168 |
+
}
|
169 |
+
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Shipment booking in admin for order with no Shiphawk method or for missing rate shipments
|
174 |
+
*/
|
175 |
+
public function newbookAction() {
|
176 |
+
|
177 |
+
$params = $this->getRequest()->getParams();
|
178 |
+
|
179 |
+
$orderId = $params['order_id'];
|
180 |
+
$shiphawk_rate_id = $params['shipping_method'];
|
181 |
+
$is_multi = $params['is_multi'];
|
182 |
+
if(array_key_exists('multi_price', $params) ) {
|
183 |
+
$multi_price = $params['multi_price'];
|
184 |
+
}
|
185 |
+
|
186 |
+
$shipmentCreatedMessage = $this->__('Something went wrong');
|
187 |
+
|
188 |
+
try {
|
189 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
190 |
+
$shiphawk_rate_data = Mage::getSingleton('core/session')->getData('new_shiphawk_book_id', true);
|
191 |
+
$api = Mage::getModel('shiphawk_shipping/api');
|
192 |
+
$helper = Mage::helper('shiphawk_shipping');
|
193 |
+
|
194 |
+
foreach($shiphawk_rate_data as $rate_id=>$products_ids) {
|
195 |
+
|
196 |
+
// add book
|
197 |
+
if($is_multi == 0) {
|
198 |
+
if($shiphawk_rate_id == $rate_id) {
|
199 |
+
$self_pack = $products_ids['self_pack'];
|
200 |
+
$accessories = array();
|
201 |
+
/* For accessories */
|
202 |
+
$accessoriesPrice = 0;
|
203 |
+
$accessoriesData = array();
|
204 |
+
if(array_key_exists('accessories', $params)) {
|
205 |
+
$accessories = $params['accessories'];
|
206 |
+
if(!empty($accessories)) {
|
207 |
+
foreach($accessories as $typeName => $type) {
|
208 |
+
foreach($type as $name => $values) {
|
209 |
+
foreach($values as $key => $value) {
|
210 |
+
$accessoriesData[$typeName][$key]['name'] = $name;
|
211 |
+
$accessoriesData[$typeName][$key]['value'] = (float)$value;
|
212 |
+
|
213 |
+
$accessoriesPrice += (float)$value;
|
214 |
+
}
|
215 |
+
}
|
216 |
+
}
|
217 |
+
}
|
218 |
+
}
|
219 |
+
|
220 |
+
$track_data = $api->toBook($order,$rate_id,$products_ids, $accessoriesData, true, $self_pack, true);
|
221 |
+
|
222 |
+
if (property_exists($track_data, 'error')) {
|
223 |
+
Mage::getSingleton('core/session')->addError("The booking was not successful, please try again later.");
|
224 |
+
$helper->shlog('ShipHawk response: '.$track_data->error);
|
225 |
+
continue;
|
226 |
+
}
|
227 |
+
|
228 |
+
$order->setShiphawkShippingAmount($products_ids['price'] + $accessoriesPrice); //resave shipping price
|
229 |
+
$order->setShiphawkShippingAccessories(json_encode($accessoriesData)); // resave accessories
|
230 |
+
$order->save();
|
231 |
+
|
232 |
+
$shipment = $api->_initShipHawkShipment($order,$products_ids);
|
233 |
+
$shipment->register();
|
234 |
+
$api->_saveShiphawkShipment($shipment, $products_ids['name'], $products_ids['price']);
|
235 |
+
|
236 |
+
// add track
|
237 |
+
$track_number = $track_data->details->id;
|
238 |
+
|
239 |
+
$api->addTrackNumber($shipment, $track_number);
|
240 |
+
$api->subscribeToTrackingInfo($shipment->getId());
|
241 |
+
|
242 |
+
$shipmentCreatedMessage = $this->__('The shipment has been created.');
|
243 |
+
$this->_getSession()->addSuccess($shipmentCreatedMessage);
|
244 |
+
}
|
245 |
+
}else{
|
246 |
+
$self_pack = $products_ids['self_pack'];
|
247 |
+
$accessories = array();
|
248 |
+
if(array_key_exists('accessories', $params)) {
|
249 |
+
$accessories = $params['accessories'];
|
250 |
+
}
|
251 |
+
$track_data = $api->toBook($order,$rate_id,$products_ids, $accessories, false, $self_pack);
|
252 |
+
|
253 |
+
if (property_exists($track_data, 'error')) {
|
254 |
+
Mage::getSingleton('core/session')->addError("The booking was not successful, please try again later.");
|
255 |
+
$helper->shlog('ShipHawk response: '.$track_data->error);
|
256 |
+
continue;
|
257 |
+
}
|
258 |
+
|
259 |
+
$order->setShiphawkShippingAmount($multi_price);
|
260 |
+
$order->save();
|
261 |
+
|
262 |
+
$shipment = $api->_initShipHawkShipment($order,$products_ids);
|
263 |
+
$shipment->register();
|
264 |
+
$api->_saveShiphawkShipment($shipment, $products_ids['name'], $products_ids['price']);
|
265 |
+
|
266 |
+
// add track
|
267 |
+
$track_number = $track_data->details->id;
|
268 |
+
|
269 |
+
$api->addTrackNumber($shipment, $track_number);
|
270 |
+
$api->subscribeToTrackingInfo($shipment->getId());
|
271 |
+
|
272 |
+
$shipmentCreatedMessage = $this->__("The multi-origin shipment's has been created.");
|
273 |
+
$this->_getSession()->addSuccess($shipmentCreatedMessage);
|
274 |
+
}
|
275 |
+
}
|
276 |
+
|
277 |
+
} catch (Mage_Core_Exception $e) {
|
278 |
+
$this->_getSession()->addError($e->getMessage());
|
279 |
+
|
280 |
} catch (Exception $e) {
|
281 |
Mage::logException($e);
|
282 |
$this->_getSession()->addError($this->__('Cannot save shipment.'));
|
|
|
283 |
}
|
284 |
|
285 |
+
$this->getResponse()->setBody( json_encode($shipmentCreatedMessage) );
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* For set Shiphawk location type value to session
|
290 |
+
*
|
291 |
+
* @version 20150701
|
292 |
+
*/
|
293 |
+
public function setlocationtypeAction() {
|
294 |
+
$locationType = $this->getRequest()->getPost('location_type');
|
295 |
+
|
296 |
+
if (empty($locationType)) {
|
297 |
+
$this->getResponse()->setBody('Result: location type is empty.');
|
298 |
+
return;
|
299 |
+
}
|
300 |
+
|
301 |
+
$locationType = $locationType != 'residential' && $locationType != 'commercial' ? 'residential' : $locationType;
|
302 |
+
|
303 |
+
Mage::getSingleton('checkout/session')->setData('shiphawk_location_type_shipping', $locationType);
|
304 |
+
|
305 |
+
$this->getResponse()->setBody('Result: ok.');
|
306 |
}
|
307 |
|
308 |
+
/**
|
309 |
+
* Set accessories price for Update Totals button in admin (New order view)
|
310 |
+
*
|
311 |
+
* @version 20150701
|
312 |
+
*/
|
313 |
+
public function setaccessoriespriceAction() {
|
314 |
+
$params = $this->getRequest()->getParams();
|
315 |
+
$accessories_price = $params['accessories_price'];
|
316 |
+
$shiphawk_override_cost = $params['shiphawk_override_cost'];
|
317 |
+
|
318 |
+
/*if (empty($accessories_price)) {
|
319 |
+
$this->getResponse()->setBody('accessories price is empty.');
|
320 |
+
return;
|
321 |
+
}*/
|
322 |
+
|
323 |
+
Mage::getSingleton('core/session')->unsetData('admin_accessories_price');
|
324 |
+
Mage::getSingleton('core/session')->unsetData('shiphawk_override_cost');
|
325 |
+
|
326 |
+
Mage::getSingleton('core/session')->setData('admin_accessories_price', $accessories_price);
|
327 |
+
Mage::getSingleton('core/session')->setData('shiphawk_override_cost', $shiphawk_override_cost);
|
328 |
+
|
329 |
+
//$this->getResponse()->setBody('Result: ok.');
|
330 |
+
}
|
331 |
}
|
app/code/community/Shiphawk/Shipping/controllers/IndexController.php
CHANGED
@@ -3,27 +3,55 @@ class Shiphawk_Shipping_IndexController extends Mage_Core_Controller_Front_Actio
|
|
3 |
{
|
4 |
public function trackingAction() {
|
5 |
|
6 |
-
// var_dump (file_get_contents('php://input'));
|
7 |
$api_key_from_url = $this->getRequest()->getParam('api_key');
|
8 |
$data_from_shiphawk = json_decode(file_get_contents('php://input'));
|
9 |
$api_key = Mage::helper('shiphawk_shipping')->getApiKey();
|
10 |
|
11 |
//curl -X POST -H Content-Type:application/json -d '{"event":"shipment.status_update","status":"in_transit","updated_at":"2015-01-14T10:43:16.702-08:00","shipment_id":1010226}' http://shiphawk.devigor.wdgtest.com/index.php/shiphawk/index/tracking?api_key=3331b35952ec7d99338a1cc5c496b55c
|
|
|
12 |
|
|
|
13 |
if($api_key_from_url == $api_key) {
|
14 |
try {
|
15 |
-
$
|
|
|
16 |
$shipment_track = Mage::getResourceModel('sales/order_shipment_track_collection')->addAttributeToFilter('track_number', $track_number)->getFirstItem();
|
|
|
17 |
$shipment = Mage::getModel('sales/order_shipment')->load($shipment_track->getParentId());
|
18 |
|
19 |
-
$data_from_shiphawk
|
20 |
|
21 |
$shipment_status_updates = Mage::getStoreConfig('carriers/shiphawk_shipping/shipment_status_updates');
|
22 |
$updates_tracking_url = Mage::getStoreConfig('carriers/shiphawk_shipping/updates_tracking_url');
|
23 |
$comment = '';
|
24 |
|
|
|
|
|
25 |
if($data_from_shiphawk['event'] == 'shipment.status_update') {
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
$shipment->addComment($comment);
|
28 |
if($shipment_status_updates) {
|
29 |
$shipment->sendUpdateEmail(true, $comment);
|
@@ -31,25 +59,40 @@ class Shiphawk_Shipping_IndexController extends Mage_Core_Controller_Front_Actio
|
|
31 |
}
|
32 |
|
33 |
if($data_from_shiphawk['event'] == 'shipment.tracking_update') {
|
34 |
-
$comment = $data_from_shiphawk['updated_at'] . 'There is a tracking number available for your shipment - ' . $data_from_shiphawk['tracking_number']
|
|
|
|
|
|
|
|
|
|
|
35 |
$shipment->addComment($comment);
|
36 |
if($updates_tracking_url) {
|
37 |
$shipment->sendUpdateEmail(true, $comment);
|
38 |
}
|
39 |
}
|
40 |
|
41 |
-
//$shipment->addComment(implode(',', $data_from_shiphawk));
|
42 |
|
43 |
$shipment->save();
|
44 |
}catch (Mage_Core_Exception $e) {
|
45 |
-
Mage::logException($e
|
46 |
} catch (Exception $e) {
|
47 |
-
Mage::logException($e
|
48 |
}
|
49 |
|
50 |
}
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
/* suggest items type in product page */
|
54 |
public function searchAction() {
|
55 |
|
@@ -58,7 +101,8 @@ class Shiphawk_Shipping_IndexController extends Mage_Core_Controller_Front_Actio
|
|
58 |
$api_key = Mage::helper('shiphawk_shipping')->getApiKey();
|
59 |
$api_url = Mage::helper('shiphawk_shipping')->getApiUrl();
|
60 |
|
61 |
-
$url_api = $api_url . 'items/search
|
|
|
62 |
$curl = curl_init();
|
63 |
|
64 |
curl_setopt_array($curl, array(
|
@@ -69,17 +113,21 @@ class Shiphawk_Shipping_IndexController extends Mage_Core_Controller_Front_Actio
|
|
69 |
|
70 |
$resp = curl_exec($curl);
|
71 |
$arr_res = json_decode($resp);
|
|
|
72 |
$responce_array = array();
|
73 |
$responce = array();
|
74 |
|
75 |
-
|
76 |
|
77 |
-
|
|
|
|
|
78 |
$responce_html = '';
|
79 |
$responce['shiphawk_error'] = $arr_res->error;
|
|
|
80 |
}else{
|
81 |
foreach ((array) $arr_res as $el) {
|
82 |
-
$responce_array[$el->id] = $el->name.' ('.$el->
|
83 |
}
|
84 |
|
85 |
$responce_html="<ul>";
|
@@ -95,4 +143,68 @@ class Shiphawk_Shipping_IndexController extends Mage_Core_Controller_Front_Actio
|
|
95 |
|
96 |
$this->getResponse()->setBody( json_encode($responce) );
|
97 |
}
|
98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
{
|
4 |
public function trackingAction() {
|
5 |
|
|
|
6 |
$api_key_from_url = $this->getRequest()->getParam('api_key');
|
7 |
$data_from_shiphawk = json_decode(file_get_contents('php://input'));
|
8 |
$api_key = Mage::helper('shiphawk_shipping')->getApiKey();
|
9 |
|
10 |
//curl -X POST -H Content-Type:application/json -d '{"event":"shipment.status_update","status":"in_transit","updated_at":"2015-01-14T10:43:16.702-08:00","shipment_id":1010226}' http://shiphawk.devigor.wdgtest.com/index.php/shiphawk/index/tracking?api_key=3331b35952ec7d99338a1cc5c496b55c
|
11 |
+
//curl -X POST -H Content-Type:application/json -d '{"event":"shipment.status_update","status":"in_transit","updated_at":"2015-01-14T10:43:16.702-08:00","shipment_id":1015967}' http://shiphawk.devigor.wdgtest.com/index.php/shiphawk/index/tracking?api_key=e1919f54fb93f63866f06049d6d45751
|
12 |
|
13 |
+
$helper = Mage::helper('shiphawk_shipping');
|
14 |
if($api_key_from_url == $api_key) {
|
15 |
try {
|
16 |
+
$data_from_shiphawk = (array) $data_from_shiphawk;
|
17 |
+
$track_number = $data_from_shiphawk['shipment_id'];
|
18 |
$shipment_track = Mage::getResourceModel('sales/order_shipment_track_collection')->addAttributeToFilter('track_number', $track_number)->getFirstItem();
|
19 |
+
|
20 |
$shipment = Mage::getModel('sales/order_shipment')->load($shipment_track->getParentId());
|
21 |
|
22 |
+
$helper->shlog($data_from_shiphawk, 'shiphawk-tracking.log');
|
23 |
|
24 |
$shipment_status_updates = Mage::getStoreConfig('carriers/shiphawk_shipping/shipment_status_updates');
|
25 |
$updates_tracking_url = Mage::getStoreConfig('carriers/shiphawk_shipping/updates_tracking_url');
|
26 |
$comment = '';
|
27 |
|
28 |
+
$crated_time = $this->convertDateTome($data_from_shiphawk['updated_at']);
|
29 |
+
|
30 |
if($data_from_shiphawk['event'] == 'shipment.status_update') {
|
31 |
+
switch ($data_from_shiphawk['status']) {
|
32 |
+
case 'in_transit':
|
33 |
+
$comment = "Shipment status changed to In Transit (" . $crated_time['date'] . " at " . $crated_time['time'] . "). Your shipment is with the carrier and is in transit.";
|
34 |
+
break;
|
35 |
+
case 'confirmed':
|
36 |
+
$comment = "Shipment status changed to Confirmed (" . $crated_time['date'] . " at " . $crated_time['time'] . "). Your shipment has been successfully confirmed.";
|
37 |
+
break;
|
38 |
+
case 'scheduled_for_pickup':
|
39 |
+
$comment = "Shipment status changed to Scheduled (" . $crated_time['date'] . " at " . $crated_time['time'] . "). Your shipment has been scheduled for pickup.";
|
40 |
+
break;
|
41 |
+
case 'agent_prep':
|
42 |
+
$comment = "Shipment status changed to Agent Prep (" . $crated_time['date'] . " at " . $crated_time['time'] . "). Your shipment is now being professionally prepared for carrier pickup.";
|
43 |
+
break;
|
44 |
+
case 'delivered':
|
45 |
+
$comment = "Shipment status changed to Delivered (" . $crated_time['date'] . " at " . $crated_time['time'] . "). Your shipment has been delivered!";
|
46 |
+
break;
|
47 |
+
case 'cancelled':
|
48 |
+
$comment = "Shipment status changed to Cancelled (" . $crated_time['date'] . " at " . $crated_time['time'] . "). Your shipment has been cancelled successfully.";
|
49 |
+
break;
|
50 |
+
default:
|
51 |
+
$comment = "Status was updated to " . $data_from_shiphawk['status'] . " ". $crated_time['date'] . " at " . $crated_time['time'];
|
52 |
+
|
53 |
+
}
|
54 |
+
|
55 |
$shipment->addComment($comment);
|
56 |
if($shipment_status_updates) {
|
57 |
$shipment->sendUpdateEmail(true, $comment);
|
59 |
}
|
60 |
|
61 |
if($data_from_shiphawk['event'] == 'shipment.tracking_update') {
|
62 |
+
$comment = $data_from_shiphawk['updated_at'] . 'There is a tracking number available for your shipment - ' . $data_from_shiphawk['tracking_number'];
|
63 |
+
if ($data_from_shiphawk['tracking_url']) {
|
64 |
+
$comment .= ' <a href="' . $data_from_shiphawk['tracking_url'] . '" target="_blank">Click here to track.</a>';
|
65 |
+
}
|
66 |
+
|
67 |
+
|
68 |
$shipment->addComment($comment);
|
69 |
if($updates_tracking_url) {
|
70 |
$shipment->sendUpdateEmail(true, $comment);
|
71 |
}
|
72 |
}
|
73 |
|
|
|
74 |
|
75 |
$shipment->save();
|
76 |
}catch (Mage_Core_Exception $e) {
|
77 |
+
Mage::logException($e);
|
78 |
} catch (Exception $e) {
|
79 |
+
Mage::logException($e);
|
80 |
}
|
81 |
|
82 |
}
|
83 |
}
|
84 |
|
85 |
+
public function convertDateTome ($date_time) {
|
86 |
+
///2015-04-01T15:57:42Z
|
87 |
+
$result = array();
|
88 |
+
$t = explode('T', $date_time);
|
89 |
+
$result['date'] = date("m/d/y", strtotime($t[0]));
|
90 |
+
|
91 |
+
$result['time'] = date("g:i a", strtotime(substr($t[1], 0, -1)));
|
92 |
+
|
93 |
+
return $result;
|
94 |
+
}
|
95 |
+
|
96 |
/* suggest items type in product page */
|
97 |
public function searchAction() {
|
98 |
|
101 |
$api_key = Mage::helper('shiphawk_shipping')->getApiKey();
|
102 |
$api_url = Mage::helper('shiphawk_shipping')->getApiUrl();
|
103 |
|
104 |
+
$url_api = $api_url . 'items/search?q='.$search_tag.'&api_key='.$api_key;
|
105 |
+
|
106 |
$curl = curl_init();
|
107 |
|
108 |
curl_setopt_array($curl, array(
|
113 |
|
114 |
$resp = curl_exec($curl);
|
115 |
$arr_res = json_decode($resp);
|
116 |
+
|
117 |
$responce_array = array();
|
118 |
$responce = array();
|
119 |
|
120 |
+
$helper = Mage::helper('shiphawk_shipping');
|
121 |
|
122 |
+
if(is_object($arr_res)) {
|
123 |
+
if(($arr_res->error)) {
|
124 |
+
$helper->shlog($arr_res->error);
|
125 |
$responce_html = '';
|
126 |
$responce['shiphawk_error'] = $arr_res->error;
|
127 |
+
}
|
128 |
}else{
|
129 |
foreach ((array) $arr_res as $el) {
|
130 |
+
$responce_array[$el->id] = $el->name.' ('.$el->category_name. ' - ' . $el->subcategory->name . ')';
|
131 |
}
|
132 |
|
133 |
$responce_html="<ul>";
|
143 |
|
144 |
$this->getResponse()->setBody( json_encode($responce) );
|
145 |
}
|
146 |
+
|
147 |
+
public function originsAction() {
|
148 |
+
$origin_id = trim(strip_tags($this->getRequest()->getPost('origin_id')));
|
149 |
+
|
150 |
+
$is_mass_action = $this->getRequest()->getPost('is_mass_action');
|
151 |
+
|
152 |
+
$origins_collection = $collection = Mage::getModel('shiphawk_shipping/origins')->getCollection();
|
153 |
+
|
154 |
+
$responce = '<select name="product[shiphawk_shipping_origins]" id="shiphawk_shipping_origins">';
|
155 |
+
|
156 |
+
if($is_mass_action == 1) {
|
157 |
+
$responce = '<select name="attributes[shiphawk_shipping_origins]" id="shiphawk_shipping_origins" disabled>';
|
158 |
+
}
|
159 |
+
|
160 |
+
$responce .= '<option value="">Primary origin</option>';
|
161 |
+
|
162 |
+
foreach($origins_collection as $origin) {
|
163 |
+
if ($origin_id != $origin->getId()) {
|
164 |
+
$responce .= '<option value="'.$origin->getId().'">'.$origin->getShiphawkOriginTitle(). '</option>';
|
165 |
+
}else{
|
166 |
+
$responce .= '<option selected value="'.$origin->getId().'">'.$origin->getShiphawkOriginTitle(). '</option>';
|
167 |
+
}
|
168 |
+
}
|
169 |
+
|
170 |
+
$responce .='</select>';
|
171 |
+
|
172 |
+
$this->getResponse()->setBody( json_encode($responce) );
|
173 |
+
}
|
174 |
+
|
175 |
+
public function getbolAction() {
|
176 |
+
|
177 |
+
$shipments_id = $this->getRequest()->getPost('shipments_id');
|
178 |
+
|
179 |
+
$responce_BOL = Mage::helper('shiphawk_shipping')->getBOLurl($shipments_id);
|
180 |
+
|
181 |
+
$responce = array();
|
182 |
+
|
183 |
+
if (property_exists($responce_BOL, 'url')) {
|
184 |
+
|
185 |
+
$path_to_save_bol_pdf = Mage::getBaseDir('media'). DS .'shiphawk'. DS .'bol';
|
186 |
+
$BOLpdf = $path_to_save_bol_pdf . DS . $shipments_id . '.pdf';
|
187 |
+
|
188 |
+
if (file_get_contents($BOLpdf)) {
|
189 |
+
$responce['bol_url'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . 'media' . DS . 'shiphawk'. DS .'bol' . DS . $shipments_id . '.pdf';
|
190 |
+
$this->getResponse()->setBody( json_encode($responce) );
|
191 |
+
}else{
|
192 |
+
|
193 |
+
file_put_contents($BOLpdf, file_get_contents($responce_BOL->url));
|
194 |
+
|
195 |
+
$responce['bol_url'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . 'media' . DS . 'shiphawk'. DS .'bol' . DS . $shipments_id . '.pdf';
|
196 |
+
|
197 |
+
$this->getResponse()->setBody( json_encode($responce) );
|
198 |
+
}
|
199 |
+
|
200 |
+
}else{
|
201 |
+
if (property_exists($responce_BOL, 'error')){
|
202 |
+
$responce['shiphawk_error'] = $responce_BOL->error;
|
203 |
+
}
|
204 |
+
|
205 |
+
$this->getResponse()->setBody( json_encode($responce) );
|
206 |
+
|
207 |
+
}
|
208 |
+
|
209 |
+
}
|
210 |
+
}
|
app/code/community/Shiphawk/Shipping/etc/adminhtml.xml
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<menu>
|
4 |
+
<shiphawk_shipping translate="title" module="shiphawk_shipping">
|
5 |
+
<title>Shiphawk Shipping Origins</title>
|
6 |
+
<sort_order>55</sort_order>
|
7 |
+
<children>
|
8 |
+
<origins module="shiphawk_shipping">
|
9 |
+
<title>Manage Shipping Origins</title>
|
10 |
+
<sort_order>30</sort_order>
|
11 |
+
<action>adminhtml/origins</action>
|
12 |
+
</origins>
|
13 |
+
</children>
|
14 |
+
</shiphawk_shipping>
|
15 |
+
</menu>
|
16 |
+
</config>
|
app/code/community/Shiphawk/Shipping/etc/config.xml
CHANGED
@@ -2,14 +2,23 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Shiphawk_Shipping>
|
5 |
-
<version>1.
|
6 |
</Shiphawk_Shipping>
|
7 |
</modules>
|
8 |
<global>
|
9 |
<models>
|
10 |
<shiphawk_shipping>
|
11 |
<class>Shiphawk_Shipping_Model</class>
|
|
|
12 |
</shiphawk_shipping>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
</models>
|
14 |
<blocks>
|
15 |
<shiphawk_shipping>
|
@@ -21,6 +30,11 @@
|
|
21 |
<sales_order_shipment_view>Shiphawk_Shipping_Block_Adminhtml_Sales_Order_Shipment_View</sales_order_shipment_view>
|
22 |
</rewrite>
|
23 |
</adminhtml>
|
|
|
|
|
|
|
|
|
|
|
24 |
</blocks>
|
25 |
<resources>
|
26 |
<shiphawk_setup>
|
@@ -38,15 +52,6 @@
|
|
38 |
</shiphawk_shipping>
|
39 |
</helpers>
|
40 |
<events>
|
41 |
-
<admin_system_config_changed_section_carriers>
|
42 |
-
<observers>
|
43 |
-
<shiphawk_shipping_config_save>
|
44 |
-
<type>singleton</type>
|
45 |
-
<class>shiphawk_shipping/observer</class>
|
46 |
-
<method>configSaveAfter</method>
|
47 |
-
</shiphawk_shipping_config_save>
|
48 |
-
</observers>
|
49 |
-
</admin_system_config_changed_section_carriers>
|
50 |
<sales_order_place_after>
|
51 |
<observers>
|
52 |
<shiphawk_shipping_order_place>
|
@@ -56,19 +61,90 @@
|
|
56 |
</shiphawk_shipping_order_place>
|
57 |
</observers>
|
58 |
</sales_order_place_after>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
</events>
|
60 |
<fieldsets>
|
61 |
<sales_convert_quote>
|
62 |
<shiphawk_api_id>
|
63 |
<to_order>*</to_order>
|
64 |
</shiphawk_api_id>
|
|
|
|
|
|
|
65 |
</sales_convert_quote>
|
|
|
|
|
|
|
|
|
|
|
66 |
<sales_convert_quote_item>
|
67 |
<shiphawk_api_id>
|
68 |
<to_order_item>*</to_order_item>
|
69 |
</shiphawk_api_id>
|
70 |
</sales_convert_quote_item>
|
71 |
</fieldsets>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
</global>
|
73 |
<frontend>
|
74 |
<routers>
|
@@ -80,6 +156,13 @@
|
|
80 |
</args>
|
81 |
</Shiphawk_Shipping>
|
82 |
</routers>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
</frontend>
|
84 |
<adminhtml>
|
85 |
<layout>
|
@@ -89,8 +172,28 @@
|
|
89 |
</shiphawk_shipping>
|
90 |
</updates>
|
91 |
</layout>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
</adminhtml>
|
93 |
-
|
94 |
<routers>
|
95 |
<adminhtml>
|
96 |
<args>
|
@@ -100,7 +203,7 @@
|
|
100 |
</args>
|
101 |
</adminhtml>
|
102 |
</routers>
|
103 |
-
</admin
|
104 |
<admin>
|
105 |
<routers>
|
106 |
<shiphawk_shipping>
|
@@ -116,14 +219,18 @@
|
|
116 |
<carriers>
|
117 |
<shiphawk_shipping>
|
118 |
<active>1</active>
|
|
|
119 |
<updates_tracking_url>0</updates_tracking_url>
|
120 |
<shipment_status_updates>0</shipment_status_updates>
|
|
|
121 |
<sort_order>10</sort_order>
|
122 |
<model>shiphawk_shipping/carrier</model>
|
123 |
<item_is_packed>1</item_is_packed>
|
124 |
<sort_order>10</sort_order>
|
125 |
<sallowspecific>1</sallowspecific>
|
126 |
<gateway_url>https://shiphawk.com/api/v1/</gateway_url>
|
|
|
|
|
127 |
</shiphawk_shipping>
|
128 |
</carriers>
|
129 |
</default>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Shiphawk_Shipping>
|
5 |
+
<version>1.1.9</version>
|
6 |
</Shiphawk_Shipping>
|
7 |
</modules>
|
8 |
<global>
|
9 |
<models>
|
10 |
<shiphawk_shipping>
|
11 |
<class>Shiphawk_Shipping_Model</class>
|
12 |
+
<resourceModel>shiphawk_resource</resourceModel>
|
13 |
</shiphawk_shipping>
|
14 |
+
<shiphawk_resource>
|
15 |
+
<class>Shiphawk_Shipping_Model_Resource</class>
|
16 |
+
<entities>
|
17 |
+
<origins>
|
18 |
+
<table>shiphawk_origins</table>
|
19 |
+
</origins>
|
20 |
+
</entities>
|
21 |
+
</shiphawk_resource>
|
22 |
</models>
|
23 |
<blocks>
|
24 |
<shiphawk_shipping>
|
30 |
<sales_order_shipment_view>Shiphawk_Shipping_Block_Adminhtml_Sales_Order_Shipment_View</sales_order_shipment_view>
|
31 |
</rewrite>
|
32 |
</adminhtml>
|
33 |
+
<shipping>
|
34 |
+
<rewrite>
|
35 |
+
<tracking_popup>Shiphawk_Shipping_Block_Shipping_Tracking_Popup</tracking_popup>
|
36 |
+
</rewrite>
|
37 |
+
</shipping>
|
38 |
</blocks>
|
39 |
<resources>
|
40 |
<shiphawk_setup>
|
52 |
</shiphawk_shipping>
|
53 |
</helpers>
|
54 |
<events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
<sales_order_place_after>
|
56 |
<observers>
|
57 |
<shiphawk_shipping_order_place>
|
61 |
</shiphawk_shipping_order_place>
|
62 |
</observers>
|
63 |
</sales_order_place_after>
|
64 |
+
<sales_quote_address_collect_totals_after>
|
65 |
+
<observers>
|
66 |
+
<shiphawk_recalculation_totals>
|
67 |
+
<type>singleton</type>
|
68 |
+
<class>shiphawk_shipping/observer</class>
|
69 |
+
<method>recalculationTotals</method>
|
70 |
+
</shiphawk_recalculation_totals>
|
71 |
+
</observers>
|
72 |
+
</sales_quote_address_collect_totals_after>
|
73 |
+
<checkout_controller_onepage_save_shipping_method>
|
74 |
+
<observers>
|
75 |
+
<shiphawk_onepage_save_shipping_method>
|
76 |
+
<type>singleton</type>
|
77 |
+
<class>shiphawk_shipping/observer</class>
|
78 |
+
<method>setAccessories</method>
|
79 |
+
</shiphawk_onepage_save_shipping_method>
|
80 |
+
</observers>
|
81 |
+
</checkout_controller_onepage_save_shipping_method>
|
82 |
+
<checkout_type_onepage_save_order>
|
83 |
+
<observers>
|
84 |
+
<shiphawk_recalculation_totals>
|
85 |
+
<type>singleton</type>
|
86 |
+
<class>shiphawk_shipping/observer</class>
|
87 |
+
<method>saveAccessoriesInOrder</method>
|
88 |
+
</shiphawk_recalculation_totals>
|
89 |
+
</observers>
|
90 |
+
</checkout_type_onepage_save_order>
|
91 |
+
<sales_quote_collect_totals_after>
|
92 |
+
<observers>
|
93 |
+
<show_shiphawk_rate_error>
|
94 |
+
<type>singleton</type>
|
95 |
+
<class>shiphawk_shipping/observer</class>
|
96 |
+
<method>showShiphawkRateError</method>
|
97 |
+
</show_shiphawk_rate_error>
|
98 |
+
</observers>
|
99 |
+
</sales_quote_collect_totals_after>
|
100 |
+
<checkout_controller_onepage_save_shipping_method>
|
101 |
+
<observers>
|
102 |
+
<show_shiphawk_rate_error_controller>
|
103 |
+
<type>singleton</type>
|
104 |
+
<class>shiphawk_shipping/observer</class>
|
105 |
+
<method>showShiphawkRateError</method>
|
106 |
+
</show_shiphawk_rate_error_controller>
|
107 |
+
</observers>
|
108 |
+
</checkout_controller_onepage_save_shipping_method>
|
109 |
+
<sales_quote_address_collect_totals_after>
|
110 |
+
<observers>
|
111 |
+
<shiphawk_addaccessries_totals>
|
112 |
+
<type>singleton</type>
|
113 |
+
<class>shiphawk_shipping/observer</class>
|
114 |
+
<method>addAccessoriesToTotals</method>
|
115 |
+
</shiphawk_addaccessries_totals>
|
116 |
+
</observers>
|
117 |
+
</sales_quote_address_collect_totals_after>
|
118 |
</events>
|
119 |
<fieldsets>
|
120 |
<sales_convert_quote>
|
121 |
<shiphawk_api_id>
|
122 |
<to_order>*</to_order>
|
123 |
</shiphawk_api_id>
|
124 |
+
<shiphawk_shipping_accessories>
|
125 |
+
<to_order>*</to_order>
|
126 |
+
</shiphawk_shipping_accessories>
|
127 |
</sales_convert_quote>
|
128 |
+
<sales_convert_order>
|
129 |
+
<shiphawk_shipping_accessories>
|
130 |
+
<to_order>*</to_order>
|
131 |
+
</shiphawk_shipping_accessories>
|
132 |
+
</sales_convert_order>
|
133 |
<sales_convert_quote_item>
|
134 |
<shiphawk_api_id>
|
135 |
<to_order_item>*</to_order_item>
|
136 |
</shiphawk_api_id>
|
137 |
</sales_convert_quote_item>
|
138 |
</fieldsets>
|
139 |
+
<template>
|
140 |
+
<email>
|
141 |
+
<shiphawk_error_email module="shiphawk_shipping">
|
142 |
+
<label>ShipHawk email template</label>
|
143 |
+
<file>shiphawk_error_email.html</file>
|
144 |
+
<type>html</type>
|
145 |
+
</shiphawk_error_email>
|
146 |
+
</email>
|
147 |
+
</template>
|
148 |
</global>
|
149 |
<frontend>
|
150 |
<routers>
|
156 |
</args>
|
157 |
</Shiphawk_Shipping>
|
158 |
</routers>
|
159 |
+
<layout>
|
160 |
+
<updates>
|
161 |
+
<shiphawk_shipping>
|
162 |
+
<file>shiphawk.xml</file>
|
163 |
+
</shiphawk_shipping>
|
164 |
+
</updates>
|
165 |
+
</layout>
|
166 |
</frontend>
|
167 |
<adminhtml>
|
168 |
<layout>
|
172 |
</shiphawk_shipping>
|
173 |
</updates>
|
174 |
</layout>
|
175 |
+
<events>
|
176 |
+
<core_block_abstract_to_html_before>
|
177 |
+
<observers>
|
178 |
+
<shiphawk_change_create_order_sipping_method_template>
|
179 |
+
<type>singleton</type>
|
180 |
+
<class>shiphawk_shipping/observer</class>
|
181 |
+
<method>changeSippingMethodTemplate</method>
|
182 |
+
</shiphawk_change_create_order_sipping_method_template>
|
183 |
+
</observers>
|
184 |
+
</core_block_abstract_to_html_before>
|
185 |
+
<sales_order_place_after>
|
186 |
+
<observers>
|
187 |
+
<shiphawk_override_shipping_cost>
|
188 |
+
<type>singleton</type>
|
189 |
+
<class>shiphawk_shipping/observer</class>
|
190 |
+
<method>overrideShippingCost</method>
|
191 |
+
</shiphawk_override_shipping_cost>
|
192 |
+
</observers>
|
193 |
+
</sales_order_place_after>
|
194 |
+
</events>
|
195 |
</adminhtml>
|
196 |
+
<admin>
|
197 |
<routers>
|
198 |
<adminhtml>
|
199 |
<args>
|
203 |
</args>
|
204 |
</adminhtml>
|
205 |
</routers>
|
206 |
+
</admin>
|
207 |
<admin>
|
208 |
<routers>
|
209 |
<shiphawk_shipping>
|
219 |
<carriers>
|
220 |
<shiphawk_shipping>
|
221 |
<active>1</active>
|
222 |
+
<hide_on_frontend>0</hide_on_frontend>
|
223 |
<updates_tracking_url>0</updates_tracking_url>
|
224 |
<shipment_status_updates>0</shipment_status_updates>
|
225 |
+
<enable_log>1</enable_log>
|
226 |
<sort_order>10</sort_order>
|
227 |
<model>shiphawk_shipping/carrier</model>
|
228 |
<item_is_packed>1</item_is_packed>
|
229 |
<sort_order>10</sort_order>
|
230 |
<sallowspecific>1</sallowspecific>
|
231 |
<gateway_url>https://shiphawk.com/api/v1/</gateway_url>
|
232 |
+
<charge_customer_for_packing>1</charge_customer_for_packing>
|
233 |
+
<opt_to_self_pack>0</opt_to_self_pack>
|
234 |
</shiphawk_shipping>
|
235 |
</carriers>
|
236 |
</default>
|
app/code/community/Shiphawk/Shipping/etc/system.xml
CHANGED
@@ -10,40 +10,86 @@
|
|
10 |
<show_in_website>0</show_in_website>
|
11 |
<show_in_store>0</show_in_store>
|
12 |
<fields>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
<active translate="label">
|
14 |
<label>Enabled</label>
|
15 |
<frontend_type>select</frontend_type>
|
16 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
17 |
<sort_order>10</sort_order>
|
18 |
<show_in_default>1</show_in_default>
|
19 |
-
<show_in_website>
|
20 |
-
<show_in_store>
|
21 |
</active>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
<api_key translate="label">
|
23 |
<label>Api Key</label>
|
24 |
<frontend_type>text</frontend_type>
|
25 |
<sort_order>20</sort_order>
|
26 |
<show_in_default>1</show_in_default>
|
27 |
-
<show_in_website>
|
28 |
-
<show_in_store>
|
29 |
</api_key>
|
30 |
-
<!--<gateway_url translate="label">
|
31 |
-
<label>Gateway URL</label>
|
32 |
-
<frontend_type>text</frontend_type>
|
33 |
-
<sort_order>21</sort_order>
|
34 |
-
<comment>Use https://shiphawk.com/api/v1/ for production. Use https://sandbox.shiphawk.com/api/v1/ for test mode.</comment>
|
35 |
-
<show_in_default>1</show_in_default>
|
36 |
-
<show_in_website>0</show_in_website>
|
37 |
-
<show_in_store>0</show_in_store>
|
38 |
-
</gateway_url>-->
|
39 |
<gateway_url translate="label">
|
40 |
<label>Gateway Mode</label>
|
41 |
<frontend_type>select</frontend_type>
|
42 |
<source_model>shiphawk_shipping/source_gateway</source_model>
|
43 |
<sort_order>21</sort_order>
|
44 |
<show_in_default>1</show_in_default>
|
45 |
-
<show_in_website>
|
46 |
-
<show_in_store>
|
47 |
</gateway_url>
|
48 |
<rate_filter translate="label">
|
49 |
<label>Rate Filter</label>
|
@@ -51,35 +97,100 @@
|
|
51 |
<source_model>shiphawk_shipping/source_ratefilter</source_model>
|
52 |
<sort_order>22</sort_order>
|
53 |
<show_in_default>1</show_in_default>
|
54 |
-
<show_in_website>
|
55 |
-
<show_in_store>
|
56 |
</rate_filter>
|
57 |
-
|
58 |
-
<label>
|
59 |
<frontend_type>select</frontend_type>
|
60 |
-
<source_model>
|
61 |
-
<sort_order>
|
62 |
<show_in_default>1</show_in_default>
|
63 |
-
<show_in_website>
|
64 |
-
<show_in_store>
|
65 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
<item_is_packed translate="label">
|
67 |
<label>Default packing setting</label>
|
68 |
<frontend_type>select</frontend_type>
|
69 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
70 |
<sort_order>40</sort_order>
|
71 |
<show_in_default>1</show_in_default>
|
72 |
-
<show_in_website>
|
73 |
-
<show_in_store>
|
74 |
</item_is_packed>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
<book_shipment translate="label">
|
76 |
<label>Manual book shipment</label>
|
77 |
<frontend_type>select</frontend_type>
|
78 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
79 |
<sort_order>61</sort_order>
|
80 |
<show_in_default>1</show_in_default>
|
81 |
-
<show_in_website>
|
82 |
-
<show_in_store>
|
83 |
</book_shipment>
|
84 |
<order_received translate="label">
|
85 |
<label>Send order receipts to:</label>
|
@@ -87,27 +198,35 @@
|
|
87 |
<source_model>shiphawk_shipping/source_received</source_model>
|
88 |
<sort_order>62</sort_order>
|
89 |
<show_in_default>1</show_in_default>
|
90 |
-
<show_in_website>
|
91 |
-
<show_in_store>
|
92 |
</order_received>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
<shipment_status_updates translate="label">
|
94 |
<label>Email status updates to customer?</label>
|
95 |
<frontend_type>select</frontend_type>
|
96 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
97 |
<comment>There can be many updates for each shipment</comment>
|
98 |
-
<sort_order>
|
99 |
<show_in_default>1</show_in_default>
|
100 |
-
<show_in_website>
|
101 |
-
<show_in_store>
|
102 |
</shipment_status_updates>
|
103 |
<updates_tracking_url translate="label">
|
104 |
<label>Email tracking URL to customer?</label>
|
105 |
<frontend_type>select</frontend_type>
|
106 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
107 |
-
<sort_order>
|
108 |
<show_in_default>1</show_in_default>
|
109 |
-
<show_in_website>
|
110 |
-
<show_in_store>
|
111 |
</updates_tracking_url>
|
112 |
<sallowspecific translate="label">
|
113 |
<label>Available for specific countries only</label>
|
@@ -116,8 +235,8 @@
|
|
116 |
<source_model>adminhtml/system_config_source_shipping_allspecificcountries</source_model>
|
117 |
<sort_order>70</sort_order>
|
118 |
<show_in_default>1</show_in_default>
|
119 |
-
<show_in_website>
|
120 |
-
<show_in_store>
|
121 |
</sallowspecific>
|
122 |
<specificcountry translate="label">
|
123 |
<label>Ship to Specific Countries</label>
|
@@ -125,8 +244,8 @@
|
|
125 |
<sort_order>71</sort_order>
|
126 |
<source_model>adminhtml/system_config_source_country</source_model>
|
127 |
<show_in_default>1</show_in_default>
|
128 |
-
<show_in_website>
|
129 |
-
<show_in_store>
|
130 |
<can_be_empty>1</can_be_empty>
|
131 |
</specificcountry>
|
132 |
<origin_first_name translate="label">
|
@@ -134,65 +253,57 @@
|
|
134 |
<frontend_type>text</frontend_type>
|
135 |
<sort_order>80</sort_order>
|
136 |
<show_in_default>1</show_in_default>
|
137 |
-
<show_in_website>
|
138 |
-
<show_in_store>
|
139 |
</origin_first_name>
|
140 |
<origin_last_name translate="label">
|
141 |
<label>Origin Last Name</label>
|
142 |
<frontend_type>text</frontend_type>
|
143 |
<sort_order>81</sort_order>
|
144 |
<show_in_default>1</show_in_default>
|
145 |
-
<show_in_website>
|
146 |
-
<show_in_store>
|
147 |
</origin_last_name>
|
148 |
<origin_address translate="label">
|
149 |
<label>Origin Address</label>
|
150 |
<frontend_type>text</frontend_type>
|
151 |
<sort_order>82</sort_order>
|
152 |
<show_in_default>1</show_in_default>
|
153 |
-
<show_in_website>
|
154 |
-
<show_in_store>
|
155 |
</origin_address>
|
156 |
<origin_address2 translate="label">
|
157 |
<label>Origin Address 2</label>
|
158 |
<frontend_type>text</frontend_type>
|
159 |
<sort_order>83</sort_order>
|
160 |
<show_in_default>1</show_in_default>
|
161 |
-
<show_in_website>
|
162 |
-
<show_in_store>
|
163 |
</origin_address2>
|
164 |
<origin_city translate="label">
|
165 |
<label>Origin City</label>
|
166 |
<frontend_type>text</frontend_type>
|
167 |
<sort_order>84</sort_order>
|
168 |
<show_in_default>1</show_in_default>
|
169 |
-
<show_in_website>
|
170 |
-
<show_in_store>
|
171 |
</origin_city>
|
172 |
<origin_state translate="label">
|
173 |
<label>Origin State</label>
|
174 |
<frontend_type>text</frontend_type>
|
175 |
<comment>2 letter abbrev.</comment>
|
176 |
-
<sort_order>84</sort_order>
|
177 |
-
<show_in_default>1</show_in_default>
|
178 |
-
<show_in_website>0</show_in_website>
|
179 |
-
<show_in_store>0</show_in_store>
|
180 |
-
</origin_state>
|
181 |
-
<origin_city translate="label">
|
182 |
-
<label>Origin City</label>
|
183 |
-
<frontend_type>text</frontend_type>
|
184 |
<sort_order>85</sort_order>
|
185 |
<show_in_default>1</show_in_default>
|
186 |
-
<show_in_website>
|
187 |
-
<show_in_store>
|
188 |
-
</
|
189 |
<default_origin translate="label">
|
190 |
<label>Default Origin Zipcode </label>
|
191 |
<frontend_type>text</frontend_type>
|
192 |
<sort_order>86</sort_order>
|
193 |
<show_in_default>1</show_in_default>
|
194 |
-
<show_in_website>
|
195 |
-
<show_in_store>
|
196 |
</default_origin>
|
197 |
<origin_location_type translate="label">
|
198 |
<label>Origin Location Type</label>
|
@@ -200,25 +311,46 @@
|
|
200 |
<source_model>shiphawk_shipping/source_location</source_model>
|
201 |
<sort_order>87</sort_order>
|
202 |
<show_in_default>1</show_in_default>
|
203 |
-
<show_in_website>
|
204 |
-
<show_in_store>
|
205 |
</origin_location_type>
|
206 |
<origin_phone translate="label">
|
207 |
<label>Origin Phone</label>
|
208 |
<frontend_type>text</frontend_type>
|
209 |
<sort_order>88</sort_order>
|
210 |
<show_in_default>1</show_in_default>
|
211 |
-
<show_in_website>
|
212 |
-
<show_in_store>
|
213 |
</origin_phone>
|
214 |
<origin_email translate="label">
|
215 |
<label>Origin Email </label>
|
216 |
<frontend_type>text</frontend_type>
|
217 |
<sort_order>89</sort_order>
|
218 |
<show_in_default>1</show_in_default>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
<show_in_website>0</show_in_website>
|
220 |
<show_in_store>0</show_in_store>
|
221 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
</fields>
|
223 |
</shiphawk_shipping>
|
224 |
</groups>
|
10 |
<show_in_website>0</show_in_website>
|
11 |
<show_in_store>0</show_in_store>
|
12 |
<fields>
|
13 |
+
<extensions translate="label">
|
14 |
+
<label>Installed aheadWorks Extensions</label>
|
15 |
+
<frontend_type>text</frontend_type>
|
16 |
+
<frontend_model>shiphawk_shipping/version</frontend_model>
|
17 |
+
<sort_order>10</sort_order>
|
18 |
+
<show_in_default>1</show_in_default>
|
19 |
+
<show_in_website>1</show_in_website>
|
20 |
+
<show_in_store>1</show_in_store>
|
21 |
+
</extensions>
|
22 |
<active translate="label">
|
23 |
<label>Enabled</label>
|
24 |
<frontend_type>select</frontend_type>
|
25 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
26 |
<sort_order>10</sort_order>
|
27 |
<show_in_default>1</show_in_default>
|
28 |
+
<show_in_website>1</show_in_website>
|
29 |
+
<show_in_store>1</show_in_store>
|
30 |
</active>
|
31 |
+
<hide_on_frontend translate="label">
|
32 |
+
<label>Hide on frontend?</label>
|
33 |
+
<frontend_type>select</frontend_type>
|
34 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
35 |
+
<sort_order>11</sort_order>
|
36 |
+
<show_in_default>1</show_in_default>
|
37 |
+
<show_in_website>1</show_in_website>
|
38 |
+
<show_in_store>1</show_in_store>
|
39 |
+
</hide_on_frontend>
|
40 |
+
<hide_accessories_on_frontend translate="label">
|
41 |
+
<label>Accessorials: Hide on frontend?</label>
|
42 |
+
<frontend_type>select</frontend_type>
|
43 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
44 |
+
<sort_order>12</sort_order>
|
45 |
+
<show_in_default>1</show_in_default>
|
46 |
+
<show_in_website>1</show_in_website>
|
47 |
+
<show_in_store>1</show_in_store>
|
48 |
+
</hide_accessories_on_frontend>
|
49 |
+
<enable_log translate="label">
|
50 |
+
<label>Debug Logging?</label>
|
51 |
+
<frontend_type>select</frontend_type>
|
52 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
53 |
+
<sort_order>13</sort_order>
|
54 |
+
<show_in_default>1</show_in_default>
|
55 |
+
<show_in_website>1</show_in_website>
|
56 |
+
<show_in_store>1</show_in_store>
|
57 |
+
</enable_log>
|
58 |
+
<email_error_to_shiphawk translate="label">
|
59 |
+
<label>Email errors to ShipHawk?</label>
|
60 |
+
<frontend_type>select</frontend_type>
|
61 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
62 |
+
<sort_order>14</sort_order>
|
63 |
+
<show_in_default>1</show_in_default>
|
64 |
+
<show_in_website>1</show_in_website>
|
65 |
+
<show_in_store>1</show_in_store>
|
66 |
+
<depends><enable_log>1</enable_log></depends>
|
67 |
+
</email_error_to_shiphawk>
|
68 |
+
<shiphawk_error_message translate="label">
|
69 |
+
<label>Error message</label>
|
70 |
+
<comment>Error message for when a ShipHawk rate does not return</comment>
|
71 |
+
<frontend_type>text</frontend_type>
|
72 |
+
<sort_order>18</sort_order>
|
73 |
+
<show_in_default>1</show_in_default>
|
74 |
+
<show_in_website>1</show_in_website>
|
75 |
+
<show_in_store>1</show_in_store>
|
76 |
+
</shiphawk_error_message>
|
77 |
<api_key translate="label">
|
78 |
<label>Api Key</label>
|
79 |
<frontend_type>text</frontend_type>
|
80 |
<sort_order>20</sort_order>
|
81 |
<show_in_default>1</show_in_default>
|
82 |
+
<show_in_website>1</show_in_website>
|
83 |
+
<show_in_store>1</show_in_store>
|
84 |
</api_key>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
<gateway_url translate="label">
|
86 |
<label>Gateway Mode</label>
|
87 |
<frontend_type>select</frontend_type>
|
88 |
<source_model>shiphawk_shipping/source_gateway</source_model>
|
89 |
<sort_order>21</sort_order>
|
90 |
<show_in_default>1</show_in_default>
|
91 |
+
<show_in_website>1</show_in_website>
|
92 |
+
<show_in_store>1</show_in_store>
|
93 |
</gateway_url>
|
94 |
<rate_filter translate="label">
|
95 |
<label>Rate Filter</label>
|
97 |
<source_model>shiphawk_shipping/source_ratefilter</source_model>
|
98 |
<sort_order>22</sort_order>
|
99 |
<show_in_default>1</show_in_default>
|
100 |
+
<show_in_website>1</show_in_website>
|
101 |
+
<show_in_store>1</show_in_store>
|
102 |
</rate_filter>
|
103 |
+
<admin_rate_filter translate="label">
|
104 |
+
<label>Admin panel rate filter</label>
|
105 |
<frontend_type>select</frontend_type>
|
106 |
+
<source_model>shiphawk_shipping/source_adminratefilter</source_model>
|
107 |
+
<sort_order>23</sort_order>
|
108 |
<show_in_default>1</show_in_default>
|
109 |
+
<show_in_website>1</show_in_website>
|
110 |
+
<show_in_store>1</show_in_store>
|
111 |
+
</admin_rate_filter>
|
112 |
+
<discount_percentage translate="label">
|
113 |
+
<label>Markup or Discount Percentage</label>
|
114 |
+
<frontend_type>text</frontend_type>
|
115 |
+
<sort_order>24</sort_order>
|
116 |
+
<show_in_default>1</show_in_default>
|
117 |
+
<show_in_website>1</show_in_website>
|
118 |
+
<show_in_store>1</show_in_store>
|
119 |
+
<comment>possible values from -100 to 100</comment>
|
120 |
+
</discount_percentage>
|
121 |
+
<discount_fixed translate="label">
|
122 |
+
<label>Markup or Discount Flat Amount</label>
|
123 |
+
<frontend_type>text</frontend_type>
|
124 |
+
<sort_order>25</sort_order>
|
125 |
+
<show_in_default>1</show_in_default>
|
126 |
+
<show_in_website>1</show_in_website>
|
127 |
+
<show_in_store>1</show_in_store>
|
128 |
+
<comment>possible values from -∞ to ∞</comment>
|
129 |
+
</discount_fixed>
|
130 |
+
<carrier_type translate="label">
|
131 |
+
<label>Carrier Type</label>
|
132 |
+
<frontend_type>multiselect</frontend_type>
|
133 |
+
<source_model>shiphawk_shipping/source_carriertype</source_model>
|
134 |
+
<sort_order>26</sort_order>
|
135 |
+
<show_in_default>1</show_in_default>
|
136 |
+
<show_in_website>1</show_in_website>
|
137 |
+
<show_in_store>1</show_in_store>
|
138 |
+
</carrier_type>
|
139 |
+
<free_method>
|
140 |
+
<label>Free Shipping Method</label>
|
141 |
+
<frontend_type>select</frontend_type>
|
142 |
+
<source_model>shiphawk_shipping/source_freeshipping</source_model>
|
143 |
+
<sort_order>27</sort_order>
|
144 |
+
<show_in_default>1</show_in_default>
|
145 |
+
<show_in_website>1</show_in_website>
|
146 |
+
<show_in_store>1</show_in_store>
|
147 |
+
</free_method>
|
148 |
<item_is_packed translate="label">
|
149 |
<label>Default packing setting</label>
|
150 |
<frontend_type>select</frontend_type>
|
151 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
152 |
<sort_order>40</sort_order>
|
153 |
<show_in_default>1</show_in_default>
|
154 |
+
<show_in_website>1</show_in_website>
|
155 |
+
<show_in_store>1</show_in_store>
|
156 |
</item_is_packed>
|
157 |
+
<opt_to_self_pack translate="label">
|
158 |
+
<label>Opt to Self Pack</label>
|
159 |
+
<frontend_type>select</frontend_type>
|
160 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
161 |
+
<sort_order>41</sort_order>
|
162 |
+
<show_in_default>1</show_in_default>
|
163 |
+
<show_in_website>1</show_in_website>
|
164 |
+
<show_in_store>1</show_in_store>
|
165 |
+
</opt_to_self_pack>
|
166 |
+
<charge_customer_for_packing translate="label">
|
167 |
+
<label>Charge customer for packing</label>
|
168 |
+
<frontend_type>select</frontend_type>
|
169 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
170 |
+
<sort_order>42</sort_order>
|
171 |
+
<show_in_default>1</show_in_default>
|
172 |
+
<show_in_website>1</show_in_website>
|
173 |
+
<show_in_store>1</show_in_store>
|
174 |
+
<comment>This option works only when Opt to Self Pack set to Yes.</comment>
|
175 |
+
<depends><opt_to_self_pack>1</opt_to_self_pack></depends>
|
176 |
+
</charge_customer_for_packing>
|
177 |
+
<shiphawk_custom_packing_price translate="label">
|
178 |
+
<label>Custom Packing Prices?</label>
|
179 |
+
<frontend_type>select</frontend_type>
|
180 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
181 |
+
<sort_order>43</sort_order>
|
182 |
+
<show_in_default>1</show_in_default>
|
183 |
+
<show_in_website>1</show_in_website>
|
184 |
+
<show_in_store>1</show_in_store>
|
185 |
+
</shiphawk_custom_packing_price>
|
186 |
<book_shipment translate="label">
|
187 |
<label>Manual book shipment</label>
|
188 |
<frontend_type>select</frontend_type>
|
189 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
190 |
<sort_order>61</sort_order>
|
191 |
<show_in_default>1</show_in_default>
|
192 |
+
<show_in_website>1</show_in_website>
|
193 |
+
<show_in_store>1</show_in_store>
|
194 |
</book_shipment>
|
195 |
<order_received translate="label">
|
196 |
<label>Send order receipts to:</label>
|
198 |
<source_model>shiphawk_shipping/source_received</source_model>
|
199 |
<sort_order>62</sort_order>
|
200 |
<show_in_default>1</show_in_default>
|
201 |
+
<show_in_website>1</show_in_website>
|
202 |
+
<show_in_store>1</show_in_store>
|
203 |
</order_received>
|
204 |
+
<administrator_email translate="label">
|
205 |
+
<label>Administrator Email</label>
|
206 |
+
<frontend_type>text</frontend_type>
|
207 |
+
<sort_order>63</sort_order>
|
208 |
+
<show_in_default>1</show_in_default>
|
209 |
+
<show_in_website>1</show_in_website>
|
210 |
+
<show_in_store>1</show_in_store>
|
211 |
+
</administrator_email>
|
212 |
<shipment_status_updates translate="label">
|
213 |
<label>Email status updates to customer?</label>
|
214 |
<frontend_type>select</frontend_type>
|
215 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
216 |
<comment>There can be many updates for each shipment</comment>
|
217 |
+
<sort_order>64</sort_order>
|
218 |
<show_in_default>1</show_in_default>
|
219 |
+
<show_in_website>1</show_in_website>
|
220 |
+
<show_in_store>1</show_in_store>
|
221 |
</shipment_status_updates>
|
222 |
<updates_tracking_url translate="label">
|
223 |
<label>Email tracking URL to customer?</label>
|
224 |
<frontend_type>select</frontend_type>
|
225 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
226 |
+
<sort_order>65</sort_order>
|
227 |
<show_in_default>1</show_in_default>
|
228 |
+
<show_in_website>1</show_in_website>
|
229 |
+
<show_in_store>1</show_in_store>
|
230 |
</updates_tracking_url>
|
231 |
<sallowspecific translate="label">
|
232 |
<label>Available for specific countries only</label>
|
235 |
<source_model>adminhtml/system_config_source_shipping_allspecificcountries</source_model>
|
236 |
<sort_order>70</sort_order>
|
237 |
<show_in_default>1</show_in_default>
|
238 |
+
<show_in_website>1</show_in_website>
|
239 |
+
<show_in_store>1</show_in_store>
|
240 |
</sallowspecific>
|
241 |
<specificcountry translate="label">
|
242 |
<label>Ship to Specific Countries</label>
|
244 |
<sort_order>71</sort_order>
|
245 |
<source_model>adminhtml/system_config_source_country</source_model>
|
246 |
<show_in_default>1</show_in_default>
|
247 |
+
<show_in_website>1</show_in_website>
|
248 |
+
<show_in_store>1</show_in_store>
|
249 |
<can_be_empty>1</can_be_empty>
|
250 |
</specificcountry>
|
251 |
<origin_first_name translate="label">
|
253 |
<frontend_type>text</frontend_type>
|
254 |
<sort_order>80</sort_order>
|
255 |
<show_in_default>1</show_in_default>
|
256 |
+
<show_in_website>1</show_in_website>
|
257 |
+
<show_in_store>1</show_in_store>
|
258 |
</origin_first_name>
|
259 |
<origin_last_name translate="label">
|
260 |
<label>Origin Last Name</label>
|
261 |
<frontend_type>text</frontend_type>
|
262 |
<sort_order>81</sort_order>
|
263 |
<show_in_default>1</show_in_default>
|
264 |
+
<show_in_website>1</show_in_website>
|
265 |
+
<show_in_store>1</show_in_store>
|
266 |
</origin_last_name>
|
267 |
<origin_address translate="label">
|
268 |
<label>Origin Address</label>
|
269 |
<frontend_type>text</frontend_type>
|
270 |
<sort_order>82</sort_order>
|
271 |
<show_in_default>1</show_in_default>
|
272 |
+
<show_in_website>1</show_in_website>
|
273 |
+
<show_in_store>1</show_in_store>
|
274 |
</origin_address>
|
275 |
<origin_address2 translate="label">
|
276 |
<label>Origin Address 2</label>
|
277 |
<frontend_type>text</frontend_type>
|
278 |
<sort_order>83</sort_order>
|
279 |
<show_in_default>1</show_in_default>
|
280 |
+
<show_in_website>1</show_in_website>
|
281 |
+
<show_in_store>1</show_in_store>
|
282 |
</origin_address2>
|
283 |
<origin_city translate="label">
|
284 |
<label>Origin City</label>
|
285 |
<frontend_type>text</frontend_type>
|
286 |
<sort_order>84</sort_order>
|
287 |
<show_in_default>1</show_in_default>
|
288 |
+
<show_in_website>1</show_in_website>
|
289 |
+
<show_in_store>1</show_in_store>
|
290 |
</origin_city>
|
291 |
<origin_state translate="label">
|
292 |
<label>Origin State</label>
|
293 |
<frontend_type>text</frontend_type>
|
294 |
<comment>2 letter abbrev.</comment>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
<sort_order>85</sort_order>
|
296 |
<show_in_default>1</show_in_default>
|
297 |
+
<show_in_website>1</show_in_website>
|
298 |
+
<show_in_store>1</show_in_store>
|
299 |
+
</origin_state>
|
300 |
<default_origin translate="label">
|
301 |
<label>Default Origin Zipcode </label>
|
302 |
<frontend_type>text</frontend_type>
|
303 |
<sort_order>86</sort_order>
|
304 |
<show_in_default>1</show_in_default>
|
305 |
+
<show_in_website>1</show_in_website>
|
306 |
+
<show_in_store>1</show_in_store>
|
307 |
</default_origin>
|
308 |
<origin_location_type translate="label">
|
309 |
<label>Origin Location Type</label>
|
311 |
<source_model>shiphawk_shipping/source_location</source_model>
|
312 |
<sort_order>87</sort_order>
|
313 |
<show_in_default>1</show_in_default>
|
314 |
+
<show_in_website>1</show_in_website>
|
315 |
+
<show_in_store>1</show_in_store>
|
316 |
</origin_location_type>
|
317 |
<origin_phone translate="label">
|
318 |
<label>Origin Phone</label>
|
319 |
<frontend_type>text</frontend_type>
|
320 |
<sort_order>88</sort_order>
|
321 |
<show_in_default>1</show_in_default>
|
322 |
+
<show_in_website>1</show_in_website>
|
323 |
+
<show_in_store>1</show_in_store>
|
324 |
</origin_phone>
|
325 |
<origin_email translate="label">
|
326 |
<label>Origin Email </label>
|
327 |
<frontend_type>text</frontend_type>
|
328 |
<sort_order>89</sort_order>
|
329 |
<show_in_default>1</show_in_default>
|
330 |
+
<show_in_website>1</show_in_website>
|
331 |
+
<show_in_store>1</show_in_store>
|
332 |
+
</origin_email>
|
333 |
+
<file_import translate="label comment">
|
334 |
+
<label>Import Origins</label>
|
335 |
+
<comment><![CDATA[File saved in <strong><span style="color: red;">var/shiphawk/import</span></strong> folder.]]></comment>
|
336 |
+
<frontend_type>file</frontend_type>
|
337 |
+
<backend_model>adminhtml/system_config_backend_file</backend_model>
|
338 |
+
<upload_dir>var/shiphawk/import</upload_dir>
|
339 |
+
<sort_order>50</sort_order>
|
340 |
+
<show_in_default>1</show_in_default>
|
341 |
<show_in_website>0</show_in_website>
|
342 |
<show_in_store>0</show_in_store>
|
343 |
+
</file_import>
|
344 |
+
|
345 |
+
<importbutton translate="label">
|
346 |
+
<frontend_type>button</frontend_type>
|
347 |
+
<frontend_model>shiphawk_shipping/adminhtml_system_config_form_button</frontend_model>
|
348 |
+
<sort_order>60</sort_order>
|
349 |
+
<show_in_default>1</show_in_default>
|
350 |
+
<show_in_website>1</show_in_website>
|
351 |
+
<show_in_store>1</show_in_store>
|
352 |
+
<comment>Upload csv file, before start import</comment>
|
353 |
+
</importbutton>
|
354 |
</fields>
|
355 |
</shiphawk_shipping>
|
356 |
</groups>
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-install-0.1.0.php
CHANGED
@@ -8,7 +8,7 @@ $type_of_product_data = array (
|
|
8 |
'label' => 'Type of Item',
|
9 |
'visible' => true,
|
10 |
'type' => 'varchar',
|
11 |
-
|
12 |
'input' => 'text',
|
13 |
'system' => false,
|
14 |
'required' => false,
|
@@ -23,6 +23,7 @@ $shiphawk_quantity_data = array (
|
|
23 |
'label' => 'Number of items per Product',
|
24 |
'visible' => true,
|
25 |
'type' => 'int',
|
|
|
26 |
'input' => 'text',
|
27 |
'default' => 1,
|
28 |
'frontend_class' => 'validate-not-negative-number',
|
@@ -38,9 +39,9 @@ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'shiphawk_item_is_p
|
|
38 |
'backend' => 'catalog/product_attribute_backend_msrp',
|
39 |
'label' => 'Packaged?',
|
40 |
'input' => 'select',
|
41 |
-
/*'source' => 'eav/entity_attribute_source_boolean',*/
|
42 |
'source' => 'catalog/product_attribute_source_msrp_type_enabled',
|
43 |
'type' => 'varchar',
|
|
|
44 |
'visible' => true,
|
45 |
'required' => false,
|
46 |
'user_defined' => 1,
|
@@ -55,6 +56,7 @@ $length_data = array (
|
|
55 |
'label' => 'Length',
|
56 |
'visible' => true,
|
57 |
'type' => 'varchar',
|
|
|
58 |
'input' => 'text',
|
59 |
'system' => false,
|
60 |
'required' => false,
|
@@ -69,6 +71,7 @@ $width_data = array (
|
|
69 |
'label' => 'Width',
|
70 |
'visible' => true,
|
71 |
'type' => 'varchar',
|
|
|
72 |
'input' => 'text',
|
73 |
'system' => false,
|
74 |
'required' => false,
|
@@ -83,6 +86,7 @@ $height_data = array (
|
|
83 |
'label' => 'Height',
|
84 |
'visible' => true,
|
85 |
'type' => 'varchar',
|
|
|
86 |
'input' => 'text',
|
87 |
'system' => false,
|
88 |
'required' => false,
|
@@ -97,6 +101,7 @@ $item_value_data = array (
|
|
97 |
'label' => 'Item Value',
|
98 |
'visible' => true,
|
99 |
'type' => 'varchar',
|
|
|
100 |
'frontend_class' => 'validate-number',
|
101 |
'input' => 'text',
|
102 |
'system' => false,
|
@@ -113,7 +118,7 @@ $type_of_product_value = array (
|
|
113 |
'label' => 'Origin Contact:',
|
114 |
'visible' => true,
|
115 |
'type' => 'varchar',
|
116 |
-
|
117 |
'input' => 'text',
|
118 |
'system' => false,
|
119 |
'required' => false,
|
@@ -129,6 +134,7 @@ $firstname_origin_data = array (
|
|
129 |
'label' => 'Origin First Name',
|
130 |
'visible' => true,
|
131 |
'type' => 'varchar',
|
|
|
132 |
'input' => 'text',
|
133 |
'system' => false,
|
134 |
'required' => false,
|
@@ -143,6 +149,7 @@ $last_name_origin_data = array (
|
|
143 |
'label' => 'Origin Last Name',
|
144 |
'visible' => true,
|
145 |
'type' => 'varchar',
|
|
|
146 |
'input' => 'text',
|
147 |
'system' => false,
|
148 |
'required' => false,
|
@@ -157,6 +164,7 @@ $address_line_1_origin_data = array (
|
|
157 |
'label' => 'Origin Address',
|
158 |
'visible' => true,
|
159 |
'type' => 'varchar',
|
|
|
160 |
'input' => 'text',
|
161 |
'system' => false,
|
162 |
'required' => false,
|
@@ -165,12 +173,28 @@ $address_line_1_origin_data = array (
|
|
165 |
|
166 |
$installer->addAttribute('catalog_product','shiphawk_origin_addressline1',$address_line_1_origin_data);
|
167 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
$city_origin_data = array (
|
169 |
'attribute_set' => 'Default',
|
170 |
'group' => 'ShipHawk Attributes',
|
171 |
'label' => 'Origin City',
|
172 |
'visible' => true,
|
173 |
'type' => 'varchar',
|
|
|
174 |
'input' => 'text',
|
175 |
'system' => false,
|
176 |
'required' => false,
|
@@ -185,6 +209,7 @@ $state_origin_data = array (
|
|
185 |
'label' => 'State',
|
186 |
'visible' => true,
|
187 |
'type' => 'varchar',
|
|
|
188 |
'input' => 'text',
|
189 |
'system' => false,
|
190 |
'required' => false,
|
@@ -199,6 +224,7 @@ $zip_code_origin_data = array (
|
|
199 |
'label' => 'Origin Zipcode',
|
200 |
'visible' => true,
|
201 |
'type' => 'varchar',
|
|
|
202 |
'input' => 'text',
|
203 |
'system' => false,
|
204 |
'required' => false,
|
@@ -213,6 +239,7 @@ $phone_num_origin_data = array (
|
|
213 |
'label' => 'Origin Phone',
|
214 |
'visible' => true,
|
215 |
'type' => 'varchar',
|
|
|
216 |
'input' => 'text',
|
217 |
'system' => false,
|
218 |
'required' => false,
|
@@ -221,4 +248,22 @@ $phone_num_origin_data = array (
|
|
221 |
|
222 |
$installer->addAttribute('catalog_product','shiphawk_origin_phonenum',$phone_num_origin_data);
|
223 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
$installer->endSetup();
|
8 |
'label' => 'Type of Item',
|
9 |
'visible' => true,
|
10 |
'type' => 'varchar',
|
11 |
+
'apply_to' => 'simple',
|
12 |
'input' => 'text',
|
13 |
'system' => false,
|
14 |
'required' => false,
|
23 |
'label' => 'Number of items per Product',
|
24 |
'visible' => true,
|
25 |
'type' => 'int',
|
26 |
+
'apply_to' => 'simple',
|
27 |
'input' => 'text',
|
28 |
'default' => 1,
|
29 |
'frontend_class' => 'validate-not-negative-number',
|
39 |
'backend' => 'catalog/product_attribute_backend_msrp',
|
40 |
'label' => 'Packaged?',
|
41 |
'input' => 'select',
|
|
|
42 |
'source' => 'catalog/product_attribute_source_msrp_type_enabled',
|
43 |
'type' => 'varchar',
|
44 |
+
'apply_to' => 'simple',
|
45 |
'visible' => true,
|
46 |
'required' => false,
|
47 |
'user_defined' => 1,
|
56 |
'label' => 'Length',
|
57 |
'visible' => true,
|
58 |
'type' => 'varchar',
|
59 |
+
'apply_to' => 'simple',
|
60 |
'input' => 'text',
|
61 |
'system' => false,
|
62 |
'required' => false,
|
71 |
'label' => 'Width',
|
72 |
'visible' => true,
|
73 |
'type' => 'varchar',
|
74 |
+
'apply_to' => 'simple',
|
75 |
'input' => 'text',
|
76 |
'system' => false,
|
77 |
'required' => false,
|
86 |
'label' => 'Height',
|
87 |
'visible' => true,
|
88 |
'type' => 'varchar',
|
89 |
+
'apply_to' => 'simple',
|
90 |
'input' => 'text',
|
91 |
'system' => false,
|
92 |
'required' => false,
|
101 |
'label' => 'Item Value',
|
102 |
'visible' => true,
|
103 |
'type' => 'varchar',
|
104 |
+
'apply_to' => 'simple',
|
105 |
'frontend_class' => 'validate-number',
|
106 |
'input' => 'text',
|
107 |
'system' => false,
|
118 |
'label' => 'Origin Contact:',
|
119 |
'visible' => true,
|
120 |
'type' => 'varchar',
|
121 |
+
'apply_to' => 'simple',
|
122 |
'input' => 'text',
|
123 |
'system' => false,
|
124 |
'required' => false,
|
134 |
'label' => 'Origin First Name',
|
135 |
'visible' => true,
|
136 |
'type' => 'varchar',
|
137 |
+
'apply_to' => 'simple',
|
138 |
'input' => 'text',
|
139 |
'system' => false,
|
140 |
'required' => false,
|
149 |
'label' => 'Origin Last Name',
|
150 |
'visible' => true,
|
151 |
'type' => 'varchar',
|
152 |
+
'apply_to' => 'simple',
|
153 |
'input' => 'text',
|
154 |
'system' => false,
|
155 |
'required' => false,
|
164 |
'label' => 'Origin Address',
|
165 |
'visible' => true,
|
166 |
'type' => 'varchar',
|
167 |
+
'apply_to' => 'simple',
|
168 |
'input' => 'text',
|
169 |
'system' => false,
|
170 |
'required' => false,
|
173 |
|
174 |
$installer->addAttribute('catalog_product','shiphawk_origin_addressline1',$address_line_1_origin_data);
|
175 |
|
176 |
+
$address_line_2_origin_data = array (
|
177 |
+
'attribute_set' => 'Default',
|
178 |
+
'group' => 'ShipHawk Attributes',
|
179 |
+
'label' => 'Origin Address 2',
|
180 |
+
'visible' => true,
|
181 |
+
'type' => 'varchar',
|
182 |
+
'apply_to' => 'simple',
|
183 |
+
'input' => 'text',
|
184 |
+
'system' => false,
|
185 |
+
'required' => false,
|
186 |
+
'user_defined' => 1,
|
187 |
+
);
|
188 |
+
|
189 |
+
$installer->addAttribute('catalog_product','shiphawk_origin_addressline2',$address_line_2_origin_data);
|
190 |
+
|
191 |
$city_origin_data = array (
|
192 |
'attribute_set' => 'Default',
|
193 |
'group' => 'ShipHawk Attributes',
|
194 |
'label' => 'Origin City',
|
195 |
'visible' => true,
|
196 |
'type' => 'varchar',
|
197 |
+
'apply_to' => 'simple',
|
198 |
'input' => 'text',
|
199 |
'system' => false,
|
200 |
'required' => false,
|
209 |
'label' => 'State',
|
210 |
'visible' => true,
|
211 |
'type' => 'varchar',
|
212 |
+
'apply_to' => 'simple',
|
213 |
'input' => 'text',
|
214 |
'system' => false,
|
215 |
'required' => false,
|
224 |
'label' => 'Origin Zipcode',
|
225 |
'visible' => true,
|
226 |
'type' => 'varchar',
|
227 |
+
'apply_to' => 'simple',
|
228 |
'input' => 'text',
|
229 |
'system' => false,
|
230 |
'required' => false,
|
239 |
'label' => 'Origin Phone',
|
240 |
'visible' => true,
|
241 |
'type' => 'varchar',
|
242 |
+
'apply_to' => 'simple',
|
243 |
'input' => 'text',
|
244 |
'system' => false,
|
245 |
'required' => false,
|
248 |
|
249 |
$installer->addAttribute('catalog_product','shiphawk_origin_phonenum',$phone_num_origin_data);
|
250 |
|
251 |
+
$location_origin_data = array (
|
252 |
+
'attribute_set' => 'Default',
|
253 |
+
'group' => 'ShipHawk Attributes',
|
254 |
+
'label' => 'Origin Location',
|
255 |
+
'visible' => true,
|
256 |
+
'type' => 'varchar',
|
257 |
+
'apply_to' => 'simple',
|
258 |
+
'option' => array ('value' => array(
|
259 |
+
'commercial' => array('commercial'),
|
260 |
+
'residential' => array('residential'))),
|
261 |
+
'input' => 'select',
|
262 |
+
'system' => false,
|
263 |
+
'required' => false,
|
264 |
+
'user_defined' => 1,
|
265 |
+
);
|
266 |
+
|
267 |
+
$installer->addAttribute('catalog_product','shiphawk_origin_location',$location_origin_data);
|
268 |
+
|
269 |
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-0.7.1-0.7.2.php
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
-
$installer->startSetup();
|
4 |
-
|
5 |
-
$location_origin_data = array (
|
6 |
-
'attribute_set' => 'Default',
|
7 |
-
'group' => 'ShipHawk Attributes',
|
8 |
-
'label' => 'Origin Location Type',
|
9 |
-
'visible' => true,
|
10 |
-
/*'source' => 'shiphawk_shipping/product_attribute_source_location',*/
|
11 |
-
/*'option' =>
|
12 |
-
array (
|
13 |
-
'values' =>
|
14 |
-
array (
|
15 |
-
'commercial' => 'commercial',
|
16 |
-
'residential' => 'residential'
|
17 |
-
),
|
18 |
-
),*/
|
19 |
-
'option' => array ('value' => array(
|
20 |
-
'commercial' => array('commercial'),
|
21 |
-
'residential' => array('residential'),
|
22 |
-
)
|
23 |
-
),
|
24 |
-
'type' => 'varchar',
|
25 |
-
'input' => 'select',
|
26 |
-
'system' => false,
|
27 |
-
'required' => false,
|
28 |
-
'user_defined' => 1,
|
29 |
-
);
|
30 |
-
|
31 |
-
$installer->addAttribute('catalog_product', 'shiphawk_origin_location', $location_origin_data);
|
32 |
-
|
33 |
-
$installer->endSetup();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/{mysql4-upgrade-0.7.2-1.0.0.php → mysql4-upgrade-1.0.0-1.0.1.php}
RENAMED
@@ -2,18 +2,20 @@
|
|
2 |
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
$installer->startSetup();
|
4 |
|
5 |
-
$
|
6 |
'attribute_set' => 'Default',
|
7 |
'group' => 'ShipHawk Attributes',
|
8 |
-
'label' => 'Origin
|
9 |
'visible' => true,
|
10 |
'type' => 'varchar',
|
|
|
11 |
'input' => 'text',
|
12 |
'system' => false,
|
13 |
'required' => false,
|
14 |
'user_defined' => 1,
|
15 |
);
|
16 |
|
17 |
-
$installer->addAttribute('catalog_product','
|
|
|
18 |
|
19 |
$installer->endSetup();
|
2 |
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
$installer->startSetup();
|
4 |
|
5 |
+
$origin_email = array (
|
6 |
'attribute_set' => 'Default',
|
7 |
'group' => 'ShipHawk Attributes',
|
8 |
+
'label' => 'Origin Email',
|
9 |
'visible' => true,
|
10 |
'type' => 'varchar',
|
11 |
+
'apply_to' => 'simple',
|
12 |
'input' => 'text',
|
13 |
'system' => false,
|
14 |
'required' => false,
|
15 |
'user_defined' => 1,
|
16 |
);
|
17 |
|
18 |
+
$installer->addAttribute('catalog_product','shiphawk_origin_email', $origin_email);
|
19 |
+
|
20 |
|
21 |
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.1-1.0.2.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = $this;
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$installer->run("
|
6 |
+
|
7 |
+
-- DROP TABLE IF EXISTS {$this->getTable('shiphawk_shipping/origins')};
|
8 |
+
CREATE TABLE {$this->getTable('shiphawk_shipping/origins')} (
|
9 |
+
`id` int(11) unsigned NOT NULL auto_increment,
|
10 |
+
`shiphawk_origin_firstname` varchar(250) NULL default '',
|
11 |
+
`shiphawk_origin_lastname` varchar(250) NULL default '',
|
12 |
+
`shiphawk_origin_addressline1` varchar(250) NULL default '',
|
13 |
+
`shiphawk_origin_addressline2` varchar(250) NULL default '',
|
14 |
+
`shiphawk_origin_city` varchar(250) NULL default '',
|
15 |
+
`shiphawk_origin_state` varchar(250) NULL default '',
|
16 |
+
`shiphawk_origin_zipcode` varchar(250) NULL default '',
|
17 |
+
`shiphawk_origin_phonenum` varchar(250) NULL default '',
|
18 |
+
`shiphawk_origin_location` varchar(250) NULL default '',
|
19 |
+
`shiphawk_origin_email` varchar(250) NULL default '',
|
20 |
+
`shiphawk_origin_title` varchar(250) NULL default '',
|
21 |
+
|
22 |
+
PRIMARY KEY (`id`)
|
23 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
24 |
+
|
25 |
+
");
|
26 |
+
|
27 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.10-1.0.11.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$data = array (
|
6 |
+
'attribute_set' => 'Default',
|
7 |
+
'group' => 'ShipHawk Attributes',
|
8 |
+
'label' => 'Freight Class',
|
9 |
+
'visible' => true,
|
10 |
+
'type' => 'varchar',
|
11 |
+
'apply_to' => 'simple',
|
12 |
+
'option' => array ('values' => array(
|
13 |
+
0 => '50',
|
14 |
+
1 => '55',
|
15 |
+
2 => '60',
|
16 |
+
3 => '65',
|
17 |
+
4 => '70',
|
18 |
+
5 => '77.5',
|
19 |
+
6 => '85',
|
20 |
+
7 => '92.5',
|
21 |
+
8 => '100',
|
22 |
+
9 => '110',
|
23 |
+
10 => '125',
|
24 |
+
11 => '150',
|
25 |
+
12 => '175',
|
26 |
+
13 => '200',
|
27 |
+
14 => '250',
|
28 |
+
15 => '300',
|
29 |
+
16 => '400',
|
30 |
+
17 => '500'
|
31 |
+
)),
|
32 |
+
'input' => 'select',
|
33 |
+
'system' => false,
|
34 |
+
'required' => false,
|
35 |
+
'user_defined' => 1,
|
36 |
+
);
|
37 |
+
|
38 |
+
$installer->addAttribute('catalog_product', 'shiphawk_freight_class', $data);
|
39 |
+
|
40 |
+
/* for sortOrder */
|
41 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_freight_class', 'frontend_label', 'Freight Class', 7);
|
42 |
+
|
43 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.11-1.0.12.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** @var Mage_Eav_Model_Entity_Setup $installer */
|
3 |
+
$installer = Mage::getResourceModel('sales/setup','sales_setup');
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
$installer->addAttribute('order', 'shiphawk_location_type', array('type' => 'text', 'input' => 'text'));
|
7 |
+
$installer->addAttribute('quote', 'shiphawk_location_type', array('type' => 'text', 'input' => 'text'));
|
8 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'shiphawk_location_type', 'text');
|
9 |
+
|
10 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.12-1.0.13.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** @var Mage_Eav_Model_Entity_Setup $installer */
|
3 |
+
$installer = Mage::getResourceModel('sales/setup','sales_setup');
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
$installer->addAttribute('order', 'shiphawk_rate_filter', array('type' => 'text', 'input' => 'text'));
|
7 |
+
$installer->addAttribute('quote', 'shiphawk_rate_filter', array('type' => 'text', 'input' => 'text'));
|
8 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'shiphawk_rate_filter', 'text');
|
9 |
+
|
10 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.13-1.1.0.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$percentage = array (
|
6 |
+
'attribute_set' => 'Default',
|
7 |
+
'group' => 'ShipHawk Attributes',
|
8 |
+
'label' => 'Markup or Discount Percentage',
|
9 |
+
'visible' => true,
|
10 |
+
'type' => 'varchar',
|
11 |
+
'apply_to' => 'simple',
|
12 |
+
'input' => 'text',
|
13 |
+
'system' => false,
|
14 |
+
'required' => false,
|
15 |
+
'user_defined' => 1,
|
16 |
+
'note' => 'possible values from -100 to 100'
|
17 |
+
);
|
18 |
+
|
19 |
+
$installer->addAttribute('catalog_product','shiphawk_discount_percentage', $percentage);
|
20 |
+
/* for sortOrder */
|
21 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_discount_percentage', 'frontend_label', 'Markup or Discount Percentage', 7);
|
22 |
+
|
23 |
+
$fixed = array (
|
24 |
+
'attribute_set' => 'Default',
|
25 |
+
'group' => 'ShipHawk Attributes',
|
26 |
+
'label' => 'Markup or Discount Flat Amount',
|
27 |
+
'visible' => true,
|
28 |
+
'type' => 'varchar',
|
29 |
+
'apply_to' => 'simple',
|
30 |
+
'input' => 'text',
|
31 |
+
'system' => false,
|
32 |
+
'required' => false,
|
33 |
+
'user_defined' => 1,
|
34 |
+
'note' => 'possible values from -∞ to ∞'
|
35 |
+
);
|
36 |
+
|
37 |
+
$installer->addAttribute('catalog_product','shiphawk_discount_fixed', $fixed);
|
38 |
+
/* for sortOrder */
|
39 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_discount_fixed', 'frontend_label', 'Markup or Discount Flat Amount', 7);
|
40 |
+
|
41 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.2-1.0.3.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$shipping_origins = array (
|
6 |
+
'attribute_set' => 'Default',
|
7 |
+
'group' => 'ShipHawk Attributes',
|
8 |
+
'label' => 'Shipping Origins',
|
9 |
+
'visible' => true,
|
10 |
+
'type' => 'varchar',
|
11 |
+
'apply_to' => 'simple',
|
12 |
+
'input' => 'text',
|
13 |
+
'system' => false,
|
14 |
+
'required' => false,
|
15 |
+
'user_defined' => 1,
|
16 |
+
);
|
17 |
+
|
18 |
+
$installer->addAttribute('catalog_product','shiphawk_shipping_origins', $shipping_origins);
|
19 |
+
|
20 |
+
|
21 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.4-1.0.5.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** @var Mage_Eav_Model_Entity_Setup $installer */
|
3 |
+
$installer = Mage::getResourceModel('sales/setup','sales_setup');
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
$installer->addAttribute('order', 'shiphawk_shipping_amount', array('type' => 'text', 'input' => 'text'));
|
7 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'shiphawk_shipping_amount', 'text');
|
8 |
+
|
9 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.5-1.0.6.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
// Remove Product Attribute
|
5 |
+
|
6 |
+
/*$origins_attributes = array('shiphawk_origin_firstname', 'shiphawk_origin_lastname', 'shiphawk_origin_addressline1', 'shiphawk_origin_addressline2',
|
7 |
+
'shiphawk_origin_city', 'shiphawk_origin_state', 'shiphawk_origin_zipcode', 'shiphawk_origin_phonenum', 'shiphawk_origin_location', 'shiphawk_origin_email');
|
8 |
+
|
9 |
+
foreach($origins_attributes as $code) {
|
10 |
+
$attr = Mage::getModel('catalog/resource_eav_attribute')
|
11 |
+
->loadByCode('catalog_product',$code);
|
12 |
+
if(!(null == $attr->getId())) {
|
13 |
+
//attribute does exist
|
14 |
+
$installer->removeAttribute('catalog_product', $code);
|
15 |
+
}
|
16 |
+
|
17 |
+
}*/
|
18 |
+
|
19 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.6-1.0.7.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = $this;
|
3 |
+
|
4 |
+
$io = new Varien_Io_File();
|
5 |
+
$io->checkAndCreateFolder(Mage::getBaseDir('var').DS.'shiphawk'.DS.'import');
|
6 |
+
|
7 |
+
$installer->startSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.7-1.0.8.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = $this;
|
3 |
+
|
4 |
+
$io = new Varien_Io_File();
|
5 |
+
$io->checkAndCreateFolder(Mage::getBaseDir('media').DS.'shiphawk'.DS.'bol');
|
6 |
+
|
7 |
+
$installer->startSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.8-1.0.9.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** @var Mage_Eav_Model_Entity_Setup $installer */
|
3 |
+
$installer = Mage::getResourceModel('sales/setup','sales_setup');
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
$installer->addAttribute('order', 'shiphawk_shipping_package_info', array('type' => 'text', 'input' => 'text'));
|
7 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'shiphawk_shipping_package_info', 'text');
|
8 |
+
|
9 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.0.9-1.0.10.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** @var Mage_Eav_Model_Entity_Setup $installer */
|
3 |
+
$installer = Mage::getResourceModel('sales/setup','sales_setup');
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
$installer->addAttribute('order', 'shiphawk_shipping_accessories', array('type' => 'text', 'input' => 'text'));
|
7 |
+
$installer->addAttribute('quote', 'shiphawk_shipping_accessories', array('type' => 'text', 'input' => 'text'));
|
8 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'shiphawk_shipping_accessories', 'text');
|
9 |
+
|
10 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.0-1.1.1.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$data = array (
|
6 |
+
'attribute_set' => 'Default',
|
7 |
+
'group' => 'ShipHawk Attributes',
|
8 |
+
'label' => 'Carrier Type',
|
9 |
+
'visible' => true,
|
10 |
+
'type' => 'varchar',
|
11 |
+
'apply_to' => 'simple',
|
12 |
+
'option' => array ('values' => array(
|
13 |
+
'' => 'All',
|
14 |
+
'ltl' => 'ltl',
|
15 |
+
'blanket wrap' => 'blanket wrap',
|
16 |
+
'small parcel' => 'small parcel',
|
17 |
+
'vehicle' => 'vehicle',
|
18 |
+
'intermodal' => 'intermodal',
|
19 |
+
'local delivery' => 'local delivery',
|
20 |
+
)),
|
21 |
+
'input' => 'select',
|
22 |
+
'system' => false,
|
23 |
+
'required' => false,
|
24 |
+
'user_defined' => 1,
|
25 |
+
);
|
26 |
+
|
27 |
+
$installer->addAttribute('catalog_product', 'shiphawk_carrier_type', $data);
|
28 |
+
|
29 |
+
/* for sortOrder */
|
30 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_carrier_type', 'frontend_label', 'Carrier Type', 7);
|
31 |
+
|
32 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.3-1.1.4.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
// Remove shiphawk_carrier_type dropdown
|
6 |
+
$installer->removeAttribute('catalog_product', 'shiphawk_carrier_type');
|
7 |
+
|
8 |
+
$data = array (
|
9 |
+
'attribute_set' => 'Default',
|
10 |
+
'group' => 'ShipHawk Attributes',
|
11 |
+
'label' => 'Carrier Type',
|
12 |
+
'visible' => true,
|
13 |
+
'type' => 'varchar',
|
14 |
+
'apply_to' => 'simple',
|
15 |
+
'option' => array ('values' => array(
|
16 |
+
'' => 'All',
|
17 |
+
'ltl' => 'ltl',
|
18 |
+
'blanket wrap' => 'blanket wrap',
|
19 |
+
'small parcel' => 'small parcel',
|
20 |
+
'vehicle' => 'vehicle',
|
21 |
+
'intermodal' => 'intermodal',
|
22 |
+
'local delivery' => 'local delivery',
|
23 |
+
)),
|
24 |
+
'input' => 'multiselect',
|
25 |
+
'backend' => 'eav/entity_attribute_backend_array',
|
26 |
+
'system' => false,
|
27 |
+
'required' => false,
|
28 |
+
'user_defined' => 1,
|
29 |
+
);
|
30 |
+
|
31 |
+
$installer->addAttribute('catalog_product', 'shiphawk_carrier_type', $data);
|
32 |
+
|
33 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.4-1.1.5.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_type_of_product', 'frontend_label', 'Type of Item', 1);
|
6 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_quantity', 'frontend_label', 'Number of items per Product', 2);
|
7 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_item_is_packed', 'frontend_label', 'Packaged?', 3);
|
8 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_length', 'frontend_label', 'Length', 4);
|
9 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_width', 'frontend_label', 'Width', 5);
|
10 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_height', 'frontend_label', 'Height', 6);
|
11 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_carrier_type', 'frontend_label', 'Carrier Type', 7);
|
12 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_freight_class', 'frontend_label', 'Freight Class', 8);
|
13 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_item_value', 'frontend_label', 'Item Value', 9);
|
14 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_discount_percentage', 'frontend_label', 'Markup or Discount Percentage', 10);
|
15 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_discount_fixed', 'frontend_label', 'Markup or Discount Flat Amount', 11);
|
16 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_type_of_product_value', 'frontend_label', 'Origin Contact:', 12);
|
17 |
+
|
18 |
+
|
19 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.5.1-1.1.5.3.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Sales
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/* @var $installer Mage_Sales_Model_Entity_Setup */
|
28 |
+
$installer = $this;
|
29 |
+
$installer->startSetup();
|
30 |
+
$installer->getConnection()
|
31 |
+
->addColumn($installer->getTable('sales/shipment'), 'shiphawk_shipping_method_title', array(
|
32 |
+
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
|
33 |
+
'comment' => 'Shiphawk Shipping Method Title',
|
34 |
+
'length' => '2000'
|
35 |
+
));
|
36 |
+
|
37 |
+
$installer->getConnection()
|
38 |
+
->addColumn($installer->getTable('sales/shipment'), 'shiphawk_shipping_price', array(
|
39 |
+
'type' => Varien_Db_Ddl_Table::TYPE_FLOAT,
|
40 |
+
'comment' => 'Shiphawk Shipping Price'
|
41 |
+
));
|
42 |
+
|
43 |
+
$installer->endSetup();
|
44 |
+
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.5.3-1.1.6.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_item_is_packed', 'frontend_label', 'Is Product Already Packed?');
|
6 |
+
|
7 |
+
|
8 |
+
$installer->endSetup();
|
app/code/community/Shiphawk/Shipping/sql/shiphawk_setup/mysql4-upgrade-1.1.7-1.1.8.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$packing_price = array (
|
6 |
+
'attribute_set' => 'Default',
|
7 |
+
'group' => 'ShipHawk Attributes',
|
8 |
+
'label' => 'Custom Packing Price',
|
9 |
+
'visible' => true,
|
10 |
+
'type' => 'varchar',
|
11 |
+
'apply_to' => 'simple',
|
12 |
+
'input' => 'text',
|
13 |
+
'system' => false,
|
14 |
+
'required' => false,
|
15 |
+
'user_defined' => 1,
|
16 |
+
);
|
17 |
+
|
18 |
+
$installer->addAttribute('catalog_product','shiphawk_custom_packing_price', $packing_price);
|
19 |
+
|
20 |
+
/* for sortOrder */
|
21 |
+
|
22 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_type_of_product', 'frontend_label', 'Type of Item', 10);
|
23 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_quantity', 'frontend_label', 'Number of items per Product', 20);
|
24 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_item_is_packed', 'frontend_label', 'Is Product Already Packed?', 30);
|
25 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_custom_packing_price', 'frontend_label', 'Custom Packing Price', 40);
|
26 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_length', 'frontend_label', 'Length', 50);
|
27 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_width', 'frontend_label', 'Width', 60);
|
28 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_height', 'frontend_label', 'Height', 70);
|
29 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_carrier_type', 'frontend_label', 'Carrier Type', 80);
|
30 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_freight_class', 'frontend_label', 'Freight Class', 90);
|
31 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_item_value', 'frontend_label', 'Item Value', 100);
|
32 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_discount_percentage', 'frontend_label', 'Markup or Discount Percentage', 110);
|
33 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_discount_fixed', 'frontend_label', 'Markup or Discount Flat Amount', 120);
|
34 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_shipping_origins', 'frontend_label', 'Shipping Origins', 121);
|
35 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_type_of_product_value', 'frontend_label', 'Origin Contact:', 125);
|
36 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_firstname', 'frontend_label', 'Origin First Name', 130);
|
37 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_lastname', 'frontend_label', 'Origin Last Name', 140);
|
38 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_addressline1', 'frontend_label', 'Origin Address', 150);
|
39 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_addressline2', 'frontend_label', 'Origin Address 2', 160);
|
40 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_city', 'frontend_label', 'Origin City', 170);
|
41 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_state', 'frontend_label', 'Origin State', 180);
|
42 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_zipcode', 'frontend_label', 'Origin Zipcode', 190);
|
43 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_phonenum', 'frontend_label', 'Origin Phone', 200);
|
44 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_email', 'frontend_label', 'Origin Email', 210);
|
45 |
+
$installer->updateAttribute('catalog_product', 'shiphawk_origin_location', 'frontend_label', 'Origin Location', 220);
|
46 |
+
|
47 |
+
|
48 |
+
|
49 |
+
$installer->endSetup();
|
app/design/adminhtml/default/default/layout/shiphawk.xml
CHANGED
@@ -4,22 +4,124 @@
|
|
4 |
<adminhtml_catalog_product_edit>
|
5 |
|
6 |
<reference name="head">
|
|
|
|
|
|
|
7 |
|
8 |
-
|
|
|
9 |
|
10 |
<action method="addItem"><type>js_css</type><name>shiphawk/shiphawk.css</name></action>
|
11 |
|
12 |
</reference>
|
|
|
|
|
|
|
13 |
</adminhtml_catalog_product_edit>
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
<adminhtml_catalog_product_new>
|
16 |
<reference name="head">
|
17 |
|
18 |
-
<action method="
|
|
|
|
|
|
|
|
|
19 |
|
20 |
<action method="addItem"><type>js_css</type><name>shiphawk/shiphawk.css</name></action>
|
21 |
|
22 |
</reference>
|
|
|
|
|
|
|
23 |
</adminhtml_catalog_product_new>
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
</layout>
|
4 |
<adminhtml_catalog_product_edit>
|
5 |
|
6 |
<reference name="head">
|
7 |
+
<action method="addItem">
|
8 |
+
<type>js</type>
|
9 |
+
<name>shiphawk/shiphawk.js</name>
|
10 |
|
11 |
+
<aParams>id="shiphawkjsfile"</aParams>
|
12 |
+
</action>
|
13 |
|
14 |
<action method="addItem"><type>js_css</type><name>shiphawk/shiphawk.css</name></action>
|
15 |
|
16 |
</reference>
|
17 |
+
<reference name="content">
|
18 |
+
<block type="core/template" name="shiphawkjsfile" template="shiphawk/shiphawkjsfile.phtml"/>
|
19 |
+
</reference>
|
20 |
</adminhtml_catalog_product_edit>
|
21 |
|
22 |
+
<adminhtml_catalog_product_action_attribute_edit>
|
23 |
+
|
24 |
+
<reference name="head">
|
25 |
+
|
26 |
+
<action method="addItem">
|
27 |
+
<type>js</type>
|
28 |
+
<name>shiphawk/shiphawk.js</name>
|
29 |
+
<aParams>id="shiphawkjsfile"</aParams>
|
30 |
+
</action>
|
31 |
+
|
32 |
+
<action method="addItem"><type>js_css</type><name>shiphawk/shiphawk.css</name></action>
|
33 |
+
|
34 |
+
</reference>
|
35 |
+
<reference name="content">
|
36 |
+
<block type="core/template" name="shiphawkjsfile" template="shiphawk/shiphawkjsfile.phtml"/>
|
37 |
+
</reference>
|
38 |
+
</adminhtml_catalog_product_action_attribute_edit>
|
39 |
+
|
40 |
<adminhtml_catalog_product_new>
|
41 |
<reference name="head">
|
42 |
|
43 |
+
<action method="addItem">
|
44 |
+
<type>js</type>
|
45 |
+
<name>shiphawk/shiphawk.js</name>
|
46 |
+
<aParams>id="shiphawkjsfile"</aParams>
|
47 |
+
</action>
|
48 |
|
49 |
<action method="addItem"><type>js_css</type><name>shiphawk/shiphawk.css</name></action>
|
50 |
|
51 |
</reference>
|
52 |
+
<reference name="content">
|
53 |
+
<block type="core/template" name="shiphawkjsfile" template="shiphawk/shiphawkjsfile.phtml"/>
|
54 |
+
</reference>
|
55 |
</adminhtml_catalog_product_new>
|
56 |
|
57 |
+
<adminhtml_sales_order_view>
|
58 |
+
<reference name="head">
|
59 |
+
|
60 |
+
<action method="addJs"><script>shiphawk/shiphawk_shipment.js</script></action>
|
61 |
+
|
62 |
+
<action method="addItem"><type>js_css</type><name>shiphawk/shiphawk.css</name></action>
|
63 |
+
|
64 |
+
<action method="addItem">
|
65 |
+
<type>js_css</type>
|
66 |
+
<name>prototype/windows/themes/default.css</name>
|
67 |
+
</action>
|
68 |
+
<action method="addCss">
|
69 |
+
<name>lib/prototype/windows/themes/magento.css</name>
|
70 |
+
</action>
|
71 |
+
|
72 |
+
</reference>
|
73 |
+
<reference name="content">
|
74 |
+
<block type="core/template" name="shiphawkjsfile" template="shiphawk/shiphawkjsfile.phtml"/>
|
75 |
+
</reference>
|
76 |
+
</adminhtml_sales_order_view>
|
77 |
+
|
78 |
+
<adminhtml_origins_index>
|
79 |
+
<reference name="content">
|
80 |
+
<block type="shiphawk_shipping/adminhtml_origins" name="origins.grid_container" />
|
81 |
+
</reference>
|
82 |
+
</adminhtml_origins_index>
|
83 |
+
|
84 |
+
<adminhtml_origins_new>
|
85 |
+
<update handle="adminhtml_origins_edit"/>
|
86 |
+
</adminhtml_origins_new>
|
87 |
+
|
88 |
+
<adminhtml_origins_edit>
|
89 |
+
<reference name="content">
|
90 |
+
<block type="shiphawk_shipping/adminhtml_origins_edit" name="origins.edit" />
|
91 |
+
</reference>
|
92 |
+
</adminhtml_origins_edit>
|
93 |
+
|
94 |
+
<shiphawk_shipping_adminhtml_shipment_newshipment>
|
95 |
+
<reference name="head">
|
96 |
+
<action method="addItem"><type>js_css</type><name>shiphawk/shiphawk.css</name></action>
|
97 |
+
</reference>
|
98 |
+
</shiphawk_shipping_adminhtml_shipment_newshipment>
|
99 |
+
|
100 |
+
<adminhtml_sales_order_view>
|
101 |
+
<reference name="order_tab_info">
|
102 |
+
<action method="setTemplate">
|
103 |
+
<template>shiphawk/amount.phtml</template>
|
104 |
+
</action>
|
105 |
+
</reference>
|
106 |
+
</adminhtml_sales_order_view>
|
107 |
+
|
108 |
+
<adminhtml_sales_order_shipment_view>
|
109 |
+
<reference name="form">
|
110 |
+
<action method="setTemplate">
|
111 |
+
<template>shiphawk/shipping/form.phtml</template>
|
112 |
+
</action>
|
113 |
+
</reference>
|
114 |
+
<reference name="content">
|
115 |
+
<block type="core/template" name="shiphawkjsfile" template="shiphawk/shiphawkjsfile.phtml"/>
|
116 |
+
</reference>
|
117 |
+
</adminhtml_sales_order_shipment_view>
|
118 |
+
|
119 |
+
<adminhtml_sales_order_create_index>
|
120 |
+
<reference name="head">
|
121 |
+
<action method="addItem">
|
122 |
+
<type>js</type>
|
123 |
+
<name>shiphawk/shiphawk_order.js</name>
|
124 |
+
</action>
|
125 |
+
</reference>
|
126 |
+
</adminhtml_sales_order_create_index>
|
127 |
</layout>
|
app/design/adminhtml/default/default/template/shiphawk/amount.phtml
ADDED
@@ -0,0 +1,287 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php /** @var $this Mage_Adminhtml_Block_Sales_Order_View_Tab_Info */ ?>
|
28 |
+
<?php $_order = $this->getOrder() ?>
|
29 |
+
<div>
|
30 |
+
<div id="order-messages">
|
31 |
+
<?php echo $this->getChildHtml('order_messages') ?>
|
32 |
+
</div>
|
33 |
+
<?php echo $this->getChildHtml('order_info') ?>
|
34 |
+
<input type="hidden" name="order_id" value="<?php echo $_order->getId() ?>"/>
|
35 |
+
<?php if ($_order->getIsVirtual()): ?>
|
36 |
+
<div class="box-right">
|
37 |
+
<?php else: ?>
|
38 |
+
<div class="box-left">
|
39 |
+
<?php endif; ?>
|
40 |
+
<!--Payment Method-->
|
41 |
+
<div class="entry-edit">
|
42 |
+
<div class="entry-edit-head">
|
43 |
+
<h4 class="icon-head head-payment-method"><?php echo Mage::helper('sales')->__('Payment Information') ?></h4>
|
44 |
+
</div>
|
45 |
+
<fieldset>
|
46 |
+
<?php echo $this->getPaymentHtml() ?>
|
47 |
+
<div><?php echo Mage::helper('sales')->__('Order was placed using %s', $_order->getOrderCurrencyCode()) ?></div>
|
48 |
+
</fieldset>
|
49 |
+
</div>
|
50 |
+
</div>
|
51 |
+
<?php if (!$_order->getIsVirtual()): ?>
|
52 |
+
<div class="box-right">
|
53 |
+
<!--Shipping Method-->
|
54 |
+
<div class="entry-edit">
|
55 |
+
<div class="entry-edit-head">
|
56 |
+
<h4 class="icon-head head-shipping-method"><?php echo Mage::helper('sales')->__('Shipping & Handling Information') ?></h4>
|
57 |
+
</div>
|
58 |
+
<fieldset>
|
59 |
+
<?php if ($_order->getTracksCollection()->count()) : ?>
|
60 |
+
<a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('shipping')->getTrackingPopupUrlBySalesModel($_order) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo $this->__('Track Order') ?>"><?php echo $this->__('Track Order') ?></a>
|
61 |
+
<br/>
|
62 |
+
<?php endif; ?>
|
63 |
+
<?php if ($_order->getShippingDescription()): ?>
|
64 |
+
<strong><?php echo $this->escapeHtml($_order->getShippingDescription()) ?></strong>
|
65 |
+
|
66 |
+
<?php if ($this->helper('tax')->displayShippingPriceIncludingTax()): ?>
|
67 |
+
<?php $_excl = $this->displayShippingPriceInclTax($_order); ?>
|
68 |
+
<?php else: ?>
|
69 |
+
<?php $_excl = $this->displayPriceAttribute('shipping_amount', false, ' '); ?>
|
70 |
+
<?php endif; ?>
|
71 |
+
<?php $_incl = $this->displayShippingPriceInclTax($_order); ?>
|
72 |
+
|
73 |
+
<?php echo $_excl; ?>
|
74 |
+
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
75 |
+
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
76 |
+
<?php endif; ?>
|
77 |
+
<?php else: ?>
|
78 |
+
<?php echo $this->helper('sales')->__('No shipping information available'); ?>
|
79 |
+
<?php endif; ?>
|
80 |
+
<?php
|
81 |
+
$shiphawk_shipping_amount = $_order->getShiphawkShippingAmount();
|
82 |
+
$shiphawk_shipping_package_info = $_order->getShiphawkShippingPackageInfo();
|
83 |
+
$shiphawkShippingAccessories = $_order->getShiphawkShippingAccessories();
|
84 |
+
$shiphawkShippingAccessories = !empty($shiphawkShippingAccessories) ? json_decode($shiphawkShippingAccessories, true) : array();
|
85 |
+
?>
|
86 |
+
<?php if ($shiphawk_shipping_amount) : ?>
|
87 |
+
<div class="entry-edit">
|
88 |
+
<div class="entry-edit-head">
|
89 |
+
<h4 class="icon-head head-account"><?php echo Mage::helper('sales')->__('ShipHawk Shipping Amount') ?></h4>
|
90 |
+
</div>
|
91 |
+
<div class="fieldset">
|
92 |
+
<div class="hor-scroll">
|
93 |
+
<table cellspacing="0" class="form-list">
|
94 |
+
<tr>
|
95 |
+
<td class="label"><label><?php echo Mage::helper('sales')->__('ShipHawk Shipping Amount') ?></label></td>
|
96 |
+
<td class="value">
|
97 |
+
<?php $currensy_symbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol(); ?>
|
98 |
+
<?php echo $currensy_symbol . $shiphawk_shipping_amount; ?>
|
99 |
+
</td>
|
100 |
+
</tr>
|
101 |
+
|
102 |
+
</table>
|
103 |
+
</div>
|
104 |
+
</div>
|
105 |
+
<div class="entry-edit-head">
|
106 |
+
<h4 class="icon-head head-account"><?php echo Mage::helper('sales')->__('ShipHawk Shipping Package Info') ?></h4>
|
107 |
+
</div>
|
108 |
+
<div class="fieldset">
|
109 |
+
<div class="hor-scroll">
|
110 |
+
<table cellspacing="0" class="form-list">
|
111 |
+
<tr>
|
112 |
+
<td class="label"><label><?php echo Mage::helper('sales')->__('ShipHawk Shipping Package Info') ?></label></td>
|
113 |
+
<td class="value">
|
114 |
+
<?php echo $shiphawk_shipping_package_info; ?>
|
115 |
+
</td>
|
116 |
+
</tr>
|
117 |
+
|
118 |
+
</table>
|
119 |
+
</div>
|
120 |
+
</div>
|
121 |
+
<div class="entry-edit-head">
|
122 |
+
<h4 class="icon-head head-account"><?php echo Mage::helper('sales')->__('ShipHawk Shipping Accessorials') ?></h4>
|
123 |
+
</div>
|
124 |
+
<div class="fieldset">
|
125 |
+
<div class="hor-scroll">
|
126 |
+
<table cellspacing="0" class="form-list">
|
127 |
+
<tr>
|
128 |
+
<td class="label"><label><?php echo Mage::helper('sales')->__('ShipHawk Shipping Accessorials') ?></label></td>
|
129 |
+
<td class="value">
|
130 |
+
<?php
|
131 |
+
if (!empty($shiphawkShippingAccessories)) {
|
132 |
+
foreach($shiphawkShippingAccessories as $type => $accessor) {
|
133 |
+
echo '<span style="text-transform: capitalize; font-weight: bold;">' . Mage::helper('sales')->__(str_replace("'", '', $type) . ':') . '</span>';
|
134 |
+
echo '<ul>';
|
135 |
+
|
136 |
+
foreach($accessor as $values) {
|
137 |
+
echo '<li>' . str_replace("'", '', $values['name']) . ' - ' . $currensy_symbol . $values['value'] . '</li>';
|
138 |
+
}
|
139 |
+
|
140 |
+
echo '</ul>';
|
141 |
+
echo '<br/>';
|
142 |
+
}
|
143 |
+
} else {
|
144 |
+
echo Mage::helper('sales')->__('Accessorials are not selected.');
|
145 |
+
}
|
146 |
+
?>
|
147 |
+
</td>
|
148 |
+
</tr>
|
149 |
+
|
150 |
+
</table>
|
151 |
+
</div>
|
152 |
+
</div>
|
153 |
+
<div class="entry-edit-head">
|
154 |
+
<h4 class="icon-head head-account"><?php echo Mage::helper('sales')->__('ShipHawk Location Type') ?></h4>
|
155 |
+
</div>
|
156 |
+
<div class="fieldset">
|
157 |
+
<div class="hor-scroll">
|
158 |
+
<table cellspacing="0" class="form-list">
|
159 |
+
<tr>
|
160 |
+
<td class="label"><label><?php echo Mage::helper('sales')->__('Location Type') ?></label></td>
|
161 |
+
<td class="value">
|
162 |
+
<?php echo $_order->getShiphawkLocationType();?>
|
163 |
+
</td>
|
164 |
+
</tr>
|
165 |
+
</table>
|
166 |
+
</div>
|
167 |
+
</div>
|
168 |
+
</div>
|
169 |
+
<?php endif; ?>
|
170 |
+
<?php
|
171 |
+
if (!$_order->canShip()) {
|
172 |
+
|
173 |
+
foreach($_order->getShipmentsCollection() as $shipment)
|
174 |
+
{
|
175 |
+
foreach($shipment->getAllTracks() as $tracknum)
|
176 |
+
{
|
177 |
+
$tracknums[]=$tracknum->getNumber();
|
178 |
+
}
|
179 |
+
|
180 |
+
}
|
181 |
+
?>
|
182 |
+
<ul>
|
183 |
+
<?php foreach($tracknums as $ship_num) { ?>
|
184 |
+
<li><a onclick="bolpdf(this)" class="bol_link" style="cursor: pointer" id="<?php echo $ship_num; ?>">Get BOL PDF for <?php echo $ship_num ?> shipment</a></li>
|
185 |
+
<?php } ?>
|
186 |
+
</ul>
|
187 |
+
<?php } ?>
|
188 |
+
|
189 |
+
</fieldset>
|
190 |
+
</div>
|
191 |
+
</div>
|
192 |
+
<?php endif; ?>
|
193 |
+
<div class="clear"></div>
|
194 |
+
<?php echo $this->getGiftOptionsHtml() ?>
|
195 |
+
<div class="clear"></div>
|
196 |
+
<div class="entry-edit">
|
197 |
+
<div class="entry-edit-head">
|
198 |
+
<h4 class="icon-head head-products"><?php echo Mage::helper('sales')->__('Items Ordered') ?></h4>
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
<?php echo $this->getItemsHtml() ?>
|
202 |
+
<div class="clear"></div>
|
203 |
+
|
204 |
+
<div class="box-left">
|
205 |
+
<div class="entry-edit">
|
206 |
+
<div class="entry-edit-head">
|
207 |
+
<h4><?php echo Mage::helper('sales')->__('Comments History') ?></h4>
|
208 |
+
</div>
|
209 |
+
<fieldset><?php echo $this->getChildHtml('order_history') ?></fieldset>
|
210 |
+
</div>
|
211 |
+
</div>
|
212 |
+
<div class="box-right entry-edit">
|
213 |
+
<div class="entry-edit-head"><h4><?php echo Mage::helper('sales')->__('Order Totals') ?></h4></div>
|
214 |
+
<div class="order-totals"><?php echo $this->getChildHtml('order_totals') ?></div>
|
215 |
+
</div>
|
216 |
+
<div class="clear"></div>
|
217 |
+
</div>
|
218 |
+
|
219 |
+
<?php echo $this->getChildHtml('popup_window');?>
|
220 |
+
<script type="text/javascript">
|
221 |
+
//<![CDATA[
|
222 |
+
/**
|
223 |
+
* Retrieve gift options tooltip content
|
224 |
+
*/
|
225 |
+
function getGiftOptionsTooltipContent(itemId) {
|
226 |
+
var contentLines = [];
|
227 |
+
var headerLine = null;
|
228 |
+
var contentLine = null;
|
229 |
+
|
230 |
+
$$('#gift_options_data_' + itemId + ' .gift-options-tooltip-content').each(function (element) {
|
231 |
+
if (element.down(0)) {
|
232 |
+
headerLine = element.down(0).innerHTML;
|
233 |
+
contentLine = element.down(0).next().innerHTML;
|
234 |
+
if (contentLine.length > 30) {
|
235 |
+
contentLine = contentLine.slice(0,30) + '...';
|
236 |
+
}
|
237 |
+
contentLines.push(headerLine + ' ' + contentLine);
|
238 |
+
}
|
239 |
+
});
|
240 |
+
return contentLines.join('<br/>');
|
241 |
+
}
|
242 |
+
giftOptionsTooltip.setTooltipContentLoaderFunction(getGiftOptionsTooltipContent);
|
243 |
+
|
244 |
+
function bolpdf(element) {
|
245 |
+
|
246 |
+
var url = 'shiphawk/index/getbol';
|
247 |
+
|
248 |
+
url = baseMagentoUrl + url;
|
249 |
+
|
250 |
+
var parameters = {
|
251 |
+
shipments_id: element.id
|
252 |
+
};
|
253 |
+
|
254 |
+
new Ajax.Request(url, {
|
255 |
+
method: 'post',
|
256 |
+
parameters: parameters,
|
257 |
+
onSuccess: function(transport) {
|
258 |
+
|
259 |
+
responce_html = JSON.parse(transport.responseText);
|
260 |
+
|
261 |
+
|
262 |
+
if(responce_html.shiphawk_error) {
|
263 |
+
|
264 |
+
var error_html = 'ERROR: ' + responce_html.shiphawk_error;
|
265 |
+
alert(error_html);
|
266 |
+
}else{
|
267 |
+
if(responce_html.bol_url) {
|
268 |
+
|
269 |
+
// alert(responce_html.bol_url);
|
270 |
+
//window.location = responce_html.bol_url;
|
271 |
+
|
272 |
+
window.open(
|
273 |
+
responce_html.bol_url,
|
274 |
+
'_blank' // <- This is what makes it open in a new window.
|
275 |
+
);
|
276 |
+
|
277 |
+
}
|
278 |
+
}
|
279 |
+
|
280 |
+
},
|
281 |
+
onLoading:function(transport)
|
282 |
+
{
|
283 |
+
}
|
284 |
+
});
|
285 |
+
}
|
286 |
+
//]]>
|
287 |
+
</script>
|
app/design/adminhtml/default/default/template/shiphawk/button.phtml
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* @var $this Shiphawk_Shipping_Block_Adminhtml_System_Config_Form_Button
|
5 |
+
*/
|
6 |
+
?>
|
7 |
+
<script type="text/javascript">
|
8 |
+
//<![CDATA[
|
9 |
+
|
10 |
+
function importcsv() {
|
11 |
+
new Ajax.Request('<?php echo $this->getAjaxCheckUrl() ?>', {
|
12 |
+
method: 'get',
|
13 |
+
onSuccess: function(transport){
|
14 |
+
|
15 |
+
if (transport.responseText){
|
16 |
+
alert(transport.responseText);
|
17 |
+
}
|
18 |
+
}
|
19 |
+
});
|
20 |
+
}
|
21 |
+
//]]>
|
22 |
+
</script>
|
23 |
+
|
24 |
+
<?php echo $this->getButtonHtml() ?>
|
app/design/adminhtml/default/default/template/shiphawk/shiphawkjsfile.phtml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script type="text/javascript">
|
2 |
+
//<![CDATA[
|
3 |
+
|
4 |
+
var baseMagentoUrl = '<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); ?>';
|
5 |
+
|
6 |
+
|
7 |
+
//]]>
|
8 |
+
</script>
|
app/design/adminhtml/default/default/template/shiphawk/shipment.phtml
ADDED
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$order = $this->getOrder();
|
3 |
+
|
4 |
+
$result = $this->getNewShipHawkRate($order);
|
5 |
+
|
6 |
+
if(($result == null) or ($result['error'])) {
|
7 |
+
if($result['error']) {
|
8 |
+
echo $result['error'];
|
9 |
+
}
|
10 |
+
return;
|
11 |
+
}
|
12 |
+
|
13 |
+
$is_multi_zip = $result['is_multi_zip'];
|
14 |
+
$toOrder = $result['to_order'];
|
15 |
+
$summ_price = $result['summ_price'];
|
16 |
+
$rate_filter = $result['rate_filter'];
|
17 |
+
$name_service = $result['name_service'];
|
18 |
+
|
19 |
+
$order_id = $order->getId();
|
20 |
+
$currency_symbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
|
21 |
+
|
22 |
+
$error_text = Mage::getSingleton('core/session')->getData('error_price_text', true); // clear data after get
|
23 |
+
?>
|
24 |
+
<?php if(!empty($error_text)) { ?>
|
25 |
+
<div id="error_text_"><?php echo $error_text ?></div>
|
26 |
+
<?php } ?>
|
27 |
+
<form class="my-form" name="shiphawk_form" id="shiphawk_form">
|
28 |
+
<input type="hidden" value="<?php echo $order_id ?>" name="order_id">
|
29 |
+
<input type="hidden" value="<?php echo $is_multi_zip ?>" name="is_multi">
|
30 |
+
|
31 |
+
<?php if ($is_multi_zip == 0) { ?>
|
32 |
+
<ul>
|
33 |
+
<?php foreach ($toOrder as $rate_id=>$shipments_data ) {
|
34 |
+
$shipment_value = 'shiphawk_shipping_' . $shipments_data['name'];
|
35 |
+
$shipment_id = 's_method_shiphawk_shipping_' . $shipments_data['name'];
|
36 |
+
$shipping_price = $shipments_data['price'];
|
37 |
+
$carrier_accessorial = (array) $shipments_data['carrier_accessorial'];
|
38 |
+
$_radioProperty = 'name="shipping_method" type="radio" class="shipping-ratios" data-rate="' .$rate_id . '"';
|
39 |
+
?>
|
40 |
+
<li>
|
41 |
+
<input <?php echo $_radioProperty ?> value="<?php echo $rate_id ?>" id="<?php echo $shipment_id ?>" class="shipping-ratios">
|
42 |
+
<label for="<?php echo $shipment_id ?>"><?php echo $shipments_data['carrier'] . ' - '. $shipments_data['name'] . ' ' ?><span class="price"><?php echo ' - ' . $currency_symbol . $shipping_price ?></span></label>
|
43 |
+
</li>
|
44 |
+
<?php foreach ($carrier_accessorial as $type => $accessories): ?>
|
45 |
+
<?php if (count($accessories) > 0) { ?>
|
46 |
+
<span style="text-transform: capitalize; font-weight: bold; display: none; padding-left: 16px"
|
47 |
+
class="shipping-ratio-origins shipping-ratio-<?php echo $rate_id; ?>-origins"><?php echo $type ?></span>
|
48 |
+
<?php } ?>
|
49 |
+
<?php foreach ($accessories as $accessor): ?>
|
50 |
+
<li class="shipping-ratio-origins shipping-ratio-<?php echo $rate_id; ?>-origins"
|
51 |
+
style="display: none; padding-left: 16px;">
|
52 |
+
<input id="<?php echo $accessor->id . '-' . $rate_id; ?>"
|
53 |
+
type="checkbox" value="<?php echo $accessor->price ?>"
|
54 |
+
name="accessories[<?php echo $type ?>]['<?php echo $accessor->accessorial_type . ' (' . $accessor->accessorial_options . ')'; ?>']['<?php echo $accessor->id ?>']"
|
55 |
+
class="checkbox accessor"/>
|
56 |
+
<label for="<?php echo $accessor->id . '-' . $rate_id; ?>"
|
57 |
+
class="shipping-ratio-origins-label"><?php echo $accessor->accessorial_type . ' (' . $accessor->accessorial_options . ')' . ' + ' . '$' . $accessor->price ?></label>
|
58 |
+
</li>
|
59 |
+
<?php endforeach; ?>
|
60 |
+
<?php endforeach; ?>
|
61 |
+
|
62 |
+
<?php } ?>
|
63 |
+
</ul>
|
64 |
+
<?php }else{?>
|
65 |
+
<ul>
|
66 |
+
<li>
|
67 |
+
<input type="hidden" value="<?php echo $summ_price ?>" name="multi_price">
|
68 |
+
<input checked name="shipping_method" type="radio" value="<?php echo $name_service ?>" id="<?php echo 'multi_origin' ?>" class="radio">
|
69 |
+
<label for="<?php echo 'multi_origin' ?>"><?php echo $name_service . ' ' ?><span class="price"><?php echo ' - ' . $currency_symbol . $summ_price ?></span></label>
|
70 |
+
</li>
|
71 |
+
|
72 |
+
</ul>
|
73 |
+
<?php } ?>
|
74 |
+
<input type="button" class="submitshiphawk_button" value="ShipHawk Shipment" id="submitshiphawk" />
|
75 |
+
<span id="formLoader" style="display:none;"> </span>
|
76 |
+
</form>
|
77 |
+
|
78 |
+
<div id="formSuccess" style="display:none;"> </div>
|
79 |
+
|
80 |
+
|
81 |
+
<script type="text/javascript">
|
82 |
+
//<![CDATA[
|
83 |
+
|
84 |
+
var postUrl = '<?php echo Mage::helper("adminhtml")->getUrl("adminshiphawk/adminhtml_shipment/newbook"); ?>';
|
85 |
+
|
86 |
+
function doAjax() {
|
87 |
+
|
88 |
+
new Ajax.Request(postUrl, {
|
89 |
+
method: 'post',
|
90 |
+
parameters: $('shiphawk_form').serialize(),
|
91 |
+
onSuccess: function(transport) {
|
92 |
+
responce_html = JSON.parse(transport.responseText);
|
93 |
+
Element.hide($('shiphawk_form'));
|
94 |
+
$('loading-mask').hide();
|
95 |
+
$('formSuccess').show();
|
96 |
+
$('formSuccess').update(responce_html);
|
97 |
+
$('error_text_').hide();
|
98 |
+
|
99 |
+
setTimeout('parent.location.reload()', 2000);
|
100 |
+
},
|
101 |
+
onComplete:function(request, json) {
|
102 |
+
Element.hide($('shiphawk_form'));
|
103 |
+
responce_html = JSON.parse(transport.responseText);
|
104 |
+
$('formSuccess').show();
|
105 |
+
$('formSuccess').update(responce_html);
|
106 |
+
}
|
107 |
+
});
|
108 |
+
|
109 |
+
}
|
110 |
+
|
111 |
+
new Event.observe($('submitshiphawk'), 'click', function(e){
|
112 |
+
e.stop();
|
113 |
+
doAjax();
|
114 |
+
});
|
115 |
+
|
116 |
+
/* For couple rates */
|
117 |
+
|
118 |
+
$$("input.shipping-ratios").invoke('observe', 'change', function() {
|
119 |
+
$$('.shipping-ratio-origins').invoke('hide');
|
120 |
+
$$('.shipping-ratio-origins input[type=checkbox]').invoke('setValue', false);
|
121 |
+
|
122 |
+
var ratioId = $$("input.shipping-ratios:checked").invoke('readAttribute' ,'data-rate');
|
123 |
+
showOrigins(ratioId);
|
124 |
+
});
|
125 |
+
|
126 |
+
/* For checked rate */
|
127 |
+
|
128 |
+
if ($$("input.shipping-ratios:checked").length > 0) {
|
129 |
+
var ratioId = $$("input.shipping-ratios:checked").invoke('readAttribute' ,'data-rate');
|
130 |
+
showOrigins(ratioId);
|
131 |
+
}
|
132 |
+
|
133 |
+
function showOrigins(id) {
|
134 |
+
$$('.shipping-ratio-' + id + '-origins').invoke('show');
|
135 |
+
}
|
136 |
+
//]]>
|
137 |
+
</script>
|
app/design/adminhtml/default/default/template/shiphawk/shipping/form.phtml
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php $_order = $this->getShipment()->getOrder() ?>
|
28 |
+
<?php echo $this->getChildHtml('order_info') ?>
|
29 |
+
|
30 |
+
<div class="box-left">
|
31 |
+
<!--Billing Address-->
|
32 |
+
<div class="entry-edit">
|
33 |
+
<div class="entry-edit-head">
|
34 |
+
<h4 class="icon-head head-payment-method"><?php echo $this->helper('sales')->__('Payment Information') ?></h4>
|
35 |
+
</div>
|
36 |
+
<fieldset>
|
37 |
+
<div><?php echo $this->getChildHtml('order_payment') ?></div>
|
38 |
+
<div><?php echo Mage::helper('sales')->__('Order was placed using %s', $_order->getOrderCurrencyCode()) ?></div>
|
39 |
+
</fieldset>
|
40 |
+
</div>
|
41 |
+
</div>
|
42 |
+
<div class="box-right">
|
43 |
+
<!--Shipping Address-->
|
44 |
+
<div class="entry-edit">
|
45 |
+
<div class="entry-edit-head">
|
46 |
+
<h4 class="icon-head head-shipping-method"><?php echo $this->helper('sales')->__('Shipping and Tracking Information') ?></h4>
|
47 |
+
</div>
|
48 |
+
<fieldset>
|
49 |
+
<div>
|
50 |
+
<?php if($this->getShipment()->getTracksCollection()->count()): ?>
|
51 |
+
<a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('shipping')->getTrackingPopupUrlBySalesModel($this->getShipment()) ?>','trackshipment','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo $this->__('Track this shipment') ?>"><?php echo $this->__('Track this shipment') ?></a>
|
52 |
+
<br/>
|
53 |
+
<?php endif; ?>
|
54 |
+
<strong><?php echo $this->escapeHtml($_order->getShippingDescription()) ?></strong>
|
55 |
+
<?php echo $this->helper('sales')->__('Total Shipping Charges'); ?>:
|
56 |
+
|
57 |
+
<?php if ($this->helper('tax')->displayShippingPriceIncludingTax()): ?>
|
58 |
+
<?php $_excl = $this->displayShippingPriceInclTax($_order); ?>
|
59 |
+
<?php else: ?>
|
60 |
+
<?php $_excl = $this->displayPriceAttribute('shipping_amount', false, ' '); ?>
|
61 |
+
<?php endif; ?>
|
62 |
+
<?php $_incl = $this->displayShippingPriceInclTax($_order); ?>
|
63 |
+
|
64 |
+
<?php echo $_excl; ?>
|
65 |
+
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
66 |
+
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
67 |
+
<?php endif; ?>
|
68 |
+
</div>
|
69 |
+
|
70 |
+
|
71 |
+
<?php
|
72 |
+
$shipment = $this->getShipment();
|
73 |
+
$shipment_price = $shipment->getShiphawkShippingPrice();
|
74 |
+
$accessoriesPriceData = json_decode($_order->getData('shiphawk_shipping_accessories'));
|
75 |
+
$accessoriesPrice = Mage::helper('shiphawk_shipping')->getAccessoriesPrice($accessoriesPriceData);
|
76 |
+
$shipment_price = $shipment_price + $accessoriesPrice;
|
77 |
+
$shiphawkShipmentTitle = $shipment->getShiphawkShippingMethodTitle();
|
78 |
+
?>
|
79 |
+
<?php if(!empty($shiphawkShipmentTitle)) { ?>
|
80 |
+
<div style=" margin: 10px 0 0;"><strong><?php echo $this->__('Current ShipHawk Shipment Price (incl. accessories):'); ?></strong></div>
|
81 |
+
<div>
|
82 |
+
<strong><?php echo $this->escapeHtml($shiphawkShipmentTitle) ?></strong>
|
83 |
+
<?php $currensy_symbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol(); ?>
|
84 |
+
<?php echo ': ' . $currensy_symbol . $shipment_price; ?>
|
85 |
+
|
86 |
+
</div>
|
87 |
+
<?php } ?>
|
88 |
+
<?php if ($this->canCreateShippingLabel()): ?>
|
89 |
+
<div style="text-align: center; margin: 10px 0;">
|
90 |
+
<?php echo $this->getCreateLabelButton()?>
|
91 |
+
<?php if ($this->getShipment()->getShippingLabel()): ?>
|
92 |
+
<?php echo $this->getPrintLabelButton() ?>
|
93 |
+
<?php endif ?>
|
94 |
+
<?php if ($this->getShipment()->getPackages()): ?>
|
95 |
+
<?php echo $this->getShowPackagesButton() ?>
|
96 |
+
<?php endif ?>
|
97 |
+
</div>
|
98 |
+
<?php endif ?>
|
99 |
+
|
100 |
+
<?php
|
101 |
+
|
102 |
+
foreach($shipment->getAllTracks() as $tracknum)
|
103 |
+
{
|
104 |
+
$tracknums[]=$tracknum->getNumber();
|
105 |
+
}
|
106 |
+
|
107 |
+
|
108 |
+
?>
|
109 |
+
<ul>
|
110 |
+
<?php foreach($tracknums as $ship_num) { ?>
|
111 |
+
<li><a onclick="bolpdf(this)" class="bol_link" style="cursor: pointer" id="<?php echo $ship_num; ?>">Get BOL PDF for <?php echo $ship_num ?> shipment</a></li>
|
112 |
+
<?php } ?>
|
113 |
+
</ul>
|
114 |
+
|
115 |
+
<div><?php echo $this->getChildHtml('shipment_tracking') ?></div>
|
116 |
+
</fieldset>
|
117 |
+
<?php echo $this->getChildHtml('shipment_packaging') ?>
|
118 |
+
<script type="text/javascript">
|
119 |
+
//<![CDATA[
|
120 |
+
function bolpdf(element) {
|
121 |
+
|
122 |
+
var url = 'shiphawk/index/getbol';
|
123 |
+
|
124 |
+
url = baseMagentoUrl + url;
|
125 |
+
|
126 |
+
var parameters = {
|
127 |
+
shipments_id: element.id
|
128 |
+
};
|
129 |
+
|
130 |
+
new Ajax.Request(url, {
|
131 |
+
method: 'post',
|
132 |
+
parameters: parameters,
|
133 |
+
onSuccess: function(transport) {
|
134 |
+
|
135 |
+
responce_html = JSON.parse(transport.responseText);
|
136 |
+
|
137 |
+
if(responce_html.shiphawk_error) {
|
138 |
+
|
139 |
+
var error_html = 'ERROR: ' + responce_html.shiphawk_error;
|
140 |
+
alert(error_html);
|
141 |
+
}else{
|
142 |
+
if(responce_html.bol_url) {
|
143 |
+
|
144 |
+
// alert(responce_html.bol_url);
|
145 |
+
//window.location = responce_html.bol_url;
|
146 |
+
|
147 |
+
window.open(
|
148 |
+
responce_html.bol_url,
|
149 |
+
'_blank' // <- This is what makes it open in a new window.
|
150 |
+
);
|
151 |
+
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
},
|
156 |
+
onLoading:function(transport)
|
157 |
+
{
|
158 |
+
}
|
159 |
+
});
|
160 |
+
}
|
161 |
+
document.observe("dom:loaded", function() {
|
162 |
+
setTimeout(function(){
|
163 |
+
packaging.setConfirmPackagingCallback(function(){
|
164 |
+
packaging.sendCreateLabelRequest();
|
165 |
+
});
|
166 |
+
packaging.setLabelCreatedCallback(function(response){
|
167 |
+
setLocation("<?php echo $this->getUrl(
|
168 |
+
'*/sales_order_shipment/view',
|
169 |
+
array('shipment_id' => $this->getShipment()->getId())
|
170 |
+
); ?>");
|
171 |
+
});
|
172 |
+
}, 500);
|
173 |
+
});
|
174 |
+
//]]>
|
175 |
+
</script>
|
176 |
+
</div>
|
177 |
+
</div>
|
178 |
+
<div class="clear"></div>
|
179 |
+
|
180 |
+
<div class="entry-edit">
|
181 |
+
<div class="entry-edit-head">
|
182 |
+
<h4 class="icon-head head-products"><?php echo $this->helper('sales')->__('Items Shipped') ?></h4>
|
183 |
+
</div>
|
184 |
+
</div>
|
185 |
+
|
186 |
+
<?php echo $this->getChildHtml('shipment_items') ?>
|
187 |
+
<?php echo $this->getChildHtml('shipment_packed') ?>
|
188 |
+
|
189 |
+
<div class="box-left entry-edit">
|
190 |
+
<div class="entry-edit-head"><h4><?php echo $this->__('Shipment History') ?></h4></div>
|
191 |
+
<fieldset><?php echo $this->getChildHtml('order_comments') ?></fieldset>
|
192 |
+
</div>
|
193 |
+
<div class="clear"></div>
|
app/design/adminhtml/default/default/template/shiphawk/shipping/method/form.phtml
ADDED
@@ -0,0 +1,268 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php /** @var $this Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Method_Form */ ?>
|
28 |
+
<style>
|
29 |
+
.shipping-ratio-origins {
|
30 |
+
padding-left: 17px;
|
31 |
+
}
|
32 |
+
|
33 |
+
span.shipping-ratio-origins {
|
34 |
+
padding-left: 16px;
|
35 |
+
}
|
36 |
+
</style>
|
37 |
+
<?php $_shippingRateGroups = $this->getShippingRates(); ?>
|
38 |
+
<?php if ($_shippingRateGroups): ?>
|
39 |
+
<div id="order-shipping-method-choose" style="display:none">
|
40 |
+
<dl class="shipment-methods">
|
41 |
+
<?php foreach ($_shippingRateGroups as $code => $_rates): ?>
|
42 |
+
<dt><strong><?php echo $this->escapeHtml($this->getCarrierName($code)) ?></strong></dt>
|
43 |
+
<dd>
|
44 |
+
<ul>
|
45 |
+
<?php foreach ($_rates as $_rate): ?>
|
46 |
+
<?php
|
47 |
+
// $_radioProperty = 'name="order[shipping_method]" type="radio" onclick="order.setShippingMethod(this.value)"'
|
48 |
+
$_radioProperty = 'name="order[shipping_method]" type="radio" class="shipping-ratios" data-rate="' .$_rate->getRateId() . '"';
|
49 |
+
?>
|
50 |
+
<?php $_code=$_rate->getCode() ?>
|
51 |
+
<li>
|
52 |
+
<?php if ($_rate->getErrorMessage()): ?>
|
53 |
+
<ul class="messages">
|
54 |
+
<li class="error-msg"><?php echo $this->escapeHtml($_rate->getErrorMessage()) ?></li>
|
55 |
+
</ul>
|
56 |
+
<?php else: ?>
|
57 |
+
<?php $_checked = $this->isMethodActive($_code) ? 'checked="checked"' : '' ?>
|
58 |
+
<input <?php echo $_radioProperty ?> value="<?php echo $_code ?>" id="s_method_<?php echo $_code ?>" <?php echo $_checked ?>/>
|
59 |
+
<label class="normal" for="s_method_<?php echo $_code ?>">
|
60 |
+
<?php echo $this->escapeHtml($_rate->getMethodTitle() ? $_rate->getMethodTitle() : $_rate->getMethodDescription()) ?> -
|
61 |
+
<strong>
|
62 |
+
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
|
63 |
+
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
|
64 |
+
|
65 |
+
<?php echo $_excl; ?>
|
66 |
+
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
67 |
+
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
68 |
+
<?php endif; ?>
|
69 |
+
</strong>
|
70 |
+
</label>
|
71 |
+
<?php endif ?>
|
72 |
+
</li>
|
73 |
+
<!-- For ShipHawk accessories -->
|
74 |
+
<?php $shipHawkDescription = unserialize($_rate->getMethodDescription());?>
|
75 |
+
<?php if ($shipHawkDescription): ?>
|
76 |
+
<?php foreach ($shipHawkDescription as $type => $accessories): ?>
|
77 |
+
<?php if (count($accessories) > 0) { ?>
|
78 |
+
<span style="text-transform: capitalize; font-weight: bold; display: none;"
|
79 |
+
class="shipping-ratio-origins shipping-ratio-<?php echo $_rate->getRateId(); ?>-origins"><?php echo $type ?></span>
|
80 |
+
<?php } ?>
|
81 |
+
<?php foreach ($accessories as $accessor): ?>
|
82 |
+
<li class="shipping-ratio-origins shipping-ratio-<?php echo $_rate->getRateId(); ?>-origins"
|
83 |
+
style="display: none;">
|
84 |
+
<input id="<?php echo $accessor->id . '-' . $_rate->getRateId(); ?>"
|
85 |
+
type="checkbox" value="<?php echo $accessor->price ?>"
|
86 |
+
name="accessories[<?php echo $type ?>]['<?php echo $accessor->accessorial_type . ' (' . $accessor->accessorial_options . ')'; ?>']['<?php echo $accessor->id ?>']"
|
87 |
+
class="checkbox accessor"/>
|
88 |
+
<label for="<?php echo $accessor->id . '-' . $_rate->getRateId(); ?>"
|
89 |
+
class="shipping-ratio-origins-label"><?php echo $accessor->accessorial_type . ' (' . $accessor->accessorial_options . ')' . ' + ' . '$' . $accessor->price ?></label>
|
90 |
+
</li>
|
91 |
+
<?php endforeach; ?>
|
92 |
+
<?php endforeach; ?>
|
93 |
+
<?php endif ?>
|
94 |
+
<?php endforeach; ?>
|
95 |
+
</ul>
|
96 |
+
</dd>
|
97 |
+
<?php endforeach; ?>
|
98 |
+
</dl>
|
99 |
+
<div>
|
100 |
+
<table class="form-list" cellspacing="0">
|
101 |
+
<tr>
|
102 |
+
<td class="label"><label for="sh-override-shipping-cost">Override Shipping Cost:</label></td>
|
103 |
+
<td class="value"><input id="sh-override-shipping-cost" type="text" value="" class="input-text validate-number" name="sh_override_shipping_cost" placeholder="Enter Dollar Amount"/></td>
|
104 |
+
</tr>
|
105 |
+
</table>
|
106 |
+
</div>
|
107 |
+
<div class="form-buttons" style="float: none; text-align: right;"> <!-- sales_quote__collect_totals_after -->
|
108 |
+
<button class="add" type="button" onclick="updateTotalsAccessories();"><span><?php echo Mage::helper('sales')->__('Update Grand Total');?></span></button>
|
109 |
+
</div>
|
110 |
+
</div>
|
111 |
+
<?php if ($_rate = $this->getActiveMethodRate()): ?>
|
112 |
+
<div id="order-shipping-method-info">
|
113 |
+
<strong><?php echo $this->escapeHtml($this->getCarrierName($_rate->getCarrier())) ?></strong><br/>
|
114 |
+
<?php echo $this->escapeHtml($_rate->getMethodTitle() ? $_rate->getMethodTitle() : $_rate->getMethodDescription()) ?> -
|
115 |
+
<strong>
|
116 |
+
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
|
117 |
+
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
|
118 |
+
|
119 |
+
<?php echo $_excl; ?>
|
120 |
+
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
121 |
+
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
122 |
+
<?php endif; ?>
|
123 |
+
</strong>
|
124 |
+
<!--input type="text" class="input-text" style="width:70px"/-->
|
125 |
+
<br/>
|
126 |
+
<a href="#" onclick="$('order-shipping-method-info').hide();$('order-shipping-method-choose').show();return false">
|
127 |
+
<?php echo Mage::helper('sales')->__('Click to change shipping method') ?>
|
128 |
+
</a>
|
129 |
+
</div>
|
130 |
+
<?php else: ?>
|
131 |
+
<script type="text/javascript">$('order-shipping-method-choose').show();</script>
|
132 |
+
<?php endif; ?>
|
133 |
+
<?php elseif($this->getIsRateRequest()): ?>
|
134 |
+
<strong><?php echo Mage::helper('sales')->__('Sorry, no quotes are available for this order at this time.') ?></strong>
|
135 |
+
<?php else: ?>
|
136 |
+
<div id="order-shipping-method-summary">
|
137 |
+
<a href="#" onclick="order.loadShippingRates();return false">
|
138 |
+
<?php echo Mage::helper('sales')->__('Get shipping methods and rates') ?>
|
139 |
+
</a>
|
140 |
+
<input type="hidden" name="order[has_shipping]" value="" class="required-entry" />
|
141 |
+
</div>
|
142 |
+
<?php endif; ?>
|
143 |
+
<!--For reload accessories-->
|
144 |
+
<div id="order-shipping-method-summary-hidden" style="display: none;">
|
145 |
+
<a href="#" onclick="order.loadShippingRates();return false">
|
146 |
+
<?php echo Mage::helper('sales')->__('Get shipping methods and rates') ?>
|
147 |
+
</a>
|
148 |
+
</div>
|
149 |
+
<div style="display:none;" id="shipping-method-overlay" class="overlay"><span><?php echo $this->__('Shipping method selection is not applicable') ?></span></div>
|
150 |
+
<script type="text/javascript">
|
151 |
+
order.overlay('shipping-method-overlay', <?php if ($this->getQuote()->isVirtual()): ?>false<?php else: ?>true<?php endif; ?>);
|
152 |
+
order.overlay('address-shipping-overlay', <?php if ($this->getQuote()->isVirtual()): ?>false<?php else: ?>true<?php endif; ?>);
|
153 |
+
|
154 |
+
/* For couple rates */
|
155 |
+
|
156 |
+
$$("input.shipping-ratios").invoke('observe', 'change', function() {
|
157 |
+
$$('.shipping-ratio-origins').invoke('hide');
|
158 |
+
$$('.shipping-ratio-origins input[type=checkbox]').invoke('setValue', false);
|
159 |
+
|
160 |
+
var ratioId = $$("input.shipping-ratios:checked").invoke('readAttribute' ,'data-rate');
|
161 |
+
showOrigins(ratioId);
|
162 |
+
});
|
163 |
+
|
164 |
+
/* For checked rate */
|
165 |
+
|
166 |
+
if ($$("input.shipping-ratios:checked").length > 0) {
|
167 |
+
var ratioId = $$("input.shipping-ratios:checked").invoke('readAttribute' ,'data-rate');
|
168 |
+
showOrigins(ratioId);
|
169 |
+
}
|
170 |
+
|
171 |
+
function showOrigins(id) {
|
172 |
+
$$('.shipping-ratio-' + id + '-origins').invoke('show');
|
173 |
+
}
|
174 |
+
|
175 |
+
var ajaxUrl = '<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); ?>';
|
176 |
+
|
177 |
+
/* fol location type */
|
178 |
+
var locationSelect = '<tr>' +
|
179 |
+
'<td class="label"><label for="shiphawk-shipping-location-type">Location Type<span class="required">*</span></label></td>' +
|
180 |
+
'<td class="value">' +
|
181 |
+
'<select id="shiphawk-shipping-location-type" class="select required-entry validate-select" onchange="setShiphawkLocationType();">' +
|
182 |
+
'<option value="residential">Residential</option>' +
|
183 |
+
'<option value="commercial">Commercial</option>' +
|
184 |
+
'</select>' +
|
185 |
+
'</td>' +
|
186 |
+
'</tr>';
|
187 |
+
|
188 |
+
if ($('shiphawk-shipping-location-type') === null) {
|
189 |
+
$$('#order-shipping_address_fields .content .form-list tbody')[0].insert({before: locationSelect});
|
190 |
+
}
|
191 |
+
|
192 |
+
setShiphawkLocationType();
|
193 |
+
|
194 |
+
function setShiphawkLocationType() {
|
195 |
+
var element = $('shiphawk-shipping-location-type');
|
196 |
+
var index = element.selectedIndex;
|
197 |
+
var indexVal = element.options[index].value;
|
198 |
+
|
199 |
+
var url = ajaxUrl + 'index.php/adminshiphawk/adminhtml_shipment/setlocationtype';
|
200 |
+
|
201 |
+
var parameters = {
|
202 |
+
location_type: indexVal
|
203 |
+
};
|
204 |
+
|
205 |
+
new Ajax.Request(url, {
|
206 |
+
method: 'post',
|
207 |
+
parameters: parameters,
|
208 |
+
onSuccess: function(transport) {
|
209 |
+
|
210 |
+
},
|
211 |
+
onLoading:function(transport)
|
212 |
+
{
|
213 |
+
}
|
214 |
+
});
|
215 |
+
|
216 |
+
return;
|
217 |
+
}
|
218 |
+
|
219 |
+
function updateTotalsAccessories() {
|
220 |
+
var accessories_checked_array = $$('.accessor:checked');
|
221 |
+
var accessories_price;
|
222 |
+
|
223 |
+
var shiphawk_override_cost = $('sh-override-shipping-cost').value;
|
224 |
+
|
225 |
+
if (typeof accessories_checked_array != 'undefined' && accessories_checked_array.length > 0) {
|
226 |
+
accessories_price = accessories_checked_array.invoke('readAttribute' ,'value').reduce(function(previousValue, currentValue, index, array) {
|
227 |
+
return parseFloat(previousValue) + parseFloat(currentValue);
|
228 |
+
});
|
229 |
+
}
|
230 |
+
|
231 |
+
var url = ajaxUrl + 'index.php/adminshiphawk/adminhtml_shipment/setaccessoriesprice';
|
232 |
+
|
233 |
+
var parameters = {
|
234 |
+
accessories_price: accessories_price,
|
235 |
+
shiphawk_override_cost: shiphawk_override_cost
|
236 |
+
};
|
237 |
+
|
238 |
+
new Ajax.Request(url, {
|
239 |
+
method: 'post',
|
240 |
+
parameters: parameters,
|
241 |
+
onSuccess: function(transport) {
|
242 |
+
|
243 |
+
},
|
244 |
+
onComplete:function(transport)
|
245 |
+
{
|
246 |
+
order.setShippingMethod($$('input.shipping-ratios:checked').invoke('readAttribute' ,'value'));
|
247 |
+
|
248 |
+
setTimeout(function(){
|
249 |
+
if (typeof accessories_checked_array != 'undefined' && accessories_checked_array.length > 0) {
|
250 |
+
accessories_checked_array.forEach(function(el) {
|
251 |
+
$(el.id).checked = true;
|
252 |
+
});
|
253 |
+
}
|
254 |
+
|
255 |
+
$('sh-override-shipping-cost').value = shiphawk_override_cost;
|
256 |
+
$('sh-override-shipping-cost').innerHTML = shiphawk_override_cost;
|
257 |
+
}, 3000);
|
258 |
+
}
|
259 |
+
});
|
260 |
+
|
261 |
+
}
|
262 |
+
|
263 |
+
if ($('order-shipping-method-choose')) {
|
264 |
+
|
265 |
+
$('order-shipping-method-choose').show();
|
266 |
+
}
|
267 |
+
|
268 |
+
</script>
|
app/design/frontend/base/default/layout/shiphawk.xml
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="1.0.0">
|
3 |
+
<shipping_tracking_popup translate="label">
|
4 |
+
<reference name="content">
|
5 |
+
<reference name="shipping.tracking.popup">
|
6 |
+
<action method="setTemplate"><template>shiphawk/popup.phtml</template></action>
|
7 |
+
</reference>
|
8 |
+
</reference>
|
9 |
+
</shipping_tracking_popup>
|
10 |
+
<checkout_onepage_index translate="label">
|
11 |
+
<reference name="head">
|
12 |
+
<action method="addCss"><file>shiphawk/css/sh-style.css</file></action>
|
13 |
+
</reference>
|
14 |
+
<reference name="checkout.onepage.billing">
|
15 |
+
<action method="setTemplate">
|
16 |
+
<template>shiphawk/checkout/onepage/billing.phtml</template>
|
17 |
+
</action>
|
18 |
+
</reference>
|
19 |
+
<reference name="checkout.onepage.shipping">
|
20 |
+
<action method="setTemplate">
|
21 |
+
<template>shiphawk/checkout/onepage/shipping.phtml</template>
|
22 |
+
</action>
|
23 |
+
</reference>
|
24 |
+
</checkout_onepage_index>
|
25 |
+
<checkout_onepage_shippingmethod>
|
26 |
+
<reference name="root">
|
27 |
+
<action method="setTemplate">
|
28 |
+
<template>shiphawk/checkout/onepage/shipping_method/available.phtml</template>
|
29 |
+
</action>
|
30 |
+
</reference>
|
31 |
+
</checkout_onepage_shippingmethod>
|
32 |
+
<checkout_onepage_review translate="label">
|
33 |
+
<reference name="checkout.onepage.review.info.totals">
|
34 |
+
<action method="setTemplate">
|
35 |
+
<template>shiphawk/checkout/onepage/review/totals.phtml</template>
|
36 |
+
</action>
|
37 |
+
</reference>
|
38 |
+
</checkout_onepage_review>
|
39 |
+
<checkout_onepage_progress_shipping_method>
|
40 |
+
<reference name="root">
|
41 |
+
<action method="setTemplate">
|
42 |
+
<template>shiphawk/checkout/onepage/progress/shipping_method.phtml</template>
|
43 |
+
</action>
|
44 |
+
</reference>
|
45 |
+
</checkout_onepage_progress_shipping_method>
|
46 |
+
<checkout_onepage_progress_billing>
|
47 |
+
<reference name="root">
|
48 |
+
<action method="setTemplate">
|
49 |
+
<template>shiphawk/checkout/onepage/progress/billing.phtml</template>
|
50 |
+
</action>
|
51 |
+
</reference>
|
52 |
+
</checkout_onepage_progress_billing>
|
53 |
+
<checkout_onepage_progress_shipping>
|
54 |
+
<reference name="root">
|
55 |
+
<action method="setTemplate">
|
56 |
+
<template>shiphawk/checkout/onepage/progress/shipping.phtml</template>
|
57 |
+
</action>
|
58 |
+
</reference>
|
59 |
+
</checkout_onepage_progress_shipping>
|
60 |
+
</layout>
|
61 |
+
|
app/design/frontend/base/default/template/shiphawk/checkout/onepage/billing.phtml
ADDED
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<form id="co-billing-form" action="">
|
28 |
+
<fieldset>
|
29 |
+
<ul class="form-list">
|
30 |
+
<?php if ($this->customerHasAddresses()): ?>
|
31 |
+
<li class="wide">
|
32 |
+
<label for="billing-address-select"><?php echo $this->__('Select a billing address from your address book or enter a new address.') ?></label>
|
33 |
+
<div class="input-box">
|
34 |
+
<?php echo $this->getAddressesHtmlSelect('billing') ?>
|
35 |
+
</div>
|
36 |
+
</li>
|
37 |
+
<?php endif; ?>
|
38 |
+
<li id="billing-new-address-form"<?php if ($this->customerHasAddresses()): ?> style="display:none;"<?php endif; ?>>
|
39 |
+
<fieldset>
|
40 |
+
<input type="hidden" name="billing[address_id]" value="<?php echo $this->getAddress()->getId() ?>" id="billing:address_id" />
|
41 |
+
<ul>
|
42 |
+
<li class="fields"><?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getAddress()->getFirstname() ? $this->getAddress() : $this->getQuote()->getCustomer())->setForceUseCustomerRequiredAttributes(!$this->isCustomerLoggedIn())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?></li>
|
43 |
+
<li class="fields">
|
44 |
+
<div class="field">
|
45 |
+
<label for="billing:company"><?php echo $this->__('Company') ?></label>
|
46 |
+
<div class="input-box">
|
47 |
+
<input type="text" id="billing:company" name="billing[company]" value="<?php echo $this->escapeHtml($this->getAddress()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('company') ?>" />
|
48 |
+
</div>
|
49 |
+
</div>
|
50 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
51 |
+
<div class="field">
|
52 |
+
<label for="billing:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
53 |
+
<div class="input-box">
|
54 |
+
<input type="text" name="billing[email]" id="billing:email" value="<?php echo $this->escapeHtml($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
55 |
+
</div>
|
56 |
+
</div>
|
57 |
+
<?php endif; ?>
|
58 |
+
</li>
|
59 |
+
<?php $_streetValidationClass = $this->helper('customer/address')->getAttributeValidationClass('street'); ?>
|
60 |
+
<li class="wide">
|
61 |
+
<label for="billing:street1" class="required"><em>*</em><?php echo $this->__('Address') ?></label>
|
62 |
+
<div class="input-box">
|
63 |
+
<input type="text" title="<?php echo $this->__('Street Address') ?>" name="billing[street][]" id="billing:street1" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet(1)) ?>" class="input-text <?php echo $_streetValidationClass ?>" />
|
64 |
+
</div>
|
65 |
+
</li>
|
66 |
+
<?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?>
|
67 |
+
<?php for ($_i = 2, $_n = $this->helper('customer/address')->getStreetLines(); $_i <= $_n; $_i++): ?>
|
68 |
+
<li class="wide">
|
69 |
+
<div class="input-box">
|
70 |
+
<input type="text" title="<?php echo $this->__('Street Address %s', $_i) ?>" name="billing[street][]" id="billing:street<?php echo $_i ?>" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet($_i)) ?>" class="input-text <?php echo $_streetValidationClass ?>" />
|
71 |
+
</div>
|
72 |
+
</li>
|
73 |
+
<?php endfor; ?>
|
74 |
+
<?php if ($this->helper('customer/address')->isVatAttributeVisible()) : ?>
|
75 |
+
<li class="wide">
|
76 |
+
<label for="billing:vat_id"><?php echo $this->__('VAT Number') ?></label>
|
77 |
+
<div class="input-box">
|
78 |
+
<input type="text" id="billing:vat_id" name="billing[vat_id]" value="<?php echo $this->escapeHtml($this->getAddress()->getVatId()) ?>" title="<?php echo $this->__('VAT Number') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('vat_id') ?>" />
|
79 |
+
</div>
|
80 |
+
</li>
|
81 |
+
<?php endif; ?>
|
82 |
+
<li class="fields">
|
83 |
+
<div class="field">
|
84 |
+
<label for="billing:city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
85 |
+
<div class="input-box">
|
86 |
+
<input type="text" title="<?php echo $this->__('City') ?>" name="billing[city]" value="<?php echo $this->escapeHtml($this->getAddress()->getCity()) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('city') ?>" id="billing:city" />
|
87 |
+
</div>
|
88 |
+
</div>
|
89 |
+
<div class="field">
|
90 |
+
<label for="billing:region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
91 |
+
<div class="input-box">
|
92 |
+
<select id="billing:region_id" name="billing[region_id]" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
93 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
94 |
+
</select>
|
95 |
+
<script type="text/javascript">
|
96 |
+
//<![CDATA[
|
97 |
+
$('billing:region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
|
98 |
+
//]]>
|
99 |
+
</script>
|
100 |
+
<input type="text" id="billing:region" name="billing[region]" value="<?php echo $this->escapeHtml($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('region') ?>" style="display:none;" />
|
101 |
+
</div>
|
102 |
+
</div>
|
103 |
+
</li>
|
104 |
+
<li class="fields">
|
105 |
+
<div class="field">
|
106 |
+
<label for="billing:postcode" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
107 |
+
<div class="input-box">
|
108 |
+
<input type="text" title="<?php echo $this->__('Zip/Postal Code') ?>" name="billing[postcode]" id="billing:postcode" value="<?php echo $this->escapeHtml($this->getAddress()->getPostcode()) ?>" class="input-text validate-zip-international <?php echo $this->helper('customer/address')->getAttributeValidationClass('postcode') ?>" />
|
109 |
+
</div>
|
110 |
+
</div>
|
111 |
+
<div class="field">
|
112 |
+
<label for="billing:country_id" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
113 |
+
<div class="input-box">
|
114 |
+
<?php echo $this->getCountryHtmlSelect('billing') ?>
|
115 |
+
</div>
|
116 |
+
</div>
|
117 |
+
</li>
|
118 |
+
<li class="fields">
|
119 |
+
<div class="field">
|
120 |
+
<label for="billing:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
121 |
+
<div class="input-box">
|
122 |
+
<input type="text" name="billing[telephone]" value="<?php echo $this->escapeHtml($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>" id="billing:telephone" />
|
123 |
+
</div>
|
124 |
+
</div>
|
125 |
+
<div class="field">
|
126 |
+
<label for="billing:fax"><?php echo $this->__('Fax') ?></label>
|
127 |
+
<div class="input-box">
|
128 |
+
<input type="text" name="billing[fax]" value="<?php echo $this->escapeHtml($this->getAddress()->getFax()) ?>" title="<?php echo $this->__('Fax') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('fax') ?>" id="billing:fax" />
|
129 |
+
</div>
|
130 |
+
</div>
|
131 |
+
</li>
|
132 |
+
<li class="fields">
|
133 |
+
<div class="field">
|
134 |
+
<label for="billing:shiphawk-location-type"><?php echo $this->__('Location Type') ?></label>
|
135 |
+
<div class="input-box">
|
136 |
+
<select id="billing:shiphawk-location-type" type="text" name="billing[shiphawk_location_type]" class="validate-select" title="<?php echo $this->__('Location Type') ?>">
|
137 |
+
<option value="residential"><?php echo $this->__('Residential') ?></option>
|
138 |
+
<option value="commercial"><?php echo $this->__('Commercial') ?></option>
|
139 |
+
</select>
|
140 |
+
</div>
|
141 |
+
</div>
|
142 |
+
</li>
|
143 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
144 |
+
|
145 |
+
<?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
|
146 |
+
<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
|
147 |
+
<?php if ($_dob->isEnabled() || $_gender->isEnabled()): ?>
|
148 |
+
<li class="fields">
|
149 |
+
<?php if ($_dob->isEnabled()): ?>
|
150 |
+
<div class="field">
|
151 |
+
<?php echo $_dob->setDate($this->getQuote()->getCustomerDob())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
152 |
+
</div>
|
153 |
+
<?php endif; ?>
|
154 |
+
<?php if ($_gender->isEnabled()): ?>
|
155 |
+
<div class="field">
|
156 |
+
<?php echo $_gender->setGender($this->getQuote()->getCustomerGender())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
157 |
+
</div>
|
158 |
+
<?php endif ?>
|
159 |
+
</li>
|
160 |
+
<?php endif ?>
|
161 |
+
|
162 |
+
<?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
|
163 |
+
<?php if ($_taxvat->isEnabled()): ?>
|
164 |
+
<li>
|
165 |
+
<?php echo $_taxvat->setTaxvat($this->getQuote()->getCustomerTaxvat())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
166 |
+
</li>
|
167 |
+
<?php endif ?>
|
168 |
+
|
169 |
+
<li class="fields" id="register-customer-password">
|
170 |
+
<div class="field">
|
171 |
+
<label for="billing:customer_password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
|
172 |
+
<div class="input-box">
|
173 |
+
<input type="password" name="billing[customer_password]" id="billing:customer_password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
|
174 |
+
</div>
|
175 |
+
</div>
|
176 |
+
<div class="field">
|
177 |
+
<label for="billing:confirm_password" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
|
178 |
+
<div class="input-box">
|
179 |
+
<input type="password" name="billing[confirm_password]" title="<?php echo $this->__('Confirm Password') ?>" id="billing:confirm_password" class="input-text required-entry validate-cpassword" />
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
+
</li>
|
183 |
+
<?php endif; ?>
|
184 |
+
<?php if ($this->isCustomerLoggedIn() && $this->customerHasAddresses()):?>
|
185 |
+
<li class="control">
|
186 |
+
<input type="checkbox" name="billing[save_in_address_book]" value="1" title="<?php echo $this->__('Save in address book') ?>" id="billing:save_in_address_book" onchange="if(window.shipping) shipping.setSameAsBilling(false);"<?php if ($this->getAddress()->getSaveInAddressBook()):?> checked="checked"<?php endif;?> class="checkbox" /><label for="billing:save_in_address_book"><?php echo $this->__('Save in address book') ?></label>
|
187 |
+
</li>
|
188 |
+
<?php else:?>
|
189 |
+
<li class="no-display"><input type="hidden" name="billing[save_in_address_book]" value="1" /></li>
|
190 |
+
<?php endif; ?>
|
191 |
+
<?php echo $this->getChildHtml('form.additional.info'); ?>
|
192 |
+
</ul>
|
193 |
+
</fieldset>
|
194 |
+
</li>
|
195 |
+
<?php /* Extensions placeholder */ ?>
|
196 |
+
<?php echo $this->getChildHtml('checkout.onepage.billing.extra')?>
|
197 |
+
<?php if ($this->canShip()): ?>
|
198 |
+
<li class="control">
|
199 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_yes" value="1"<?php if ($this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to this address') ?>" onclick="$('shipping:same_as_billing').checked = true;" class="radio" /><label for="billing:use_for_shipping_yes"><?php echo $this->__('Ship to this address') ?></label></li>
|
200 |
+
<li class="control">
|
201 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_no" value="0"<?php if (!$this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to different address') ?>" onclick="$('shipping:same_as_billing').checked = false;" class="radio" /><label for="billing:use_for_shipping_no"><?php echo $this->__('Ship to different address') ?></label>
|
202 |
+
</li>
|
203 |
+
<?php endif; ?>
|
204 |
+
</ul>
|
205 |
+
<?php if (!$this->canShip()): ?>
|
206 |
+
<input type="hidden" name="billing[use_for_shipping]" value="1" />
|
207 |
+
<?php endif; ?>
|
208 |
+
<div class="buttons-set" id="billing-buttons-container">
|
209 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
210 |
+
<button type="button" title="<?php echo $this->__('Continue') ?>" class="button" onclick="billing.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
211 |
+
<span class="please-wait" id="billing-please-wait" style="display:none;">
|
212 |
+
<img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Loading next step...') ?>" title="<?php echo $this->__('Loading next step...') ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
|
213 |
+
</span>
|
214 |
+
</div>
|
215 |
+
</fieldset>
|
216 |
+
</form>
|
217 |
+
<script type="text/javascript">
|
218 |
+
//<![CDATA[
|
219 |
+
var billing = new Billing('co-billing-form', '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', '<?php echo $this->getUrl('checkout/onepage/saveBilling') ?>');
|
220 |
+
var billingForm = new VarienForm('co-billing-form');
|
221 |
+
|
222 |
+
//billingForm.setElementsRelation('billing:country_id', 'billing:region', '<?php echo $this->getUrl('directory/json/childRegion') ?>', '<?php echo $this->__('Select State/Province...') ?>');
|
223 |
+
$('billing-address-select') && billing.newAddress(!$('billing-address-select').value);
|
224 |
+
|
225 |
+
var billingRegionUpdater = new RegionUpdater('billing:country_id', 'billing:region', 'billing:region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'billing:postcode');
|
226 |
+
//]]>
|
227 |
+
</script>
|
app/design/frontend/base/default/template/shiphawk/checkout/onepage/progress/billing.phtml
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php if ($this->getCheckout()->getStepData('billing', 'complete')): ?>
|
28 |
+
<dt class="complete">
|
29 |
+
<?php echo $this->__('Billing Address') ?><span class="changelink"> <span class="separator">|</span> <a
|
30 |
+
href="#billing"
|
31 |
+
onclick="checkout.changeSection('opc-billing'); return false;"><?php echo $this->__('Change') ?></a></span>
|
32 |
+
</dt>
|
33 |
+
<dd class="complete">
|
34 |
+
<address><?php echo $this->getBilling()->format('html') ?></address>
|
35 |
+
<?php $shLocationType = Mage::getSingleton('checkout/session')->getData('shiphawk_location_type_billing'); ?>
|
36 |
+
<?php if (!empty($shLocationType)):?>
|
37 |
+
<?php echo $shLocationType;?>
|
38 |
+
<?php endif;?>
|
39 |
+
</dd>
|
40 |
+
<?php else: ?>
|
41 |
+
<dt>
|
42 |
+
<?php echo $this->__('Billing Address') ?>
|
43 |
+
</dt>
|
44 |
+
<?php endif; ?>
|
app/design/frontend/base/default/template/shiphawk/checkout/onepage/progress/shipping.phtml
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php if ($this->getCheckout()->getStepData('shipping', 'complete')): ?>
|
28 |
+
<?php $completeClass = $this->getCheckout()->getStepData('shipping', 'complete') ? 'complete' : ''; ?>
|
29 |
+
<dt class="<?php echo $completeClass ?>">
|
30 |
+
<?php echo $this->__('Shipping Address') ?> <span class="changelink"><span class="separator">|</span> <a
|
31 |
+
href="#payment"
|
32 |
+
onclick="checkout.changeSection('opc-shipping');return false;"><?php echo $this->__('Change') ?></a></span>
|
33 |
+
</dt>
|
34 |
+
<dd class="<?php echo $completeClass ?>">
|
35 |
+
<?php if ($this->getCheckout()->getStepData('shipping', 'complete')): ?>
|
36 |
+
<address><?php echo $this->getShipping()->format('html') ?></address>
|
37 |
+
<?php endif; ?>
|
38 |
+
<?php $shLocationType = Mage::getSingleton('checkout/session')->getData('shiphawk_location_type_shipping'); ?>
|
39 |
+
<?php if (!empty($shLocationType)):?>
|
40 |
+
<?php echo $shLocationType;?>
|
41 |
+
<?php endif;?>
|
42 |
+
</dd>
|
43 |
+
<?php else: ?>
|
44 |
+
<dt>
|
45 |
+
<?php echo $this->__('Shipping Address') ?>
|
46 |
+
</dt>
|
47 |
+
<?php endif; ?>
|
48 |
+
|
app/design/frontend/base/default/template/shiphawk/checkout/onepage/progress/shipping_method.phtml
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php if ($this->getCheckout()->getStepData('shipping_method', 'complete')): ?>
|
28 |
+
<dt class="complete">
|
29 |
+
<?php echo $this->__('Shipping Method') ?> <span class="changelink"><span class="separator">|</span> <a
|
30 |
+
href="#shipping_method"
|
31 |
+
onclick="checkout.changeSection('opc-shipping_method'); return false;"><?php echo $this->__('Change') ?></a></span>
|
32 |
+
</dt>
|
33 |
+
<dd class="complete">
|
34 |
+
<?php if ($this->getShippingMethod()): ?>
|
35 |
+
<?php echo $this->getShippingDescription() ?>
|
36 |
+
|
37 |
+
<?php $_excl = $this->getShippingPriceExclTax(); ?>
|
38 |
+
<?php $_incl = $this->getShippingPriceInclTax(); ?>
|
39 |
+
<?php if ($this->helper('tax')->displayShippingPriceIncludingTax()): ?>
|
40 |
+
<?php echo $_incl; ?>
|
41 |
+
<?php else: ?>
|
42 |
+
<?php echo $_excl; ?>
|
43 |
+
<?php endif; ?>
|
44 |
+
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
45 |
+
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
46 |
+
<?php endif; ?>
|
47 |
+
<!-- For accessories -->
|
48 |
+
<?php
|
49 |
+
$session = Mage::getSingleton('checkout/session');
|
50 |
+
$accessories = $session->getData("shipment_accessories");
|
51 |
+
$currensySymbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
|
52 |
+
?>
|
53 |
+
<?php if (!empty($accessories['data'])):?>
|
54 |
+
<p><?php echo $this->__('Accessorials:');?></p>
|
55 |
+
<?php foreach($accessories['data'] as $type => $accessor):?>
|
56 |
+
<span class="shipping-ratio-origins-type"><?php echo str_replace("'", '' , $type);?></span>
|
57 |
+
<ul>
|
58 |
+
<?php foreach($accessor as $values):?>
|
59 |
+
<li><?php echo str_replace("'", '', $values['name'] . ' - ' . $currensySymbol . $values['value']);?></li>
|
60 |
+
<?php endforeach;?>
|
61 |
+
</ul>
|
62 |
+
<br/>
|
63 |
+
<?php endforeach;?>
|
64 |
+
<?php endif;?>
|
65 |
+
<?php else: ?>
|
66 |
+
<?php echo $this->__('Shipping method has not been selected yet') ?>
|
67 |
+
<?php endif; ?>
|
68 |
+
</dd>
|
69 |
+
<?php else: ?>
|
70 |
+
<dt>
|
71 |
+
<?php echo $this->__('Shipping Method') ?>
|
72 |
+
</dt>
|
73 |
+
<?php endif; ?>
|
74 |
+
|
app/design/frontend/base/default/template/shiphawk/checkout/onepage/review/totals.phtml
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @see Mage_Checkout_Block_Cart_Totals
|
29 |
+
*/
|
30 |
+
?>
|
31 |
+
<?php if ($this->getTotals()): ?>
|
32 |
+
<tfoot>
|
33 |
+
<?php $_colspan = $this->helper('tax')->displayCartBothPrices() ? 5 : 3; ?>
|
34 |
+
<?php echo $this->renderTotals(null, $_colspan); ?>
|
35 |
+
<!-- For accessories -->
|
36 |
+
<?php
|
37 |
+
$session = Mage::getSingleton('checkout/session');
|
38 |
+
$accessories = $session->getData("shipment_accessories");
|
39 |
+
$currensySymbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
|
40 |
+
?>
|
41 |
+
<?php if (!empty($accessories['data'])):?>
|
42 |
+
<tr>
|
43 |
+
<td class="a-right" colspan="3">
|
44 |
+
<?php echo $this->helper('sales')->__('Accessorials:') ?><br/>
|
45 |
+
<?php foreach($accessories['data'] as $type => $accessor):?>
|
46 |
+
<span class="shipping-ratio-origins-type"><?php echo str_replace("'", '', $type);?></span>
|
47 |
+
<ul>
|
48 |
+
<?php foreach($accessor as $values):?>
|
49 |
+
<li><?php echo str_replace("'", '', $values['name'] . ' - ' . $currensySymbol . $values['value']);?></li>
|
50 |
+
<?php endforeach;?>
|
51 |
+
</ul>
|
52 |
+
<br/>
|
53 |
+
<?php endforeach;?>
|
54 |
+
</td>
|
55 |
+
<td class="a-right"></td>
|
56 |
+
</tr>
|
57 |
+
<?php endif;?>
|
58 |
+
<?php echo $this->renderTotals('footer', $_colspan); ?>
|
59 |
+
<?php if ($this->needDisplayBaseGrandtotal()):?>
|
60 |
+
<tr>
|
61 |
+
<td class="a-right" colspan="<?php echo $_colspan; ?>">
|
62 |
+
<small><?php echo $this->helper('sales')->__('Your credit card will be charged for') ?></small>
|
63 |
+
</td>
|
64 |
+
<td class="a-right">
|
65 |
+
<small><?php echo $this->displayBaseGrandtotal() ?></small>
|
66 |
+
</td>
|
67 |
+
</tr>
|
68 |
+
<?php endif?>
|
69 |
+
</tfoot>
|
70 |
+
<?php endif; ?>
|
app/design/frontend/base/default/template/shiphawk/checkout/onepage/shipping.phtml
ADDED
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<form action="" id="co-shipping-form">
|
28 |
+
<ul class="form-list">
|
29 |
+
<?php if ($this->customerHasAddresses()): ?>
|
30 |
+
<li class="wide">
|
31 |
+
<label for="shipping-address-select"><?php echo $this->__('Select a shipping address from your address book or enter a new address.') ?></label>
|
32 |
+
<div class="input-box">
|
33 |
+
<?php echo $this->getAddressesHtmlSelect('shipping') ?>
|
34 |
+
</div>
|
35 |
+
</li>
|
36 |
+
<?php endif ?>
|
37 |
+
<li id="shipping-new-address-form"<?php if ($this->customerHasAddresses()): ?> style="display:none;"<?php endif ?>>
|
38 |
+
<fieldset>
|
39 |
+
<input type="hidden" name="shipping[address_id]" value="<?php echo $this->getAddress()->getId() ?>" id="shipping:address_id" />
|
40 |
+
<ul>
|
41 |
+
<li class="fields"><?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getAddress())->setFieldIdFormat('shipping:%s')->setFieldNameFormat('shipping[%s]')->setFieldParams('onchange="shipping.setSameAsBilling(false)"')->toHtml() ?></li>
|
42 |
+
<li class="fields">
|
43 |
+
<div class="fields">
|
44 |
+
<label for="shipping:company"><?php echo $this->__('Company') ?></label>
|
45 |
+
<div class="input-box">
|
46 |
+
<input type="text" id="shipping:company" name="shipping[company]" value="<?php echo $this->escapeHtml($this->getAddress()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('company') ?>" onchange="shipping.setSameAsBilling(false);" />
|
47 |
+
</div>
|
48 |
+
</div>
|
49 |
+
</li>
|
50 |
+
<?php $_streetValidationClass = $this->helper('customer/address')->getAttributeValidationClass('street'); ?>
|
51 |
+
<li class="wide">
|
52 |
+
<label for="shipping:street1" class="required"><em>*</em><?php echo $this->__('Address') ?></label>
|
53 |
+
<div class="input-box">
|
54 |
+
<input type="text" title="<?php echo $this->__('Street Address') ?>" name="shipping[street][]" id="shipping:street1" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet(1)) ?>" class="input-text <?php echo $_streetValidationClass ?>" onchange="shipping.setSameAsBilling(false);" />
|
55 |
+
</div>
|
56 |
+
</li>
|
57 |
+
<?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?>
|
58 |
+
<?php for ($_i = 2, $_n = $this->helper('customer/address')->getStreetLines(); $_i <= $_n; $_i++): ?>
|
59 |
+
<li class="wide">
|
60 |
+
<div class="input-box">
|
61 |
+
<input type="text" title="<?php echo $this->__('Street Address %s', $_i) ?>" name="shipping[street][]" id="shipping:street<?php echo $_i ?>" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet($_i)) ?>" class="input-text <?php echo $_streetValidationClass ?>" onchange="shipping.setSameAsBilling(false);" />
|
62 |
+
</div>
|
63 |
+
</li>
|
64 |
+
<?php endfor; ?>
|
65 |
+
<?php if ($this->helper('customer/address')->isVatAttributeVisible()) : ?>
|
66 |
+
<li class="wide">
|
67 |
+
<label for="billing:vat_id"><?php echo $this->__('VAT Number'); ?></label>
|
68 |
+
<div class="input-box">
|
69 |
+
<input type="text" id="shipping:vat_id" name="shipping[vat_id]" value="<?php echo $this->escapeHtml($this->getAddress()->getVatId()); ?>" title="<?php echo $this->__('VAT Number'); ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('vat_id') ?>" />
|
70 |
+
</div>
|
71 |
+
</li>
|
72 |
+
<?php endif; ?>
|
73 |
+
<li class="fields">
|
74 |
+
<div class="field">
|
75 |
+
<label for="shipping:city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
76 |
+
<div class="input-box">
|
77 |
+
<input type="text" title="<?php echo $this->__('City') ?>" name="shipping[city]" value="<?php echo $this->escapeHtml($this->getAddress()->getCity()) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('city') ?>" id="shipping:city" onchange="shipping.setSameAsBilling(false);" />
|
78 |
+
</div>
|
79 |
+
</div>
|
80 |
+
<div class="field">
|
81 |
+
<label for="shipping:region" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
82 |
+
<div class="input-box">
|
83 |
+
<select id="shipping:region_id" name="shipping[region_id]" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
84 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
85 |
+
</select>
|
86 |
+
<script type="text/javascript">
|
87 |
+
//<![CDATA[
|
88 |
+
$('shipping:region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
|
89 |
+
//]]>
|
90 |
+
</script>
|
91 |
+
<input type="text" id="shipping:region" name="shipping[region]" value="<?php echo $this->escapeHtml($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('region') ?>" style="display:none;" />
|
92 |
+
</div>
|
93 |
+
</div>
|
94 |
+
</li>
|
95 |
+
<li class="fields">
|
96 |
+
<div class="field">
|
97 |
+
<label for="shipping:postcode" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
98 |
+
<div class="input-box">
|
99 |
+
<input type="text" title="<?php echo $this->__('Zip/Postal Code') ?>" name="shipping[postcode]" id="shipping:postcode" value="<?php echo $this->escapeHtml($this->getAddress()->getPostcode()) ?>" class="input-text validate-zip-international <?php echo $this->helper('customer/address')->getAttributeValidationClass('postcode') ?>" onchange="shipping.setSameAsBilling(false);" />
|
100 |
+
</div>
|
101 |
+
</div>
|
102 |
+
<div class="field">
|
103 |
+
<label for="shipping:country_id" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
104 |
+
<div class="input-box">
|
105 |
+
<?php echo $this->getCountryHtmlSelect('shipping') ?>
|
106 |
+
</div>
|
107 |
+
</div>
|
108 |
+
</li>
|
109 |
+
<li class="fields">
|
110 |
+
<div class="field">
|
111 |
+
<label for="shipping:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
112 |
+
<div class="input-box">
|
113 |
+
<input type="text" name="shipping[telephone]" value="<?php echo $this->escapeHtml($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>" id="shipping:telephone" onchange="shipping.setSameAsBilling(false);" />
|
114 |
+
</div>
|
115 |
+
</div>
|
116 |
+
<div class="field">
|
117 |
+
<label for="shipping:fax"><?php echo $this->__('Fax') ?></label>
|
118 |
+
<div class="input-box">
|
119 |
+
<input type="text" name="shipping[fax]" value="<?php echo $this->escapeHtml($this->getAddress()->getFax()) ?>" title="<?php echo $this->__('Fax') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('fax') ?>" id="shipping:fax" onchange="shipping.setSameAsBilling(false);" />
|
120 |
+
</div>
|
121 |
+
</div>
|
122 |
+
</li>
|
123 |
+
<li class="fields">
|
124 |
+
<div class="field">
|
125 |
+
<label for="shipping:shiphawk-location-type"><?php echo $this->__('Location Type') ?></label>
|
126 |
+
<div class="input-box">
|
127 |
+
<select id="shipping:shiphawk-location-type" type="text" name="shipping[shiphawk_location_type]" class="validate-select">
|
128 |
+
<option value="residential"><?php echo $this->__('Residential') ?></option>
|
129 |
+
<option value="commercial"><?php echo $this->__('Commercial') ?></option>
|
130 |
+
</select>
|
131 |
+
</div>
|
132 |
+
</div>
|
133 |
+
</li>
|
134 |
+
<?php if ($this->isCustomerLoggedIn() && $this->customerHasAddresses()):?>
|
135 |
+
<li class="control">
|
136 |
+
<input type="checkbox" name="shipping[save_in_address_book]" value="1" title="<?php echo $this->__('Save in address book') ?>" id="shipping:save_in_address_book" onchange="shipping.setSameAsBilling(false);"<?php if ($this->getAddress()->getSaveInAddressBook()):?> checked="checked"<?php endif;?> class="checkbox" /><label for="shipping:save_in_address_book"><?php echo $this->__('Save in address book') ?></label></li>
|
137 |
+
<?php else:?>
|
138 |
+
<li class="no-display"><input type="hidden" name="shipping[save_in_address_book]" value="1" /></li>
|
139 |
+
<?php endif;?>
|
140 |
+
</ul>
|
141 |
+
</fieldset>
|
142 |
+
</li>
|
143 |
+
<li class="control">
|
144 |
+
<input type="checkbox" name="shipping[same_as_billing]" id="shipping:same_as_billing" value="1"<?php if($this->getAddress()->getSameAsBilling()): ?> checked="checked"<?php endif; ?> title="<?php echo $this->__('Use Billing Address') ?>" onclick="shipping.setSameAsBilling(this.checked)" class="checkbox" /><label for="shipping:same_as_billing"><?php echo $this->__('Use Billing Address') ?></label>
|
145 |
+
</li>
|
146 |
+
</ul>
|
147 |
+
<div class="buttons-set" id="shipping-buttons-container">
|
148 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
149 |
+
<p class="back-link"><a href="#" onclick="checkout.back(); return false;"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
150 |
+
<button type="button" class="button" title="<?php echo $this->__('Continue') ?>" onclick="shipping.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
151 |
+
<span id="shipping-please-wait" class="please-wait" style="display:none;">
|
152 |
+
<img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Loading next step...') ?>" title="<?php echo $this->__('Loading next step...') ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
|
153 |
+
</span>
|
154 |
+
</div>
|
155 |
+
</form>
|
156 |
+
<script type="text/javascript">
|
157 |
+
//<![CDATA[
|
158 |
+
var shipping = new Shipping('co-shipping-form', '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', '<?php echo $this->getUrl('checkout/onepage/saveShipping') ?>',
|
159 |
+
'<?php echo $this->getUrl('checkout/onepage/shippingMethod') ?>');
|
160 |
+
var shippingForm = new VarienForm('co-shipping-form');
|
161 |
+
shippingForm.extraChildParams = ' onchange="shipping.setSameAsBilling(false);"';
|
162 |
+
//shippingForm.setElementsRelation('shipping:country_id', 'shipping:region', '<?php echo $this->getUrl('directory/json/childRegion') ?>', '<?php echo $this->__('Select State/Province...') ?>');
|
163 |
+
$('shipping-address-select') && shipping.newAddress(!$('shipping-address-select').value);
|
164 |
+
|
165 |
+
var shippingRegionUpdater = new RegionUpdater('shipping:country_id', 'shipping:region', 'shipping:region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'shipping:postcode');
|
166 |
+
//]]>
|
167 |
+
</script>
|
app/design/frontend/base/default/template/shiphawk/checkout/onepage/shipping_method/available.phtml
ADDED
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magento.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.magento.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php /** @var $this Mage_Checkout_Block_Onepage_Shipping_Method_Available */ ?>
|
28 |
+
<?php $_shippingRateGroups = $this->getShippingRates();
|
29 |
+
$hideAccessoriesOnFrontend = Mage::getStoreConfig('carriers/shiphawk_shipping/hide_accessories_on_frontend');
|
30 |
+
/*$quote = Mage::getSingleton('checkout/session')->getQuote();
|
31 |
+
|
32 |
+
$address = $quote->getShippingAddress();
|
33 |
+
$address->addTotal(array(
|
34 |
+
'code' => 'sssss',
|
35 |
+
'title' => 'Accesorials 1',
|
36 |
+
'value' => 50
|
37 |
+
));
|
38 |
+
|
39 |
+
$address->save();
|
40 |
+
|
41 |
+
$tt = $address->getTotals();*/
|
42 |
+
|
43 |
+
|
44 |
+
|
45 |
+
//$quote->setTotalsCollectedFlag(false)->collectTotals();
|
46 |
+
|
47 |
+
?>
|
48 |
+
<?php if (!$_shippingRateGroups): ?>
|
49 |
+
<p><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></p>
|
50 |
+
<?php else: ?>
|
51 |
+
<dl class="sp-methods">
|
52 |
+
<?php $shippingCodePrice = array(); ?>
|
53 |
+
<?php $_sole = count($_shippingRateGroups) == 1; foreach ($_shippingRateGroups as $code => $_rates): ?>
|
54 |
+
<dt><?php echo $this->escapeHtml($this->getCarrierName($code)) ?></dt>
|
55 |
+
<dd>
|
56 |
+
<ul>
|
57 |
+
<?php $_sole = $_sole && count($_rates) == 1; foreach ($_rates as $_rate): ?>
|
58 |
+
<?php $shippingCodePrice[] = "'".$_rate->getCode()."':".(float)$_rate->getPrice(); ?>
|
59 |
+
<li>
|
60 |
+
<?php if ($_rate->getErrorMessage()): ?>
|
61 |
+
<ul class="messages"><li class="error-msg"><ul><li><?php echo $this->escapeHtml($_rate->getErrorMessage()) ?></li></ul></li></ul>
|
62 |
+
<?php else: ?>
|
63 |
+
<?php if ($_sole) : ?>
|
64 |
+
<span class="no-display"><input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>" checked="checked" class="shipping-ratios" data-rate="<?php echo $_rate->getRateId();?>"/></span>
|
65 |
+
<?php else: ?>
|
66 |
+
<input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>"<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked="checked"' ?> class="radio shipping-ratios" data-rate="<?php echo $_rate->getRateId();?>"/>
|
67 |
+
|
68 |
+
<?php if ($_rate->getCode() === $this->getAddressShippingMethod()): ?>
|
69 |
+
<script type="text/javascript">
|
70 |
+
//<![CDATA[
|
71 |
+
lastPrice = <?php echo (float)$_rate->getPrice(); ?>;
|
72 |
+
//]]>
|
73 |
+
</script>
|
74 |
+
<?php endif; ?>
|
75 |
+
|
76 |
+
<?php endif; ?>
|
77 |
+
<label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $this->escapeHtml($_rate->getMethodTitle()) ?>
|
78 |
+
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
|
79 |
+
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
|
80 |
+
<?php echo $_excl; ?>
|
81 |
+
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
|
82 |
+
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
|
83 |
+
<?php endif; ?>
|
84 |
+
</label>
|
85 |
+
<?php endif ?>
|
86 |
+
</li>
|
87 |
+
<?php if (!$hideAccessoriesOnFrontend):?>
|
88 |
+
<?php if($_rate->method_description){ ?>
|
89 |
+
<?php $methodDescription = unserialize($_rate->method_description); ?>
|
90 |
+
|
91 |
+
<?php
|
92 |
+
if($_rate->method_description && !empty($methodDescription->destination)): ?>
|
93 |
+
<span class="shipping-ratio-origins shipping-ratio-<?php echo $_rate->getRateId();?>-origins">Destination:</span>
|
94 |
+
<?php foreach($methodDescription->destination as $origin_acc) {?>
|
95 |
+
<li class="shipping-ratio-origins shipping-ratio-<?php echo $_rate->getRateId();?>-origins">
|
96 |
+
<input id="<?php echo $origin_acc->id . '-' . $_rate->getRateId(); ?>" type="checkbox" value="<?php echo $origin_acc->price ?>" name="accessories['destination']['<?php echo $origin_acc->accessorial_type . ' (' . $origin_acc->accessorial_options . ')';?>']['<?php echo $origin_acc->id; ?>']" class="checkbox" />
|
97 |
+
<label for="<?php echo $origin_acc->id . '-' . $_rate->getRateId(); ?>" class="shipping-ratio-origins-label"><?php echo $origin_acc->accessorial_type . ' (' . $origin_acc->accessorial_options . ')' . ' + ' . '$' . $origin_acc->price ?></label>
|
98 |
+
</li>
|
99 |
+
<?php }
|
100 |
+
endif; ?>
|
101 |
+
<?php } ?>
|
102 |
+
<?php endif;?>
|
103 |
+
<?php endforeach; ?>
|
104 |
+
</ul>
|
105 |
+
</dd>
|
106 |
+
<?php endforeach; ?>
|
107 |
+
</dl>
|
108 |
+
<script type="text/javascript">
|
109 |
+
//<![CDATA[
|
110 |
+
<?php if (!empty($shippingCodePrice)): ?>
|
111 |
+
var shippingCodePrice = {<?php echo implode(',',$shippingCodePrice); ?>};
|
112 |
+
<?php endif; ?>
|
113 |
+
|
114 |
+
$$('input[type="radio"][name="shipping_method"]').each(function(el){
|
115 |
+
Event.observe(el, 'click', function(){
|
116 |
+
if (el.checked == true) {
|
117 |
+
var getShippingCode = el.getValue();
|
118 |
+
<?php if (!empty($shippingCodePrice)): ?>
|
119 |
+
var newPrice = shippingCodePrice[getShippingCode];
|
120 |
+
if (!lastPrice) {
|
121 |
+
lastPrice = newPrice;
|
122 |
+
quoteBaseGrandTotal += newPrice;
|
123 |
+
}
|
124 |
+
if (newPrice != lastPrice) {
|
125 |
+
quoteBaseGrandTotal += (newPrice-lastPrice);
|
126 |
+
lastPrice = newPrice;
|
127 |
+
}
|
128 |
+
<?php endif; ?>
|
129 |
+
checkQuoteBaseGrandTotal = quoteBaseGrandTotal;
|
130 |
+
return false;
|
131 |
+
}
|
132 |
+
});
|
133 |
+
});
|
134 |
+
|
135 |
+
/* For couple rates */
|
136 |
+
jQuery("input.shipping-ratios").change(function() {
|
137 |
+
jQuery('.shipping-ratio-origins').hide();
|
138 |
+
jQuery('.shipping-ratio-origins input[type=checkbox]').prop('checked', false);
|
139 |
+
|
140 |
+
var ratioId = jQuery("input.shipping-ratios:checked").data('rate');
|
141 |
+
|
142 |
+
showOrigins(ratioId);
|
143 |
+
});
|
144 |
+
|
145 |
+
/* For checked rate */
|
146 |
+
if (jQuery("input.shipping-ratios:checked").length > 0) {
|
147 |
+
var id = jQuery("input.shipping-ratios:checked").data('rate');
|
148 |
+
|
149 |
+
showOrigins(id);
|
150 |
+
};
|
151 |
+
|
152 |
+
function showOrigins(id) {
|
153 |
+
jQuery('.shipping-ratio-' + id + '-origins').show();
|
154 |
+
};
|
155 |
+
//]]>
|
156 |
+
</script>
|
157 |
+
<?php endif; ?>
|
app/design/frontend/base/default/template/shiphawk/popup.phtml
ADDED
@@ -0,0 +1,244 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 base_default
|
23 |
+
* @copyright Copyright (c) 2014 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 /** @var $this Mage_Shipping_Block_Tracking_Popup */ ?>
|
28 |
+
<?php $_results = $this->getTrackingInfo();
|
29 |
+
/*$shippingInfoModel = Mage::getModel('shipping/info')->loadByHash($this->getRequest()->getParam('hash'));
|
30 |
+
|
31 |
+
$ship_id = $shippingInfoModel->getData('ship_id');
|
32 |
+
|
33 |
+
if($ship_id) {
|
34 |
+
$shipment = Mage::getModel('sales/order_shipment')->load($ship_id);
|
35 |
+
|
36 |
+
|
37 |
+
}else{
|
38 |
+
//order view
|
39 |
+
foreach($_results as $key=>$value) {
|
40 |
+
//get only for first shippment
|
41 |
+
$shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($key);
|
42 |
+
}
|
43 |
+
|
44 |
+
|
45 |
+
}
|
46 |
+
$tracks = $shipment->getTracksCollection();
|
47 |
+
|
48 |
+
|
49 |
+
$trackingNumbers = array();
|
50 |
+
foreach ($tracks as $track){
|
51 |
+
$trackingNumbers[] = $track->getNumber();
|
52 |
+
}*/
|
53 |
+
|
54 |
+
$api = Mage::getModel('shiphawk_shipping/api');
|
55 |
+
?>
|
56 |
+
<div class="page-title title-buttons">
|
57 |
+
<h1><?php echo $this->__('Tracking Information'); ?></h1>
|
58 |
+
<button class="button" onclick="window.close(); window.opener.focus();"><span><span><?php echo $this->__('Close Window') ?></span></span></button>
|
59 |
+
</div>
|
60 |
+
<?php if(sizeof($_results)>0): ?>
|
61 |
+
<?php foreach($_results as $shipid => $_result): ?>
|
62 |
+
<?php if($shipid): ?>
|
63 |
+
<h2 class="sub-title"><?php echo $this->__('Shipment #') . $shipid; ?></h2>
|
64 |
+
<?php endif; ?>
|
65 |
+
<?php
|
66 |
+
$shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipid);
|
67 |
+
|
68 |
+
$tracks = $shipment->getTracksCollection();
|
69 |
+
|
70 |
+
|
71 |
+
$trackingNumbers = array();
|
72 |
+
foreach ($tracks as $track){
|
73 |
+
$trackingNumbers[] = $track->getNumber();
|
74 |
+
}
|
75 |
+
|
76 |
+
foreach($trackingNumbers as $trackNumber) {
|
77 |
+
$trackResult = $api->getShipmentStatus($trackNumber);
|
78 |
+
|
79 |
+
switch ($trackResult->status) {
|
80 |
+
case 'in_transit':
|
81 |
+
$comment = "Shipment status is: In Transit. Your shipment is with the carrier and is in transit.";
|
82 |
+
break;
|
83 |
+
case 'confirmed':
|
84 |
+
$comment = "Shipment status is: Confirmed. Your shipment has been successfully confirmed.";
|
85 |
+
break;
|
86 |
+
case 'scheduled_for_pickup':
|
87 |
+
$comment = "Shipment status is: Scheduled. Your shipment has been scheduled for pickup.";
|
88 |
+
break;
|
89 |
+
case 'agent_prep':
|
90 |
+
$comment = "Shipment status is: Agent Prep. Your shipment is now being professionally prepared for carrier pickup.";
|
91 |
+
break;
|
92 |
+
case 'delivered':
|
93 |
+
$comment = "Shipment status is: Delivered. Your shipment has been delivered!";
|
94 |
+
break;
|
95 |
+
case 'cancelled':
|
96 |
+
$comment = "Shipment status is: Cancelled. Your shipment has been cancelled successfully.";
|
97 |
+
break;
|
98 |
+
default: $comment = "Shipment status is: " . $trackResult->status . ". ";
|
99 |
+
}
|
100 |
+
|
101 |
+
echo '<div>' . $comment . '</div>';
|
102 |
+
}
|
103 |
+
?>
|
104 |
+
<?php if(sizeof($_result)>0): ?>
|
105 |
+
<?php $rowCount = sizeof($_result); $counter = 1; ?>
|
106 |
+
<?php $_id = 0; foreach($_result as $track): ?>
|
107 |
+
<table class="tracking-table-popup data-table" id="tracking-table-popup-<?php echo $_id ?>">
|
108 |
+
<col width="15%" />
|
109 |
+
<col />
|
110 |
+
<tbody>
|
111 |
+
<?php if(is_object($track)): ?>
|
112 |
+
<tr>
|
113 |
+
<th class="label"><?php echo $this->__('Tracking Number:'); ?></th>
|
114 |
+
<td class="value"><?php echo $this->escapeHtml($track->getTracking()); ?></td>
|
115 |
+
</tr>
|
116 |
+
<?php if ($track->getCarrierTitle()): ?>
|
117 |
+
<tr>
|
118 |
+
<th class="label"><?php echo $this->__('Carrier:'); ?></th>
|
119 |
+
<td class="value"><?php echo $this->escapeHtml($track->getCarrierTitle()); ?></td>
|
120 |
+
</tr>
|
121 |
+
<?php endif; ?>
|
122 |
+
<?php if($track->getErrorMessage()): ?>
|
123 |
+
<tr>
|
124 |
+
<th class="label"><?php echo $this->__('Error:'); ?></th>
|
125 |
+
<td class="error"><?php echo $this->__('Tracking information is currently not available. Please '); if ($this->getContactUsEnabled()) : ?><a href="<?php echo $this->getContactUs() ?>" title="<?php echo $this->__('contact us') ?>" onclick="this.target='_blank'"><?php echo $this->__('contact us') ?></a><?php echo $this->__(' for more information or '); endif; echo $this->__('email us at '); ?><a href="mailto:<?php echo $this->getStoreSupportEmail() ?>"><?php echo $this->getStoreSupportEmail() ?></a></td>
|
126 |
+
</tr>
|
127 |
+
<?php elseif($track->getTrackSummary()): ?>
|
128 |
+
<tr>
|
129 |
+
<th class="label"><?php echo $this->__('Info:'); ?></th>
|
130 |
+
<td class="value"><?php echo $track->getTrackSummary(); ?></td>
|
131 |
+
</tr>
|
132 |
+
<?php elseif($track->getUrl()): ?>
|
133 |
+
<tr>
|
134 |
+
<th class="label"><?php echo $this->__('Track:'); ?></th>
|
135 |
+
<td class="value">
|
136 |
+
<a href="<?php echo $this->escapeHtml($track->getUrl()); ?>" onclick="this.target='_blank'"><?php echo $this->__('View Details'); ?></a></td>
|
137 |
+
</tr>
|
138 |
+
<?php else: ?>
|
139 |
+
<?php if ($track->getStatus()): ?>
|
140 |
+
<tr>
|
141 |
+
<th class="label"><?php echo $this->__('Status:'); ?></th>
|
142 |
+
<td class="value"><?php echo $track->getStatus(); ?></td>
|
143 |
+
</tr>
|
144 |
+
<?php endif; ?>
|
145 |
+
|
146 |
+
<?php if ($track->getDeliverydate()): ?>
|
147 |
+
<tr>
|
148 |
+
<th class="label"><?php echo $this->__('Delivered on:'); ?></th>
|
149 |
+
<td class="value"><?php echo $this->formatDeliveryDateTime($track->getDeliverydate(),$track->getDeliverytime()); ?></td>
|
150 |
+
</tr>
|
151 |
+
<?php endif; ?>
|
152 |
+
|
153 |
+
<?php if ($track->getSignedby()): ?>
|
154 |
+
<tr>
|
155 |
+
<th class="label"><?php echo $this->__('Signed by:'); ?></th>
|
156 |
+
<td class="value"><?php echo $track->getSignedby(); ?></td>
|
157 |
+
</tr>
|
158 |
+
<?php endif; ?>
|
159 |
+
|
160 |
+
<?php if ($track->getDeliveryLocation()): ?>
|
161 |
+
<tr>
|
162 |
+
<th class="label"><?php echo $this->__('Delivered to:'); ?></th>
|
163 |
+
<td class="value"><?php echo $track->getDeliveryLocation(); ?></td>
|
164 |
+
</tr>
|
165 |
+
<?php endif; ?>
|
166 |
+
|
167 |
+
<?php if ($track->getShippedDate()): ?>
|
168 |
+
<tr>
|
169 |
+
<th class="label"><?php echo $this->__('Shipped or billed on:'); ?></th>
|
170 |
+
<td class="value"><?php echo $track->getShippedDate(); ?></td>
|
171 |
+
</tr>
|
172 |
+
<?php endif; ?>
|
173 |
+
|
174 |
+
<?php if ($track->getService()): ?>
|
175 |
+
<tr>
|
176 |
+
<th class="label"><?php echo $this->__('Service Type:'); ?></th>
|
177 |
+
<td class="value"><?php echo $track->getService(); ?></td>
|
178 |
+
</tr>
|
179 |
+
<?php endif; ?>
|
180 |
+
|
181 |
+
<?php if ($track->getWeight()): ?>
|
182 |
+
<tr>
|
183 |
+
<th class="label"><?php echo $this->__('Weight:'); ?></th>
|
184 |
+
<td class="value"><?php echo $track->getWeight(); ?></td>
|
185 |
+
</tr>
|
186 |
+
<?php endif; ?>
|
187 |
+
<?php endif; ?>
|
188 |
+
<?php elseif(isset($track['title']) && isset($track['number']) && $track['number']): ?>
|
189 |
+
<!--if the tracking is custom value-->
|
190 |
+
<tr>
|
191 |
+
<th class="label"><?php echo ($track['title'] ? $this->escapeHtml($track['title']) : $this->__('N/A')); ?>:</th>
|
192 |
+
<td class="value"><?php echo (isset($track['number']) ? $this->escapeHtml($track['number']) : ''); ?></td>
|
193 |
+
</tr>
|
194 |
+
<?php endif; ?>
|
195 |
+
</tbody>
|
196 |
+
</table>
|
197 |
+
<script type="text/javascript">decorateTable('tracking-table-popup-<?php echo $_id++ ?>');</script>
|
198 |
+
<?php if (is_object($track) && sizeof($track->getProgressdetail())>0): ?>
|
199 |
+
<br />
|
200 |
+
<table class="data-table" id="track-history-table-<?php echo $track->getTracking(); ?>">
|
201 |
+
<col />
|
202 |
+
<col width="1" />
|
203 |
+
<col width="1" />
|
204 |
+
<col />
|
205 |
+
<thead>
|
206 |
+
<tr>
|
207 |
+
<th><?php echo $this->__('Location') ?></th>
|
208 |
+
<th><?php echo $this->__('Date') ?></th>
|
209 |
+
<th><?php echo $this->__('Local Time') ?></th>
|
210 |
+
<th><?php echo $this->__('Description') ?></th>
|
211 |
+
</tr>
|
212 |
+
</thead>
|
213 |
+
<tbody>
|
214 |
+
<?php foreach($track->getProgressdetail() as $_detail): ?>
|
215 |
+
<?php $_detailDate = (isset($_detail['deliverydate']) ? $this->formatDeliveryDate($_detail['deliverydate']) : '') ?>
|
216 |
+
<?php $_detailTime = (isset($_detail['deliverytime']) ? $this->formatDeliveryTime($_detail['deliverytime'], $_detail['deliverydate']) : '') ?>
|
217 |
+
<tr>
|
218 |
+
<td><?php echo (isset($_detail['deliverylocation']) ? $_detail['deliverylocation'] : ''); ?></td>
|
219 |
+
<td><span class="nobr"><?php echo $_detailDate ?></span></td>
|
220 |
+
<td><span class="nobr"><?php echo $_detailTime ?></span></td>
|
221 |
+
<td><?php echo (isset($_detail['activity']) ? $_detail['activity'] : '') ?></td>
|
222 |
+
</tr>
|
223 |
+
<?php endforeach; ?>
|
224 |
+
</tbody>
|
225 |
+
</table>
|
226 |
+
<script type="text/javascript">decorateTable('track-history-table-<?php echo $track->getTracking(); ?>');</script>
|
227 |
+
<?php endif; ?>
|
228 |
+
<div class="divider"></div>
|
229 |
+
<?php if($counter!=$rowCount): ?>
|
230 |
+
<?php endif; ?>
|
231 |
+
<?php $counter++; ?>
|
232 |
+
<!--end for each tracking information-->
|
233 |
+
<?php endforeach; ?>
|
234 |
+
<?php else: ?>
|
235 |
+
<p><?php echo $this->__('There is no tracking available for this shipment.'); ?></p>
|
236 |
+
<?php endif; ?>
|
237 |
+
|
238 |
+
<?php endforeach; ?>
|
239 |
+
<?php else: ?>
|
240 |
+
<p><?php echo $this->__('There is no tracking available.'); ?></p>
|
241 |
+
<?php endif; ?>
|
242 |
+
<div class="buttons-set">
|
243 |
+
<button type="button" title="<?php echo $this->__('Close Window') ?>" class="button" onclick="window.close(); window.opener.focus();"><span><span><?php echo $this->__('Close Window') ?></span></span></button>
|
244 |
+
</div>
|
app/etc/modules/Shiphawk_Shipping.xml
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<modules>
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<modules>
|
4 |
+
<Shiphawk_Shipping>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
<depends>
|
8 |
+
<Mage_Shipping />
|
9 |
+
</depends>
|
10 |
+
</Shiphawk_Shipping>
|
11 |
+
</modules>
|
12 |
+
</config>
|
app/locale/en_US/template/email/shiphawk_error_email.html
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!--@subject New Magento Error Log Requires Your Attention. @-->
|
2 |
+
<table cellpadding="0" cellspacing="0" border="0">
|
3 |
+
<tr>
|
4 |
+
<td class="action-content">
|
5 |
+
{{var store.getFrontendName()}}
|
6 |
+
<p>
|
7 |
+
API key: {{var shiphawk_api_key}}
|
8 |
+
</p>
|
9 |
+
<p>
|
10 |
+
{{var shiphawk_error_log}}
|
11 |
+
</p>
|
12 |
+
<p>
|
13 |
+
If you have any questions, please feel free to contact us at
|
14 |
+
<a href="mailto:{{var store_email}}">{{var store_email}}</a>
|
15 |
+
|
16 |
+
</p>
|
17 |
+
</td>
|
18 |
+
</tr>
|
19 |
+
</table>
|
20 |
+
|
21 |
+
{{template config_path="design/email/footer"}}
|
js/shiphawk/shiphawk.css
CHANGED
@@ -11,4 +11,31 @@
|
|
11 |
position: absolute;
|
12 |
z-index: 99;
|
13 |
background-color: #ffffff;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
}
|
11 |
position: absolute;
|
12 |
z-index: 99;
|
13 |
background-color: #ffffff;
|
14 |
+
}
|
15 |
+
|
16 |
+
.shiphawk-shipping-adminhtml-shipment-newshipment .wrapper .header, .shiphawk-shipping-adminhtml-shipment-newshipment .wrapper .footer, .shiphawk-shipping-adminhtml-shipment-newshipment .wrapper .notification-global {
|
17 |
+
display: none!important;
|
18 |
+
}
|
19 |
+
.shiphawk-shipping-adminhtml-shipment-newshipment .wrapper .middle {
|
20 |
+
min-height: 200px!important;
|
21 |
+
}
|
22 |
+
.shiphawk-shipping-adminhtml-shipment-newshipment .wrapper {
|
23 |
+
min-height: 200px!important;
|
24 |
+
min-width:360px!important;
|
25 |
+
}
|
26 |
+
|
27 |
+
.submitshiphawk_button {
|
28 |
+
margin-top: 20px;
|
29 |
+
padding: 2px;
|
30 |
+
}
|
31 |
+
|
32 |
+
label[for=shiphawk_origin_firstname]:after, label[for=shiphawk_origin_lastname]:after, label[for=shiphawk_origin_addressline1]:after, label[for=shiphawk_origin_city]:after,
|
33 |
+
label[for=shiphawk_origin_state]:after, label[for=shiphawk_origin_zipcode]:after, label[for=shiphawk_origin_phonenum]:after, label[for=shiphawk_origin_email]:after,
|
34 |
+
label[for=shiphawk_origin_location]:after {
|
35 |
+
color: red;
|
36 |
+
content: "*";
|
37 |
+
}
|
38 |
+
|
39 |
+
#error_text_ {
|
40 |
+
padding: 10px 10px 10px 0;
|
41 |
}
|
js/shiphawk/shiphawk.js
CHANGED
@@ -3,6 +3,109 @@ document.observe("dom:loaded", function() {
|
|
3 |
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
|
4 |
}
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
var el = document.createElement("div");
|
7 |
|
8 |
el.id = "type_product";
|
@@ -22,8 +125,9 @@ document.observe("dom:loaded", function() {
|
|
22 |
|
23 |
var minlength = 3;
|
24 |
|
25 |
-
var url = '
|
26 |
|
|
|
27 |
var parameters = {
|
28 |
search_tag: element.value
|
29 |
};
|
@@ -52,10 +156,16 @@ document.observe("dom:loaded", function() {
|
|
52 |
});
|
53 |
}
|
54 |
}
|
|
|
55 |
});
|
56 |
function setItemid(el) {
|
57 |
$('shiphawk_type_of_product').value = el.innerHTML;
|
|
|
|
|
|
|
|
|
|
|
58 |
$('shiphawk_type_of_product_value').value = el.id;
|
59 |
-
$('type_product').hide();
|
60 |
-
}
|
61 |
|
|
|
|
3 |
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
|
4 |
}
|
5 |
|
6 |
+
function updateInput() {
|
7 |
+
var shiphawk_shipping_origins = document.getElementById("shiphawk_shipping_origins");
|
8 |
+
var is_mass_action = 0;
|
9 |
+
|
10 |
+
// check is it mass edit attribute action
|
11 |
+
if (document.URL.indexOf('catalog_product_action_attribute') > 0) {
|
12 |
+
is_mass_action = 1;
|
13 |
+
}
|
14 |
+
var url = 'shiphawk/index/origins';
|
15 |
+
|
16 |
+
url = baseMagentoUrl + url;
|
17 |
+
var parameters = {
|
18 |
+
origin_id: shiphawk_shipping_origins.value,
|
19 |
+
is_mass_action : is_mass_action
|
20 |
+
};
|
21 |
+
|
22 |
+
new Ajax.Request(url, {
|
23 |
+
method: 'post',
|
24 |
+
parameters: parameters,
|
25 |
+
onSuccess: function(transport) {
|
26 |
+
|
27 |
+
responce_html = JSON.parse(transport.responseText);
|
28 |
+
|
29 |
+
var el = document.createElement("div");
|
30 |
+
|
31 |
+
el.id = "origins_select";
|
32 |
+
|
33 |
+
el.update(responce_html);
|
34 |
+
|
35 |
+
shiphawk_shipping_origins.parentNode.replaceChild(el, shiphawk_shipping_origins);
|
36 |
+
|
37 |
+
},
|
38 |
+
onLoading:function(transport)
|
39 |
+
{
|
40 |
+
|
41 |
+
}
|
42 |
+
});
|
43 |
+
}
|
44 |
+
|
45 |
+
updateInput();
|
46 |
+
|
47 |
+
var origin_fields = new Array($('shiphawk_origin_firstname'), $('shiphawk_origin_lastname'), $('shiphawk_origin_addressline1'),
|
48 |
+
$('shiphawk_origin_city'), $('shiphawk_origin_state'), $('shiphawk_origin_zipcode'), $('shiphawk_origin_phonenum'),
|
49 |
+
$('shiphawk_origin_email'), $('shiphawk_origin_location'));
|
50 |
+
|
51 |
+
function setOriginRequiredFields() {
|
52 |
+
origin_fields.forEach(function(item, i, arr) {
|
53 |
+
//item.addClassName('required-entry');
|
54 |
+
item.observe('keyup', function(event){
|
55 |
+
if($('shiphawk_shipping_origins').value == '') {
|
56 |
+
|
57 |
+
_addRequiredClass( origin_fields );
|
58 |
+
}
|
59 |
+
});
|
60 |
+
|
61 |
+
});
|
62 |
+
|
63 |
+
}
|
64 |
+
|
65 |
+
function _addRequiredClass( origin_fields ) {
|
66 |
+
|
67 |
+
origin_fields.forEach(function(item, i, arr) {
|
68 |
+
if(!item.hasClassName('required-entry')){
|
69 |
+
item.addClassName('required-entry');
|
70 |
+
}
|
71 |
+
});
|
72 |
+
}
|
73 |
+
|
74 |
+
function _removeRequiredClass( origin_fields ) {
|
75 |
+
|
76 |
+
origin_fields.forEach(function(item, i, arr) {
|
77 |
+
if(item.hasClassName('required-entry')){
|
78 |
+
item.removeClassName('required-entry');
|
79 |
+
}
|
80 |
+
});
|
81 |
+
}
|
82 |
+
|
83 |
+
function _checkIfAllRequeredEmpty( origin_fields ) {
|
84 |
+
var k = 0;
|
85 |
+
origin_fields.forEach(function(item, i, arr) {
|
86 |
+
if(item.value){
|
87 |
+
k = k + 1;
|
88 |
+
}
|
89 |
+
});
|
90 |
+
|
91 |
+
if ((k != 9)&&(k>0)) {
|
92 |
+
_addRequiredClass( origin_fields );
|
93 |
+
}else{
|
94 |
+
_removeRequiredClass( origin_fields );
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
origin_fields.forEach(function(item) {
|
99 |
+
item.onchange = function(){
|
100 |
+
_checkIfAllRequeredEmpty( origin_fields );
|
101 |
+
};
|
102 |
+
});
|
103 |
+
|
104 |
+
//setOriginRequiredFields();
|
105 |
+
_checkIfAllRequeredEmpty( origin_fields );
|
106 |
+
|
107 |
+
|
108 |
+
|
109 |
var el = document.createElement("div");
|
110 |
|
111 |
el.id = "type_product";
|
125 |
|
126 |
var minlength = 3;
|
127 |
|
128 |
+
var url = 'shiphawk/index/search';
|
129 |
|
130 |
+
url = baseMagentoUrl + url;
|
131 |
var parameters = {
|
132 |
search_tag: element.value
|
133 |
};
|
156 |
});
|
157 |
}
|
158 |
}
|
159 |
+
|
160 |
});
|
161 |
function setItemid(el) {
|
162 |
$('shiphawk_type_of_product').value = el.innerHTML;
|
163 |
+
|
164 |
+
if ($('shiphawk_type_of_product_value').disabled == true) {
|
165 |
+
$('shiphawk_type_of_product_value').disabled = false;
|
166 |
+
}
|
167 |
+
|
168 |
$('shiphawk_type_of_product_value').value = el.id;
|
|
|
|
|
169 |
|
170 |
+
$('type_product').hide();
|
171 |
+
}
|
js/shiphawk/shiphawk_order.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Event.observe(window, "load", function(){
|
2 |
+
if ($('order-shipping-method-choose') !== null) {
|
3 |
+
$('order-shipping-method-choose').hide();
|
4 |
+
$('order-shipping-method-summary-hidden').show();
|
5 |
+
}
|
6 |
+
});
|
js/shiphawk/shiphawk_shipment.js
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function showPopup(sUrl) {
|
2 |
+
oPopup = new Window({
|
3 |
+
id:'popup_window',
|
4 |
+
className: 'magento',
|
5 |
+
url: sUrl,
|
6 |
+
width: 480,
|
7 |
+
height: 390,
|
8 |
+
minimizable: false,
|
9 |
+
maximizable: false,
|
10 |
+
showEffectOptions: {
|
11 |
+
duration: 0.4
|
12 |
+
},
|
13 |
+
hideEffectOptions:{
|
14 |
+
duration: 0.4
|
15 |
+
},
|
16 |
+
destroyOnClose: true
|
17 |
+
});
|
18 |
+
oPopup.setZIndex(999);
|
19 |
+
oPopup.showCenter(true);
|
20 |
+
}
|
21 |
+
|
22 |
+
function closePopup() {
|
23 |
+
Windows.close('popup_window');
|
24 |
+
}
|
25 |
+
|
26 |
+
function reBook(postUrl, order_id, sUrl) {
|
27 |
+
var parameters = {
|
28 |
+
order_id: order_id,
|
29 |
+
sUrl: sUrl
|
30 |
+
};
|
31 |
+
|
32 |
+
new Ajax.Request(postUrl, {
|
33 |
+
method: 'post',
|
34 |
+
parameters: parameters,
|
35 |
+
onSuccess: function(transport) {
|
36 |
+
responce_html = JSON.parse(transport.responseText);
|
37 |
+
if(responce_html.sUrl) {
|
38 |
+
$('loading-mask').hide();
|
39 |
+
showPopup(responce_html.sUrl);
|
40 |
+
}else{
|
41 |
+
$('loading-mask').hide();
|
42 |
+
location.reload();
|
43 |
+
}
|
44 |
+
},
|
45 |
+
onComplete:function(request, json) {
|
46 |
+
responce_html = JSON.parse(transport.responseText);
|
47 |
+
$('loading-mask').hide();
|
48 |
+
}
|
49 |
+
});
|
50 |
+
}
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ShipHawk</name>
|
4 |
-
<version>1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
7 |
<channel>community</channel>
|
@@ -11,12 +11,26 @@
|
|
11 |

|
12 |
ShipHawk fulfillment services let businesses elect to automatically dispatch jobs to ShipHawk or manually book them after their customers have checked out online. The admin can subscribe to tracking updates to programmatically retrieve updates from ShipHawk about their booked shipments. Magento users can leverage out of the box Magento functionality to email details of shipments to their customers and provide tracking details to their end users. 
|
13 |

|
14 |
-
Clients using Magento no longer have to use ShipHawk APIs to develop their own custom Magento soluion. Now, they can integrate the ShipHawk Magento extension to quickly and easily sync with their existing platform to get rates, provide shipping details to customers browsing their website, automatically fulfill shipments thru ShipHawk and get tracking updates. For more information on ShipHawk, visit https://shiphawk.com
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
<authors><author><name>Mikel Richardson</name><user>MAG002779924</user><email>mikel@shiphawk.com</email></author></authors>
|
17 |
-
<date>2015-
|
18 |
-
<time>
|
19 |
-
<contents><target name="magecommunity"><dir name="Shiphawk"><dir name="Shipping"><dir name="Block"><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="Shipment"><file name="View.php" hash="
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
22 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ShipHawk</name>
|
4 |
+
<version>1.1.9</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
7 |
<channel>community</channel>
|
11 |

|
12 |
ShipHawk fulfillment services let businesses elect to automatically dispatch jobs to ShipHawk or manually book them after their customers have checked out online. The admin can subscribe to tracking updates to programmatically retrieve updates from ShipHawk about their booked shipments. Magento users can leverage out of the box Magento functionality to email details of shipments to their customers and provide tracking details to their end users. 
|
13 |

|
14 |
+
Clients using Magento no longer have to use ShipHawk APIs to develop their own custom Magento soluion. Now, they can integrate the ShipHawk Magento extension to quickly and easily sync with their existing platform to get rates, provide shipping details to customers browsing their website, automatically fulfill shipments thru ShipHawk and get tracking updates. For more information on ShipHawk, visit https://shiphawk.com 
|
15 |
+

|
16 |
+
In new version were added features: 
|
17 |
+
- Origin can be set using per product attributes, per origin (one origin for several products) or using single origin from System/Configuration;
|
18 |
+
- Per-product markup/subsidize details;
|
19 |
+
- Accessorials ordering on frontend and admin panel;
|
20 |
+
- Ability to override rate in admin panel;
|
21 |
+
- Multi "Carrier Type" products logic;
|
22 |
+
- Free shipping settings in the System/Configuration: Free Shipping Method (None, Cheapest, All) for Free shipping coupon.
|
23 |
+
- Functionality 'Opt to Self Pack' and 'Charge customer for packing' logic. 
|
24 |
+
- Functionality ‘Custom packing price’ logic: admin is able to specify that a product has a custom packing price; added ‘Custom packing price’ field in the product level. Custom packing price considers ‘Number of items’ per Product. If there is > 1 product in the cart, then end customer can see rate containing sum of custom packing prices. If there is only one product in the cart, then end customer can see rate containing custom packing price.
|
25 |
+
- Tracking updates are displaying on the order under "Comments History".
|
26 |
+
- All log messages are written by one function.
|
27 |
+

|
28 |
+
</description>
|
29 |
+
<notes>v1.1.9 is ShipHawk's initial production release for Magento clients that allows interaction with ShipHawk test and production environments.</notes>
|
30 |
<authors><author><name>Mikel Richardson</name><user>MAG002779924</user><email>mikel@shiphawk.com</email></author></authors>
|
31 |
+
<date>2015-10-06</date>
|
32 |
+
<time>12:39:29</time>
|
33 |
+
<contents><target name="magecommunity"><dir name="Shiphawk"><dir name="Shipping"><dir name="Block"><dir name="Adminhtml"><dir name="Origins"><dir name="Edit"><file name="Form.php" hash="fc372c73fac12c592d40ff9ae9297381"/></dir><file name="Edit.php" hash="1202b50bc520ebf18bfbb033280f1ddf"/><file name="Grid.php" hash="9af28e730d7c476f1c8a5254402d8429"/></dir><file name="Origins.php" hash="748725e017dcbca92de4adf9de59d23f"/><dir name="Sales"><dir name="Order"><dir name="Shipment"><file name="View.php" hash="49b1612a21244178d517eecd492beaca"/></dir><file name="View.php" hash="fc8f1e2607f7ced87edb73dad8d515c3"/></dir></dir><file name="Shipment.php" hash="77e0feeda9046bb8152d83eb22b1b053"/><dir name="System"><dir name="Config"><dir name="Form"><file name="Button.php" hash="fbffbfa54f05d2da4cf380ffec35e38f"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Disabled.php" hash="05adb96db0b68dc900174c4fefa3b39d"/><file name="Type.php" hash="4dd966de022cc9fc6d69dc5e0ecb4726"/></dir></dir></dir></dir><dir name="Shipping"><dir name="Tracking"><file name="Popup.php" hash="73358c38983dc18b6ccb4420e98a7043"/></dir></dir><file name="Version.php" hash="f91bc825ee1b6225e727c825e72ece71"/></dir><dir name="Helper"><file name="Data.php" hash="85793812e18dfce341395bec0533bae9"/><file name="Origin.php" hash="5a1ef27d1cb4db9ccb4a4a9f0c29c10e"/></dir><dir name="Model"><file name="Api.php" hash="bb094afb2115f0dac5626629d933bdb2"/><file name="Carrier.php" hash="db57f62d838edfbe5adc96265d9d9143"/><file name="Observer.php" hash="ef0bcffc51cc2ac7c3acd94f9103a786"/><file name="Origins.php" hash="763f9064fcbf04f3cd873553a0002625"/><dir name="Product"><dir name="Attribute"><dir name="Source"><file name="Location.php" hash="e8cefabd60ff8ef6b09559c35ae4ff8c"/></dir></dir></dir><dir name="Resource"><dir name="Origins"><file name="Collection.php" hash="8aa8fb73c9db05975621106940b6519f"/></dir><file name="Origins.php" hash="e8c73d70433c1c4b21deca7b2baf1374"/></dir><dir name="Source"><file name="Adminratefilter.php" hash="e6096208ee165e06b016fcbc64b1a545"/><file name="Carriertype.php" hash="b2311da4909f59060bb60df14c7a5c59"/><file name="Freeshipping.php" hash="f35aa4a9483d2bdae1e3b60ce27b0f55"/><file name="Gateway.php" hash="1fa95fb657bc67f2973dd7e55a1046ad"/><file name="Location.php" hash="222ee55e43cc161204bc05e1a08b3db6"/><file name="Ratefilter.php" hash="56ed7f5059d2f9804387915eaa4f4b3b"/><file name="Received.php" hash="6d50e8c1fe6e13c971ba63348e98aac0"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ImportController.php" hash="6207c7ac200e882eb44b25b7e2587415"/><file name="OriginsController.php" hash="0f1e6e724f555bc0efd631257584779c"/><file name="ShipmentController.php" hash="31ba401f5ae4f2e0ab292e6abdde2dab"/></dir><file name="IndexController.php" hash="9f44fe9bda9b290cccfed823bf9970d0"/></dir><dir name="etc"><file name="adminhtml.xml" hash="ceec9868f5c072336c97aebd7da0dc03"/><file name="config.xml" hash="7615c271719e1f27c0f0872f963a9fe9"/><file name="system.xml" hash="c11bb02d77b03a3894fe4e9bb98cc99f"/></dir><dir name="sql"><dir name="shiphawk_setup"><file name="mysql4-install-0.1.0.php" hash="951c03164740882fac36a0ccd6bec66f"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="eb3f0b3185cce381ea63a0d7fa4c76c6"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="a8d2ffa83e57b6983aadc84a800fd233"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="14ee57a3dbd6262796dfa53ac334b60e"/><file name="mysql4-upgrade-1.0.10-1.0.11.php" hash="535c9a3e34e9b26cdce3a99a7f56671b"/><file name="mysql4-upgrade-1.0.11-1.0.12.php" hash="e27f74deda031e8c221c838f44ff8002"/><file name="mysql4-upgrade-1.0.12-1.0.13.php" hash="65f1c19944d7c86f1acbb05e7627d622"/><file name="mysql4-upgrade-1.0.13-1.1.0.php" hash="e3ae5cb573422d100dee9c55de15533c"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="4ff24d716c62172ef4b85d18b91934c0"/><file name="mysql4-upgrade-1.0.4-1.0.5.php" hash="ba820664a791ed852b9238e113a41be9"/><file name="mysql4-upgrade-1.0.5-1.0.6.php" hash="054fd8d6946d5fd02b5943bfd2a73fad"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="e9fca7a2e71ae27cf8e66c27bed7274b"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="868c422c61c17dd39a948fcdaa1b58ac"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="5f545c7ec60cb16810ce96fdc9686ac7"/><file name="mysql4-upgrade-1.0.9-1.0.10.php" hash="3a8a2a44ce08382e40b809e3108ca795"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="5037a768822190cea8e08fdc8ab8f483"/><file name="mysql4-upgrade-1.1.3-1.1.4.php" hash="1d0088f0dce6b6e9c88627c996f486b6"/><file name="mysql4-upgrade-1.1.4-1.1.5.php" hash="dbc6cb1d4e8d204ac8d08820c7d62824"/><file name="mysql4-upgrade-1.1.5.1-1.1.5.3.php" hash="fffb846c7c16cdeecd9ce796ce2f8795"/><file name="mysql4-upgrade-1.1.5.3-1.1.6.php" hash="0ab1729e8311494b71fd1b50bd8f421e"/><file name="mysql4-upgrade-1.1.7-1.1.8.php" hash="669e5188d858ba37a854a6f0705086e0"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="shiphawk.xml" hash="b83a40d4875b26cb97bea0f7a82d3d5a"/></dir><dir name="template"><dir name="shiphawk"><file name="amount.phtml" hash="9e390f9aedf13ffa61f92242bf610039"/><file name="button.phtml" hash="93558631aa6de44825ecba21816a882e"/><file name="shiphawkjsfile.phtml" hash="259319e703bdc2334aa3a0e940938448"/><file name="shipment.phtml" hash="bddff258ac35b4d9a8755e2dd5feb559"/><dir name="shipping"><file name="form.phtml" hash="8d3e96290e01b500eac769e40650968e"/><dir name="method"><file name="form.phtml" hash="003f794718b96e3cb9039b18d8e184e5"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="shiphawk.xml" hash="3f605ddf9891c7d7981e423a6e635d8f"/></dir><dir name="template"><dir name="shiphawk"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="11f25905c0f1b4cfb9083efe615e70f9"/><dir name="progress"><file name="billing.phtml" hash="cbb9c68a7069d8603c5cc577300724b5"/><file name="shipping.phtml" hash="d6dcfcf8a54601a42276d69ce9231868"/><file name="shipping_method.phtml" hash="3e93f77b5d1a5566f6b310e8bbd16d2e"/></dir><dir name="review"><file name="totals.phtml" hash="ea4e221ec355e6cb09c591b11c7c271b"/></dir><file name="shipping.phtml" hash="07f95cd8d3a84319701d17868ea4666f"/><dir name="shipping_method"><file name="available.phtml" hash="a8666c4ced8514ace09a3f1ec60bd1ce"/></dir></dir></dir><file name="popup.phtml" hash="fa91ebcc1832255d9dba57a111e7f29a"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Shiphawk_Shipping.xml" hash="7ba90cc41d3b8113ec7bfde2dd683346"/></dir></target><target name="mageweb"><dir name="js"><dir name="shiphawk"><file name="shiphawk.css" hash="970c267202a419d9634af147bcfbcb21"/><file name="shiphawk.js" hash="7a942e966f639809d5d05f92ab4c8505"/><file name="shiphawk_order.js" hash="cef5a7d47cd41592a1191f7a043e59b2"/><file name="shiphawk_shipment.js" hash="feaefbb5a0e6dfa40558c0baca24b72b"/></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><file name="shiphawk_error_email.html" hash="0fc96cfc750065c0f3db2737b1a2573d"/></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="shiphawk"><dir name="css"><file name="sh-style.css" hash="73a115c47b27ea50047d2ee006a1586d"/></dir></dir></dir></dir></dir></target></contents>
|
34 |
<compatible/>
|
35 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
36 |
</package>
|
skin/frontend/base/default/shiphawk/css/sh-style.css
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shipping-ratio-origins {
|
2 |
+
display: none;
|
3 |
+
}
|
4 |
+
|
5 |
+
.shipping-ratio-origins {
|
6 |
+
padding-left: 25px;
|
7 |
+
}
|
8 |
+
|
9 |
+
span.shipping-ratio-origins {
|
10 |
+
padding-left: 40px;
|
11 |
+
}
|
12 |
+
|
13 |
+
.shipping-ratio-origins-label {
|
14 |
+
background-color: transparent!important;
|
15 |
+
}
|
16 |
+
|
17 |
+
.shipping-ratio-origins-type {
|
18 |
+
text-transform: capitalize;
|
19 |
+
}
|