Version Notes
Fixes for shipping invoicing/refunds.
Download this release
Release Info
Developer | Daniel Norman |
Extension | RetailOps_Api |
Version | 1.0.6 |
Comparing to | |
See all releases |
Code changes from version 1.0.5 to 1.0.6
- app/code/community/RetailOps/Api/Block/Adminhtml/Sales/Order/View/Tab/Retailops.php +0 -0
- app/code/community/RetailOps/Api/Exception.php +0 -0
- app/code/community/RetailOps/Api/Helper/Data.php +0 -0
- app/code/community/RetailOps/Api/Model/Api.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Abstract.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Attribute.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Bundle.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Category.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Configurable.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Default.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Downloadable.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Link.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Media.php +6 -6
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Media.php.newest~ +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Option.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/Tag.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Adapter/media_cron.php~ +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Api.php +0 -0
- app/code/community/RetailOps/Api/Model/Catalog/Exception.php +0 -0
- app/code/community/RetailOps/Api/Model/Shipment/Api.php +94 -23
- app/code/community/RetailOps/Api/etc/config.xml +1 -1
- app/design/adminhtml/default/default/template/retailops/order/view/tab/retailops.phtml +0 -60
- app/etc/modules/RetailOps_Api.xml +0 -0
- package.xml +8 -8
app/code/community/RetailOps/Api/Block/Adminhtml/Sales/Order/View/Tab/Retailops.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Exception.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Helper/Data.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Api.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Abstract.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Attribute.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Bundle.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Category.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Configurable.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Default.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Downloadable.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Link.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Media.php
CHANGED
@@ -125,7 +125,7 @@ class RetailOps_Api_Model_Catalog_Adapter_Media extends RetailOps_Api_Model_Cata
|
|
125 |
$ioAdapter->checkAndCreateFolder($tmpDirectory);
|
126 |
$ioAdapter->open(array('path' => $tmpDirectory));
|
127 |
$remoteCopyRetryLimit = 3;
|
128 |
-
$
|
129 |
if (!$item) {
|
130 |
$items = Mage::getModel('retailops_api/catalog_media_item')->getCollection();
|
131 |
$limit = $this->getHelper()->getConfig('media_processing_products_limit');
|
@@ -183,7 +183,7 @@ class RetailOps_Api_Model_Catalog_Adapter_Media extends RetailOps_Api_Model_Cata
|
|
183 |
// Possible if multiple scripts have kicked off cron jobs.
|
184 |
$recheck_file = $this->_existingImage($productId, $newImage);
|
185 |
if ($recheck_file) {
|
186 |
-
|
187 |
$file = $recheck_file;
|
188 |
}
|
189 |
else {
|
@@ -212,7 +212,7 @@ class RetailOps_Api_Model_Catalog_Adapter_Media extends RetailOps_Api_Model_Cata
|
|
212 |
} catch (Exception $e) {
|
213 |
$message = sprintf("Could not process image %s, error message: %s", $newImage['download_url'], $e->getMessage());
|
214 |
$imageResult[] = $message;
|
215 |
-
|
216 |
}
|
217 |
}
|
218 |
if ($imageResult) {
|
@@ -223,7 +223,7 @@ class RetailOps_Api_Model_Catalog_Adapter_Media extends RetailOps_Api_Model_Cata
|
|
223 |
}
|
224 |
} catch (Exception $e) {
|
225 |
$result[$sku]['general'] = $e->getMessage();
|
226 |
-
|
227 |
}
|
228 |
}
|
229 |
|
@@ -349,7 +349,7 @@ class RetailOps_Api_Model_Catalog_Adapter_Media extends RetailOps_Api_Model_Cata
|
|
349 |
return $existingImage['value'];
|
350 |
}
|
351 |
}
|
352 |
-
|
353 |
foreach ($existingImages as $existingImage) {
|
354 |
$fileNameMatch = preg_quote($newImageData['filename_match'], '~');
|
355 |
|
@@ -357,7 +357,7 @@ class RetailOps_Api_Model_Catalog_Adapter_Media extends RetailOps_Api_Model_Cata
|
|
357 |
return $existingImage['value'];
|
358 |
}
|
359 |
}
|
360 |
-
|
361 |
return false;
|
362 |
}
|
363 |
|
125 |
$ioAdapter->checkAndCreateFolder($tmpDirectory);
|
126 |
$ioAdapter->open(array('path' => $tmpDirectory));
|
127 |
$remoteCopyRetryLimit = 3;
|
128 |
+
$errorLog = 'retailops_magento_image_error.log';
|
129 |
if (!$item) {
|
130 |
$items = Mage::getModel('retailops_api/catalog_media_item')->getCollection();
|
131 |
$limit = $this->getHelper()->getConfig('media_processing_products_limit');
|
183 |
// Possible if multiple scripts have kicked off cron jobs.
|
184 |
$recheck_file = $this->_existingImage($productId, $newImage);
|
185 |
if ($recheck_file) {
|
186 |
+
Mage::log("$sku: Image added to product before download completed\n", Zend_Log::WARN, $errorLog);
|
187 |
$file = $recheck_file;
|
188 |
}
|
189 |
else {
|
212 |
} catch (Exception $e) {
|
213 |
$message = sprintf("Could not process image %s, error message: %s", $newImage['download_url'], $e->getMessage());
|
214 |
$imageResult[] = $message;
|
215 |
+
Mage::log($message, Zend_Log::ERR, $errorLog);
|
216 |
}
|
217 |
}
|
218 |
if ($imageResult) {
|
223 |
}
|
224 |
} catch (Exception $e) {
|
225 |
$result[$sku]['general'] = $e->getMessage();
|
226 |
+
Mage::log($e->getMessage(), Zend_Log::ERR, $errorLog);
|
227 |
}
|
228 |
}
|
229 |
|
349 |
return $existingImage['value'];
|
350 |
}
|
351 |
}
|
352 |
+
|
353 |
foreach ($existingImages as $existingImage) {
|
354 |
$fileNameMatch = preg_quote($newImageData['filename_match'], '~');
|
355 |
|
357 |
return $existingImage['value'];
|
358 |
}
|
359 |
}
|
360 |
+
|
361 |
return false;
|
362 |
}
|
363 |
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Media.php.newest~
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Option.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/Tag.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Adapter/media_cron.php~
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Api.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Catalog/Exception.php
CHANGED
File without changes
|
app/code/community/RetailOps/Api/Model/Shipment/Api.php
CHANGED
@@ -229,20 +229,31 @@ class RetailOps_Api_Model_Shipment_Api extends Mage_Sales_Model_Order_Shipment_A
|
|
229 |
|
230 |
$invoice = new Varien_Object($invoiceInfo);
|
231 |
$invoice->setData('items_to_invoice', $itemsToInvoice);
|
232 |
-
|
233 |
-
|
234 |
-
'
|
235 |
-
|
|
|
|
|
|
|
236 |
);
|
237 |
|
|
|
|
|
238 |
$invoiceResult = $this->_createInvoiceAndCapture(
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
|
247 |
$invoiceResult = array($invoiceResult);
|
248 |
}
|
@@ -293,13 +304,8 @@ class RetailOps_Api_Model_Shipment_Api extends Mage_Sales_Model_Order_Shipment_A
|
|
293 |
if (!$order->getId()) {
|
294 |
throw new Exception('Order is not found');
|
295 |
}
|
296 |
-
Mage::dispatchEvent(
|
297 |
-
'retailops_order_close_before',
|
298 |
-
array('order' => $order)
|
299 |
-
);
|
300 |
$items = $order->getAllItems();
|
301 |
$itemsToReturn = array();
|
302 |
-
$itemsToCancel = array();
|
303 |
$itemsToCapture = array();
|
304 |
/** @var $item Mage_Sales_Model_Order_Item */
|
305 |
foreach ($items as $item) {
|
@@ -324,11 +330,27 @@ class RetailOps_Api_Model_Shipment_Api extends Mage_Sales_Model_Order_Shipment_A
|
|
324 |
}
|
325 |
}
|
326 |
}
|
327 |
-
|
328 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
}
|
330 |
-
if ($
|
331 |
-
$result['creditmemo_result'] = $this->_getCreditMemoApi()->create(
|
|
|
332 |
}
|
333 |
/**
|
334 |
* Cancel the rest items if any
|
@@ -339,6 +361,14 @@ class RetailOps_Api_Model_Shipment_Api extends Mage_Sales_Model_Order_Shipment_A
|
|
339 |
}
|
340 |
$order->save();
|
341 |
$result['status'] = RetailOps_Api_Helper_Data::API_STATUS_SUCCESS;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
342 |
}
|
343 |
} catch (Exception $e) {
|
344 |
$result['status'] = RetailOps_Api_Helper_Data::API_STATUS_FAIL;
|
@@ -360,6 +390,25 @@ class RetailOps_Api_Model_Shipment_Api extends Mage_Sales_Model_Order_Shipment_A
|
|
360 |
return Mage::getModel('retailops_api/return_api');
|
361 |
}
|
362 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
/**
|
364 |
* @param Mage_Sales_Model_Order $order
|
365 |
* @param array $itemsQty
|
@@ -368,18 +417,40 @@ class RetailOps_Api_Model_Shipment_Api extends Mage_Sales_Model_Order_Shipment_A
|
|
368 |
* @param bool $includeComment
|
369 |
* @return string
|
370 |
*/
|
371 |
-
protected function _createInvoiceAndCapture($order, $
|
372 |
{
|
373 |
/** @var $helper RetailOps_Api_Helper_Data */
|
374 |
$helper = Mage::helper('retailops_api');
|
375 |
try {
|
376 |
$itemsQtyFomratted = array();
|
377 |
-
if ($
|
378 |
foreach ($order->getAllItems() as $item) {
|
379 |
-
$itemsQtyFomratted[$item->getId()]
|
|
|
380 |
}
|
381 |
}
|
382 |
$invoice = $order->prepareInvoice($itemsQtyFomratted);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
$invoice->setRequestedCaptureCase($capturedOffline
|
384 |
? Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE : Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
|
385 |
$invoice->register();
|
229 |
|
230 |
$invoice = new Varien_Object($invoiceInfo);
|
231 |
$invoice->setData('items_to_invoice', $itemsToInvoice);
|
232 |
+
$invoiceData = array(
|
233 |
+
'order' => $order,
|
234 |
+
'record' => $invoice,
|
235 |
+
'items_to_invoice' => array(
|
236 |
+
'qtys' => $itemsToInvoice,
|
237 |
+
'shipping_amount' => $this->_fractionalBaseShipping($order, $itemsToInvoice, $isFullyShipped),
|
238 |
+
),
|
239 |
);
|
240 |
|
241 |
+
Mage::dispatchEvent('retailops_shipment_invoice_before', $invoiceData);
|
242 |
+
|
243 |
$invoiceResult = $this->_createInvoiceAndCapture(
|
244 |
+
$order,
|
245 |
+
$invoiceData['items_to_invoice'],
|
246 |
+
$invoice->getCapturedOffline(),
|
247 |
+
$invoice->getComment(),
|
248 |
+
$invoice->getEmail(),
|
249 |
+
$invoice->getIncludeComment()
|
250 |
+
);
|
251 |
+
|
252 |
+
Mage::dispatchEvent('retailops_shipment_invoice_after', array(
|
253 |
+
'order' => $order,
|
254 |
+
'invoice' => $invoice,
|
255 |
+
'result' => $invoiceResult,
|
256 |
+
));
|
257 |
|
258 |
$invoiceResult = array($invoiceResult);
|
259 |
}
|
304 |
if (!$order->getId()) {
|
305 |
throw new Exception('Order is not found');
|
306 |
}
|
|
|
|
|
|
|
|
|
307 |
$items = $order->getAllItems();
|
308 |
$itemsToReturn = array();
|
|
|
309 |
$itemsToCapture = array();
|
310 |
/** @var $item Mage_Sales_Model_Order_Item */
|
311 |
foreach ($items as $item) {
|
330 |
}
|
331 |
}
|
332 |
}
|
333 |
+
$closeData = array(
|
334 |
+
'order' => $order,
|
335 |
+
'items_to_capture' => array(
|
336 |
+
'qtys' => $itemsToCapture,
|
337 |
+
'shipping_amount' => $this->_fractionalBaseShipping($order, $itemsToCapture),
|
338 |
+
),
|
339 |
+
'items_to_return' => array(
|
340 |
+
'qtys' => $itemsToReturn,
|
341 |
+
'shipping_amount' => $this->_fractionalBaseShipping($order, $itemsToReturn),
|
342 |
+
),
|
343 |
+
);
|
344 |
+
|
345 |
+
Mage::dispatchEvent('retailops_order_close_before', $closeData);
|
346 |
+
|
347 |
+
if (count($closeData['items_to_capture']['qtys'])) {
|
348 |
+
$result['invoice_result'] = $this->_createInvoiceAndCapture(
|
349 |
+
$order, $closeData['items_to_capture'], $orderData['captured_offline']);
|
350 |
}
|
351 |
+
if (count($closeData['items_to_return']['qtys'])) {
|
352 |
+
$result['creditmemo_result'] = $this->_getCreditMemoApi()->create(
|
353 |
+
$order, $closeData['items_to_return'], $orderData['captured_offline']);
|
354 |
}
|
355 |
/**
|
356 |
* Cancel the rest items if any
|
361 |
}
|
362 |
$order->save();
|
363 |
$result['status'] = RetailOps_Api_Helper_Data::API_STATUS_SUCCESS;
|
364 |
+
|
365 |
+
Mage::dispatchEvent(
|
366 |
+
'retailops_order_close_after',
|
367 |
+
array(
|
368 |
+
'order' => $order,
|
369 |
+
'result' => $result,
|
370 |
+
)
|
371 |
+
);
|
372 |
}
|
373 |
} catch (Exception $e) {
|
374 |
$result['status'] = RetailOps_Api_Helper_Data::API_STATUS_FAIL;
|
390 |
return Mage::getModel('retailops_api/return_api');
|
391 |
}
|
392 |
|
393 |
+
protected function _fractionalBaseShipping($order, $qtys = array(), $fullyShipped = false)
|
394 |
+
{
|
395 |
+
if (!count($qtys) && $fullyShipped) {
|
396 |
+
return $order->getBaseShippingAmount();
|
397 |
+
}
|
398 |
+
|
399 |
+
$itemsTotal = 0;
|
400 |
+
$qtysTotal = 0;
|
401 |
+
$items = $order->getAllItems();
|
402 |
+
foreach ($items as $item) {
|
403 |
+
$itemsTotal += $item->getBaseRowTotal();
|
404 |
+
if (isset($qtys[$item->getId()])) {
|
405 |
+
$qtysTotal += $item->getBaseRowTotal() * ($qtys[$item->getId()] / $item->getQtyOrdered());
|
406 |
+
}
|
407 |
+
}
|
408 |
+
|
409 |
+
return $order->getBaseShippingAmount() * ($qtysTotal / $itemsTotal);
|
410 |
+
}
|
411 |
+
|
412 |
/**
|
413 |
* @param Mage_Sales_Model_Order $order
|
414 |
* @param array $itemsQty
|
417 |
* @param bool $includeComment
|
418 |
* @return string
|
419 |
*/
|
420 |
+
protected function _createInvoiceAndCapture($order, $invoiceData, $capturedOffline = false, $comment = null, $email = false, $includeComment = false)
|
421 |
{
|
422 |
/** @var $helper RetailOps_Api_Helper_Data */
|
423 |
$helper = Mage::helper('retailops_api');
|
424 |
try {
|
425 |
$itemsQtyFomratted = array();
|
426 |
+
if ($invoiceData && $invoiceData['qtys']) {
|
427 |
foreach ($order->getAllItems() as $item) {
|
428 |
+
$itemsQtyFomratted[$item->getId()]
|
429 |
+
= isset($invoiceData['qtys'][$item->getId()]) ? $invoiceData['qtys'][$item->getId()] : 0;
|
430 |
}
|
431 |
}
|
432 |
$invoice = $order->prepareInvoice($itemsQtyFomratted);
|
433 |
+
|
434 |
+
if (isset($invoiceData['shipping_amount'])) {
|
435 |
+
$originalInvoiceShippingAmount = $invoice->getShippingAmount();
|
436 |
+
$originalInvoiceBaseShippingAmount = $invoice->getBaseShippingAmount();
|
437 |
+
|
438 |
+
$shippingPercent = $invoiceData['shipping_amount'] / $order->getBaseShippingAmount();
|
439 |
+
|
440 |
+
$newInvoiceShippingAmount = $order->getShippingAmount() * $shippingPercent;
|
441 |
+
$newInvoiceBaseShippingAmount = $invoiceData['shipping_amount'];
|
442 |
+
|
443 |
+
$invoice->setShippingAmount(Mage::app()->getStore()->roundPrice($newInvoiceShippingAmount));
|
444 |
+
$invoice->setBaseShippingAmount(Mage::app()->getStore()->roundPrice($newInvoiceBaseShippingAmount));
|
445 |
+
$invoice->setShippingInclTax(Mage::app()->getStore()->roundPrice($order->getShippingInclTax() * $shippingPercent));
|
446 |
+
$invoice->setBaseShippingInclTax(Mage::app()->getStore()->roundPrice($order->getBaseShippingInclTax() * $shippingPercent));
|
447 |
+
|
448 |
+
$invoice->setGrandTotal(Mage::app()->getStore()->roundPrice(
|
449 |
+
$invoice->getGrandTotal() - ($originalInvoiceShippingAmount - $newInvoiceShippingAmount)));
|
450 |
+
$invoice->setBaseGrandTotal(Mage::app()->getStore()->roundPrice(
|
451 |
+
$invoice->getBaseGrandTotal() - ($originalInvoiceBaseShippingAmount - $newInvoiceBaseShippingAmount)));
|
452 |
+
}
|
453 |
+
|
454 |
$invoice->setRequestedCaptureCase($capturedOffline
|
455 |
? Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE : Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
|
456 |
$invoice->register();
|
app/code/community/RetailOps/Api/etc/config.xml
CHANGED
@@ -25,7 +25,7 @@ THE SOFTWARE.
|
|
25 |
<config>
|
26 |
<modules>
|
27 |
<RetailOps_Api>
|
28 |
-
<version>1.0.
|
29 |
</RetailOps_Api>
|
30 |
</modules>
|
31 |
<global>
|
25 |
<config>
|
26 |
<modules>
|
27 |
<RetailOps_Api>
|
28 |
+
<version>1.0.6</version>
|
29 |
</RetailOps_Api>
|
30 |
</modules>
|
31 |
<global>
|
app/design/adminhtml/default/default/template/retailops/order/view/tab/retailops.phtml
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
<!--
|
2 |
-
The MIT License (MIT)
|
3 |
-
|
4 |
-
Copyright (c) 2015 Gud Technologies Incorporated (RetailOps by GüdTech)
|
5 |
-
|
6 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 |
-
of this software and associated documentation files (the "Software"), to deal
|
8 |
-
in the Software without restriction, including without limitation the rights
|
9 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10 |
-
copies of the Software, and to permit persons to whom the Software is
|
11 |
-
furnished to do so, subject to the following conditions:
|
12 |
-
|
13 |
-
The above copyright notice and this permission notice shall be included in
|
14 |
-
all copies or substantial portions of the Software.
|
15 |
-
|
16 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22 |
-
THE SOFTWARE.
|
23 |
-
-->
|
24 |
-
<div class="entry-edit" id="retops-info">
|
25 |
-
<div class="entry-edit-head">
|
26 |
-
<h4><?php echo $this->__('RetailOps'); ?></h4>
|
27 |
-
</div>
|
28 |
-
<div class="fieldset fieldset-wide">
|
29 |
-
<div id="status_form" class="order-history-form">
|
30 |
-
<span class="field-row">
|
31 |
-
<label class="normal" for="history_status"><?php echo Mage::helper('sales')->__('Status') ?></label><br/>
|
32 |
-
<select name="retops[status]" class="select" id="retops_status">
|
33 |
-
<?php foreach ($this->getStatuses() as $_code=>$_label): ?>
|
34 |
-
<option value="<?php echo $_code ?>"<?php if($_code==$this->getOrder()->getRetailopsStatus()): ?> selected="selected"<?php endif; ?>><?php echo $_label ?></option>
|
35 |
-
<?php endforeach; ?>
|
36 |
-
</select>
|
37 |
-
</span>
|
38 |
-
<span class="field-row">
|
39 |
-
<label class="normal" for="status_comment"><?php echo Mage::helper('sales')->__('Comment') ?></label>
|
40 |
-
<textarea name="retops[comment]" rows="3" cols="5" style="height:6em; width:99%;" id="retops_comment"><?php echo $this->getOrder()->getRetailopsStatusComment() ?></textarea>
|
41 |
-
</span>
|
42 |
-
<div class="f-right">
|
43 |
-
<?php echo $this->getChildHtml('submit_button') ?>
|
44 |
-
</div>
|
45 |
-
<div class="clear"></div>
|
46 |
-
</div>
|
47 |
-
</div>
|
48 |
-
<div class="divider"></div>
|
49 |
-
<ul class="note-list">
|
50 |
-
<?php foreach ($this->getRetailOpsStatusHistory() as $_item): ?>
|
51 |
-
<li>
|
52 |
-
<strong><?php echo $this->helper('core')->formatDate($_item->getCreatedAt(), 'medium') ?></strong>
|
53 |
-
<?php echo $this->helper('core')->formatTime($_item->getCreatedAt(), 'medium') ?><span class="separator">|</span><strong><?php echo $_item->getStatus() ?></strong>
|
54 |
-
<?php if ($_item->getComment()): ?>
|
55 |
-
<br/><?php echo $this->escapeHtml($_item->getComment(), array('b', 'br', 'strong', 'i', 'u', 'a')) ?>
|
56 |
-
<?php endif; ?>
|
57 |
-
</li>
|
58 |
-
<?php endforeach; ?>
|
59 |
-
</ul>
|
60 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/etc/modules/RetailOps_Api.xml
CHANGED
File without changes
|
package.xml
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>RetailOps_Api</name>
|
4 |
-
<version>1.0.
|
5 |
<stability>stable</stability>
|
6 |
-
<license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Seamless Magento integration with the RetailOps distributed order management platform.</summary>
|
@@ -16,11 +16,11 @@ The RetailOps extension for Magento allows for a seamless integration with Retai
|
|
16 |
The functionality provided by the RetailOps extension for Magento includes catalog and inventory data export from RetailOps to Magento, Magento order processing including import into RetailOps, status updates, shipment tracking, item returns and order cancelations.
|
17 |
<br /><br />
|
18 |
For more details or to sign up for a demo, visit: <a href="http://www.retailops.com">http://www.retailops.com</a></description>
|
19 |
-
<notes>
|
20 |
-
<authors><author><name>Daniel Norman</name><user>RetailOps</user><email>daniel@retailops.com</email></author></authors>
|
21 |
-
<date>2017-
|
22 |
-
<time>
|
23 |
-
<contents><target name="
|
24 |
<compatible/>
|
25 |
-
<dependencies><required><php><min>5.
|
26 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>RetailOps_Api</name>
|
4 |
+
<version>1.0.6</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>Seamless Magento integration with the RetailOps distributed order management platform.</summary>
|
16 |
The functionality provided by the RetailOps extension for Magento includes catalog and inventory data export from RetailOps to Magento, Magento order processing including import into RetailOps, status updates, shipment tracking, item returns and order cancelations.
|
17 |
<br /><br />
|
18 |
For more details or to sign up for a demo, visit: <a href="http://www.retailops.com">http://www.retailops.com</a></description>
|
19 |
+
<notes>Fixes for shipping invoicing/refunds.</notes>
|
20 |
+
<authors><author><name>Daniel Norman</name><user>RetailOps</user><email>daniel@retailops.com</email></author><author><name>Justin Schell</name><user>justin_gudtech</user><email>justin@gudtech.com</email></author></authors>
|
21 |
+
<date>2017-04-14</date>
|
22 |
+
<time>01:52:23</time>
|
23 |
+
<contents><target name="magecommunity"><dir name="RetailOps"><dir name="Api"><dir name="Block"><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="View"><dir name="Tab"><file name="Retailops.php" hash="27e0a91fcf5c0aaac5a545c16574465e"/></dir></dir></dir></dir></dir></dir><file name="Exception.php" hash="921703ce05b3e8d630fc8a36baa25d12"/><dir name="Helper"><file name="Data.php" hash="cb10d1f57ba9b7f96bd77b106c950a83"/></dir><dir name="Model"><file name="Api.php" hash="65e9e16cb8ee9c75c746d689f7f9e03e"/><dir name="Catalog"><dir name="Adapter"><file name="Abstract.php" hash="61a561a95bb40071d4bb7c2e02e63c46"/><file name="Attribute.php" hash="07089e8a1eb33b9f723885284926290e"/><file name="Bundle.php" hash="6777aa2ba12fdec543713cae97d50fe3"/><file name="Category.php" hash="126ffc57043e2291f5e7bb4700e660c5"/><file name="Configurable.php" hash="2a4a8eae9ce4ea9cad420dff14abb391"/><file name="Default.php" hash="c0e88b545e55867213795db1801601a1"/><file name="Downloadable.php" hash="dd2d4cf7650268861175c5cecf6ed1f2"/><file name="Link.php" hash="887104e69a274352867286c194172a8f"/><file name="Media.php" hash="28c50679b937142bc259c65f5167c00d"/><file name="Media.php.newest~" hash="ed58402ae92e879ce06b4aa21acea7b5"/><file name="Option.php" hash="d33d2a018f3ba2aa9460ec208df7fb95"/><file name="Tag.php" hash="615eff9ad88ab0c33122cb423f51fa67"/><file name="media_cron.php~" hash="f5277fe4484634b8a8e4b3bcb8771ec8"/></dir><file name="Api.php" hash="b0b25c3897d67bc3bb6967d569a9ebb6"/><file name="Exception.php" hash="9a1ea92e48522ddaaa24e42dde94d0ef"/><dir name="Media"><file name="Item.php" hash="cf68048a5a9284fa2e3a50749b41235d"/></dir><dir name="Pull"><file name="Api.php" hash="b183269002499dfa29ad692904f41949"/></dir><dir name="Push"><file name="Api.php" hash="af7fcd65e4d6db054c0b9879673e18f5"/><dir name="Downloadable"><file name="Validator.php" hash="a2b4eb49b62e212eae06a0f55dfa393e"/></dir></dir></dir><dir name="Inventory"><file name="Api.php" hash="ae5f0249d92b6582e04729a749cb6168"/></dir><file name="Observer.php" hash="7ef2c195010ae4c81b676d3c177e23e5"/><dir name="Order"><file name="Api.php" hash="69beaf68afc724619a7dffbf923f0d08"/><dir name="Status"><file name="History.php" hash="39aae107a2029de67ecb01477508f271"/></dir></dir><dir name="Resource"><file name="Api.php" hash="83f50069a00347b93b0825106f246a5a"/><dir name="Catalog"><dir name="Media"><dir name="Item"><file name="Collection.php" hash="5938f25540bd59e75538eda614637179"/></dir><file name="Item.php" hash="eb3292a63811de285d2f44a6cb0dd630"/></dir></dir><dir name="Order"><dir name="Status"><dir name="History"><file name="Collection.php" hash="7427e972c92a5a435b772779a5548d29"/></dir><file name="History.php" hash="eab86f946bd58e5ab86d1cca21eee435"/></dir></dir></dir><dir name="Return"><file name="Api.php" hash="308188198efbba49e9f8c15938740d45"/></dir><dir name="Shipment"><file name="Api.php" hash="275de6f370914a07e93b0a49114b15ce"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Catalog"><file name="AttributeSet.php" hash="a158e6ee2971b6464a184f6f07d2a5dd"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Sales"><file name="OrderController.php" hash="9b620414e2f98a6764f803bdaa7d01d3"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="60053ceed8f5e0d8d175331fb239c7f5"/><file name="api.xml" hash="32f6e0212a770054748aefd338bb2c85"/><file name="config.xml" hash="a6e535441447331fa92597f74110788d"/><file name="system.xml" hash="5840692fb14c6d5d7848753bce79aa53"/></dir><dir name="sql"><dir name="retailops_api_setup"><file name="install-1.0.0.php" hash="3edc90b95f4219c9508be3de6a86dda1"/><file name="upgrade-1.0.0-1.0.1.php" hash="63724e6209e0ef59696ffdd6a14dc738"/><file name="upgrade-1.0.1-1.0.2.php" hash="a5c7795cd35f9af984c729bd3d3cd18a"/><file name="upgrade-1.0.2-1.0.3.php" hash="3987d4fda58f7545469700df599b050a"/><file name="upgrade-1.0.2-1.0.3.php~" hash="a5c7795cd35f9af984c729bd3d3cd18a"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="retailops.xml" hash="8879a617964a66e0e02731e262234637"/></dir><dir name="template"><dir name="retailops"><dir name="order"><dir name="view"><dir name="tab"><file name="retailops.phtml" hash="51d17085f74fb4ad1e09b987d7a0e733"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="RetailOps_Api.xml" hash="4efaf09b352f1f122f0af83342bdef07"/></dir></target></contents>
|
24 |
<compatible/>
|
25 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
26 |
</package>
|