Version Notes
Bugfix:
- Usar atributo para setar o carrier name e passar o encoding para htmlentities
- Erro 99 Input string was not in a correct format
- Peso cúbico não calculado no backend
- Corrige a leitura do valor de frete
- Frete de mil reais exibido por 1 real
- Problema com peso do E-SEDEX
Feature:
- Adiciona CONTRIBUTING.md
- Adiciona badges
- Integração com Travis
- Testado em Magento 1.9.1.0
- Serviços por produto, validação por serviço, grandes formatos, carta registrada, cache
- Considerar produtos encaixados
- Adicionar PAC grandes formatos aos serviços de postagem
- Validação de peso e dimensões
- Selecionar serviços por produto
- Suporte para instalações modman
- Integrar carta registrada
- Implementar cache de respostas dos Correios
- Opção de dividir a entrega em mais de um pacote
Release Info
Developer | Pedro Teixeira |
Extension | PedroTeixeira_Correios |
Version | 4.4.0 |
Comparing to | |
See all releases |
Code changes from version 4.3.0 to 4.4.0
- app/code/community/PedroTeixeira/Correios/Helper/Data.php +3 -2
- app/code/community/PedroTeixeira/Correios/Model/Cache.php +266 -0
- app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php +280 -75
- app/code/community/PedroTeixeira/Correios/Model/Http/Client/Adapter/Socket.php +143 -0
- app/code/community/PedroTeixeira/Correios/Model/Source/CacheMode.php +45 -0
- app/code/community/PedroTeixeira/Correios/Model/Source/PostMethods.php +21 -3
- app/code/community/PedroTeixeira/Correios/Model/Source/WeightType.php +5 -2
- app/code/community/PedroTeixeira/Correios/etc/config.xml +443 -21
- app/code/community/PedroTeixeira/Correios/etc/system.xml +34 -19
- app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.0.0.php +3 -2
- app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.4.0.php +92 -0
- app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.0.0-4.1.0.php +3 -2
- app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.1.0-4.2.0.php +9 -4
- app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.2.0-4.3.0.php +13 -0
- app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.3.0-4.4.0.php +50 -0
- app/etc/modules/PedroTeixeira_Correios.xml +3 -2
- package.xml +31 -16
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
class PedroTeixeira_Correios_Helper_Data extends Mage_Core_Helper_Abstract
|
14 |
{
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
class PedroTeixeira_Correios_Helper_Data extends Mage_Core_Helper_Abstract
|
15 |
{
|
@@ -0,0 +1,266 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This source file is subject to the MIT License.
|
5 |
+
* It is also available through http://opensource.org/licenses/MIT
|
6 |
+
*
|
7 |
+
* @category PedroTeixeira
|
8 |
+
* @package PedroTeixeira_Correios
|
9 |
+
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
+
*/
|
14 |
+
class PedroTeixeira_Correios_Model_Cache
|
15 |
+
extends Varien_Object
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* Code property
|
19 |
+
*
|
20 |
+
* @var string
|
21 |
+
*/
|
22 |
+
protected $_code = 'pedroteixeira_correios';
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Core cache instance
|
26 |
+
*
|
27 |
+
* @var Zend_Cache_Core
|
28 |
+
*/
|
29 |
+
private $_cache = null;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Retrieve cache instance.
|
33 |
+
*
|
34 |
+
* @return Zend_Cache_Core
|
35 |
+
*/
|
36 |
+
private function getCache()
|
37 |
+
{
|
38 |
+
if ($this->_cache == null) {
|
39 |
+
$this->_cache = Mage::app()->getCache();
|
40 |
+
}
|
41 |
+
return $this->_cache;
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Retrieve Zip Tags
|
46 |
+
*
|
47 |
+
* @return array
|
48 |
+
*/
|
49 |
+
protected function getZipTags()
|
50 |
+
{
|
51 |
+
$padLength = $this->getConfigData('cache_accuracy/zip');
|
52 |
+
$zipLength = $padLength - 1;
|
53 |
+
$tags = array();
|
54 |
+
$tags[] = "ZIP_" . str_pad(substr($this->getData('sCepDestino'), 0, $zipLength--), $padLength, '0');
|
55 |
+
$tags[] = "ZIP_" . str_pad(substr($this->getData('sCepDestino'), 0, $zipLength--), $padLength, '0');
|
56 |
+
$tags[] = "ZIP_" . str_pad(substr($this->getData('sCepDestino'), 0, $zipLength--), $padLength, '0');
|
57 |
+
$tags[] = "ZIP_" . str_pad(substr($this->getData('sCepDestino'), 0, $zipLength--), $padLength, '0');
|
58 |
+
return $tags;
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Retrieve Weight Tags
|
63 |
+
*
|
64 |
+
* @return array
|
65 |
+
*/
|
66 |
+
protected function getWeightTags()
|
67 |
+
{
|
68 |
+
$tags = array();
|
69 |
+
$tags[] = "WEIGHT_" . floor($this->getData('nVlPeso'));
|
70 |
+
$tags[] = "WEIGHT_" . ceil($this->getData('nVlPeso'));
|
71 |
+
return $tags;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Retrieve Size Tags
|
76 |
+
*
|
77 |
+
* @return array
|
78 |
+
*/
|
79 |
+
protected function getSizeTags()
|
80 |
+
{
|
81 |
+
$tags = array();
|
82 |
+
$type = ($this->getData('nVlAltura') < 40) ? 'REAL' : 'UNDEFINED';
|
83 |
+
$tags[] = "SIZE_{$type}";
|
84 |
+
return $tags;
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Retrieve Post Methods Tags
|
89 |
+
*
|
90 |
+
* @return array
|
91 |
+
*/
|
92 |
+
protected function getPostMethodsTags()
|
93 |
+
{
|
94 |
+
$tags = explode(',', $this->getData('nCdServico'));
|
95 |
+
return $tags;
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* When
|
100 |
+
* ZIP: 51038245
|
101 |
+
* WEIGHT: 1.3kg
|
102 |
+
* SIZE: 22cm
|
103 |
+
*
|
104 |
+
* Return example:
|
105 |
+
* array(
|
106 |
+
* 41068,
|
107 |
+
* 81019,
|
108 |
+
* ZIP_51038240,
|
109 |
+
* ZIP_51038200,
|
110 |
+
* ZIP_51038000,
|
111 |
+
* WEIGHT_1,
|
112 |
+
* WEIGHT_2,
|
113 |
+
* SIZE_REAL,
|
114 |
+
* PEDROTEIXEIRA_CORREIOS
|
115 |
+
* )
|
116 |
+
*
|
117 |
+
* @return array
|
118 |
+
*/
|
119 |
+
protected function getCacheTags()
|
120 |
+
{
|
121 |
+
$tags = array();
|
122 |
+
$tags = array_merge($tags, $this->getPostMethodsTags());
|
123 |
+
$tags = array_merge($tags, $this->getZipTags());
|
124 |
+
$tags = array_merge($tags, $this->getWeightTags());
|
125 |
+
$tags = array_merge($tags, $this->getSizeTags());
|
126 |
+
$tags[] = 'PEDROTEIXEIRA_CORREIOS';
|
127 |
+
return $tags;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Return example:
|
132 |
+
* 41068x40096x81019_10_16_51030240
|
133 |
+
*
|
134 |
+
* @return string
|
135 |
+
*/
|
136 |
+
protected function _getId()
|
137 |
+
{
|
138 |
+
$weight = round($this->getData('nVlPeso'), $this->getConfigData('cache_accuracy/weight'));
|
139 |
+
$zip = substr($this->getData('sCepDestino'), 0, $this->getConfigData('cache_accuracy/zip'));
|
140 |
+
$size = round($this->getData('nVlAltura'), $this->getConfigData('cache_accuracy/size'));
|
141 |
+
$methods = str_replace(',', 'x', $this->getData('nCdServico'));
|
142 |
+
$cacheId = "{$methods}_{$weight}_{$size}_{$zip}";
|
143 |
+
$cacheId = preg_replace("/[^[:alnum:]^_]/", "", $cacheId);
|
144 |
+
return $cacheId;
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Retrieve the cache content.
|
149 |
+
*
|
150 |
+
* @return string
|
151 |
+
*/
|
152 |
+
public function load()
|
153 |
+
{
|
154 |
+
$data = $this->loadById();
|
155 |
+
if (!$data) {
|
156 |
+
$data = $this->loadByTags();
|
157 |
+
}
|
158 |
+
return $data;
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Retrieve the cache content by key.
|
163 |
+
*
|
164 |
+
* @return string
|
165 |
+
*/
|
166 |
+
public function loadById()
|
167 |
+
{
|
168 |
+
$id = $this->_getId();
|
169 |
+
$data = $this->getCache()->load($id);
|
170 |
+
if ($data) {
|
171 |
+
Mage::log("{$this->_code} [cache]: mode={$this->getConfigData('cache_mode')} status=hit");
|
172 |
+
}
|
173 |
+
return $data;
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Iterates over the ZIP codes, and returns the closest match.
|
178 |
+
*
|
179 |
+
* @return string
|
180 |
+
*/
|
181 |
+
public function loadByTags()
|
182 |
+
{
|
183 |
+
$data = false;
|
184 |
+
$padLength = $this->getConfigData('cache_accuracy/zip');
|
185 |
+
for ($i = 1; $i < 5; $i++) {
|
186 |
+
$zipTag = str_pad(substr($this->getData('sCepDestino'), 0, $padLength - $i), $padLength, '0');
|
187 |
+
$tags = array();
|
188 |
+
$tags = array_merge($tags, $this->getPostMethodsTags());
|
189 |
+
$tags = array_merge($tags, $this->getWeightTags());
|
190 |
+
$tags = array_merge($tags, $this->getSizeTags());
|
191 |
+
$tags[] = 'PEDROTEIXEIRA_CORREIOS';
|
192 |
+
$tags[] = "ZIP_{$zipTag}";
|
193 |
+
$keys = $this->getCache()->getIdsMatchingTags($tags);
|
194 |
+
if (count($keys)) {
|
195 |
+
Mage::log("{$this->_code} [cache]: mode={$this->getConfigData('cache_mode')} status=hit tag=zip");
|
196 |
+
$data = $this->getCache()->load($keys[0]);
|
197 |
+
break;
|
198 |
+
}
|
199 |
+
}
|
200 |
+
return $data;
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Validate the response data from Correios.
|
205 |
+
*
|
206 |
+
* @param string $data XML Content
|
207 |
+
*
|
208 |
+
* @return boolean
|
209 |
+
*/
|
210 |
+
protected function _isValidCache($data)
|
211 |
+
{
|
212 |
+
$response = Zend_Http_Response::fromString($data);
|
213 |
+
$content = $response->getBody();
|
214 |
+
$pattern = $this->getConfigData('pattern_nocache');
|
215 |
+
if ($pattern != '' && preg_match($pattern, $content, $matches)) {
|
216 |
+
return false;
|
217 |
+
}
|
218 |
+
if (empty($content)) {
|
219 |
+
return false;
|
220 |
+
}
|
221 |
+
libxml_use_internal_errors(true);
|
222 |
+
$xml = simplexml_load_string($content);
|
223 |
+
if (!$xml || !isset($xml->cServico)) {
|
224 |
+
return false;
|
225 |
+
}
|
226 |
+
return true;
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Save Correios content, tags and expiration period.
|
231 |
+
*
|
232 |
+
* @param string $data XML Content
|
233 |
+
*
|
234 |
+
* @throws Exception
|
235 |
+
*
|
236 |
+
* @return PedroTeixeira_Correios_Model_Cache
|
237 |
+
*/
|
238 |
+
public function save($data)
|
239 |
+
{
|
240 |
+
if (!$this->_isValidCache($data)) {
|
241 |
+
return false; // Invalid for the Cache only
|
242 |
+
}
|
243 |
+
$id = $this->_getId();
|
244 |
+
$tags = $this->getCacheTags();
|
245 |
+
if ($this->getCache()->save($data, $id, $tags)) {
|
246 |
+
Mage::log("{$this->_code} [cache]: mode={$this->getConfigData('cache_mode')} status=write key={$id}");
|
247 |
+
}
|
248 |
+
return $this;
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* Retrieve information from carrier configuration
|
253 |
+
*
|
254 |
+
* @param string $field Field
|
255 |
+
*
|
256 |
+
* @return mixed
|
257 |
+
*/
|
258 |
+
public function getConfigData($field)
|
259 |
+
{
|
260 |
+
if (empty($this->_code)) {
|
261 |
+
return false;
|
262 |
+
}
|
263 |
+
$path = 'carriers/' . $this->_code . '/' . $field;
|
264 |
+
return Mage::getStoreConfig($path);
|
265 |
+
}
|
266 |
+
}
|
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
14 |
extends Mage_Shipping_Model_Carrier_Abstract
|
@@ -41,6 +42,8 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
41 |
protected $_packageWeight = null;
|
42 |
protected $_volumeWeight = null;
|
43 |
protected $_freeMethodWeight = null;
|
|
|
|
|
44 |
|
45 |
/**
|
46 |
* Post methods
|
@@ -58,7 +61,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
58 |
/**
|
59 |
* Collect Rates
|
60 |
*
|
61 |
-
* @param Mage_Shipping_Model_Rate_Request $request
|
62 |
*
|
63 |
* @return bool|Mage_Shipping_Model_Rate_Result|Mage_Shipping_Model_Tracking_Result
|
64 |
*/
|
@@ -84,16 +87,8 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
84 |
}
|
85 |
|
86 |
// Fix weight
|
87 |
-
$weightCompare = $this->getConfigData('maxweight');
|
88 |
if ($this->getConfigData('weight_type') == PedroTeixeira_Correios_Model_Source_WeightType::WEIGHT_GR) {
|
89 |
$this->_packageWeight = number_format($this->_packageWeight / 1000, 2, '.', '');
|
90 |
-
$weightCompare = number_format($weightCompare / 1000, 2, '.', '');
|
91 |
-
}
|
92 |
-
|
93 |
-
// Check weght
|
94 |
-
if ($this->_packageWeight > $weightCompare) {
|
95 |
-
$this->_throwError('maxweighterror', 'Weight exceeded limit', __LINE__);
|
96 |
-
return $this->_result;
|
97 |
}
|
98 |
|
99 |
// Check weight zero
|
@@ -102,16 +97,17 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
102 |
return $this->_result;
|
103 |
}
|
104 |
|
|
|
|
|
|
|
|
|
105 |
// Generate Volume Weight
|
106 |
-
if ($this->_generateVolumeWeight() === false) {
|
107 |
$this->_throwError('dimensionerror', 'Dimension error', __LINE__);
|
108 |
return $this->_result;
|
109 |
}
|
110 |
|
111 |
-
$this->
|
112 |
-
$this->_postMethodsFixed = $this->_postMethods;
|
113 |
-
$this->_postMethodsExplode = explode(',', $this->getConfigData('postmethods'));
|
114 |
-
|
115 |
if ($this->_getQuotes()->getError()) {
|
116 |
return $this->_result;
|
117 |
}
|
@@ -134,7 +130,8 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
134 |
|
135 |
if ($correiosReturn !== false) {
|
136 |
|
137 |
-
$
|
|
|
138 |
|
139 |
foreach ($correiosReturn as $servicos) {
|
140 |
|
@@ -144,14 +141,18 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
144 |
continue;
|
145 |
}
|
146 |
|
147 |
-
$
|
|
|
|
|
|
|
|
|
148 |
$shippingDelivery = (int) $servicos->PrazoEntrega;
|
149 |
|
150 |
if ($shippingPrice <= 0) {
|
151 |
continue;
|
152 |
}
|
153 |
|
154 |
-
$this->
|
155 |
$existReturn = true;
|
156 |
}
|
157 |
|
@@ -173,7 +174,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
173 |
/**
|
174 |
* Make initial checks and iniciate module variables
|
175 |
*
|
176 |
-
* @param Mage_Shipping_Model_Rate_Request $request
|
177 |
*
|
178 |
* @return bool
|
179 |
*/
|
@@ -206,7 +207,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
206 |
return false;
|
207 |
}
|
208 |
|
209 |
-
$this->_result
|
210 |
$this->_packageValue = $request->getBaseCurrency()->convert(
|
211 |
$request->getPackageValue(),
|
212 |
$request->getPackageCurrency()
|
@@ -220,6 +221,8 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
220 |
* Get Correios return
|
221 |
*
|
222 |
* @return bool|SimpleXMLElement[]
|
|
|
|
|
223 |
*/
|
224 |
protected function _getCorreiosReturn()
|
225 |
{
|
@@ -230,27 +233,20 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
230 |
$client = new Zend_Http_Client($filename);
|
231 |
$client->setConfig(
|
232 |
array(
|
233 |
-
'timeout' => $this->getConfigData('ws_timeout')
|
|
|
234 |
)
|
235 |
);
|
236 |
|
237 |
$client->setParameterGet('StrRetorno', 'xml');
|
238 |
$client->setParameterGet('nCdServico', $this->_postMethods);
|
239 |
-
|
240 |
-
if ($this->_volumeWeight > $this->getConfigData('volume_weight_min')
|
241 |
-
&& $this->_volumeWeight > $this->_packageWeight
|
242 |
-
) {
|
243 |
-
$client->setParameterGet('nVlPeso', $this->_volumeWeight);
|
244 |
-
} else {
|
245 |
-
$client->setParameterGet('nVlPeso', $this->_packageWeight);
|
246 |
-
}
|
247 |
-
|
248 |
$client->setParameterGet('sCepOrigem', $this->_fromZip);
|
249 |
$client->setParameterGet('sCepDestino', $this->_toZip);
|
250 |
$client->setParameterGet('nCdFormato', 1);
|
251 |
-
$client->setParameterGet('nVlComprimento', $this->
|
252 |
-
$client->setParameterGet('nVlAltura', $this->
|
253 |
-
$client->setParameterGet('nVlLargura', $this->
|
254 |
|
255 |
if ($this->getConfigData('mao_propria')) {
|
256 |
$client->setParameterGet('sCdMaoPropria', 'S');
|
@@ -267,7 +263,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
267 |
if ($this->getConfigData('valor_declarado')
|
268 |
|| in_array($this->getConfigData('acobrar_code'), $this->_postMethodsExplode)
|
269 |
) {
|
270 |
-
$client->setParameterGet('nVlValorDeclarado', number_format($this->_packageValue, 2, ',', '
|
271 |
} else {
|
272 |
$client->setParameterGet('nVlValorDeclarado', 0);
|
273 |
}
|
@@ -317,28 +313,28 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
317 |
/**
|
318 |
* Apend shipping value to return
|
319 |
*
|
320 |
-
* @param string $
|
321 |
-
* @param int $shippingPrice
|
322 |
-
* @param int $correiosDelivery
|
323 |
*
|
324 |
* @return void
|
325 |
*/
|
326 |
-
protected function
|
327 |
{
|
328 |
|
329 |
$method = Mage::getModel('shipping/rate_result_method');
|
330 |
$method->setCarrier($this->_code);
|
331 |
$method->setCarrierTitle($this->getConfigData('title'));
|
332 |
-
$method->setMethod($
|
333 |
|
334 |
$shippingCost = $shippingPrice;
|
335 |
$shippingPrice = $shippingPrice + $this->getConfigData('handling_fee');
|
336 |
|
337 |
-
$
|
338 |
|
339 |
-
if ($
|
340 |
-
$
|
341 |
-
$shippingPrice
|
342 |
}
|
343 |
|
344 |
if ($this->getConfigFlag('prazo_entrega')) {
|
@@ -346,7 +342,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
346 |
$method->setMethodTitle(
|
347 |
sprintf(
|
348 |
$this->getConfigData('msgprazo'),
|
349 |
-
$
|
350 |
(int) ($correiosDelivery + $this->getConfigData('add_prazo'))
|
351 |
)
|
352 |
);
|
@@ -354,13 +350,13 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
354 |
$method->setMethodTitle(
|
355 |
sprintf(
|
356 |
$this->getConfigData('msgprazo'),
|
357 |
-
$
|
358 |
-
(int) ($
|
359 |
)
|
360 |
);
|
361 |
}
|
362 |
} else {
|
363 |
-
$method->setMethodTitle($
|
364 |
}
|
365 |
|
366 |
$method->setPrice($shippingPrice);
|
@@ -376,10 +372,12 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
376 |
/**
|
377 |
* Throw error
|
378 |
*
|
379 |
-
* @param string $message
|
380 |
-
* @param string $log
|
381 |
-
* @param string|int $line
|
382 |
-
* @param string $custom
|
|
|
|
|
383 |
*/
|
384 |
protected function _throwError($message, $log = null, $line = 'NO LINE', $custom = null)
|
385 |
{
|
@@ -404,8 +402,6 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
404 |
/**
|
405 |
* Generate Volume weight
|
406 |
*
|
407 |
-
* @see http://www.correios.com.br/para-sua-empresa/comercio-eletronico/como-calcular-precos-e-prazos-de-entrega-em-sua-loja-on-line
|
408 |
-
*
|
409 |
* @return bool
|
410 |
*/
|
411 |
protected function _generateVolumeWeight()
|
@@ -414,6 +410,10 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
414 |
|
415 |
$items = Mage::getModel('checkout/cart')->getQuote()->getAllVisibleItems();
|
416 |
|
|
|
|
|
|
|
|
|
417 |
foreach ($items as $item) {
|
418 |
$_product = $item->getProduct();
|
419 |
|
@@ -436,20 +436,28 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
436 |
}
|
437 |
|
438 |
if ($this->getConfigFlag('check_dimensions')) {
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
|
|
|
|
|
|
448 |
return false;
|
449 |
}
|
|
|
|
|
|
|
450 |
}
|
451 |
|
452 |
-
$
|
|
|
|
|
453 |
}
|
454 |
|
455 |
$this->_volumeWeight = number_format($pesoCubicoTotal, 2, '.', '');
|
@@ -460,7 +468,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
460 |
/**
|
461 |
* Generate free shipping for a product
|
462 |
*
|
463 |
-
* @param string $freeMethod
|
464 |
*
|
465 |
* @return void
|
466 |
*/
|
@@ -493,7 +501,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
493 |
/**
|
494 |
* Get Tracking Info
|
495 |
*
|
496 |
-
* @param mixed $tracking
|
497 |
*
|
498 |
* @return mixed
|
499 |
*/
|
@@ -514,7 +522,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
514 |
/**
|
515 |
* Get Tracking
|
516 |
*
|
517 |
-
* @param array $trackings
|
518 |
*
|
519 |
* @return Mage_Shipping_Model_Tracking_Result
|
520 |
*/
|
@@ -531,7 +539,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
531 |
/**
|
532 |
* Protected Get Tracking, opens the request to Correios
|
533 |
*
|
534 |
-
* @param string $code
|
535 |
*
|
536 |
* @return bool
|
537 |
*/
|
@@ -572,7 +580,8 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
572 |
|
573 |
$description = '';
|
574 |
$found = false;
|
575 |
-
if (preg_match('/<td rowspan="?2"?/i', $column)
|
|
|
576 |
'/<td rowspan="?2"?>(.*)<\/td><td>(.*)<\/td><td><font color="[A-Z0-9]{6}">(.*)<\/font><\/td>/i',
|
577 |
$column,
|
578 |
$matches
|
@@ -601,13 +610,13 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
601 |
$track = array(
|
602 |
'deliverydate' => $date->toString('YYYY-MM-dd'),
|
603 |
'deliverytime' => $datetime[1] . ':00',
|
604 |
-
'deliverylocation' => htmlentities($matches[2]),
|
605 |
-
'status' => htmlentities($matches[3]),
|
606 |
-
'activity' => htmlentities($matches[3])
|
607 |
);
|
608 |
|
609 |
if ($description !== '') {
|
610 |
-
$track['activity'] = $matches[3] . ' - ' . htmlentities($description);
|
611 |
}
|
612 |
|
613 |
$progress[] = $track;
|
@@ -620,7 +629,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
620 |
|
621 |
$tracking = Mage::getModel('shipping/tracking_result_status');
|
622 |
$tracking->setTracking($code);
|
623 |
-
$tracking->setCarrier(
|
624 |
$tracking->setCarrierTitle($this->getConfigData('title'));
|
625 |
$tracking->addData($track);
|
626 |
|
@@ -645,7 +654,7 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
645 |
/**
|
646 |
* Define ZIP Code as required
|
647 |
*
|
648 |
-
* @param string $countryId
|
649 |
*
|
650 |
* @return bool
|
651 |
*/
|
@@ -653,4 +662,200 @@ class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
|
653 |
{
|
654 |
return true;
|
655 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
656 |
}
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
class PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
15 |
extends Mage_Shipping_Model_Carrier_Abstract
|
42 |
protected $_packageWeight = null;
|
43 |
protected $_volumeWeight = null;
|
44 |
protected $_freeMethodWeight = null;
|
45 |
+
protected $_midSize = null;
|
46 |
+
protected $_splitUp = 0;
|
47 |
|
48 |
/**
|
49 |
* Post methods
|
61 |
/**
|
62 |
* Collect Rates
|
63 |
*
|
64 |
+
* @param Mage_Shipping_Model_Rate_Request $request Mage request
|
65 |
*
|
66 |
* @return bool|Mage_Shipping_Model_Rate_Result|Mage_Shipping_Model_Tracking_Result
|
67 |
*/
|
87 |
}
|
88 |
|
89 |
// Fix weight
|
|
|
90 |
if ($this->getConfigData('weight_type') == PedroTeixeira_Correios_Model_Source_WeightType::WEIGHT_GR) {
|
91 |
$this->_packageWeight = number_format($this->_packageWeight / 1000, 2, '.', '');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
}
|
93 |
|
94 |
// Check weight zero
|
97 |
return $this->_result;
|
98 |
}
|
99 |
|
100 |
+
$this->_postMethods = $this->getConfigData('postmethods');
|
101 |
+
$this->_postMethodsFixed = $this->_postMethods;
|
102 |
+
$this->_postMethodsExplode = explode(',', $this->getConfigData('postmethods'));
|
103 |
+
|
104 |
// Generate Volume Weight
|
105 |
+
if ($this->_generateVolumeWeight() === false || $this->_removeInvalidServices() === false) {
|
106 |
$this->_throwError('dimensionerror', 'Dimension error', __LINE__);
|
107 |
return $this->_result;
|
108 |
}
|
109 |
|
110 |
+
$this->_filterMethodByItemRestriction();
|
|
|
|
|
|
|
111 |
if ($this->_getQuotes()->getError()) {
|
112 |
return $this->_result;
|
113 |
}
|
130 |
|
131 |
if ($correiosReturn !== false) {
|
132 |
|
133 |
+
$correiosReturn = $this->_addPostMethods($correiosReturn);
|
134 |
+
$existReturn = false;
|
135 |
|
136 |
foreach ($correiosReturn as $servicos) {
|
137 |
|
141 |
continue;
|
142 |
}
|
143 |
|
144 |
+
$stringPrice = (string) $servicos->Valor;
|
145 |
+
$stringPrice = str_replace('.', '', $stringPrice);
|
146 |
+
$stringPrice = str_replace(',', '.', $stringPrice);
|
147 |
+
$shippingPrice = floatval($stringPrice);
|
148 |
+
$shippingPrice *= pow(2, $this->_splitUp);
|
149 |
$shippingDelivery = (int) $servicos->PrazoEntrega;
|
150 |
|
151 |
if ($shippingPrice <= 0) {
|
152 |
continue;
|
153 |
}
|
154 |
|
155 |
+
$this->_appendShippingReturn((string) $servicos->Codigo, $shippingPrice, $shippingDelivery);
|
156 |
$existReturn = true;
|
157 |
}
|
158 |
|
174 |
/**
|
175 |
* Make initial checks and iniciate module variables
|
176 |
*
|
177 |
+
* @param Mage_Shipping_Model_Rate_Request $request Mage request
|
178 |
*
|
179 |
* @return bool
|
180 |
*/
|
207 |
return false;
|
208 |
}
|
209 |
|
210 |
+
$this->_result = Mage::getModel('shipping/rate_result');
|
211 |
$this->_packageValue = $request->getBaseCurrency()->convert(
|
212 |
$request->getPackageValue(),
|
213 |
$request->getPackageCurrency()
|
221 |
* Get Correios return
|
222 |
*
|
223 |
* @return bool|SimpleXMLElement[]
|
224 |
+
*
|
225 |
+
* @throws Exception
|
226 |
*/
|
227 |
protected function _getCorreiosReturn()
|
228 |
{
|
233 |
$client = new Zend_Http_Client($filename);
|
234 |
$client->setConfig(
|
235 |
array(
|
236 |
+
'timeout' => $this->getConfigData('ws_timeout'),
|
237 |
+
'adapter' => Mage::getModel('pedroteixeira_correios/http_client_adapter_socket')
|
238 |
)
|
239 |
);
|
240 |
|
241 |
$client->setParameterGet('StrRetorno', 'xml');
|
242 |
$client->setParameterGet('nCdServico', $this->_postMethods);
|
243 |
+
$client->setParameterGet('nVlPeso', $this->_packageWeight);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
$client->setParameterGet('sCepOrigem', $this->_fromZip);
|
245 |
$client->setParameterGet('sCepDestino', $this->_toZip);
|
246 |
$client->setParameterGet('nCdFormato', 1);
|
247 |
+
$client->setParameterGet('nVlComprimento', $this->_midSize);
|
248 |
+
$client->setParameterGet('nVlAltura', $this->_midSize);
|
249 |
+
$client->setParameterGet('nVlLargura', $this->_midSize);
|
250 |
|
251 |
if ($this->getConfigData('mao_propria')) {
|
252 |
$client->setParameterGet('sCdMaoPropria', 'S');
|
263 |
if ($this->getConfigData('valor_declarado')
|
264 |
|| in_array($this->getConfigData('acobrar_code'), $this->_postMethodsExplode)
|
265 |
) {
|
266 |
+
$client->setParameterGet('nVlValorDeclarado', number_format($this->_packageValue, 2, ',', ''));
|
267 |
} else {
|
268 |
$client->setParameterGet('nVlValorDeclarado', 0);
|
269 |
}
|
313 |
/**
|
314 |
* Apend shipping value to return
|
315 |
*
|
316 |
+
* @param string $shippingMethod Method of shipping
|
317 |
+
* @param int $shippingPrice Price
|
318 |
+
* @param int $correiosDelivery Delivery date
|
319 |
*
|
320 |
* @return void
|
321 |
*/
|
322 |
+
protected function _appendShippingReturn($shippingMethod, $shippingPrice = 0, $correiosDelivery = 0)
|
323 |
{
|
324 |
|
325 |
$method = Mage::getModel('shipping/rate_result_method');
|
326 |
$method->setCarrier($this->_code);
|
327 |
$method->setCarrierTitle($this->getConfigData('title'));
|
328 |
+
$method->setMethod($shippingMethod);
|
329 |
|
330 |
$shippingCost = $shippingPrice;
|
331 |
$shippingPrice = $shippingPrice + $this->getConfigData('handling_fee');
|
332 |
|
333 |
+
$shippingData = explode(',', $this->getConfigData('serv_' . $shippingMethod));
|
334 |
|
335 |
+
if ($shippingMethod == $this->getConfigData('acobrar_code')) {
|
336 |
+
$shippingData[0] = $shippingData[0] . ' ( R$' . number_format($shippingPrice, 2, ',', '.') . ' )';
|
337 |
+
$shippingPrice = 0;
|
338 |
}
|
339 |
|
340 |
if ($this->getConfigFlag('prazo_entrega')) {
|
342 |
$method->setMethodTitle(
|
343 |
sprintf(
|
344 |
$this->getConfigData('msgprazo'),
|
345 |
+
$shippingData[0],
|
346 |
(int) ($correiosDelivery + $this->getConfigData('add_prazo'))
|
347 |
)
|
348 |
);
|
350 |
$method->setMethodTitle(
|
351 |
sprintf(
|
352 |
$this->getConfigData('msgprazo'),
|
353 |
+
$shippingData[0],
|
354 |
+
(int) ($shippingData[1] + $this->getConfigData('add_prazo'))
|
355 |
)
|
356 |
);
|
357 |
}
|
358 |
} else {
|
359 |
+
$method->setMethodTitle($shippingData[0]);
|
360 |
}
|
361 |
|
362 |
$method->setPrice($shippingPrice);
|
372 |
/**
|
373 |
* Throw error
|
374 |
*
|
375 |
+
* @param string $message Message placeholder
|
376 |
+
* @param string $log Message
|
377 |
+
* @param string|int $line Line of log
|
378 |
+
* @param string $custom Custom variables for placeholder
|
379 |
+
*
|
380 |
+
* @return void
|
381 |
*/
|
382 |
protected function _throwError($message, $log = null, $line = 'NO LINE', $custom = null)
|
383 |
{
|
402 |
/**
|
403 |
* Generate Volume weight
|
404 |
*
|
|
|
|
|
405 |
* @return bool
|
406 |
*/
|
407 |
protected function _generateVolumeWeight()
|
410 |
|
411 |
$items = Mage::getModel('checkout/cart')->getQuote()->getAllVisibleItems();
|
412 |
|
413 |
+
if (count($items) == 0) {
|
414 |
+
$items = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getAllVisibleItems();
|
415 |
+
}
|
416 |
+
|
417 |
foreach ($items as $item) {
|
418 |
$_product = $item->getProduct();
|
419 |
|
436 |
}
|
437 |
|
438 |
if ($this->getConfigFlag('check_dimensions')) {
|
439 |
+
foreach ($this->_postMethodsExplode as $key => $method) {
|
440 |
+
$sizeMax = max($itemAltura, $itemLargura, $itemComprimento);
|
441 |
+
$sumMax = ($itemAltura + $itemLargura + $itemComprimento);
|
442 |
+
$isValid = ($sizeMax <= $this->getConfigData("validate/serv_{$method}/max/size"));
|
443 |
+
$isValid &= ($sumMax <= $this->getConfigData("validate/serv_{$method}/max/sum"));
|
444 |
+
|
445 |
+
if (!$isValid) {
|
446 |
+
unset($this->_postMethodsExplode[$key]);
|
447 |
+
}
|
448 |
+
}
|
449 |
+
|
450 |
+
if (count($this->_postMethodsExplode) == 0) {
|
451 |
return false;
|
452 |
}
|
453 |
+
|
454 |
+
$this->_postMethods = implode(',', $this->_postMethodsExplode);
|
455 |
+
$this->_postMethodsFixed = $this->_postMethods;
|
456 |
}
|
457 |
|
458 |
+
$itemAltura = $this->_getFitHeight($item);
|
459 |
+
$pesoCubicoTotal += (($itemAltura * $itemLargura * $itemComprimento) *
|
460 |
+
$item->getQty()) / $this->getConfigData('coeficiente_volume');
|
461 |
}
|
462 |
|
463 |
$this->_volumeWeight = number_format($pesoCubicoTotal, 2, '.', '');
|
468 |
/**
|
469 |
* Generate free shipping for a product
|
470 |
*
|
471 |
+
* @param string $freeMethod Free method
|
472 |
*
|
473 |
* @return void
|
474 |
*/
|
501 |
/**
|
502 |
* Get Tracking Info
|
503 |
*
|
504 |
+
* @param mixed $tracking Tracking
|
505 |
*
|
506 |
* @return mixed
|
507 |
*/
|
522 |
/**
|
523 |
* Get Tracking
|
524 |
*
|
525 |
+
* @param array $trackings Trackings
|
526 |
*
|
527 |
* @return Mage_Shipping_Model_Tracking_Result
|
528 |
*/
|
539 |
/**
|
540 |
* Protected Get Tracking, opens the request to Correios
|
541 |
*
|
542 |
+
* @param string $code Code
|
543 |
*
|
544 |
* @return bool
|
545 |
*/
|
580 |
|
581 |
$description = '';
|
582 |
$found = false;
|
583 |
+
if (preg_match('/<td rowspan="?2"?/i', $column)
|
584 |
+
&& preg_match(
|
585 |
'/<td rowspan="?2"?>(.*)<\/td><td>(.*)<\/td><td><font color="[A-Z0-9]{6}">(.*)<\/font><\/td>/i',
|
586 |
$column,
|
587 |
$matches
|
610 |
$track = array(
|
611 |
'deliverydate' => $date->toString('YYYY-MM-dd'),
|
612 |
'deliverytime' => $datetime[1] . ':00',
|
613 |
+
'deliverylocation' => htmlentities($matches[2], ENT_IGNORE, 'ISO-8859-1'),
|
614 |
+
'status' => htmlentities($matches[3], ENT_IGNORE, 'ISO-8859-1'),
|
615 |
+
'activity' => htmlentities($matches[3], ENT_IGNORE, 'ISO-8859-1')
|
616 |
);
|
617 |
|
618 |
if ($description !== '') {
|
619 |
+
$track['activity'] = $matches[3] . ' - ' . htmlentities($description, ENT_IGNORE, 'ISO-8859-1');
|
620 |
}
|
621 |
|
622 |
$progress[] = $track;
|
629 |
|
630 |
$tracking = Mage::getModel('shipping/tracking_result_status');
|
631 |
$tracking->setTracking($code);
|
632 |
+
$tracking->setCarrier($this->_code);
|
633 |
$tracking->setCarrierTitle($this->getConfigData('title'));
|
634 |
$tracking->addData($track);
|
635 |
|
654 |
/**
|
655 |
* Define ZIP Code as required
|
656 |
*
|
657 |
+
* @param string $countryId Country ID
|
658 |
*
|
659 |
* @return bool
|
660 |
*/
|
662 |
{
|
663 |
return true;
|
664 |
}
|
665 |
+
|
666 |
+
/**
|
667 |
+
* Retrieve an average size.
|
668 |
+
* For optimization purposes all tree box sizes are converted in one medium dimension.
|
669 |
+
* Result cant exceed the minimum transportation limits.
|
670 |
+
*
|
671 |
+
* @return PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
672 |
+
*/
|
673 |
+
protected function _loadMidSize()
|
674 |
+
{
|
675 |
+
$volumeFactor = $this->getConfigData('coeficiente_volume');
|
676 |
+
$volumeTotal = $this->_volumeWeight * $volumeFactor;
|
677 |
+
$pow = round(pow((int) $volumeTotal, (1 / 3)));
|
678 |
+
$min = $this->getConfigData('midsize_min');
|
679 |
+
$this->_midSize = max($pow, $min);
|
680 |
+
return $this;
|
681 |
+
}
|
682 |
+
|
683 |
+
/**
|
684 |
+
* Validate post methods removing invalid services from quotation.
|
685 |
+
*
|
686 |
+
* @return boolean|PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
687 |
+
*/
|
688 |
+
protected function _removeInvalidServices()
|
689 |
+
{
|
690 |
+
$this->_loadMidSize();
|
691 |
+
$tmpMethods = $this->_postMethodsExplode;
|
692 |
+
foreach ($tmpMethods as $key => $method) {
|
693 |
+
$isOverSize = ($this->_midSize > $this->getConfigData("validate/serv_{$method}/max/size"));
|
694 |
+
$isOverSize |= ($this->_midSize * 3 > $this->getConfigData("validate/serv_{$method}/max/sum"));
|
695 |
+
$isOverWeight = ($this->_packageWeight > $this->getConfigData("validate/serv_{$method}/max/weight"));
|
696 |
+
|
697 |
+
if ($isOverSize || $isOverWeight) {
|
698 |
+
unset($tmpMethods[$key]);
|
699 |
+
}
|
700 |
+
}
|
701 |
+
|
702 |
+
$isDivisible = (count($tmpMethods) == 0);
|
703 |
+
$isLoopBreakable = (count($this->_postMethodsExplode) > 0);
|
704 |
+
if ($isDivisible && $isLoopBreakable) {
|
705 |
+
return $this->_splitPack();
|
706 |
+
}
|
707 |
+
|
708 |
+
$this->_postMethodsExplode = $tmpMethods;
|
709 |
+
$this->_postMethods = implode(',', $this->_postMethodsExplode);
|
710 |
+
$this->_postMethodsFixed = $this->_postMethods;
|
711 |
+
return $this;
|
712 |
+
}
|
713 |
+
|
714 |
+
/**
|
715 |
+
* Include an additional method to quote content before showing.
|
716 |
+
* When requested the new method is added in xml content as specified in config.xml like below:
|
717 |
+
*
|
718 |
+
* <add_method_0>
|
719 |
+
* <code>10065</code>
|
720 |
+
* <price>2.45</price>
|
721 |
+
* <days>5</days>
|
722 |
+
* <from>
|
723 |
+
* <zip>00000000</zip>
|
724 |
+
* <weight>0.0</weight>
|
725 |
+
* <size>0</size>
|
726 |
+
* </from>
|
727 |
+
* <to>
|
728 |
+
* <zip>99999999</zip>
|
729 |
+
* <weight>0.1</weight>
|
730 |
+
* <size>150</size>
|
731 |
+
* </to>
|
732 |
+
* </add_method_0>
|
733 |
+
*
|
734 |
+
* @param SimpleXMLElement $cServico XML Node
|
735 |
+
*
|
736 |
+
* @see http://www.correios.com.br/para-voce/consultas-e-solicitacoes/precos-e-prazos/servicos-nacionais_pasta/carta
|
737 |
+
*
|
738 |
+
* @return SimpleXMLElement
|
739 |
+
*/
|
740 |
+
protected function _addPostMethods($cServico)
|
741 |
+
{
|
742 |
+
$i = 0;
|
743 |
+
while (!is_null($this->getConfigData("add_method_{$i}"))) {
|
744 |
+
$isValid = true;
|
745 |
+
$isValid &= $this->_packageWeight >= $this->getConfigData("add_method_{$i}/from/weight");
|
746 |
+
$isValid &= $this->_packageWeight <= $this->getConfigData("add_method_{$i}/to/weight");
|
747 |
+
$isValid &= $this->_midSize >= $this->getConfigData("add_method_{$i}/from/size");
|
748 |
+
$isValid &= $this->_midSize <= $this->getConfigData("add_method_{$i}/to/size");
|
749 |
+
$isValid &= $this->_toZip >= $this->getConfigData("add_method_{$i}/from/zip");
|
750 |
+
$isValid &= $this->_toZip <= $this->getConfigData("add_method_{$i}/to/zip");
|
751 |
+
|
752 |
+
if ($isValid) {
|
753 |
+
$price = $this->getConfigData("add_method_{$i}/price");
|
754 |
+
$days = $this->getConfigData("add_method_{$i}/days");
|
755 |
+
$method = $this->getConfigData("add_method_{$i}/code");
|
756 |
+
foreach ($cServico as $servico) {
|
757 |
+
if ($servico->Codigo == $method) {
|
758 |
+
$servico->Valor = number_format($price, 2, ',', '');
|
759 |
+
$servico->PrazoEntrega = $days;
|
760 |
+
$servico->EntregaDomiciliar = 'S';
|
761 |
+
$servico->EntregaSabado = 'S';
|
762 |
+
$servico->Erro = '0';
|
763 |
+
$servico->MsgErro = '<![CDATA[]]>';
|
764 |
+
}
|
765 |
+
}
|
766 |
+
}
|
767 |
+
|
768 |
+
$i++;
|
769 |
+
}
|
770 |
+
|
771 |
+
return $cServico;
|
772 |
+
}
|
773 |
+
|
774 |
+
/**
|
775 |
+
* This keeps only postmethods available for all items in cart.
|
776 |
+
* In other words you can set post methods by products.
|
777 |
+
* Methods not available for all items in cart are removed.
|
778 |
+
* Require attribute creation called postmethods.
|
779 |
+
* Example:
|
780 |
+
* code: postmethods
|
781 |
+
* type: multiselect
|
782 |
+
* label: [free]
|
783 |
+
* value 1: 41068
|
784 |
+
* value 2: 40096
|
785 |
+
* ...
|
786 |
+
* value 99: 81019
|
787 |
+
*
|
788 |
+
* @return PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
789 |
+
*/
|
790 |
+
protected function _filterMethodByItemRestriction()
|
791 |
+
{
|
792 |
+
if ($this->getConfigFlag('filter_by_item')) {
|
793 |
+
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
|
794 |
+
|
795 |
+
if (count($items) == 0) {
|
796 |
+
$items = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getAllVisibleItems();
|
797 |
+
}
|
798 |
+
|
799 |
+
$intersection = $this->_postMethodsExplode;
|
800 |
+
foreach ($items as $item) {
|
801 |
+
$product = Mage::getModel('catalog/product')->load($item->getProductId());
|
802 |
+
$prodPostMethods = explode(',', $product->getData('postmethods'));
|
803 |
+
$intersection = array_intersect($prodPostMethods, $intersection);
|
804 |
+
}
|
805 |
+
|
806 |
+
$this->_postMethodsExplode = $intersection;
|
807 |
+
$this->_postMethods = implode(',', $intersection);
|
808 |
+
$this->_postMethodsFixed = $this->_postMethods;
|
809 |
+
}
|
810 |
+
|
811 |
+
return $this;
|
812 |
+
}
|
813 |
+
|
814 |
+
/**
|
815 |
+
* Added a fit size for items in large quantities.
|
816 |
+
* Means you can join items like two or more glasses, pots and vases.
|
817 |
+
* The calc is applied only for height side.
|
818 |
+
* Required attribute fit_size. Example:
|
819 |
+
*
|
820 |
+
* code: fit_size
|
821 |
+
* type: varchar
|
822 |
+
*
|
823 |
+
* After you can set a fit size for all products and improve your sells
|
824 |
+
*
|
825 |
+
* @param Mage_Eav_Model_Entity_Abstract $item Order Item
|
826 |
+
*
|
827 |
+
* @return number
|
828 |
+
*/
|
829 |
+
protected function _getFitHeight($item)
|
830 |
+
{
|
831 |
+
$product = $item->getProduct();
|
832 |
+
$height = $product->getData('volume_altura');
|
833 |
+
$height = ($height > 0) ? $height : (int) $this->getConfigData('altura_padrao');
|
834 |
+
$fitSize = (float) $product->getData('fit_size');
|
835 |
+
|
836 |
+
if ($item->getQty() > 1 && is_numeric($fitSize) && $fitSize > 0) {
|
837 |
+
$totalSize = $height + ($fitSize * ($item->getQty() - 1));
|
838 |
+
$height = $totalSize / $item->getQty();
|
839 |
+
}
|
840 |
+
|
841 |
+
return $height;
|
842 |
+
}
|
843 |
+
|
844 |
+
/**
|
845 |
+
* Splits the package in two parts.
|
846 |
+
* If the package is already splited, each piece will be splited in two equal parts.
|
847 |
+
*
|
848 |
+
* @return boolean|PedroTeixeira_Correios_Model_Carrier_CorreiosMethod
|
849 |
+
*/
|
850 |
+
protected function _splitPack()
|
851 |
+
{
|
852 |
+
if ($this->getConfigFlag('split_pack')) {
|
853 |
+
$this->_splitUp++;
|
854 |
+
$this->_volumeWeight /= 2;
|
855 |
+
$this->_packageWeight /= 2;
|
856 |
+
$this->_packageValue /= 2;
|
857 |
+
return $this->_removeInvalidServices();
|
858 |
+
}
|
859 |
+
return false;
|
860 |
+
}
|
861 |
}
|
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This source file is subject to the MIT License.
|
5 |
+
* It is also available through http://opensource.org/licenses/MIT
|
6 |
+
*
|
7 |
+
* @category PedroTeixeira
|
8 |
+
* @package PedroTeixeira_Correios
|
9 |
+
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
+
*/
|
14 |
+
class PedroTeixeira_Correios_Model_Http_Client_Adapter_Socket
|
15 |
+
extends Zend_Http_Client_Adapter_Socket
|
16 |
+
{
|
17 |
+
protected $_cache = null;
|
18 |
+
protected $_params = null;
|
19 |
+
protected $_code = 'pedroteixeira_correios';
|
20 |
+
|
21 |
+
const CACHE_TYPE = 'pedroteixeira_correios';
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Connect to the remote server
|
25 |
+
*
|
26 |
+
* @param string $host Host name
|
27 |
+
* @param int $port Port number
|
28 |
+
* @param bool $secure Secure flag
|
29 |
+
*
|
30 |
+
* @return void
|
31 |
+
*/
|
32 |
+
public function connect($host, $port = 80, $secure = false)
|
33 |
+
{
|
34 |
+
if (Mage::app()->useCache(self::CACHE_TYPE)) {
|
35 |
+
$mode = $this->getConfigData('cache_mode');
|
36 |
+
if (!($mode == PedroTeixeira_Correios_Model_Source_CacheMode::MODE_CACHE_ONLY)) {
|
37 |
+
try {
|
38 |
+
parent::connect($host, $port, $secure);
|
39 |
+
} catch (Zend_Http_Client_Adapter_Exception $e) {
|
40 |
+
Mage::log("{$this->_code} [socket]: {$e->getMessage()}");
|
41 |
+
}
|
42 |
+
}
|
43 |
+
} else {
|
44 |
+
parent::connect($host, $port, $secure);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Send request to the remote server
|
50 |
+
*
|
51 |
+
* @param string $method Method
|
52 |
+
* @param Zend_Uri_Http $uri Uri
|
53 |
+
* @param string $http_ver HTTP version
|
54 |
+
* @param array $headers Headers
|
55 |
+
* @param string $body Body
|
56 |
+
*
|
57 |
+
* @return string Request as string
|
58 |
+
*/
|
59 |
+
public function write($method, $uri, $http_ver = '1.1', $headers = array(), $body = '')
|
60 |
+
{
|
61 |
+
$request = false;
|
62 |
+
if (Mage::app()->useCache(self::CACHE_TYPE)) {
|
63 |
+
$this->_params = $uri->getQueryAsArray();
|
64 |
+
try {
|
65 |
+
$request = parent::write($method, $uri, $http_ver, $headers, $body);
|
66 |
+
} catch (Zend_Http_Client_Adapter_Exception $e) {
|
67 |
+
Mage::log("{$this->_code} [socket]: {$e->getMessage()}");
|
68 |
+
}
|
69 |
+
} else {
|
70 |
+
$request = parent::write($method, $uri, $http_ver, $headers, $body);
|
71 |
+
}
|
72 |
+
return $request;
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Read response from server
|
77 |
+
*
|
78 |
+
* @see Zend_Http_Client_Adapter_Socket::read()
|
79 |
+
*
|
80 |
+
* @return string
|
81 |
+
*/
|
82 |
+
public function read()
|
83 |
+
{
|
84 |
+
$response = false;
|
85 |
+
if (Mage::app()->useCache(self::CACHE_TYPE)) {
|
86 |
+
$cache = $this->getCache();
|
87 |
+
$cache->addData($this->_params);
|
88 |
+
$cacheMode = $this->getConfigData('cache_mode');
|
89 |
+
if ($cacheMode == PedroTeixeira_Correios_Model_Source_CacheMode::MODE_HTTP_PRIOR) {
|
90 |
+
try {
|
91 |
+
$response = parent::read();
|
92 |
+
$cache->save($response);
|
93 |
+
} catch (Zend_Http_Client_Adapter_Exception $e) {
|
94 |
+
$response = $cache->load();
|
95 |
+
}
|
96 |
+
} elseif ($cacheMode == PedroTeixeira_Correios_Model_Source_CacheMode::MODE_CACHE_PRIOR) {
|
97 |
+
$response = $cache->loadById();
|
98 |
+
if (!$response) {
|
99 |
+
try {
|
100 |
+
$response = parent::read();
|
101 |
+
$cache->save($response);
|
102 |
+
} catch (Zend_Http_Client_Adapter_Exception $e) {
|
103 |
+
$response = $cache->loadByTags();
|
104 |
+
}
|
105 |
+
}
|
106 |
+
} elseif ($cacheMode == PedroTeixeira_Correios_Model_Source_CacheMode::MODE_CACHE_ONLY) {
|
107 |
+
$response = $cache->load();
|
108 |
+
}
|
109 |
+
} else {
|
110 |
+
$response = parent::read();
|
111 |
+
}
|
112 |
+
return $response;
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Retrieves the cache instance
|
117 |
+
*
|
118 |
+
* @return PedroTeixeira_Correios_Model_Cache
|
119 |
+
*/
|
120 |
+
public function getCache()
|
121 |
+
{
|
122 |
+
if ($this->_cache == null) {
|
123 |
+
$this->_cache = Mage::getModel('pedroteixeira_correios/cache');
|
124 |
+
}
|
125 |
+
return $this->_cache;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Retrieve information from carrier configuration
|
130 |
+
*
|
131 |
+
* @param string $field Field
|
132 |
+
*
|
133 |
+
* @return mixed
|
134 |
+
*/
|
135 |
+
public function getConfigData($field)
|
136 |
+
{
|
137 |
+
if (empty($this->_code)) {
|
138 |
+
return false;
|
139 |
+
}
|
140 |
+
$path = 'carriers/' . $this->_code . '/' . $field;
|
141 |
+
return Mage::getStoreConfig($path);
|
142 |
+
}
|
143 |
+
}
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This source file is subject to the MIT License.
|
5 |
+
* It is also available through http://opensource.org/licenses/MIT
|
6 |
+
*
|
7 |
+
* @category PedroTeixeira
|
8 |
+
* @package PedroTeixeira_Correios
|
9 |
+
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
+
*/
|
14 |
+
class PedroTeixeira_Correios_Model_Source_CacheMode extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
15 |
+
{
|
16 |
+
const MODE_HTTP_PRIOR = 0;
|
17 |
+
const MODE_CACHE_PRIOR = 1;
|
18 |
+
const MODE_CACHE_ONLY = 2;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get options for methods
|
22 |
+
*
|
23 |
+
* @return array
|
24 |
+
*/
|
25 |
+
public function toOptionArray()
|
26 |
+
{
|
27 |
+
return array(
|
28 |
+
array('value' => self::MODE_HTTP_PRIOR, 'label' => 'Consultar os Correios; e, se falhar, o Cache'),
|
29 |
+
array('value' => self::MODE_CACHE_PRIOR, 'label' => 'Consultar o Cache; e, se falhar, os Correios'),
|
30 |
+
array('value' => self::MODE_CACHE_ONLY, 'label' => 'Consultar somente o Cache'),
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Get options for input fields
|
36 |
+
*
|
37 |
+
* @see Mage_Eav_Model_Entity_Attribute_Source_Interface::getAllOptions()
|
38 |
+
*
|
39 |
+
* @return array
|
40 |
+
*/
|
41 |
+
public function getAllOptions()
|
42 |
+
{
|
43 |
+
return self::toOptionArray();
|
44 |
+
}
|
45 |
+
}
|
@@ -6,13 +6,16 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
-
class PedroTeixeira_Correios_Model_Source_PostMethods
|
14 |
{
|
15 |
/**
|
|
|
|
|
16 |
* @return array
|
17 |
*/
|
18 |
public function toOptionArray()
|
@@ -26,6 +29,21 @@ class PedroTeixeira_Correios_Model_Source_PostMethods
|
|
26 |
array('value' => 40215, 'label' => Mage::helper('adminhtml')->__('Sedex 10 (40215)')),
|
27 |
array('value' => 40290, 'label' => Mage::helper('adminhtml')->__('Sedex HOJE (40290)')),
|
28 |
array('value' => 40045, 'label' => Mage::helper('adminhtml')->__('Sedex a Cobrar (40045)')),
|
|
|
|
|
|
|
29 |
);
|
30 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
}
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
+
class PedroTeixeira_Correios_Model_Source_PostMethods extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
15 |
{
|
16 |
/**
|
17 |
+
* Get options for methods
|
18 |
+
*
|
19 |
* @return array
|
20 |
*/
|
21 |
public function toOptionArray()
|
29 |
array('value' => 40215, 'label' => Mage::helper('adminhtml')->__('Sedex 10 (40215)')),
|
30 |
array('value' => 40290, 'label' => Mage::helper('adminhtml')->__('Sedex HOJE (40290)')),
|
31 |
array('value' => 40045, 'label' => Mage::helper('adminhtml')->__('Sedex a Cobrar (40045)')),
|
32 |
+
array('value' => 41300, 'label' => Mage::helper('adminhtml')->__('PAC GF (41300)')),
|
33 |
+
array('value' => 10065, 'label' => Mage::helper('adminhtml')->__('Carta Comercial (10065)')),
|
34 |
+
array('value' => 10138, 'label' => Mage::helper('adminhtml')->__('Carta Comercial Registrada (10138)')),
|
35 |
);
|
36 |
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Get options for input fields
|
40 |
+
*
|
41 |
+
* @see Mage_Eav_Model_Entity_Attribute_Source_Interface::getAllOptions()
|
42 |
+
*
|
43 |
+
* @return array
|
44 |
+
*/
|
45 |
+
public function getAllOptions()
|
46 |
+
{
|
47 |
+
return self::toOptionArray();
|
48 |
+
}
|
49 |
}
|
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
class PedroTeixeira_Correios_Model_Source_WeightType
|
14 |
{
|
@@ -19,6 +20,8 @@ class PedroTeixeira_Correios_Model_Source_WeightType
|
|
19 |
const WEIGHT_KG = 'kg';
|
20 |
|
21 |
/**
|
|
|
|
|
22 |
* @return array
|
23 |
*/
|
24 |
public function toOptionArray()
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
class PedroTeixeira_Correios_Model_Source_WeightType
|
15 |
{
|
20 |
const WEIGHT_KG = 'kg';
|
21 |
|
22 |
/**
|
23 |
+
* Get options for weight
|
24 |
+
*
|
25 |
* @return array
|
26 |
*/
|
27 |
public function toOptionArray()
|
@@ -6,15 +6,16 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
-->
|
14 |
<config>
|
15 |
<modules>
|
16 |
<PedroTeixeira_Correios>
|
17 |
-
<version>4.
|
18 |
<depends>
|
19 |
<Mage_Shipping/>
|
20 |
</depends>
|
@@ -28,6 +29,8 @@
|
|
28 |
<volume_altura/>
|
29 |
<volume_comprimento/>
|
30 |
<volume_largura/>
|
|
|
|
|
31 |
</product_attributes>
|
32 |
</item>
|
33 |
</quote>
|
@@ -61,6 +64,15 @@
|
|
61 |
</carriers>
|
62 |
</shipping>
|
63 |
</sales>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
</global>
|
65 |
|
66 |
<default>
|
@@ -76,7 +88,6 @@
|
|
76 |
<check_dimensions>1</check_dimensions>
|
77 |
<min_order_value>0</min_order_value>
|
78 |
<max_order_value>10000</max_order_value>
|
79 |
-
<maxweight>30</maxweight>
|
80 |
<handling_fee>0</handling_fee>
|
81 |
<ws_timeout>20</ws_timeout>
|
82 |
|
@@ -89,34 +100,101 @@
|
|
89 |
<altura_padrao>2</altura_padrao>
|
90 |
<comprimento_padrao>16</comprimento_padrao>
|
91 |
<largura_padrao>11</largura_padrao>
|
92 |
-
<
|
93 |
-
<comprimento_sent>16</comprimento_sent>
|
94 |
-
<largura_sent>11</largura_sent>
|
95 |
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
<
|
105 |
-
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
<!-- CONFIG -->
|
109 |
<free_method>40010</free_method>
|
110 |
<weight_type>kg</weight_type>
|
111 |
<add_prazo>0</add_prazo>
|
112 |
<showmethod>1</showmethod>
|
|
|
|
|
113 |
|
114 |
<!-- MESSAGES -->
|
115 |
<msgprazo>%s - Em média %d dia(s)</msgprazo>
|
116 |
<correioserror>Houve um erro inesperado, por favor entre em contato. %s</correioserror>
|
117 |
<valueerror>Valor de compra fora do permitido pelos Correios. Por favor entre em contato conosco.</valueerror>
|
118 |
<zipcodeerror>Por favor, corrija o CEP digitado, ele não está correto.</zipcodeerror>
|
119 |
-
<maxweighterror>Peso dos produtos acima do permitido pelos Correios. Por favor entre em contato conosco.</maxweighterror>
|
120 |
<weightzeroerror>Lojista: O peso do produto deverá ser maior que zero. Se você está usando a media de peso como gramas, o peso mínimo é de 10 gramas.</weightzeroerror>
|
121 |
<coderror>Lojista: Para calcular esse serviço você precisa ter contrato com os Correios.</coderror>
|
122 |
<urlerror>Esse método de envio está fora do ar. Por favor entre em contato conosco.</urlerror>
|
@@ -131,11 +209,355 @@
|
|
131 |
<serv_40215>Sedex 10,1</serv_40215>
|
132 |
<serv_40290>Sedex HOJE,1</serv_40290>
|
133 |
<serv_40045>Sedex a Cobrar,5</serv_40045>
|
134 |
-
<
|
|
|
|
|
135 |
<coeficiente_volume>6000</coeficiente_volume>
|
136 |
<acobrar_code>40045</acobrar_code>
|
137 |
-
<contrato_codes>40096,81019,41068</contrato_codes>
|
138 |
<url_ws_correios>http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx</url_ws_correios>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
</pedroteixeira_correios>
|
140 |
</carriers>
|
141 |
</default>
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
-->
|
15 |
<config>
|
16 |
<modules>
|
17 |
<PedroTeixeira_Correios>
|
18 |
+
<version>4.4.0</version>
|
19 |
<depends>
|
20 |
<Mage_Shipping/>
|
21 |
</depends>
|
29 |
<volume_altura/>
|
30 |
<volume_comprimento/>
|
31 |
<volume_largura/>
|
32 |
+
<postmethods/>
|
33 |
+
<fit_size/>
|
34 |
</product_attributes>
|
35 |
</item>
|
36 |
</quote>
|
64 |
</carriers>
|
65 |
</shipping>
|
66 |
</sales>
|
67 |
+
<cache>
|
68 |
+
<types>
|
69 |
+
<pedroteixeira_correios translate="label,description" module="pedroteixeira_correios">
|
70 |
+
<label>Correios Cache</label>
|
71 |
+
<description>Banco de Cotações dos Correios.</description>
|
72 |
+
<tags>PEDROTEIXEIRA_CORREIOS</tags>
|
73 |
+
</pedroteixeira_correios>
|
74 |
+
</types>
|
75 |
+
</cache>
|
76 |
</global>
|
77 |
|
78 |
<default>
|
88 |
<check_dimensions>1</check_dimensions>
|
89 |
<min_order_value>0</min_order_value>
|
90 |
<max_order_value>10000</max_order_value>
|
|
|
91 |
<handling_fee>0</handling_fee>
|
92 |
<ws_timeout>20</ws_timeout>
|
93 |
|
100 |
<altura_padrao>2</altura_padrao>
|
101 |
<comprimento_padrao>16</comprimento_padrao>
|
102 |
<largura_padrao>11</largura_padrao>
|
103 |
+
<midsize_min>16</midsize_min>
|
|
|
|
|
104 |
|
105 |
+
<validate>
|
106 |
+
<serv_40010>
|
107 |
+
<max>
|
108 |
+
<size>105</size>
|
109 |
+
<sum>200</sum>
|
110 |
+
<weight>30</weight>
|
111 |
+
</max>
|
112 |
+
</serv_40010>
|
113 |
+
<serv_40096>
|
114 |
+
<max>
|
115 |
+
<size>105</size>
|
116 |
+
<sum>200</sum>
|
117 |
+
<weight>30</weight>
|
118 |
+
</max>
|
119 |
+
</serv_40096>
|
120 |
+
<serv_81019>
|
121 |
+
<max>
|
122 |
+
<size>105</size>
|
123 |
+
<sum>200</sum>
|
124 |
+
<weight>15</weight>
|
125 |
+
</max>
|
126 |
+
</serv_81019>
|
127 |
+
<serv_41106>
|
128 |
+
<max>
|
129 |
+
<size>105</size>
|
130 |
+
<sum>200</sum>
|
131 |
+
<weight>30</weight>
|
132 |
+
</max>
|
133 |
+
</serv_41106>
|
134 |
+
<serv_41068>
|
135 |
+
<max>
|
136 |
+
<size>105</size>
|
137 |
+
<sum>200</sum>
|
138 |
+
<weight>30</weight>
|
139 |
+
</max>
|
140 |
+
</serv_41068>
|
141 |
+
<serv_40215>
|
142 |
+
<max>
|
143 |
+
<size>105</size>
|
144 |
+
<sum>200</sum>
|
145 |
+
<weight>10</weight>
|
146 |
+
</max>
|
147 |
+
</serv_40215>
|
148 |
+
<serv_40290>
|
149 |
+
<max>
|
150 |
+
<size>105</size>
|
151 |
+
<sum>200</sum>
|
152 |
+
<weight>10</weight>
|
153 |
+
</max>
|
154 |
+
</serv_40290>
|
155 |
+
<serv_40045>
|
156 |
+
<max>
|
157 |
+
<size>105</size>
|
158 |
+
<sum>200</sum>
|
159 |
+
<weight>30</weight>
|
160 |
+
</max>
|
161 |
+
</serv_40045>
|
162 |
+
<serv_41300>
|
163 |
+
<max>
|
164 |
+
<size>150</size>
|
165 |
+
<sum>300</sum>
|
166 |
+
<weight>30</weight>
|
167 |
+
</max>
|
168 |
+
</serv_41300>
|
169 |
+
<serv_10065>
|
170 |
+
<max>
|
171 |
+
<size>30</size>
|
172 |
+
<sum>50</sum>
|
173 |
+
<weight>0.5</weight>
|
174 |
+
</max>
|
175 |
+
</serv_10065>
|
176 |
+
<serv_10138>
|
177 |
+
<max>
|
178 |
+
<size>30</size>
|
179 |
+
<sum>50</sum>
|
180 |
+
<weight>0.5</weight>
|
181 |
+
</max>
|
182 |
+
</serv_10138>
|
183 |
+
</validate>
|
184 |
|
185 |
<!-- CONFIG -->
|
186 |
<free_method>40010</free_method>
|
187 |
<weight_type>kg</weight_type>
|
188 |
<add_prazo>0</add_prazo>
|
189 |
<showmethod>1</showmethod>
|
190 |
+
<filter_by_item>0</filter_by_item>
|
191 |
+
<split_pack>1</split_pack>
|
192 |
|
193 |
<!-- MESSAGES -->
|
194 |
<msgprazo>%s - Em média %d dia(s)</msgprazo>
|
195 |
<correioserror>Houve um erro inesperado, por favor entre em contato. %s</correioserror>
|
196 |
<valueerror>Valor de compra fora do permitido pelos Correios. Por favor entre em contato conosco.</valueerror>
|
197 |
<zipcodeerror>Por favor, corrija o CEP digitado, ele não está correto.</zipcodeerror>
|
|
|
198 |
<weightzeroerror>Lojista: O peso do produto deverá ser maior que zero. Se você está usando a media de peso como gramas, o peso mínimo é de 10 gramas.</weightzeroerror>
|
199 |
<coderror>Lojista: Para calcular esse serviço você precisa ter contrato com os Correios.</coderror>
|
200 |
<urlerror>Esse método de envio está fora do ar. Por favor entre em contato conosco.</urlerror>
|
209 |
<serv_40215>Sedex 10,1</serv_40215>
|
210 |
<serv_40290>Sedex HOJE,1</serv_40290>
|
211 |
<serv_40045>Sedex a Cobrar,5</serv_40045>
|
212 |
+
<serv_41300>PAC GF,4</serv_41300>
|
213 |
+
<serv_10065>Carta Comercial,3</serv_10065>
|
214 |
+
<serv_10138>Carta Comercial Registrada,3</serv_10138>
|
215 |
<coeficiente_volume>6000</coeficiente_volume>
|
216 |
<acobrar_code>40045</acobrar_code>
|
217 |
+
<contrato_codes>40096,81019,41068,41300</contrato_codes>
|
218 |
<url_ws_correios>http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx</url_ws_correios>
|
219 |
+
|
220 |
+
<!-- CACHE -->
|
221 |
+
<pattern_nocache><![CDATA[/<Erro>(-2|-3|-5|-6|-7|-8|-9|-10|-11|-12|-13|-14|-15|-16|-17|-18|-20|-22|-23|-24|-25|-26|-27|-28|-29|-30|-31|-32|-33|-34|-35|-36|-37|-38|-39|-40|-41|-42|-43|-44|-45|-888|006|007|009|010|011|7|99)<\/Erro>/]]></pattern_nocache>
|
222 |
+
<cache_timeout>31536000</cache_timeout>
|
223 |
+
<cache_accuracy>
|
224 |
+
<weight>1</weight>
|
225 |
+
<zip>8</zip>
|
226 |
+
<size>0</size>
|
227 |
+
</cache_accuracy>
|
228 |
+
<cache_mode>0</cache_mode>
|
229 |
+
|
230 |
+
<!-- ADDITIONAL POST METHODS -->
|
231 |
+
<add_method_0>
|
232 |
+
<code>10065</code>
|
233 |
+
<price>1.30</price>
|
234 |
+
<days>5</days>
|
235 |
+
<from>
|
236 |
+
<zip>00000000</zip>
|
237 |
+
<weight>0</weight>
|
238 |
+
<size>0</size>
|
239 |
+
</from>
|
240 |
+
<to>
|
241 |
+
<zip>99999999</zip>
|
242 |
+
<weight>0.020</weight>
|
243 |
+
<size>30</size>
|
244 |
+
</to>
|
245 |
+
</add_method_0>
|
246 |
+
<add_method_1>
|
247 |
+
<code>10065</code>
|
248 |
+
<price>1.80</price>
|
249 |
+
<days>5</days>
|
250 |
+
<from>
|
251 |
+
<zip>00000000</zip>
|
252 |
+
<weight>0.020</weight>
|
253 |
+
<size>0</size>
|
254 |
+
</from>
|
255 |
+
<to>
|
256 |
+
<zip>99999999</zip>
|
257 |
+
<weight>0.050</weight>
|
258 |
+
<size>30</size>
|
259 |
+
</to>
|
260 |
+
</add_method_1>
|
261 |
+
<add_method_2>
|
262 |
+
<code>10065</code>
|
263 |
+
<price>2.45</price>
|
264 |
+
<days>5</days>
|
265 |
+
<from>
|
266 |
+
<zip>00000000</zip>
|
267 |
+
<weight>0.050</weight>
|
268 |
+
<size>0</size>
|
269 |
+
</from>
|
270 |
+
<to>
|
271 |
+
<zip>99999999</zip>
|
272 |
+
<weight>0.100</weight>
|
273 |
+
<size>30</size>
|
274 |
+
</to>
|
275 |
+
</add_method_2>
|
276 |
+
<add_method_3>
|
277 |
+
<code>10065</code>
|
278 |
+
<price>3.00</price>
|
279 |
+
<days>5</days>
|
280 |
+
<from>
|
281 |
+
<zip>00000000</zip>
|
282 |
+
<weight>0.100</weight>
|
283 |
+
<size>0</size>
|
284 |
+
</from>
|
285 |
+
<to>
|
286 |
+
<zip>99999999</zip>
|
287 |
+
<weight>0.150</weight>
|
288 |
+
<size>30</size>
|
289 |
+
</to>
|
290 |
+
</add_method_3>
|
291 |
+
<add_method_4>
|
292 |
+
<code>10065</code>
|
293 |
+
<price>3.60</price>
|
294 |
+
<days>5</days>
|
295 |
+
<from>
|
296 |
+
<zip>00000000</zip>
|
297 |
+
<weight>0.150</weight>
|
298 |
+
<size>0</size>
|
299 |
+
</from>
|
300 |
+
<to>
|
301 |
+
<zip>99999999</zip>
|
302 |
+
<weight>0.200</weight>
|
303 |
+
<size>30</size>
|
304 |
+
</to>
|
305 |
+
</add_method_4>
|
306 |
+
<add_method_5>
|
307 |
+
<code>10065</code>
|
308 |
+
<price>4.15</price>
|
309 |
+
<days>5</days>
|
310 |
+
<from>
|
311 |
+
<zip>00000000</zip>
|
312 |
+
<weight>0.200</weight>
|
313 |
+
<size>0</size>
|
314 |
+
</from>
|
315 |
+
<to>
|
316 |
+
<zip>99999999</zip>
|
317 |
+
<weight>0.250</weight>
|
318 |
+
<size>30</size>
|
319 |
+
</to>
|
320 |
+
</add_method_5>
|
321 |
+
<add_method_6>
|
322 |
+
<code>10065</code>
|
323 |
+
<price>4.70</price>
|
324 |
+
<days>5</days>
|
325 |
+
<from>
|
326 |
+
<zip>00000000</zip>
|
327 |
+
<weight>0.250</weight>
|
328 |
+
<size>0</size>
|
329 |
+
</from>
|
330 |
+
<to>
|
331 |
+
<zip>99999999</zip>
|
332 |
+
<weight>0.300</weight>
|
333 |
+
<size>30</size>
|
334 |
+
</to>
|
335 |
+
</add_method_6>
|
336 |
+
<add_method_7>
|
337 |
+
<code>10065</code>
|
338 |
+
<price>5.25</price>
|
339 |
+
<days>5</days>
|
340 |
+
<from>
|
341 |
+
<zip>00000000</zip>
|
342 |
+
<weight>0.300</weight>
|
343 |
+
<size>0</size>
|
344 |
+
</from>
|
345 |
+
<to>
|
346 |
+
<zip>99999999</zip>
|
347 |
+
<weight>0.350</weight>
|
348 |
+
<size>30</size>
|
349 |
+
</to>
|
350 |
+
</add_method_7>
|
351 |
+
<add_method_8>
|
352 |
+
<code>10065</code>
|
353 |
+
<price>5.80</price>
|
354 |
+
<days>5</days>
|
355 |
+
<from>
|
356 |
+
<zip>00000000</zip>
|
357 |
+
<weight>0.350</weight>
|
358 |
+
<size>0</size>
|
359 |
+
</from>
|
360 |
+
<to>
|
361 |
+
<zip>99999999</zip>
|
362 |
+
<weight>0.400</weight>
|
363 |
+
<size>30</size>
|
364 |
+
</to>
|
365 |
+
</add_method_8>
|
366 |
+
<add_method_9>
|
367 |
+
<code>10065</code>
|
368 |
+
<price>6.35</price>
|
369 |
+
<days>5</days>
|
370 |
+
<from>
|
371 |
+
<zip>00000000</zip>
|
372 |
+
<weight>0.400</weight>
|
373 |
+
<size>0</size>
|
374 |
+
</from>
|
375 |
+
<to>
|
376 |
+
<zip>99999999</zip>
|
377 |
+
<weight>0.450</weight>
|
378 |
+
<size>30</size>
|
379 |
+
</to>
|
380 |
+
</add_method_9>
|
381 |
+
<add_method_10>
|
382 |
+
<code>10065</code>
|
383 |
+
<price>6.90</price>
|
384 |
+
<days>5</days>
|
385 |
+
<from>
|
386 |
+
<zip>00000000</zip>
|
387 |
+
<weight>0.450</weight>
|
388 |
+
<size>0</size>
|
389 |
+
</from>
|
390 |
+
<to>
|
391 |
+
<zip>99999999</zip>
|
392 |
+
<weight>0.500</weight>
|
393 |
+
<size>30</size>
|
394 |
+
</to>
|
395 |
+
</add_method_10>
|
396 |
+
<add_method_11>
|
397 |
+
<code>10138</code>
|
398 |
+
<price>4.50</price>
|
399 |
+
<days>5</days>
|
400 |
+
<from>
|
401 |
+
<zip>00000000</zip>
|
402 |
+
<weight>0</weight>
|
403 |
+
<size>0</size>
|
404 |
+
</from>
|
405 |
+
<to>
|
406 |
+
<zip>99999999</zip>
|
407 |
+
<weight>0.020</weight>
|
408 |
+
<size>30</size>
|
409 |
+
</to>
|
410 |
+
</add_method_11>
|
411 |
+
<add_method_12>
|
412 |
+
<code>10138</code>
|
413 |
+
<price>5.00</price>
|
414 |
+
<days>5</days>
|
415 |
+
<from>
|
416 |
+
<zip>00000000</zip>
|
417 |
+
<weight>0.020</weight>
|
418 |
+
<size>0</size>
|
419 |
+
</from>
|
420 |
+
<to>
|
421 |
+
<zip>99999999</zip>
|
422 |
+
<weight>0.050</weight>
|
423 |
+
<size>30</size>
|
424 |
+
</to>
|
425 |
+
</add_method_12>
|
426 |
+
<add_method_13>
|
427 |
+
<code>10138</code>
|
428 |
+
<price>5.65</price>
|
429 |
+
<days>5</days>
|
430 |
+
<from>
|
431 |
+
<zip>00000000</zip>
|
432 |
+
<weight>0.050</weight>
|
433 |
+
<size>0</size>
|
434 |
+
</from>
|
435 |
+
<to>
|
436 |
+
<zip>99999999</zip>
|
437 |
+
<weight>0.100</weight>
|
438 |
+
<size>30</size>
|
439 |
+
</to>
|
440 |
+
</add_method_13>
|
441 |
+
<add_method_14>
|
442 |
+
<code>10138</code>
|
443 |
+
<price>6.20</price>
|
444 |
+
<days>5</days>
|
445 |
+
<from>
|
446 |
+
<zip>00000000</zip>
|
447 |
+
<weight>0.100</weight>
|
448 |
+
<size>0</size>
|
449 |
+
</from>
|
450 |
+
<to>
|
451 |
+
<zip>99999999</zip>
|
452 |
+
<weight>0.150</weight>
|
453 |
+
<size>30</size>
|
454 |
+
</to>
|
455 |
+
</add_method_14>
|
456 |
+
<add_method_15>
|
457 |
+
<code>10138</code>
|
458 |
+
<price>6.80</price>
|
459 |
+
<days>5</days>
|
460 |
+
<from>
|
461 |
+
<zip>00000000</zip>
|
462 |
+
<weight>0.150</weight>
|
463 |
+
<size>0</size>
|
464 |
+
</from>
|
465 |
+
<to>
|
466 |
+
<zip>99999999</zip>
|
467 |
+
<weight>0.200</weight>
|
468 |
+
<size>30</size>
|
469 |
+
</to>
|
470 |
+
</add_method_15>
|
471 |
+
<add_method_16>
|
472 |
+
<code>10138</code>
|
473 |
+
<price>7.35</price>
|
474 |
+
<days>5</days>
|
475 |
+
<from>
|
476 |
+
<zip>00000000</zip>
|
477 |
+
<weight>0.200</weight>
|
478 |
+
<size>0</size>
|
479 |
+
</from>
|
480 |
+
<to>
|
481 |
+
<zip>99999999</zip>
|
482 |
+
<weight>0.250</weight>
|
483 |
+
<size>30</size>
|
484 |
+
</to>
|
485 |
+
</add_method_16>
|
486 |
+
<add_method_17>
|
487 |
+
<code>10138</code>
|
488 |
+
<price>7.90</price>
|
489 |
+
<days>5</days>
|
490 |
+
<from>
|
491 |
+
<zip>00000000</zip>
|
492 |
+
<weight>0.250</weight>
|
493 |
+
<size>0</size>
|
494 |
+
</from>
|
495 |
+
<to>
|
496 |
+
<zip>99999999</zip>
|
497 |
+
<weight>0.300</weight>
|
498 |
+
<size>30</size>
|
499 |
+
</to>
|
500 |
+
</add_method_17>
|
501 |
+
<add_method_18>
|
502 |
+
<code>10138</code>
|
503 |
+
<price>8.45</price>
|
504 |
+
<days>5</days>
|
505 |
+
<from>
|
506 |
+
<zip>00000000</zip>
|
507 |
+
<weight>0.300</weight>
|
508 |
+
<size>0</size>
|
509 |
+
</from>
|
510 |
+
<to>
|
511 |
+
<zip>99999999</zip>
|
512 |
+
<weight>0.350</weight>
|
513 |
+
<size>30</size>
|
514 |
+
</to>
|
515 |
+
</add_method_18>
|
516 |
+
<add_method_19>
|
517 |
+
<code>10138</code>
|
518 |
+
<price>9.00</price>
|
519 |
+
<days>5</days>
|
520 |
+
<from>
|
521 |
+
<zip>00000000</zip>
|
522 |
+
<weight>0.350</weight>
|
523 |
+
<size>0</size>
|
524 |
+
</from>
|
525 |
+
<to>
|
526 |
+
<zip>99999999</zip>
|
527 |
+
<weight>0.400</weight>
|
528 |
+
<size>30</size>
|
529 |
+
</to>
|
530 |
+
</add_method_19>
|
531 |
+
<add_method_20>
|
532 |
+
<code>10138</code>
|
533 |
+
<price>9.55</price>
|
534 |
+
<days>5</days>
|
535 |
+
<from>
|
536 |
+
<zip>00000000</zip>
|
537 |
+
<weight>0.400</weight>
|
538 |
+
<size>0</size>
|
539 |
+
</from>
|
540 |
+
<to>
|
541 |
+
<zip>99999999</zip>
|
542 |
+
<weight>0.450</weight>
|
543 |
+
<size>30</size>
|
544 |
+
</to>
|
545 |
+
</add_method_20>
|
546 |
+
<add_method_21>
|
547 |
+
<code>10138</code>
|
548 |
+
<price>10.10</price>
|
549 |
+
<days>5</days>
|
550 |
+
<from>
|
551 |
+
<zip>00000000</zip>
|
552 |
+
<weight>0.450</weight>
|
553 |
+
<size>0</size>
|
554 |
+
</from>
|
555 |
+
<to>
|
556 |
+
<zip>99999999</zip>
|
557 |
+
<weight>0.500</weight>
|
558 |
+
<size>30</size>
|
559 |
+
</to>
|
560 |
+
</add_method_21>
|
561 |
</pedroteixeira_correios>
|
562 |
</carriers>
|
563 |
</default>
|
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
-->
|
14 |
<config>
|
@@ -30,6 +31,7 @@
|
|
30 |
<p>Lembre-se de configurar as "Definições de Envio" no menu ao lado esquerdo.</p>
|
31 |
<p>Para serviços que tenham em seu nome "Com Contrato", é necessário configurar o "Código Administrativo dos Correios" e "Senha Administrativa dos Correios".</p>
|
32 |
<p>Para utilizar as regras de desconto de frete, você deve configurar o "Serviço para entrega gratuita", lembre-se de habilitar o serviço.</p>
|
|
|
33 |
<p>Pedro Teixeira [<a href="http://pedroteixeira.io/" target="_blank">pedroteixeira.io</a> ]</p>
|
34 |
<br />
|
35 |
<hr />
|
@@ -216,15 +218,6 @@
|
|
216 |
<show_in_website>1</show_in_website>
|
217 |
<show_in_store>1</show_in_store>
|
218 |
</max_order_value>
|
219 |
-
<maxweight translate="label">
|
220 |
-
<label>Peso Máximo Permitido Pelos Correios</label>
|
221 |
-
<frontend_type>text</frontend_type>
|
222 |
-
<sort_order>150</sort_order>
|
223 |
-
<show_in_default>1</show_in_default>
|
224 |
-
<show_in_website>1</show_in_website>
|
225 |
-
<show_in_store>1</show_in_store>
|
226 |
-
<comment>Utilize o mesmo formato de peso configurado no módulo, kilos ou gramas.</comment>
|
227 |
-
</maxweight>
|
228 |
<handling_fee translate="label">
|
229 |
<label>Taxa de Postagem</label>
|
230 |
<frontend_type>text</frontend_type>
|
@@ -275,14 +268,6 @@
|
|
275 |
<show_in_website>1</show_in_website>
|
276 |
<show_in_store>1</show_in_store>
|
277 |
</zipcodeerror>
|
278 |
-
<maxweighterror translate="label">
|
279 |
-
<label>Mensagem de Peso Fora do Permitido</label>
|
280 |
-
<frontend_type>textarea</frontend_type>
|
281 |
-
<sort_order>220</sort_order>
|
282 |
-
<show_in_default>1</show_in_default>
|
283 |
-
<show_in_website>1</show_in_website>
|
284 |
-
<show_in_store>1</show_in_store>
|
285 |
-
</maxweighterror>
|
286 |
<weightzeroerror translate="label">
|
287 |
<label>Mensagem de Peso Zero</label>
|
288 |
<frontend_type>textarea</frontend_type>
|
@@ -319,6 +304,36 @@
|
|
319 |
mostrar as mensagens de erro?
|
320 |
</comment>
|
321 |
</showmethod>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
<sort_order translate="label">
|
323 |
<label>Ordenar Por</label>
|
324 |
<frontend_type>text</frontend_type>
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
-->
|
15 |
<config>
|
31 |
<p>Lembre-se de configurar as "Definições de Envio" no menu ao lado esquerdo.</p>
|
32 |
<p>Para serviços que tenham em seu nome "Com Contrato", é necessário configurar o "Código Administrativo dos Correios" e "Senha Administrativa dos Correios".</p>
|
33 |
<p>Para utilizar as regras de desconto de frete, você deve configurar o "Serviço para entrega gratuita", lembre-se de habilitar o serviço.</p>
|
34 |
+
<p>Agradecimento especial para todos os <a href="https://github.com/pedro-teixeira/correios/graphs/contributors" target="_blank">contribuidores</a>.</p>
|
35 |
<p>Pedro Teixeira [<a href="http://pedroteixeira.io/" target="_blank">pedroteixeira.io</a> ]</p>
|
36 |
<br />
|
37 |
<hr />
|
218 |
<show_in_website>1</show_in_website>
|
219 |
<show_in_store>1</show_in_store>
|
220 |
</max_order_value>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
<handling_fee translate="label">
|
222 |
<label>Taxa de Postagem</label>
|
223 |
<frontend_type>text</frontend_type>
|
268 |
<show_in_website>1</show_in_website>
|
269 |
<show_in_store>1</show_in_store>
|
270 |
</zipcodeerror>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
<weightzeroerror translate="label">
|
272 |
<label>Mensagem de Peso Zero</label>
|
273 |
<frontend_type>textarea</frontend_type>
|
304 |
mostrar as mensagens de erro?
|
305 |
</comment>
|
306 |
</showmethod>
|
307 |
+
<filter_by_item translate="label">
|
308 |
+
<label>Habilitar Filtro de Serviços por Produto</label>
|
309 |
+
<frontend_type>select</frontend_type>
|
310 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
311 |
+
<sort_order>265</sort_order>
|
312 |
+
<show_in_default>1</show_in_default>
|
313 |
+
<show_in_website>1</show_in_website>
|
314 |
+
<show_in_store>1</show_in_store>
|
315 |
+
<comment>A cotação irá exibir somente os serviços de postagem comuns a todos os produtos do carrinho de compras.</comment>
|
316 |
+
</filter_by_item>
|
317 |
+
<cache_mode translate="label">
|
318 |
+
<label>Modo de Prioridade da Cache</label>
|
319 |
+
<frontend_type>select</frontend_type>
|
320 |
+
<source_model>PedroTeixeira_Correios_Model_Source_CacheMode</source_model>
|
321 |
+
<sort_order>267</sort_order>
|
322 |
+
<show_in_default>1</show_in_default>
|
323 |
+
<show_in_website>1</show_in_website>
|
324 |
+
<show_in_store>1</show_in_store>
|
325 |
+
<comment>Esta configuração se aplica somente quando Correios Cache estiver ativo, em Sistema > Gerenciar Cache.</comment>
|
326 |
+
</cache_mode>
|
327 |
+
<split_pack translate="label">
|
328 |
+
<label>Habilitar Divisão de Pacotes</label>
|
329 |
+
<frontend_type>select</frontend_type>
|
330 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
331 |
+
<sort_order>268</sort_order>
|
332 |
+
<show_in_default>1</show_in_default>
|
333 |
+
<show_in_website>1</show_in_website>
|
334 |
+
<show_in_store>1</show_in_store>
|
335 |
+
<comment>O pacote é dividido, caso o carrinho exceda os limites de peso e tamanho, para todos os serviços. A divisão se repete até que os limites sejam válidos, para um ou mais serviços.</comment>
|
336 |
+
</split_pack>
|
337 |
<sort_order translate="label">
|
338 |
<label>Ordenar Por</label>
|
339 |
<frontend_type>text</frontend_type>
|
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
|
14 |
/** @var $installer Mage_Core_Model_Resource_Setup */
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
|
15 |
/** @var $installer Mage_Core_Model_Resource_Setup */
|
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This source file is subject to the MIT License.
|
5 |
+
* It is also available through http://opensource.org/licenses/MIT
|
6 |
+
*
|
7 |
+
* @category PedroTeixeira
|
8 |
+
* @package PedroTeixeira_Correios
|
9 |
+
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
+
*/
|
14 |
+
|
15 |
+
/** @var $installer Mage_Core_Model_Resource_Setup */
|
16 |
+
$installer = $this;
|
17 |
+
$installer->startSetup();
|
18 |
+
|
19 |
+
/* @var $installer Mage_Catalog_Model_Resource_Eav_Mysql4_Setup */
|
20 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
21 |
+
|
22 |
+
// Add volume to prduct attribute set
|
23 |
+
$codigo = 'volume_comprimento';
|
24 |
+
$config = array(
|
25 |
+
'position' => 1,
|
26 |
+
'required' => 0,
|
27 |
+
'label' => 'Comprimento (cm)',
|
28 |
+
'type' => 'int',
|
29 |
+
'input' => 'text',
|
30 |
+
'apply_to' => 'simple,bundle,grouped,configurable',
|
31 |
+
'note' => 'Comprimento da embalagem do produto (Para cálculo dos Correios)'
|
32 |
+
);
|
33 |
+
|
34 |
+
$setup->addAttribute('catalog_product', $codigo, $config);
|
35 |
+
|
36 |
+
// Add volume to prduct attribute set
|
37 |
+
$codigo = 'volume_altura';
|
38 |
+
$config = array(
|
39 |
+
'position' => 1,
|
40 |
+
'required' => 0,
|
41 |
+
'label' => 'Altura (cm)',
|
42 |
+
'type' => 'int',
|
43 |
+
'input' => 'text',
|
44 |
+
'apply_to' => 'simple,bundle,grouped,configurable',
|
45 |
+
'note' => 'Altura da embalagem do produto (Para cálculo dos Correios)'
|
46 |
+
);
|
47 |
+
|
48 |
+
$setup->addAttribute('catalog_product', $codigo, $config);
|
49 |
+
|
50 |
+
// Add volume to prduct attribute set
|
51 |
+
$codigo = 'volume_largura';
|
52 |
+
$config = array(
|
53 |
+
'position' => 1,
|
54 |
+
'required' => 0,
|
55 |
+
'label' => 'Largura (cm)',
|
56 |
+
'type' => 'int',
|
57 |
+
'input' => 'text',
|
58 |
+
'apply_to' => 'simple,bundle,grouped,configurable',
|
59 |
+
'note' => 'Largura da embalagem do produto (Para cálculo dos Correios)'
|
60 |
+
);
|
61 |
+
|
62 |
+
$setup->addAttribute('catalog_product', $codigo, $config);
|
63 |
+
|
64 |
+
$codigo = 'postmethods';
|
65 |
+
$config = array(
|
66 |
+
'position' => 1,
|
67 |
+
'required' => 0,
|
68 |
+
'label' => 'Serviços de Entrega',
|
69 |
+
'type' => 'text',
|
70 |
+
'input' => 'multiselect',
|
71 |
+
'source' => 'pedroteixeira_correios/source_postMethods',
|
72 |
+
'backend' => 'eav/entity_attribute_backend_array',
|
73 |
+
'apply_to' => 'simple,bundle,grouped,configurable',
|
74 |
+
'note' => 'Selecione os serviços apropriados para o produto.'
|
75 |
+
);
|
76 |
+
|
77 |
+
$setup->addAttribute('catalog_product', $codigo, $config);
|
78 |
+
|
79 |
+
$codigo = 'fit_size';
|
80 |
+
$config = array(
|
81 |
+
'position' => 1,
|
82 |
+
'required' => 0,
|
83 |
+
'label' => 'Diferença do Encaixe (cm)',
|
84 |
+
'type' => 'varchar',
|
85 |
+
'input' => 'text',
|
86 |
+
'apply_to' => 'simple,bundle,grouped,configurable',
|
87 |
+
'note' => 'Exemplo: Se 1 item mede 10cm de altura, e 2 itens encaixados medem 11cm. A diferença é de 1cm.'
|
88 |
+
);
|
89 |
+
|
90 |
+
$setup->addAttribute('catalog_product', $codigo, $config);
|
91 |
+
|
92 |
+
$installer->endSetup();
|
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
|
14 |
/** @var $installer Mage_Core_Model_Resource_Setup */
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
|
15 |
/** @var $installer Mage_Core_Model_Resource_Setup */
|
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
|
14 |
/** @var $installer Mage_Core_Model_Resource_Setup */
|
@@ -18,7 +19,9 @@ $connection = $installer->getConnection();
|
|
18 |
|
19 |
$installer->deleteConfigData('carriers/pedroteixeira_correios/urlmethod');
|
20 |
|
21 |
-
$sql = 'select value from ' .
|
|
|
|
|
22 |
|
23 |
$methods = explode(',', $connection->fetchOne($sql));
|
24 |
|
@@ -34,7 +37,9 @@ if (count($methods) <= 0) {
|
|
34 |
|
35 |
$installer->setConfigData('carriers/pedroteixeira_correios/postmethods', implode(',', $methods));
|
36 |
|
37 |
-
$sql = 'select value from ' .
|
|
|
|
|
38 |
|
39 |
if ($connection->fetchOne($sql) == '41025') {
|
40 |
$installer->setConfigData('carriers/pedroteixeira_correios/free_method', '41106');
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
|
15 |
/** @var $installer Mage_Core_Model_Resource_Setup */
|
19 |
|
20 |
$installer->deleteConfigData('carriers/pedroteixeira_correios/urlmethod');
|
21 |
|
22 |
+
$sql = 'select value from ' .
|
23 |
+
$installer->getTable('core/config_data') .
|
24 |
+
' where path="carriers/pedroteixeira_correios/postmethods"';
|
25 |
|
26 |
$methods = explode(',', $connection->fetchOne($sql));
|
27 |
|
37 |
|
38 |
$installer->setConfigData('carriers/pedroteixeira_correios/postmethods', implode(',', $methods));
|
39 |
|
40 |
+
$sql = 'select value from ' .
|
41 |
+
$installer->getTable('core/config_data') .
|
42 |
+
' where path="carriers/pedroteixeira_correios/free_method"';
|
43 |
|
44 |
if ($connection->fetchOne($sql) == '41025') {
|
45 |
$installer->setConfigData('carriers/pedroteixeira_correios/free_method', '41106');
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This source file is subject to the MIT License.
|
5 |
+
* It is also available through http://opensource.org/licenses/MIT
|
6 |
+
*
|
7 |
+
* @category PedroTeixeira
|
8 |
+
* @package PedroTeixeira_Correios
|
9 |
+
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
+
*/
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This source file is subject to the MIT License.
|
5 |
+
* It is also available through http://opensource.org/licenses/MIT
|
6 |
+
*
|
7 |
+
* @category PedroTeixeira
|
8 |
+
* @package PedroTeixeira_Correios
|
9 |
+
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
+
*/
|
14 |
+
|
15 |
+
/** @var $installer Mage_Core_Model_Resource_Setup */
|
16 |
+
$installer = $this;
|
17 |
+
$installer->startSetup();
|
18 |
+
|
19 |
+
/* @var $installer Mage_Catalog_Model_Resource_Eav_Mysql4_Setup */
|
20 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
21 |
+
|
22 |
+
$codigo = 'postmethods';
|
23 |
+
$config = array(
|
24 |
+
'position' => 1,
|
25 |
+
'required' => 0,
|
26 |
+
'label' => 'Serviços de Entrega',
|
27 |
+
'type' => 'text',
|
28 |
+
'input' => 'multiselect',
|
29 |
+
'source' => 'pedroteixeira_correios/source_postMethods',
|
30 |
+
'backend' => 'eav/entity_attribute_backend_array',
|
31 |
+
'apply_to' => 'simple,bundle,grouped,configurable',
|
32 |
+
'note' => 'Selecione os serviços apropriados para o produto.'
|
33 |
+
);
|
34 |
+
|
35 |
+
$setup->addAttribute('catalog_product', $codigo, $config);
|
36 |
+
|
37 |
+
$codigo = 'fit_size';
|
38 |
+
$config = array(
|
39 |
+
'position' => 1,
|
40 |
+
'required' => 0,
|
41 |
+
'label' => 'Diferença do Encaixe (cm)',
|
42 |
+
'type' => 'varchar',
|
43 |
+
'input' => 'text',
|
44 |
+
'apply_to' => 'simple,bundle,grouped,configurable',
|
45 |
+
'note' => 'Exemplo: Se 1 item mede 10cm de altura, e 2 itens encaixados medem 11cm. A diferença é de 1cm.'
|
46 |
+
);
|
47 |
+
|
48 |
+
$setup->addAttribute('catalog_product', $codigo, $config);
|
49 |
+
|
50 |
+
$installer->endSetup();
|
@@ -6,9 +6,10 @@
|
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
9 |
-
* @copyright Copyright (c) 2014 Pedro Teixeira (http://pedroteixeira.io)
|
10 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
11 |
-
* @
|
|
|
|
|
12 |
*/
|
13 |
-->
|
14 |
<config>
|
6 |
*
|
7 |
* @category PedroTeixeira
|
8 |
* @package PedroTeixeira_Correios
|
|
|
9 |
* @author Pedro Teixeira <hello@pedroteixeira.io>
|
10 |
+
* @copyright 2015 Pedro Teixeira (http://pedroteixeira.io)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
* @link https://github.com/pedro-teixeira/correios
|
13 |
*/
|
14 |
-->
|
15 |
<config>
|
@@ -1,15 +1,13 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>PedroTeixeira_Correios</name>
|
4 |
-
<version>4.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/mit-license.php">MIT License</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
-
<summary>Módulo de cálculo de PAC, Sedex, E-Sedex, Sedex 10, Sedex Hoje
|
10 |
-
<description>
|
11 |
-

|
12 |
-
Utilizando peso volumétrico para cálculo de todos os serviços e compatível com a validação de dimensões dos Correios. 
|
13 |

|
14 |
Serviços suportados:
|
15 |

|
@@ -21,24 +19,41 @@ Serviços suportados:
|
|
21 |
- Sedex 10
|
22 |
- Sedex HOJE
|
23 |
- Sedex a Cobrar
|
|
|
|
|
|
|
24 |

|
25 |
-
Conta com identificação de erros dos Correios, mão própria, aviso de recebimento, valor declarado, captura do prazo de entrega dos Correios, adicionar mais dias ao prazo dos Correios, identifica o volume dos produtos por atributo
|
26 |

|
27 |
-
Mais informações em
|
28 |
<notes>Bugfix:
|
29 |

|
30 |
-
-
|
|
|
|
|
|
|
|
|
|
|
31 |

|
32 |
Feature:
|
33 |

|
34 |
-
-
|
35 |
-
-
|
36 |
-
-
|
37 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
<authors><author><name>Pedro Teixeira</name><user>teixeirapedro</user><email>hello@pedroteixeira.io</email></author></authors>
|
39 |
-
<date>
|
40 |
-
<time>
|
41 |
-
<contents><target name="magecommunity"><dir name="PedroTeixeira"><dir name="Correios"><dir name="Helper"><file name="Data.php" hash="
|
42 |
<compatible/>
|
43 |
-
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
44 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>PedroTeixeira_Correios</name>
|
4 |
+
<version>4.4.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/mit-license.php">MIT License</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
+
<summary>Módulo de cálculo de PAC, Sedex, E-Sedex, Sedex 10, Sedex Hoje, Sedex a Cobrar, PAC GF e Carta Comercial.</summary>
|
10 |
+
<description>Utilizando peso volumétrico para cálculo de todos os serviços e compatível com a validação de dimensões dos Correios.
|
|
|
|
|
11 |

|
12 |
Serviços suportados:
|
13 |

|
19 |
- Sedex 10
|
20 |
- Sedex HOJE
|
21 |
- Sedex a Cobrar
|
22 |
+
- PAC GF
|
23 |
+
- Carta Comercial
|
24 |
+
- Carta Comercial Registrada
|
25 |

|
26 |
+
Conta com identificação de erros dos Correios, mão própria, aviso de recebimento, valor declarado, captura do prazo de entrega dos Correios, adicionar mais dias ao prazo dos Correios, identifica o volume dos produtos por atributo, tracking em tempo real, cache, pacotes de grandes formato e produtos encaixados.
|
27 |

|
28 |
+
Mais informações em https://pedroteixeira.io.</description>
|
29 |
<notes>Bugfix:
|
30 |

|
31 |
+
- Usar atributo para setar o carrier name e passar o encoding para htmlentities
|
32 |
+
- Erro 99 Input string was not in a correct format
|
33 |
+
- Peso cúbico não calculado no backend
|
34 |
+
- Corrige a leitura do valor de frete
|
35 |
+
- Frete de mil reais exibido por 1 real
|
36 |
+
- Problema com peso do E-SEDEX
|
37 |

|
38 |
Feature:
|
39 |

|
40 |
+
- Adiciona CONTRIBUTING.md
|
41 |
+
- Adiciona badges
|
42 |
+
- Integração com Travis
|
43 |
+
- Testado em Magento 1.9.1.0
|
44 |
+
- Serviços por produto, validação por serviço, grandes formatos, carta registrada, cache
|
45 |
+
- Considerar produtos encaixados
|
46 |
+
- Adicionar PAC grandes formatos aos serviços de postagem
|
47 |
+
- Validação de peso e dimensões
|
48 |
+
- Selecionar serviços por produto
|
49 |
+
- Suporte para instalações modman
|
50 |
+
- Integrar carta registrada
|
51 |
+
- Implementar cache de respostas dos Correios
|
52 |
+
- Opção de dividir a entrega em mais de um pacote</notes>
|
53 |
<authors><author><name>Pedro Teixeira</name><user>teixeirapedro</user><email>hello@pedroteixeira.io</email></author></authors>
|
54 |
+
<date>2015-03-30</date>
|
55 |
+
<time>17:47:09</time>
|
56 |
+
<contents><target name="magecommunity"><dir name="PedroTeixeira"><dir name="Correios"><dir name="Helper"><file name="Data.php" hash="a030f07c60af40e9817054800096207f"/></dir><dir name="Model"><file name="Cache.php" hash="60a1fd3536bbeb00e4d2e67b8cc5ea94"/><dir name="Carrier"><file name="CorreiosMethod.php" hash="d3ddd84f037995c132467390fb019445"/></dir><dir name="Http"><dir name="Client"><dir name="Adapter"><file name="Socket.php" hash="76da85f117c3f9950164a5d90500d82f"/></dir></dir></dir><dir name="Source"><file name="CacheMode.php" hash="b34ae611b8bf913e4b646f4a156cc2a4"/><file name="PostMethods.php" hash="b251451bf944b1488c477d58c4c8985d"/><file name="WeightType.php" hash="4bf1608fb6b665dcc7d834ca35eee174"/></dir></dir><dir name="etc"><file name="config.xml" hash="c45f18929175ffc1f7d59dee0e88e34b"/><file name="system.xml" hash="6ffa11314b0bd87a521a69e508463a47"/></dir><dir name="sql"><dir name="pedroteixeira_correios_setup"><file name="install-4.0.0.php" hash="eda109c002d9130fc1ce807784aa60a3"/><file name="install-4.4.0.php" hash="889c7376ee7bdd30bf07616b4f365e3b"/><file name="upgrade-4.0.0-4.1.0.php" hash="ca42fdabb0975f60d8cf5ef5ab122acd"/><file name="upgrade-4.1.0-4.2.0.php" hash="319cd1c4ddaa745da9af4a5111aa1534"/><file name="upgrade-4.2.0-4.3.0.php" hash="783e854d19b0e4915360cc1ec8b4d2d0"/><file name="upgrade-4.3.0-4.4.0.php" hash="982f41d3a113d21c4008de7e63918e45"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PedroTeixeira_Correios.xml" hash="e714579bed97c85f2bcc3988dec271da"/></dir></target></contents>
|
57 |
<compatible/>
|
58 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name/><channel>connect.magentocommerce.com/core</channel><min/><max/></package></required></dependencies>
|
59 |
</package>
|