PostPal_Shipping - Version 0.1.6

Version Notes

* Hide PostPal from shopping cart if it's not available for the entered address
* Option for disabling PostPal for selected products

Download this release

Release Info

Developer PostPal
Extension PostPal_Shipping
Version 0.1.6
Comparing to
See all releases


Code changes from version 0.1.5 to 0.1.6

app/code/community/PostPal/Shipping/Model/Carrier.php CHANGED
@@ -1 +1 @@
1
- <?php
2
  * @author Jana Vassiljeva <jana@artmarka.com>
3
  */
4
  protected $_code = 'postpal_shipping';
5
  public function collectRates(Mage_Shipping_Model_Rate_Request $request)
6
  {
7
  $result = Mage::getModel('shipping/rate_result');
8
  /* @var $result Mage_Shipping_Model_Rate_Result */
9
  if(!$this->_isAvailable($request))
10
  return $result;
11
  $result->append($this->_getStandardShippingRate());
12
  return $result;
13
  }
14
  public function isTrackingAvailable()
15
  {
16
  return true;
17
  }
18
  protected function _getStandardShippingRate()
19
  {
20
  $rate = Mage::getModel('shipping/rate_result_method');
21
  /* @var $rate Mage_Shipping_Model_Rate_Result_Method */
22
  $rate->setCarrier($this->_code);
23
  /**
24
  * getConfigData(config_key) returns the configuration value for the
25
  * carriers/[carrier_code]/[config_key]
26
  */
27
  $rate->setCarrierTitle($this->getConfigData('title'));
28
  $rate->setMethod('fixed');
29
  $result = Mage::getModel('postpal_shipping/api')->getDeliveryArrivalEstimation();
30
  if (empty($result) || $result->status == false)
31
  return false;
32
  $formatedTime = date('d.m.Y H:i', strtotime($result->estimate));
33
  $rate->setMethodTitle($this->getConfigData('name'). ' ('. Mage::helper('postpal')->__('ETA: '). ' ' . $formatedTime . ') ');
34
  $rate->setPrice($this->getConfigData('default_price'));
35
  $rate->setCost(0);
36
  return $rate;
37
  }
38
  protected function _isAvailable(Mage_Shipping_Model_Rate_Request $request) {
39
  $productItem = true;
40
  if ($this->getConfigData('checkitems') == 1) {
41
  $productItem = true;
42
  if ($request->getAllItems()) {
43
  foreach ($request->getAllItems() as $item) {
44
  $custom = Mage::getModel('catalog/product')->load($item->getProduct()->getId());
45
  $notAvailableByPostPal = $custom->getData('nopostpal'); // Product attribute nopostpal
46
  if ($notAvailableByPostPal) {
47
  $productItem = false;
48
  break;
49
  }
50
  }
51
  }
52
  }
53
  if (!$productItem)
54
  return false;
55
  return true;
56
  }
57
  public function getAllowedMethods() {
58
  return array();
59
  }
 
60
  * @author Jana Vassiljeva <jana@artmarka.com>
61
  */
62
  protected $_code = 'postpal_shipping';
63
  public function collectRates(Mage_Shipping_Model_Rate_Request $request)
64
  {
65
  $result = Mage::getModel('shipping/rate_result');
66
  /* @var $result Mage_Shipping_Model_Rate_Result */
67
  if(!$this->_isAvailable($request))
68
  return $result;
69
  if(!$this->_isAddressAvailable($request))
70
  return $result;
71
  $result->append($this->_getStandardShippingRate());
72
  return $result;
73
  }
74
  public function isTrackingAvailable()
75
  {
76
  return true;
77
  }
78
  protected function _isAddressAvailable($request)
79
  {
80
  $shipping = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
81
  if(empty($shipping))
82
  return true;
83
  $data = array(
84
  'shippingAddress' => array(
85
  'firstname' => $shipping->getFirstname(),
86
  'lastname' => $shipping->getLastname(),
87
  'company' => '',
88
  'email' => '',
89
  'street' => $request->getDestStreet(),
90
  'city' => $request->getDestCity(),
91
  'country_id' => $request->getDestCountryId(),
92
  'postcode' => $request->getDestPostcode(),
93
  'telephone' => $shipping->getTelephone(),
94
  ),
95
  'packageSize' => 'size20x36x60D10W'
96
  );
97
  $result = Mage::getModel('postpal_shipping/api')->getOrderValidation($data);
98
  if (!empty($result) && $result->status == 'true')
99
  return true;
100
  return false;
101
  }
102
  protected function _getStandardShippingRate()
103
  {
104
  $rate = Mage::getModel('shipping/rate_result_method');
105
  /* @var $rate Mage_Shipping_Model_Rate_Result_Method */
106
  $rate->setCarrier($this->_code);
107
  /**
108
  * getConfigData(config_key) returns the configuration value for the
109
  * carriers/[carrier_code]/[config_key]
110
  */
111
  $rate->setCarrierTitle($this->getConfigData('title'));
112
  $rate->setMethod('fixed');
113
  $result = Mage::getModel('postpal_shipping/api')->getDeliveryArrivalEstimation();
114
  if (empty($result) || $result->status == false)
115
  return false;
116
  $formatedTime = date('d.m.Y H:i', strtotime($result->estimate));
117
  $rate->setMethodTitle($this->getConfigData('name'). ' ('. Mage::helper('postpal')->__('ETA: '). ' ' . $formatedTime . ') ');
118
  $rate->setPrice($this->getConfigData('default_price'));
119
  $rate->setCost(0);
120
  return $rate;
121
  }
122
  protected function _isAvailable(Mage_Shipping_Model_Rate_Request $request) {
123
  $productItem = true;
124
  if ($request->getAllItems()) {
125
  foreach ($request->getAllItems() as $item) {
126
  $custom = Mage::getModel('catalog/product')->load($item->getProduct()->getId());
127
  $notAvailableByPostPal = $custom->getData('nopostpal'); // Product attribute nopostpal
128
  if ($notAvailableByPostPal) {
129
  $productItem = false;
130
  break;
131
  }
132
  }
133
  }
134
  if (!$productItem)
135
  return false;
136
  return true;
137
  }
138
  public function getAllowedMethods() {
139
  return array();
140
  }
 
1
  * @author Jana Vassiljeva <jana@artmarka.com>
2
  */
3
  protected $_code = 'postpal_shipping';
4
  public function collectRates(Mage_Shipping_Model_Rate_Request $request)
5
  {
6
  $result = Mage::getModel('shipping/rate_result');
7
  /* @var $result Mage_Shipping_Model_Rate_Result */
8
  if(!$this->_isAvailable($request))
9
  return $result;
10
  $result->append($this->_getStandardShippingRate());
11
  return $result;
12
  }
13
  public function isTrackingAvailable()
14
  {
15
  return true;
16
  }
17
  protected function _getStandardShippingRate()
18
  {
19
  $rate = Mage::getModel('shipping/rate_result_method');
20
  /* @var $rate Mage_Shipping_Model_Rate_Result_Method */
21
  $rate->setCarrier($this->_code);
22
  /**
23
  * getConfigData(config_key) returns the configuration value for the
24
  * carriers/[carrier_code]/[config_key]
25
  */
26
  $rate->setCarrierTitle($this->getConfigData('title'));
27
  $rate->setMethod('fixed');
28
  $result = Mage::getModel('postpal_shipping/api')->getDeliveryArrivalEstimation();
29
  if (empty($result) || $result->status == false)
30
  return false;
31
  $formatedTime = date('d.m.Y H:i', strtotime($result->estimate));
32
  $rate->setMethodTitle($this->getConfigData('name'). ' ('. Mage::helper('postpal')->__('ETA: '). ' ' . $formatedTime . ') ');
33
  $rate->setPrice($this->getConfigData('default_price'));
34
  $rate->setCost(0);
35
  return $rate;
36
  }
37
  protected function _isAvailable(Mage_Shipping_Model_Rate_Request $request) {
38
  $productItem = true;
39
  if ($this->getConfigData('checkitems') == 1) {
40
  $productItem = true;
41
  if ($request->getAllItems()) {
42
  foreach ($request->getAllItems() as $item) {
43
  $custom = Mage::getModel('catalog/product')->load($item->getProduct()->getId());
44
  $notAvailableByPostPal = $custom->getData('nopostpal'); // Product attribute nopostpal
45
  if ($notAvailableByPostPal) {
46
  $productItem = false;
47
  break;
48
  }
49
  }
50
  }
51
  }
52
  if (!$productItem)
53
  return false;
54
  return true;
55
  }
56
  public function getAllowedMethods() {
57
  return array();
58
  }
59
+ <?php
60
  * @author Jana Vassiljeva <jana@artmarka.com>
61
  */
62
  protected $_code = 'postpal_shipping';
63
  public function collectRates(Mage_Shipping_Model_Rate_Request $request)
64
  {
65
  $result = Mage::getModel('shipping/rate_result');
66
  /* @var $result Mage_Shipping_Model_Rate_Result */
67
  if(!$this->_isAvailable($request))
68
  return $result;
69
  if(!$this->_isAddressAvailable($request))
70
  return $result;
71
  $result->append($this->_getStandardShippingRate());
72
  return $result;
73
  }
74
  public function isTrackingAvailable()
75
  {
76
  return true;
77
  }
78
  protected function _isAddressAvailable($request)
79
  {
80
  $shipping = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
81
  if(empty($shipping))
82
  return true;
83
  $data = array(
84
  'shippingAddress' => array(
85
  'firstname' => $shipping->getFirstname(),
86
  'lastname' => $shipping->getLastname(),
87
  'company' => '',
88
  'email' => '',
89
  'street' => $request->getDestStreet(),
90
  'city' => $request->getDestCity(),
91
  'country_id' => $request->getDestCountryId(),
92
  'postcode' => $request->getDestPostcode(),
93
  'telephone' => $shipping->getTelephone(),
94
  ),
95
  'packageSize' => 'size20x36x60D10W'
96
  );
97
  $result = Mage::getModel('postpal_shipping/api')->getOrderValidation($data);
98
  if (!empty($result) && $result->status == 'true')
99
  return true;
100
  return false;
101
  }
102
  protected function _getStandardShippingRate()
103
  {
104
  $rate = Mage::getModel('shipping/rate_result_method');
105
  /* @var $rate Mage_Shipping_Model_Rate_Result_Method */
106
  $rate->setCarrier($this->_code);
107
  /**
108
  * getConfigData(config_key) returns the configuration value for the
109
  * carriers/[carrier_code]/[config_key]
110
  */
111
  $rate->setCarrierTitle($this->getConfigData('title'));
112
  $rate->setMethod('fixed');
113
  $result = Mage::getModel('postpal_shipping/api')->getDeliveryArrivalEstimation();
114
  if (empty($result) || $result->status == false)
115
  return false;
116
  $formatedTime = date('d.m.Y H:i', strtotime($result->estimate));
117
  $rate->setMethodTitle($this->getConfigData('name'). ' ('. Mage::helper('postpal')->__('ETA: '). ' ' . $formatedTime . ') ');
118
  $rate->setPrice($this->getConfigData('default_price'));
119
  $rate->setCost(0);
120
  return $rate;
121
  }
122
  protected function _isAvailable(Mage_Shipping_Model_Rate_Request $request) {
123
  $productItem = true;
124
  if ($request->getAllItems()) {
125
  foreach ($request->getAllItems() as $item) {
126
  $custom = Mage::getModel('catalog/product')->load($item->getProduct()->getId());
127
  $notAvailableByPostPal = $custom->getData('nopostpal'); // Product attribute nopostpal
128
  if ($notAvailableByPostPal) {
129
  $productItem = false;
130
  break;
131
  }
132
  }
133
  }
134
  if (!$productItem)
135
  return false;
136
  return true;
137
  }
138
  public function getAllowedMethods() {
139
  return array();
140
  }
app/code/community/PostPal/Shipping/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <PostPal_Shipping>
5
- <module>0.0.1</module>
6
  </PostPal_Shipping>
7
  </modules>
8
  <frontend>
@@ -24,6 +24,26 @@
24
  </layout>
25
  </frontend>
26
  <global>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  <models>
28
  <postpal_shipping>
29
  <class>PostPal_Shipping_Model</class>
2
  <config>
3
  <modules>
4
  <PostPal_Shipping>
5
+ <version>1.0.0</version>
6
  </PostPal_Shipping>
7
  </modules>
8
  <frontend>
24
  </layout>
25
  </frontend>
26
  <global>
27
+ <resources>
28
+ <postpal_shipping_setup>
29
+ <setup>
30
+ <module>PostPal_Shipping</module>
31
+ </setup>
32
+ <connection>
33
+ <use>core_setup</use>
34
+ </connection>
35
+ </postpal_shipping_setup>
36
+ <postpal_write>
37
+ <connection>
38
+ <use>core_write</use>
39
+ </connection>
40
+ </postpal_write>
41
+ <postpal_read>
42
+ <connection>
43
+ <use>core_read</use>
44
+ </connection>
45
+ </postpal_read>
46
+ </resources>
47
  <models>
48
  <postpal_shipping>
49
  <class>PostPal_Shipping_Model</class>
app/code/community/PostPal/Shipping/sql/postpal_shipping_setup/mysql4-install-1.0.0.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+ $installer->startSetup();
5
+
6
+ $attributeGroup = 'PostPal Shipping';
7
+
8
+ $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
9
+
10
+ $entity = 'catalog_product';
11
+
12
+ $setup->removeAttribute($entity, 'nopostpal');
13
+ $setup->addAttribute($entity, 'nopostpal', array(
14
+ 'group' => $attributeGroup,
15
+ 'position' => 1,
16
+ 'type' => 'int',
17
+ 'label' => 'PostPal delivery disabled',
18
+ 'input' => 'boolean',
19
+ 'global' => 1,
20
+ 'visible' => 1,
21
+ 'required' => 0,
22
+ 'user_defined' => 1,
23
+ 'searchable' => 0,
24
+ 'filterable' => 0,
25
+ 'comparable' => 0,
26
+ 'visible_on_front' => 0,
27
+ 'visible_in_advanced_search' => 0,
28
+ 'unique' => 0,
29
+ 'is_configurable' => 0
30
+ ));
31
+
32
+ $installer->endSetup();
package.xml CHANGED
@@ -1,18 +1,19 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>PostPal_Shipping</name>
4
- <version>0.1.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>PostPal shipping extension</summary>
10
  <description>This extension adds PostPal on-demand courier service to your shopping cart.</description>
11
- <notes>Added support for custom cart templates</notes>
 
12
  <authors><author><name>PostPal</name><user>PostPal</user><email>hello@postpal.ee</email></author></authors>
13
- <date>2016-02-24</date>
14
- <time>22:27:55</time>
15
- <contents><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="postpal"><dir name="css"><file name="postpal.css" hash="5b3f0d0cce5377aa5bf6978865d0061b"/></dir><dir name="img"><file name="postpal_logo.png" hash="fc3f0bbb0d70f229321bcdd31eaa7549"/></dir><dir name="js"><file name="opcheckout_postpal.js" hash="ddbd3e07a118291edf36c077e1ecc2d1"/></dir></dir></dir></dir></dir></target><target name="magecommunity"><dir name="PostPal"><dir name="Shipping"><dir name="Block"><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="Shipment"><file name="View.php" hash="edc39b75e3b0e69ae5dc122c4078ac7a"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="9dfca5f43c00ccab5f1f5b8ac5445c8e"/></dir><dir name="Model"><file name="Api.php" hash="fd8bd87f5798e5da81a1d5dcdf58f020"/><file name="Carrier.php" hash="9ec19dc45a524f9d96e48ce3d6c06a06"/><file name="Observer.php" hash="1e61ca4d0cb36d73137d4110ad4070b6"/><file name="Shipping.php" hash="5f3ceaa12a412f8c9bcf50551292dcf7"/></dir><dir name="etc"><file name="config.xml" hash="c72f3b23c5e5989731c39c0620802a73"/><file name="system.xml" hash="ed221153d603cfa5f3bfaae51d5ab896"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="postpal"><file name="shipping.xml" hash="cbc63d0c8072bf83685e9a19db8aeaac"/></dir></dir><dir name="template"><dir name="postpal"><file name="extras.phtml" hash="8bad02b894d8fc8da8dbd5729dfceff1"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PostPal_Shipping.xml" hash="8336b32b2ec54a8ebf90029265ab5729"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="PostPal_Shipping.csv" hash="50052dc9f9a55bc8a4ff56ce43606eff"/></dir><dir name="et_EE"><file name="PostPal_Shipping.csv" hash="d9d64841396d1a0fb705246409ea7933"/></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php><extension><name>json</name><min/><max/></extension></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>PostPal_Shipping</name>
4
+ <version>0.1.6</version>
5
  <stability>stable</stability>
6
  <license uri="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>PostPal shipping extension</summary>
10
  <description>This extension adds PostPal on-demand courier service to your shopping cart.</description>
11
+ <notes>* Hide PostPal from shopping cart if it's not available for the entered address&#xD;
12
+ * Option for disabling PostPal for selected products </notes>
13
  <authors><author><name>PostPal</name><user>PostPal</user><email>hello@postpal.ee</email></author></authors>
14
+ <date>2016-03-02</date>
15
+ <time>17:07:54</time>
16
+ <contents><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="postpal"><dir name="css"><file name="postpal.css" hash="5b3f0d0cce5377aa5bf6978865d0061b"/></dir><dir name="img"><file name="postpal_logo.png" hash="fc3f0bbb0d70f229321bcdd31eaa7549"/></dir><dir name="js"><file name="opcheckout_postpal.js" hash="ddbd3e07a118291edf36c077e1ecc2d1"/></dir></dir></dir></dir></dir></target><target name="magecommunity"><dir name="PostPal"><dir name="Shipping"><dir name="Block"><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="Shipment"><file name="View.php" hash="edc39b75e3b0e69ae5dc122c4078ac7a"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="9dfca5f43c00ccab5f1f5b8ac5445c8e"/></dir><dir name="Model"><file name="Api.php" hash="fd8bd87f5798e5da81a1d5dcdf58f020"/><file name="Carrier.php" hash="27a1e9c96b353befbb292cf7f12b8e1a"/><file name="Observer.php" hash="1e61ca4d0cb36d73137d4110ad4070b6"/><file name="Shipping.php" hash="5f3ceaa12a412f8c9bcf50551292dcf7"/></dir><dir name="etc"><file name="config.xml" hash="8015eb414c6b8d11e80713d8a32b2393"/><file name="system.xml" hash="ed221153d603cfa5f3bfaae51d5ab896"/></dir><dir name="sql"><dir name="postpal_shipping_setup"><file name="mysql4-install-1.0.0.php" hash="64c8c72e0b52b2737367ac5fb8e502cf"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="postpal"><file name="shipping.xml" hash="cbc63d0c8072bf83685e9a19db8aeaac"/></dir></dir><dir name="template"><dir name="postpal"><file name="extras.phtml" hash="8bad02b894d8fc8da8dbd5729dfceff1"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PostPal_Shipping.xml" hash="8336b32b2ec54a8ebf90029265ab5729"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="PostPal_Shipping.csv" hash="50052dc9f9a55bc8a4ff56ce43606eff"/></dir><dir name="et_EE"><file name="PostPal_Shipping.csv" hash="d9d64841396d1a0fb705246409ea7933"/></dir></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php><extension><name>json</name><min/><max/></extension></required></dependencies>
19
  </package>