Version Notes
* Bug fixes and refactoring
* Image Review moved into separate extension
* Compatibility with SUPEE-6788
* Allow category matching based on yes/no attributes
Note: Category matching has changed. All rules that match will be applied to make
assignment of a product to multiple categories easier.
Download this release
Release Info
Developer | Anatoly A. Kazantsev |
Extension | MVentory_API |
Version | 1.6.0 |
Comparing to | |
See all releases |
Code changes from version 1.5.1 to 1.6.0
- app/code/community/MVentory/API/Block/Matching.php +30 -4
- app/code/community/MVentory/API/Block/System/Config/Form/Field/Exportrates.php +4 -2
- app/code/community/MVentory/API/Block/System/Config/Form/Field/Imgcliplog.php +2 -2
- app/code/community/MVentory/API/Block/System/Config/Form/Field/Template.php +52 -0
- app/code/community/MVentory/API/Helper/Data.php +4 -0
- app/code/community/MVentory/API/Helper/Imageclipper.php +4 -4
- app/code/community/MVentory/API/Helper/Product.php +5 -4
- app/code/community/MVentory/API/Model/Cart/Api.php +1 -6
- app/code/community/MVentory/API/Model/Config.php +8 -2
- app/code/community/MVentory/API/Model/Matching.php +28 -9
- app/code/community/MVentory/API/Model/Observer.php +19 -5
- app/code/community/MVentory/API/Model/Product/Api.php +3 -1
- app/code/community/MVentory/API/Model/Product/Attribute/Media/Api.php +5 -3
- app/code/community/MVentory/API/Model/{System/Config/Backend/Imgclip/Backupfolder.php → Setting/Backend/Backupdir.php} +30 -6
- app/code/community/MVentory/API/Model/System/Config/Backend/Imgclip/Csvlog.php +0 -49
- app/code/community/MVentory/API/controllers/DropboxController.php +4 -2
- app/code/community/MVentory/API/controllers/{CarriersController.php → Mventory/CarriersController.php} +5 -1
- app/code/community/MVentory/API/controllers/{Catalog → Mventory/Catalog}/ProductController.php +7 -3
- app/code/community/MVentory/API/controllers/{CustomerController.php → Mventory/CustomerController.php} +7 -6
- app/code/community/MVentory/API/controllers/{LogsController.php → Mventory/LogsController.php} +5 -1
- app/code/community/MVentory/API/controllers/{MatchingController.php → Mventory/MatchingController.php} +5 -1
- app/code/community/MVentory/API/etc/config.xml +5 -5
- app/code/community/MVentory/API/etc/system.xml +0 -244
- app/design/adminhtml/default/default/template/mventory/config/build-info.phtml +2 -2
- app/design/adminhtml/default/default/template/mventory/matching.phtml +3 -5
- package.xml +8 -3
- skin/adminhtml/default/default/mventory/css/styles.css +26 -11
- var/connect/MVentory_API.xml +8 -3
app/code/community/MVentory/API/Block/Matching.php
CHANGED
@@ -30,6 +30,8 @@ class MVentory_API_Block_Matching extends Mage_Adminhtml_Block_Template {
|
|
30 |
protected $_categories = null;
|
31 |
|
32 |
protected function _construct () {
|
|
|
|
|
33 |
$this->_attrs['-1'] = array(
|
34 |
'label' => $this->__('Select an attribute...'),
|
35 |
'used' => false,
|
@@ -47,7 +49,7 @@ class MVentory_API_Block_Matching extends Mage_Adminhtml_Block_Template {
|
|
47 |
|
48 |
$type = $attr->getFrontendInput();
|
49 |
|
50 |
-
if (!($type == 'select' || $type == 'multiselect'))
|
51 |
continue;
|
52 |
|
53 |
$id = $attr->getId();
|
@@ -58,6 +60,9 @@ class MVentory_API_Block_Matching extends Mage_Adminhtml_Block_Template {
|
|
58 |
'used_values' => array()
|
59 |
);
|
60 |
|
|
|
|
|
|
|
61 |
$labels[] = $attr->getFrontendLabel();
|
62 |
}
|
63 |
|
@@ -138,9 +143,9 @@ class MVentory_API_Block_Matching extends Mage_Adminhtml_Block_Template {
|
|
138 |
'ajax' => true
|
139 |
);
|
140 |
|
141 |
-
$addrule = $this->getUrl('
|
142 |
-
$remove = $this->getUrl('
|
143 |
-
$reorder = $this->getUrl('
|
144 |
|
145 |
return Mage::helper('core')->jsonEncode(compact('addrule',
|
146 |
'remove',
|
@@ -237,4 +242,25 @@ class MVentory_API_Block_Matching extends Mage_Adminhtml_Block_Template {
|
|
237 |
'categories' => $categories
|
238 |
);
|
239 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
}
|
30 |
protected $_categories = null;
|
31 |
|
32 |
protected function _construct () {
|
33 |
+
$this->_boolAttrValues = $this->_getBoolAttrValues();
|
34 |
+
|
35 |
$this->_attrs['-1'] = array(
|
36 |
'label' => $this->__('Select an attribute...'),
|
37 |
'used' => false,
|
49 |
|
50 |
$type = $attr->getFrontendInput();
|
51 |
|
52 |
+
if (!($type == 'select' || $type == 'multiselect' || $type == 'boolean'))
|
53 |
continue;
|
54 |
|
55 |
$id = $attr->getId();
|
60 |
'used_values' => array()
|
61 |
);
|
62 |
|
63 |
+
if ($type == 'boolean')
|
64 |
+
$this->_attrs[$id]['values'] = $this->_boolAttrValues;
|
65 |
+
|
66 |
$labels[] = $attr->getFrontendLabel();
|
67 |
}
|
68 |
|
143 |
'ajax' => true
|
144 |
);
|
145 |
|
146 |
+
$addrule = $this->getUrl('adminhtml/mventory_matching/append/', $params);
|
147 |
+
$remove = $this->getUrl('adminhtml/mventory_matching/remove/', $params);
|
148 |
+
$reorder = $this->getUrl('adminhtml/mventory_matching/reorder/', $params);
|
149 |
|
150 |
return Mage::helper('core')->jsonEncode(compact('addrule',
|
151 |
'remove',
|
242 |
'categories' => $categories
|
243 |
);
|
244 |
}
|
245 |
+
|
246 |
+
/**
|
247 |
+
* Return prepared values for boolean (Yes/No) attribute
|
248 |
+
*
|
249 |
+
* @return array
|
250 |
+
* List of prepared values
|
251 |
+
*/
|
252 |
+
protected function _getBoolAttrValues () {
|
253 |
+
$options = Mage::getModel('eav/entity_attribute_source_boolean')
|
254 |
+
->getAllOptions();
|
255 |
+
|
256 |
+
$values = [];
|
257 |
+
|
258 |
+
foreach ($options as $option)
|
259 |
+
$values[] = [
|
260 |
+
'id' => $option['value'],
|
261 |
+
'label' => $option['label']
|
262 |
+
];
|
263 |
+
|
264 |
+
return $values;
|
265 |
+
}
|
266 |
}
|
app/code/community/MVentory/API/Block/System/Config/Form/Field/Exportrates.php
CHANGED
@@ -33,8 +33,10 @@ class MVentory_API_Block_System_Config_Form_Field_Exportrates
|
|
33 |
->getRequest()
|
34 |
->getParam('website', '');
|
35 |
|
36 |
-
$url = $this->getUrl(
|
37 |
-
|
|
|
|
|
38 |
|
39 |
$data = array(
|
40 |
'label' => $this->__('Export CSV'),
|
33 |
->getRequest()
|
34 |
->getParam('website', '');
|
35 |
|
36 |
+
$url = $this->getUrl(
|
37 |
+
'adminhtml/mventory_carriers/export',
|
38 |
+
compact('website')
|
39 |
+
);
|
40 |
|
41 |
$data = array(
|
42 |
'label' => $this->__('Export CSV'),
|
app/code/community/MVentory/API/Block/System/Config/Form/Field/Imgcliplog.php
CHANGED
@@ -65,7 +65,7 @@ EOT;
|
|
65 |
* HTML of the Download button
|
66 |
*/
|
67 |
protected function _getDownloadButton () {
|
68 |
-
$url = $this->getUrl('
|
69 |
|
70 |
return $this
|
71 |
->getLayout()
|
@@ -86,7 +86,7 @@ EOT;
|
|
86 |
* HTML of the Clear button
|
87 |
*/
|
88 |
protected function _getClearButton () {
|
89 |
-
$url = $this->getUrl('
|
90 |
$msg = $this->__('All current data in the activity log will be erased');
|
91 |
|
92 |
return $this
|
65 |
* HTML of the Download button
|
66 |
*/
|
67 |
protected function _getDownloadButton () {
|
68 |
+
$url = $this->getUrl('adminhtml/mventory_logs/download');
|
69 |
|
70 |
return $this
|
71 |
->getLayout()
|
86 |
* HTML of the Clear button
|
87 |
*/
|
88 |
protected function _getClearButton () {
|
89 |
+
$url = $this->getUrl('adminhtml/mventory_logs/clear');
|
90 |
$msg = $this->__('All current data in the activity log will be erased');
|
91 |
|
92 |
return $this
|
app/code/community/MVentory/API/Block/System/Config/Form/Field/Template.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* NOTICE OF LICENSE
|
5 |
+
*
|
6 |
+
* This source file is subject to the Creative Commons License BY-NC-ND.
|
7 |
+
* By Attribution (BY) - You can share this file unchanged, including
|
8 |
+
* this copyright statement.
|
9 |
+
* Non-Commercial (NC) - You can use this file for non-commercial activities.
|
10 |
+
* A commercial license can be purchased separately from mventory.com.
|
11 |
+
* No Derivatives (ND) - You can make changes to this file for your own use,
|
12 |
+
* but you cannot share or redistribute the changes.
|
13 |
+
*
|
14 |
+
* See the full license at http://creativecommons.org/licenses/by-nc-nd/4.0/
|
15 |
+
*
|
16 |
+
* @package MVentory/API
|
17 |
+
* @copyright Copyright (c) 2015 mVentory Ltd. (http://mventory.com)
|
18 |
+
* @license http://creativecommons.org/licenses/by-nc-nd/4.0/
|
19 |
+
*/
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Template field for fieldset
|
23 |
+
*
|
24 |
+
* @package MVentory/API
|
25 |
+
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
+
*/
|
27 |
+
class MVentory_API_Block_System_Config_Form_Field_Template
|
28 |
+
extends Mage_Adminhtml_Block_Template
|
29 |
+
implements Varien_Data_Form_Element_Renderer_Interface
|
30 |
+
{
|
31 |
+
const _TPL_ELEMENT = <<<'EOT'
|
32 |
+
<tr class="system-fieldset-sub-head mventory-field-template" id="row_%s">
|
33 |
+
<td colspan="5">%s</td>
|
34 |
+
</tr>
|
35 |
+
EOT;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Render element html
|
39 |
+
*
|
40 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
41 |
+
* @return string
|
42 |
+
*/
|
43 |
+
public function render (Varien_Data_Form_Element_Abstract $element) {
|
44 |
+
return sprintf(
|
45 |
+
self::_TPL_ELEMENT,
|
46 |
+
$element->getHtmlId(),
|
47 |
+
$this
|
48 |
+
->setTemplate($element->getOriginalData('template'))
|
49 |
+
->toHtml()
|
50 |
+
);
|
51 |
+
}
|
52 |
+
}
|
app/code/community/MVentory/API/Helper/Data.php
CHANGED
@@ -126,6 +126,8 @@ class MVentory_API_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
126 |
/**
|
127 |
* Retrieve attribute's raw value from DB for specified product's ID.
|
128 |
*
|
|
|
|
|
129 |
* @param int $productId
|
130 |
* @param int|string|array $attribute atrribute's IDs or codes
|
131 |
* @param int|string|Mage_Core_Model_Website $website Website, its ID or code
|
@@ -144,6 +146,8 @@ class MVentory_API_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
144 |
/**
|
145 |
* Update attribute values for product per website
|
146 |
*
|
|
|
|
|
147 |
* @param int $productId
|
148 |
* @param array $attrData
|
149 |
* @param int|string|Mage_Core_Model_Website $website Website, its ID or code
|
126 |
/**
|
127 |
* Retrieve attribute's raw value from DB for specified product's ID.
|
128 |
*
|
129 |
+
* @deprecated The method is not used in the code. Should be removed
|
130 |
+
*
|
131 |
* @param int $productId
|
132 |
* @param int|string|array $attribute atrribute's IDs or codes
|
133 |
* @param int|string|Mage_Core_Model_Website $website Website, its ID or code
|
146 |
/**
|
147 |
* Update attribute values for product per website
|
148 |
*
|
149 |
+
* @deprecated The method is not used in the code. Should be removed
|
150 |
+
*
|
151 |
* @param int $productId
|
152 |
* @param array $attrData
|
153 |
* @param int|string|Mage_Core_Model_Website $website Website, its ID or code
|
app/code/community/MVentory/API/Helper/Imageclipper.php
CHANGED
@@ -259,7 +259,7 @@ class MVentory_API_Helper_Imageclipper extends MVentory_API_Helper_Data
|
|
259 |
* @return string /full/path/magento/media/backup
|
260 |
*/
|
261 |
public function getBackupFolder () {
|
262 |
-
$confVal = Mage::getStoreConfig(
|
263 |
|
264 |
return $confVal ? Mage::getBaseDir('media') . DS . $confVal : null;
|
265 |
}
|
@@ -298,7 +298,7 @@ class MVentory_API_Helper_Imageclipper extends MVentory_API_Helper_Data
|
|
298 |
return Mage::helper('mventory/string')->startsWith(
|
299 |
strtolower(trim($file)),
|
300 |
strtolower(trim(Mage::getStoreConfig(
|
301 |
-
MVentory_API_Model_Config::
|
302 |
)))
|
303 |
);
|
304 |
}
|
@@ -308,7 +308,7 @@ class MVentory_API_Helper_Imageclipper extends MVentory_API_Helper_Data
|
|
308 |
*/
|
309 |
public function getDbxClient () {
|
310 |
return new Dropbox\Client(
|
311 |
-
Mage::getStoreConfig(MVentory_API_Model_Config::
|
312 |
'PHP-Example/1.0'
|
313 |
);
|
314 |
}
|
@@ -357,7 +357,7 @@ class MVentory_API_Helper_Imageclipper extends MVentory_API_Helper_Data
|
|
357 |
* Full dropbox path
|
358 |
*/
|
359 |
protected function _toDbxPath ($filename) {
|
360 |
-
return Mage::getStoreConfig(MVentory_API_Model_Config::
|
361 |
. $filename;
|
362 |
}
|
363 |
}
|
259 |
* @return string /full/path/magento/media/backup
|
260 |
*/
|
261 |
public function getBackupFolder () {
|
262 |
+
$confVal = Mage::getStoreConfig(MVentory_API_Model_Config::_BGG_BACKUP_DIR);
|
263 |
|
264 |
return $confVal ? Mage::getBaseDir('media') . DS . $confVal : null;
|
265 |
}
|
298 |
return Mage::helper('mventory/string')->startsWith(
|
299 |
strtolower(trim($file)),
|
300 |
strtolower(trim(Mage::getStoreConfig(
|
301 |
+
MVentory_API_Model_Config::_BGG_DBX_PATH
|
302 |
)))
|
303 |
);
|
304 |
}
|
308 |
*/
|
309 |
public function getDbxClient () {
|
310 |
return new Dropbox\Client(
|
311 |
+
Mage::getStoreConfig(MVentory_API_Model_Config::_BGG_DBX_TKN),
|
312 |
'PHP-Example/1.0'
|
313 |
);
|
314 |
}
|
357 |
* Full dropbox path
|
358 |
*/
|
359 |
protected function _toDbxPath ($filename) {
|
360 |
+
return Mage::getStoreConfig(MVentory_API_Model_Config::_BGG_DBX_PATH)
|
361 |
. $filename;
|
362 |
}
|
363 |
}
|
app/code/community/MVentory/API/Helper/Product.php
CHANGED
@@ -106,10 +106,6 @@ class MVentory_API_Helper_Product extends MVentory_API_Helper_Data {
|
|
106 |
/**
|
107 |
* Try to get product's ID
|
108 |
*
|
109 |
-
* NOTE: this method doesn't recognise only numerical SKUs even
|
110 |
-
* if $identifierType is set to 'sku'. It will be returned as ID
|
111 |
-
* then such SKU, barcode and additional SKUs don't exist
|
112 |
-
*
|
113 |
* @param int|string $productId (SKU, ID or Barcode)
|
114 |
* @param string $identifierType
|
115 |
*
|
@@ -146,6 +142,11 @@ class MVentory_API_Helper_Product extends MVentory_API_Helper_Data {
|
|
146 |
if ($id > 0)
|
147 |
return $id;
|
148 |
|
|
|
|
|
|
|
|
|
|
|
149 |
$id = (int) $productId;
|
150 |
|
151 |
return $id > 0 ? $id : null;
|
106 |
/**
|
107 |
* Try to get product's ID
|
108 |
*
|
|
|
|
|
|
|
|
|
109 |
* @param int|string $productId (SKU, ID or Barcode)
|
110 |
* @param string $identifierType
|
111 |
*
|
142 |
if ($id > 0)
|
143 |
return $id;
|
144 |
|
145 |
+
//Return nothing if sku type is specified because we didn't find such SKU
|
146 |
+
//or barcode or additional SKU
|
147 |
+
if ($identifierType == 'sku')
|
148 |
+
return null;
|
149 |
+
|
150 |
$id = (int) $productId;
|
151 |
|
152 |
return $id > 0 ? $id : null;
|
app/code/community/MVentory/API/Model/Cart/Api.php
CHANGED
@@ -274,12 +274,7 @@ class MVentory_API_Model_Cart_Api extends Mage_Checkout_Model_Cart_Api {
|
|
274 |
Mage::logException($e);
|
275 |
}
|
276 |
|
277 |
-
|
278 |
-
$result = $productApi->fullInfo($product->getId(), 'id');
|
279 |
-
}
|
280 |
-
catch (Exception $e) {
|
281 |
-
Mage::logException($e);
|
282 |
-
}
|
283 |
|
284 |
if ($orderId)
|
285 |
$result['order_id'] = $orderId;
|
274 |
Mage::logException($e);
|
275 |
}
|
276 |
|
277 |
+
$result = $productApi->fullInfo($product->getId(), 'id');
|
|
|
|
|
|
|
|
|
|
|
278 |
|
279 |
if ($orderId)
|
280 |
$result['order_id'] = $orderId;
|
app/code/community/MVentory/API/Model/Config.php
CHANGED
@@ -46,8 +46,14 @@ class MVentory_API_Model_Config
|
|
46 |
const _QR_CSS = 'mventory/qr/css';
|
47 |
const _QR_URL = 'mventory/qr/base_url';
|
48 |
const _QR_COPIES = 'mventory/qr/copies';
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
//Attribute metadata values
|
53 |
const MT_INPUT_KBD = 0;
|
46 |
const _QR_CSS = 'mventory/qr/css';
|
47 |
const _QR_URL = 'mventory/qr/base_url';
|
48 |
const _QR_COPIES = 'mventory/qr/copies';
|
49 |
+
|
50 |
+
//BackGround Genie config paths
|
51 |
+
const _BGG_ENABLED = 'bg_genie/settings/enabled';
|
52 |
+
const _BGG_BACKUP_DIR = 'bg_genie/settings/backup_dir';
|
53 |
+
const _BGG_EXCL_NEW = 'bg_genie/settings/exclude_new';
|
54 |
+
const _BGG_AUTO_REPL = 'bg_genie/settings/auto_replace';
|
55 |
+
const _BGG_DBX_TKN = 'bg_genie/settings/dropbox_token';
|
56 |
+
const _BGG_DBX_PATH = 'bg_genie/settings/dropbox_path';
|
57 |
|
58 |
//Attribute metadata values
|
59 |
const MT_INPUT_KBD = 0;
|
app/code/community/MVentory/API/Model/Matching.php
CHANGED
@@ -113,6 +113,11 @@ class MVentory_API_Model_Matching
|
|
113 |
$rules = $this->getData('rules');
|
114 |
|
115 |
foreach ($rules as $rule) {
|
|
|
|
|
|
|
|
|
|
|
116 |
foreach ($rule['attrs'] as $attribute) {
|
117 |
if (!isset($_attributes[$attribute['id']]))
|
118 |
continue;
|
@@ -130,12 +135,13 @@ class MVentory_API_Model_Matching
|
|
130 |
continue 2;
|
131 |
}
|
132 |
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
}
|
137 |
}
|
138 |
|
|
|
|
|
139 |
if (!$categoryIds && isset($rules[self::DEFAULT_RULE_ID]))
|
140 |
$categoryIds = $rules[self::DEFAULT_RULE_ID]['categories'];
|
141 |
|
@@ -196,17 +202,30 @@ class MVentory_API_Model_Matching
|
|
196 |
|
197 |
$type = $attr->getFrontendInput();
|
198 |
|
199 |
-
if (!($type == 'select' || $type == 'multiselect'))
|
200 |
continue;
|
201 |
|
202 |
-
|
203 |
-
|
204 |
-
|
|
|
|
|
|
|
|
|
|
|
205 |
|
206 |
$optionIds = array();
|
207 |
|
208 |
foreach ($allOptions as $options)
|
209 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
$optionIds[] = $options['value'];
|
211 |
|
212 |
$attrs[$attr->getId()] = $optionIds;
|
113 |
$rules = $this->getData('rules');
|
114 |
|
115 |
foreach ($rules as $rule) {
|
116 |
+
|
117 |
+
//Ignore default rule, it's processed separately
|
118 |
+
if (!$rule['attrs'])
|
119 |
+
continue;
|
120 |
+
|
121 |
foreach ($rule['attrs'] as $attribute) {
|
122 |
if (!isset($_attributes[$attribute['id']]))
|
123 |
continue;
|
135 |
continue 2;
|
136 |
}
|
137 |
|
138 |
+
//Collect categories from current rule
|
139 |
+
if (!empty($rule['categories']))
|
140 |
+
$categoryIds = array_merge($categoryIds, $rule['categories']);
|
|
|
141 |
}
|
142 |
|
143 |
+
$categoryIds = array_unique($categoryIds);
|
144 |
+
|
145 |
if (!$categoryIds && isset($rules[self::DEFAULT_RULE_ID]))
|
146 |
$categoryIds = $rules[self::DEFAULT_RULE_ID]['categories'];
|
147 |
|
202 |
|
203 |
$type = $attr->getFrontendInput();
|
204 |
|
205 |
+
if (!($type == 'select' || $type == 'multiselect' || $type == 'boolean'))
|
206 |
continue;
|
207 |
|
208 |
+
// skip attribute in case its model is broken for some reason (e.g. 3rd party ext problem)
|
209 |
+
try {
|
210 |
+
$allOptions = $attr
|
211 |
+
->getSource()
|
212 |
+
->getAllOptions();
|
213 |
+
} catch (Exception $e) {
|
214 |
+
continue;
|
215 |
+
}
|
216 |
|
217 |
$optionIds = array();
|
218 |
|
219 |
foreach ($allOptions as $options)
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Ignore empty option (an option with empty string as value)
|
223 |
+
* added by "table" source model by default
|
224 |
+
*
|
225 |
+
* @see Mage_Eav_Model_Entity_Attribute_Source_Table::getAllOptions()
|
226 |
+
* See the function to find how empty option is added
|
227 |
+
*/
|
228 |
+
if ($options['value'] !== '')
|
229 |
$optionIds[] = $options['value'];
|
230 |
|
231 |
$attrs[$attr->getId()] = $optionIds;
|
app/code/community/MVentory/API/Model/Observer.php
CHANGED
@@ -25,8 +25,17 @@
|
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
class MVentory_API_Model_Observer {
|
|
|
|
|
|
|
|
|
28 |
const __CONFIG_URL = <<<'EOT'
|
29 |
-
|
|
|
|
|
|
|
|
|
|
|
30 |
EOT;
|
31 |
|
32 |
public function productInit ($observer) {
|
@@ -65,7 +74,7 @@ EOT;
|
|
65 |
public function addProductNameRebuildMassaction ($observer) {
|
66 |
$block = $observer->getBlock();
|
67 |
|
68 |
-
$route = '
|
69 |
|
70 |
$label = Mage::helper('mventory')->__('Rebuild product name');
|
71 |
$url = $block->getUrl($route, array('_current' => true));
|
@@ -78,7 +87,7 @@ EOT;
|
|
78 |
public function addProductCategoryMatchMassaction ($observer) {
|
79 |
$block = $observer->getBlock();
|
80 |
|
81 |
-
$route = '
|
82 |
|
83 |
$label = Mage::helper('mventory')->__('Match product category');
|
84 |
$url = $block->getUrl($route, array('_current' => true));
|
@@ -236,7 +245,12 @@ EOT;
|
|
236 |
Mage::getModel('core/url')->setStore($store)->getBaseUrl()
|
237 |
. 'mventory-key/'
|
238 |
. urlencode($key),
|
239 |
-
round($period / 3600)
|
|
|
|
|
|
|
|
|
|
|
240 |
);
|
241 |
|
242 |
Mage::getSingleton('adminhtml/session')->addNotice($msg);
|
@@ -247,7 +261,7 @@ EOT;
|
|
247 |
|
248 |
if ($block instanceof Mage_Adminhtml_Block_Customer_Edit) {
|
249 |
$url = $block->getUrl(
|
250 |
-
'
|
251 |
array(
|
252 |
'_current' => true,
|
253 |
'id' => $block->getCustomerId(),
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
class MVentory_API_Model_Observer {
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Double percentage sign to screen line breaks from sprintf() variables. Variables found on line 243.
|
31 |
+
*/
|
32 |
const __CONFIG_URL = <<<'EOT'
|
33 |
+
|
34 |
+
mVentory configuration URL: <a href="%1$s">%1$s</a><br>Email: <a href="mailto:%4$s?subject=API Key&body=Hi,%%0D%%0A%%0D%%0AYour Android access to %3$s has been configured. You can start loading products now.%%0D%%0A%%0D%%0A
|
35 |
+
Please, download the app from https://play.google.com/store/apps/details?id=com.mventory first and then click on this link to complete the configuration: %1$s %%0D%%0A%%0D%%0A
|
36 |
+
This link can only be used once within 24hr period. Ask your website administrator to reissue if the link doesn't work or report the problem to support@mventory.com.%%0D%%0A%%0D%%0A
|
37 |
+
Thanks mVentory">Send API Key Email</a><br>View: <a href="%5$s" target="_blank">QR CODE</a>
|
38 |
+
|
39 |
EOT;
|
40 |
|
41 |
public function productInit ($observer) {
|
74 |
public function addProductNameRebuildMassaction ($observer) {
|
75 |
$block = $observer->getBlock();
|
76 |
|
77 |
+
$route = 'adminhtml/mventory_catalog_product/massNameRebuild';
|
78 |
|
79 |
$label = Mage::helper('mventory')->__('Rebuild product name');
|
80 |
$url = $block->getUrl($route, array('_current' => true));
|
87 |
public function addProductCategoryMatchMassaction ($observer) {
|
88 |
$block = $observer->getBlock();
|
89 |
|
90 |
+
$route = 'adminhtml/mventory_catalog_product/massCategoryMatch';
|
91 |
|
92 |
$label = Mage::helper('mventory')->__('Match product category');
|
93 |
$url = $block->getUrl($route, array('_current' => true));
|
245 |
Mage::getModel('core/url')->setStore($store)->getBaseUrl()
|
246 |
. 'mventory-key/'
|
247 |
. urlencode($key),
|
248 |
+
round($period / 3600),
|
249 |
+
Mage::getStoreConfig('web/unsecure/base_url'),
|
250 |
+
$customer->getEmail(),
|
251 |
+
'https://chart.googleapis.com/chart?cht=qr&chld=M|1&chs=300x300&chl='.urlencode(Mage::getModel('core/url')->setStore($store)->getBaseUrl()
|
252 |
+
. 'mventory-key/'
|
253 |
+
. urlencode($key))
|
254 |
);
|
255 |
|
256 |
Mage::getSingleton('adminhtml/session')->addNotice($msg);
|
261 |
|
262 |
if ($block instanceof Mage_Adminhtml_Block_Customer_Edit) {
|
263 |
$url = $block->getUrl(
|
264 |
+
'adminhtml/mventory_customer/createapiuser',
|
265 |
array(
|
266 |
'_current' => true,
|
267 |
'id' => $block->getCustomerId(),
|
app/code/community/MVentory/API/Model/Product/Api.php
CHANGED
@@ -74,7 +74,9 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
74 |
->getDefaultStore()
|
75 |
->getId();
|
76 |
|
77 |
-
|
|
|
|
|
78 |
|
79 |
//Product's ID can be changed by '_getProduct()' function if original
|
80 |
//product is configurable one
|
74 |
->getDefaultStore()
|
75 |
->getId();
|
76 |
|
77 |
+
//Use id as identifier type because we've got product's ID earlier
|
78 |
+
//in this function
|
79 |
+
$product = $this->_getProduct($productId, $storeId, 'id');
|
80 |
|
81 |
//Product's ID can be changed by '_getProduct()' function if original
|
82 |
//product is configurable one
|
app/code/community/MVentory/API/Model/Product/Attribute/Media/Api.php
CHANGED
@@ -101,11 +101,13 @@ class MVentory_API_Model_Product_Attribute_Media_Api
|
|
101 |
$content = $this->_fixOrientation($name, $file['content']);
|
102 |
$file['content'] = base64_encode($content);
|
103 |
|
104 |
-
$isClipEnabled = Mage::getStoreConfig(
|
|
|
|
|
105 |
|
106 |
//Exclude image from frontend
|
107 |
if ($isClipEnabled
|
108 |
-
&& Mage::getStoreConfig(
|
109 |
$data['exclude'] = '1';
|
110 |
|
111 |
$img = $this->create($productId, $data, $storeId, $identifierType);
|
@@ -352,7 +354,7 @@ class MVentory_API_Model_Product_Attribute_Media_Api
|
|
352 |
|
353 |
$helper = Mage::helper('mventory/imageclipper');
|
354 |
|
355 |
-
if (Mage::getStoreConfig(
|
356 |
$helper->deleteFromDropbox(basename($file));
|
357 |
|
358 |
if ($md['is_deleted'])
|
101 |
$content = $this->_fixOrientation($name, $file['content']);
|
102 |
$file['content'] = base64_encode($content);
|
103 |
|
104 |
+
$isClipEnabled = Mage::getStoreConfig(
|
105 |
+
MVentory_API_Model_Config::_BGG_ENABLED
|
106 |
+
);
|
107 |
|
108 |
//Exclude image from frontend
|
109 |
if ($isClipEnabled
|
110 |
+
&& Mage::getStoreConfig(MVentory_API_Model_Config::_BGG_EXCL_NEW))
|
111 |
$data['exclude'] = '1';
|
112 |
|
113 |
$img = $this->create($productId, $data, $storeId, $identifierType);
|
354 |
|
355 |
$helper = Mage::helper('mventory/imageclipper');
|
356 |
|
357 |
+
if (Mage::getStoreConfig(MVentory_API_Model_Config::_BGG_ENABLED)) try {
|
358 |
$helper->deleteFromDropbox(basename($file));
|
359 |
|
360 |
if ($md['is_deleted'])
|
app/code/community/MVentory/API/Model/{System/Config/Backend/Imgclip/Backupfolder.php → Setting/Backend/Backupdir.php}
RENAMED
@@ -14,25 +14,49 @@
|
|
14 |
* See the full license at http://creativecommons.org/licenses/by-nc-nd/4.0/
|
15 |
*
|
16 |
* @package MVentory/API
|
17 |
-
* @copyright Copyright (c) 2014 mVentory Ltd. (http://mventory.com)
|
18 |
* @license http://creativecommons.org/licenses/by-nc-nd/4.0/
|
19 |
*/
|
20 |
|
21 |
/**
|
22 |
-
* Backend model for
|
23 |
*
|
24 |
* @package MVentory/API
|
25 |
* @author Bogdan
|
26 |
*/
|
27 |
-
class
|
28 |
extends Mage_Core_Model_Config_Data
|
29 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
public function _beforeSave () {
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
-
if (
|
34 |
return $this;
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
$path = Mage::getBaseDir('media') . DS . $val;
|
37 |
|
38 |
if (!is_dir($path))
|
@@ -41,7 +65,7 @@ class MVentory_API_Model_System_Config_Backend_Imgclip_Backupfolder
|
|
41 |
if (!(file_exists($path) && is_dir($path) && is_writable($path)))
|
42 |
Mage::throwException(
|
43 |
Mage::helper('mventory')->__(
|
44 |
-
'Path "%s" for backup folder is invalid!',
|
45 |
$val
|
46 |
)
|
47 |
);
|
14 |
* See the full license at http://creativecommons.org/licenses/by-nc-nd/4.0/
|
15 |
*
|
16 |
* @package MVentory/API
|
17 |
+
* @copyright Copyright (c) 2014-2015 mVentory Ltd. (http://mventory.com)
|
18 |
* @license http://creativecommons.org/licenses/by-nc-nd/4.0/
|
19 |
*/
|
20 |
|
21 |
/**
|
22 |
+
* Backend model for Local backup folder setting
|
23 |
*
|
24 |
* @package MVentory/API
|
25 |
* @author Bogdan
|
26 |
*/
|
27 |
+
class MVentory_API_Model_Setting_Backend_Backupdir
|
28 |
extends Mage_Core_Model_Config_Data
|
29 |
{
|
30 |
+
/**
|
31 |
+
* Normalize supplied path for local backup directory and make various
|
32 |
+
* checks that the directory is usable before saving setting in DB
|
33 |
+
*
|
34 |
+
* @return MVentory_API_Model_Setting_Backend_Backupdir
|
35 |
+
* Instance of this class
|
36 |
+
*/
|
37 |
public function _beforeSave () {
|
38 |
+
if (!$this->isValueChanged())
|
39 |
+
return $this;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* 1. trim both start and end of the value
|
43 |
+
* 2. remove any slash symbols from both side of the value string
|
44 |
+
* 3. trim again both sides to remove remained whitespaces
|
45 |
+
* from previous step
|
46 |
+
*
|
47 |
+
* Example: "/ foo/bar/ " -> "foo/bar"
|
48 |
+
*/
|
49 |
+
$val = trim(trim(trim($this->getValue()), '/'));
|
50 |
|
51 |
+
if (!$val)
|
52 |
return $this;
|
53 |
|
54 |
+
$this->setValue($val .= '/');
|
55 |
+
|
56 |
+
/**
|
57 |
+
* @todo we should check real path that it's still in media directory.
|
58 |
+
* E.g supplied directory path can contain "../"
|
59 |
+
*/
|
60 |
$path = Mage::getBaseDir('media') . DS . $val;
|
61 |
|
62 |
if (!is_dir($path))
|
65 |
if (!(file_exists($path) && is_dir($path) && is_writable($path)))
|
66 |
Mage::throwException(
|
67 |
Mage::helper('mventory')->__(
|
68 |
+
'Path "%s" for local backup folder is invalid!',
|
69 |
$val
|
70 |
)
|
71 |
);
|
app/code/community/MVentory/API/Model/System/Config/Backend/Imgclip/Csvlog.php
DELETED
@@ -1,49 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* NOTICE OF LICENSE
|
5 |
-
*
|
6 |
-
* This source file is subject to the Creative Commons License BY-NC-ND.
|
7 |
-
* By Attribution (BY) - You can share this file unchanged, including
|
8 |
-
* this copyright statement.
|
9 |
-
* Non-Commercial (NC) - You can use this file for non-commercial activities.
|
10 |
-
* A commercial license can be purchased separately from mventory.com.
|
11 |
-
* No Derivatives (ND) - You can make changes to this file for your own use,
|
12 |
-
* but you cannot share or redistribute the changes.
|
13 |
-
*
|
14 |
-
* See the full license at http://creativecommons.org/licenses/by-nc-nd/4.0/
|
15 |
-
*
|
16 |
-
* @package MVentory/API
|
17 |
-
* @copyright Copyright (c) 2014 mVentory Ltd. (http://mventory.com)
|
18 |
-
* @license http://creativecommons.org/licenses/by-nc-nd/4.0/
|
19 |
-
*/
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Backend model for back csv log field
|
23 |
-
*
|
24 |
-
* @package MVentory/API
|
25 |
-
* @author Bogdan
|
26 |
-
*/
|
27 |
-
class MVentory_API_Model_System_Config_Backend_Imgclip_Csvlog
|
28 |
-
extends Mage_Core_Model_Config_Data
|
29 |
-
{
|
30 |
-
|
31 |
-
public function _beforeSave () {
|
32 |
-
$val = $this->getValue();
|
33 |
-
|
34 |
-
if (!$val)
|
35 |
-
Mage::throwException('Log field must not be empty!');
|
36 |
-
|
37 |
-
$path = Mage::getBaseDir() . DS . $val;
|
38 |
-
|
39 |
-
if (!file_exists($path)) {
|
40 |
-
mkdir(dirname($path), 0775, true);
|
41 |
-
touch($path);
|
42 |
-
}
|
43 |
-
|
44 |
-
if (!(file_exists($path) && is_writable($path)))
|
45 |
-
Mage::throwException('Path '. $path . ' for log is invalid!');
|
46 |
-
|
47 |
-
return $this;
|
48 |
-
}
|
49 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/MVentory/API/controllers/DropboxController.php
CHANGED
@@ -27,7 +27,7 @@
|
|
27 |
class MVentory_API_DropboxController extends Mage_Core_Controller_Front_Action
|
28 |
{
|
29 |
public function indexAction () {
|
30 |
-
if (!Mage::getStoreConfig(
|
31 |
return;
|
32 |
|
33 |
//Respond to dropbox
|
@@ -55,7 +55,9 @@ class MVentory_API_DropboxController extends Mage_Core_Controller_Front_Action
|
|
55 |
if (!$delta['entries'])
|
56 |
return;
|
57 |
|
58 |
-
$isAutoReplace = Mage::getStoreConfig(
|
|
|
|
|
59 |
|
60 |
foreach ($delta['entries'] as $_item) {
|
61 |
|
27 |
class MVentory_API_DropboxController extends Mage_Core_Controller_Front_Action
|
28 |
{
|
29 |
public function indexAction () {
|
30 |
+
if (!Mage::getStoreConfig(MVentory_API_Model_Config::_BGG_ENABLED))
|
31 |
return;
|
32 |
|
33 |
//Respond to dropbox
|
55 |
if (!$delta['entries'])
|
56 |
return;
|
57 |
|
58 |
+
$isAutoReplace = Mage::getStoreConfig(
|
59 |
+
MVentory_API_Model_Config::_BGG_AUTO_REPL
|
60 |
+
);
|
61 |
|
62 |
foreach ($delta['entries'] as $_item) {
|
63 |
|
app/code/community/MVentory/API/controllers/{CarriersController.php → Mventory/CarriersController.php}
RENAMED
@@ -24,13 +24,17 @@
|
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
-
class
|
28 |
extends Mage_Adminhtml_Controller_Action {
|
29 |
|
30 |
protected function _construct() {
|
31 |
$this->setUsedModuleName('MVentory_API');
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* Export shipping rates in csv format
|
36 |
*/
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
+
class MVentory_API_Mventory_CarriersController
|
28 |
extends Mage_Adminhtml_Controller_Action {
|
29 |
|
30 |
protected function _construct() {
|
31 |
$this->setUsedModuleName('MVentory_API');
|
32 |
}
|
33 |
|
34 |
+
protected function _isAllowed () {
|
35 |
+
return true;
|
36 |
+
}
|
37 |
+
|
38 |
/**
|
39 |
* Export shipping rates in csv format
|
40 |
*/
|
app/code/community/MVentory/API/controllers/{Catalog → Mventory/Catalog}/ProductController.php
RENAMED
@@ -24,9 +24,13 @@
|
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
-
class
|
28 |
extends Mage_Adminhtml_Controller_Action {
|
29 |
|
|
|
|
|
|
|
|
|
30 |
public function massNameRebuildAction () {
|
31 |
$request = $this->getRequest();
|
32 |
|
@@ -59,7 +63,7 @@ class MVentory_API_Catalog_ProductController
|
|
59 |
->addException($e, $m);
|
60 |
}
|
61 |
|
62 |
-
$this->_redirect('adminhtml
|
63 |
}
|
64 |
|
65 |
public function massCategoryMatchAction () {
|
@@ -94,7 +98,7 @@ class MVentory_API_Catalog_ProductController
|
|
94 |
->addException($e, $m);
|
95 |
}
|
96 |
|
97 |
-
$this->_redirect('adminhtml
|
98 |
}
|
99 |
}
|
100 |
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
+
class MVentory_API_Mventory_Catalog_ProductController
|
28 |
extends Mage_Adminhtml_Controller_Action {
|
29 |
|
30 |
+
protected function _isAllowed () {
|
31 |
+
return true;
|
32 |
+
}
|
33 |
+
|
34 |
public function massNameRebuildAction () {
|
35 |
$request = $this->getRequest();
|
36 |
|
63 |
->addException($e, $m);
|
64 |
}
|
65 |
|
66 |
+
$this->_redirect('adminhtml/catalog_product', array('store'=> $storeId));
|
67 |
}
|
68 |
|
69 |
public function massCategoryMatchAction () {
|
98 |
->addException($e, $m);
|
99 |
}
|
100 |
|
101 |
+
$this->_redirect('adminhtml/catalog_product/', array('store'=> $storeId));
|
102 |
}
|
103 |
}
|
104 |
|
app/code/community/MVentory/API/controllers/{CustomerController.php → Mventory/CustomerController.php}
RENAMED
@@ -24,7 +24,8 @@
|
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
-
class
|
|
|
28 |
{
|
29 |
|
30 |
const _NO_ADDRESS = <<<'EOT'
|
@@ -40,17 +41,17 @@ User with ID=%d is already registered for API access. Manage details at <a href=
|
|
40 |
EOT;
|
41 |
|
42 |
const _HELP = <<<'EOT'
|
43 |
-
Manage API access on <a href="%s">API user details page</a>
|
44 |
-
<br />
|
45 |
-
Visit <a target="_blank" href="http://mventory.com/help/configure-access/">mventory.com</a> for more info
|
46 |
-
<br />
|
47 |
-
Save the XML-RPC user again to generate a new link
|
48 |
EOT;
|
49 |
|
50 |
protected function _construct() {
|
51 |
$this->setUsedModuleName('MVentory_API');
|
52 |
}
|
53 |
|
|
|
|
|
|
|
|
|
54 |
/**
|
55 |
* Create API user for customer
|
56 |
*/
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
+
class MVentory_API_Mventory_CustomerController
|
28 |
+
extends Mage_Adminhtml_Controller_Action
|
29 |
{
|
30 |
|
31 |
const _NO_ADDRESS = <<<'EOT'
|
41 |
EOT;
|
42 |
|
43 |
const _HELP = <<<'EOT'
|
44 |
+
Manage API access on <a href="%s">API user details page</a>. Save the user there to generate a new access link or visit <a target="_blank" href="http://mventory.com/doc/configuration-2/"> mventory.com</a> for more info.
|
|
|
|
|
|
|
|
|
45 |
EOT;
|
46 |
|
47 |
protected function _construct() {
|
48 |
$this->setUsedModuleName('MVentory_API');
|
49 |
}
|
50 |
|
51 |
+
protected function _isAllowed () {
|
52 |
+
return true;
|
53 |
+
}
|
54 |
+
|
55 |
/**
|
56 |
* Create API user for customer
|
57 |
*/
|
app/code/community/MVentory/API/controllers/{LogsController.php → Mventory/LogsController.php}
RENAMED
@@ -24,7 +24,7 @@
|
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
-
class
|
28 |
extends Mage_Adminhtml_Controller_Action
|
29 |
{
|
30 |
const _CANT_CLEAR = <<<'EOT'
|
@@ -46,6 +46,10 @@ EOT;
|
|
46 |
$this->setUsedModuleName('MVentory_API');
|
47 |
}
|
48 |
|
|
|
|
|
|
|
|
|
49 |
/**
|
50 |
* Clear activity log
|
51 |
*
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
+
class MVentory_API_Mventory_LogsController
|
28 |
extends Mage_Adminhtml_Controller_Action
|
29 |
{
|
30 |
const _CANT_CLEAR = <<<'EOT'
|
46 |
$this->setUsedModuleName('MVentory_API');
|
47 |
}
|
48 |
|
49 |
+
protected function _isAllowed () {
|
50 |
+
return true;
|
51 |
+
}
|
52 |
+
|
53 |
/**
|
54 |
* Clear activity log
|
55 |
*
|
app/code/community/MVentory/API/controllers/{MatchingController.php → Mventory/MatchingController.php}
RENAMED
@@ -24,13 +24,17 @@
|
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
-
class
|
28 |
extends Mage_Adminhtml_Controller_Action {
|
29 |
|
30 |
protected function _construct() {
|
31 |
$this->setUsedModuleName('MVentory_API');
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* Append rule action
|
36 |
*
|
24 |
* @package MVentory/API
|
25 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
26 |
*/
|
27 |
+
class MVentory_API_Mventory_MatchingController
|
28 |
extends Mage_Adminhtml_Controller_Action {
|
29 |
|
30 |
protected function _construct() {
|
31 |
$this->setUsedModuleName('MVentory_API');
|
32 |
}
|
33 |
|
34 |
+
protected function _isAllowed () {
|
35 |
+
return true;
|
36 |
+
}
|
37 |
+
|
38 |
/**
|
39 |
* Append rule action
|
40 |
*
|
app/code/community/MVentory/API/etc/config.xml
CHANGED
@@ -194,13 +194,13 @@
|
|
194 |
|
195 |
<admin>
|
196 |
<routers>
|
197 |
-
<
|
198 |
-
<use>admin</use>
|
199 |
<args>
|
200 |
-
<
|
201 |
-
|
|
|
202 |
</args>
|
203 |
-
</
|
204 |
</routers>
|
205 |
</admin>
|
206 |
|
194 |
|
195 |
<admin>
|
196 |
<routers>
|
197 |
+
<adminhtml>
|
|
|
198 |
<args>
|
199 |
+
<modules>
|
200 |
+
<MVentory_API after="Mage_Adminhtml">MVentory_API</MVentory_API>
|
201 |
+
</modules>
|
202 |
</args>
|
203 |
+
</adminhtml>
|
204 |
</routers>
|
205 |
</admin>
|
206 |
|
app/code/community/MVentory/API/etc/system.xml
CHANGED
@@ -299,250 +299,6 @@
|
|
299 |
</fields>
|
300 |
</qr>
|
301 |
|
302 |
-
<image_clips translate="label comment" module="mventory">
|
303 |
-
<label>Image Review</label>
|
304 |
-
<comment>
|
305 |
-
<![CDATA[
|
306 |
-
<ul id="mventory-matching-messages" class="messages">
|
307 |
-
<li class="notice-msg">
|
308 |
-
<span>All new photos can be held in a special folder for review before posting on the website. The review may include editing by external staff via Dropbox or Google Drive sync. <a target="_blank" href="//mventory.com"> Learn more …</a></span>
|
309 |
-
</li>
|
310 |
-
</ul>
|
311 |
-
]]>
|
312 |
-
</comment>
|
313 |
-
<footer>
|
314 |
-
<![CDATA[
|
315 |
-
<div id="mventory-dropbox-system-howto" class="system-fieldset-sub-head">
|
316 |
-
<h4>How to use DropBox for image editing</h4>
|
317 |
-
|
318 |
-
<ol>
|
319 |
-
<li>Sign up for a new DropBox account.</li>
|
320 |
-
<li>Install DropBox client for Linux on your Magento server.</li>
|
321 |
-
<li>Configure DropBox daemon to sync the holding folder with your account.</li>
|
322 |
-
<li>Share the account details with your image editor and ask them to sync the holding folder. Ideally there shouldn't be any other folders in that account for security reasons. </li>
|
323 |
-
</ol>
|
324 |
-
|
325 |
-
<p>When a new file is uploaded to Magento via [mVentory Android app] it is automatically copied to the holding folder and is synced to a local folder on the computer of your image editor. They can <a target="_blank" href="https://www.dropbox.com/en/help/34">configure notifications</a> to be alerted about any new files uploaded by you.</p>
|
326 |
-
|
327 |
-
<p>Your image editor can open, edit and save the files locally. Any changes will be synced to the holding folder on Magento server and applied to product images automatically or after a review.</p>
|
328 |
-
|
329 |
-
<p>Read more about this process on <a target="_blank" href="//mventory.com">mventory.com</a></p>
|
330 |
-
</div>
|
331 |
-
]]>
|
332 |
-
</footer>
|
333 |
-
<frontend_model>mventory/setting_fieldset</frontend_model>
|
334 |
-
|
335 |
-
<show_in_default>1</show_in_default>
|
336 |
-
<show_in_website>1</show_in_website>
|
337 |
-
<show_in_store>1</show_in_store>
|
338 |
-
|
339 |
-
<sort_order>6</sort_order>
|
340 |
-
|
341 |
-
<fields>
|
342 |
-
<enable translate="label comment tooltip">
|
343 |
-
<label>Enabled</label>
|
344 |
-
<comment>Toggle image review feature on/off.</comment>
|
345 |
-
<tooltip>Make sure you don't have images pending approval before disabling it.</tooltip>
|
346 |
-
<frontend_type>select</frontend_type>
|
347 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
348 |
-
|
349 |
-
<show_in_default>1</show_in_default>
|
350 |
-
<show_in_website>0</show_in_website>
|
351 |
-
<show_in_store>0</show_in_store>
|
352 |
-
|
353 |
-
<sort_order>1</sort_order>
|
354 |
-
</enable>
|
355 |
-
|
356 |
-
<backup_folder translate="label comment tooltip">
|
357 |
-
<label>Backup folder</label>
|
358 |
-
<comment>Backup folder in media/.</comment>
|
359 |
-
<tooltip>PLACEHOLDER</tooltip>
|
360 |
-
<frontend_type>text</frontend_type>
|
361 |
-
<backend_model>mventory/system_config_backend_imgclip_backupfolder</backend_model>
|
362 |
-
|
363 |
-
<depends>
|
364 |
-
<enable>1</enable>
|
365 |
-
</depends>
|
366 |
-
|
367 |
-
<show_in_default>1</show_in_default>
|
368 |
-
<show_in_website>0</show_in_website>
|
369 |
-
<show_in_store>0</show_in_store>
|
370 |
-
|
371 |
-
<sort_order>2</sort_order>
|
372 |
-
</backup_folder>
|
373 |
-
|
374 |
-
<exclude_new translate="label comment tooltip">
|
375 |
-
<label>Exclude new</label>
|
376 |
-
<comment>New photos are hidden until approved</comment>
|
377 |
-
<tooltip>New photos have "exclude" flag set on and can be enabled by removing the flag in Images tab of the product details page in the admin or via mVentory app.</tooltip>
|
378 |
-
<frontend_type>select</frontend_type>
|
379 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
380 |
-
|
381 |
-
<depends>
|
382 |
-
<enable>1</enable>
|
383 |
-
</depends>
|
384 |
-
|
385 |
-
<show_in_default>1</show_in_default>
|
386 |
-
<show_in_website>0</show_in_website>
|
387 |
-
<show_in_store>0</show_in_store>
|
388 |
-
|
389 |
-
<sort_order>3</sort_order>
|
390 |
-
</exclude_new>
|
391 |
-
|
392 |
-
<auto_replace translate="label comment tooltip">
|
393 |
-
<label>Auto-replace</label>
|
394 |
-
<comment>Edited photos replace originals automatically</comment>
|
395 |
-
<tooltip>If a photo was edited and re-saved in the holding folder it will automatically replace the original product photo (Yes) or wait for a review on ImageClip review page (No).</tooltip>
|
396 |
-
<frontend_type>select</frontend_type>
|
397 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
398 |
-
|
399 |
-
<depends>
|
400 |
-
<enable>1</enable>
|
401 |
-
</depends>
|
402 |
-
|
403 |
-
<show_in_default>1</show_in_default>
|
404 |
-
<show_in_website>0</show_in_website>
|
405 |
-
<show_in_store>0</show_in_store>
|
406 |
-
|
407 |
-
<sort_order>4</sort_order>
|
408 |
-
</auto_replace>
|
409 |
-
|
410 |
-
<log_file translate="label comment tooltip">
|
411 |
-
<label>Log file</label>
|
412 |
-
<comment>For all extension activity.</comment>
|
413 |
-
<tooltip>All actions performed via the extension are logged into this file. You must remove stale records or enable automated clean up using system tools.</tooltip>
|
414 |
-
<frontend_model>mventory/system_config_form_field_imgcliplog</frontend_model>
|
415 |
-
<backend_model>mventory/system_config_backend_imgclip_csvlog</backend_model>
|
416 |
-
|
417 |
-
<depends>
|
418 |
-
<enable>1</enable>
|
419 |
-
</depends>
|
420 |
-
|
421 |
-
<show_in_default>1</show_in_default>
|
422 |
-
<show_in_website>0</show_in_website>
|
423 |
-
<show_in_store>0</show_in_store>
|
424 |
-
|
425 |
-
<sort_order>5</sort_order>
|
426 |
-
</log_file>
|
427 |
-
|
428 |
-
<dropbox_heading translate="label">
|
429 |
-
<label>Dropbox options</label>
|
430 |
-
<frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
|
431 |
-
|
432 |
-
<depends>
|
433 |
-
<enable>1</enable>
|
434 |
-
</depends>
|
435 |
-
|
436 |
-
<show_in_default>1</show_in_default>
|
437 |
-
<show_in_website>0</show_in_website>
|
438 |
-
<show_in_store>0</show_in_store>
|
439 |
-
|
440 |
-
<sort_order>6</sort_order>
|
441 |
-
</dropbox_heading>
|
442 |
-
|
443 |
-
<dropbox_token translate="label comment tooltip">
|
444 |
-
<label>Token</label>
|
445 |
-
<comment>Token from dropbox app.</comment>
|
446 |
-
<tooltip>Eg 27ZEc1bz3fMAAAAAAAAABOK7q7hAmT55Jy2DcG2hGlGVXQUNwic6EhdNVwt4TEwi</tooltip>
|
447 |
-
<frontend_type>text</frontend_type>
|
448 |
-
<frontend_class>required-entry</frontend_class>
|
449 |
-
|
450 |
-
<depends>
|
451 |
-
<enable>1</enable>
|
452 |
-
</depends>
|
453 |
-
|
454 |
-
<show_in_default>1</show_in_default>
|
455 |
-
<show_in_website>0</show_in_website>
|
456 |
-
<show_in_store>0</show_in_store>
|
457 |
-
|
458 |
-
<sort_order>7</sort_order>
|
459 |
-
</dropbox_token>
|
460 |
-
|
461 |
-
<dropbox_path translate="label comment tooltip">
|
462 |
-
<label>Web folder path</label>
|
463 |
-
<comment>The path in dropbox (/apps/images).</comment>
|
464 |
-
<tooltip>This is the path as stored in Dropbox. The Dropbox "file-system" so to speak.</tooltip>
|
465 |
-
<frontend_type>text</frontend_type>
|
466 |
-
<backend_model>mventory/setting_backend_dbxpath</backend_model>
|
467 |
-
<frontend_class>required-entry</frontend_class>
|
468 |
-
|
469 |
-
<depends>
|
470 |
-
<enable>1</enable>
|
471 |
-
</depends>
|
472 |
-
|
473 |
-
<show_in_default>1</show_in_default>
|
474 |
-
<show_in_website>0</show_in_website>
|
475 |
-
<show_in_store>0</show_in_store>
|
476 |
-
|
477 |
-
<sort_order>8</sort_order>
|
478 |
-
</dropbox_path>
|
479 |
-
|
480 |
-
<image_requirements translate="label">
|
481 |
-
<label>Image requirements</label>
|
482 |
-
<frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
|
483 |
-
|
484 |
-
<depends>
|
485 |
-
<enable>1</enable>
|
486 |
-
</depends>
|
487 |
-
|
488 |
-
<show_in_default>1</show_in_default>
|
489 |
-
<show_in_website>0</show_in_website>
|
490 |
-
<show_in_store>0</show_in_store>
|
491 |
-
|
492 |
-
<sort_order>9</sort_order>
|
493 |
-
</image_requirements>
|
494 |
-
|
495 |
-
<ideal_width translate="label tooltip">
|
496 |
-
<label>Ideal width, px</label>
|
497 |
-
<tooltip>Ideal image size is defined by your Magento theme. Images may have slightly different size, but should adhere to the same proportions. Any discrepancies will be highlighted on the review page in mVentory app.</tooltip>
|
498 |
-
<frontend_type>text</frontend_type>
|
499 |
-
|
500 |
-
<depends>
|
501 |
-
<enable>1</enable>
|
502 |
-
</depends>
|
503 |
-
|
504 |
-
<show_in_default>1</show_in_default>
|
505 |
-
<show_in_website>0</show_in_website>
|
506 |
-
<show_in_store>0</show_in_store>
|
507 |
-
|
508 |
-
<sort_order>10</sort_order>
|
509 |
-
</ideal_width>
|
510 |
-
|
511 |
-
<ideal_height translate="label comment">
|
512 |
-
<label>Ideal height, px</label>
|
513 |
-
<comment>Ideal full image size</comment>
|
514 |
-
<frontend_type>text</frontend_type>
|
515 |
-
|
516 |
-
<depends>
|
517 |
-
<enable>1</enable>
|
518 |
-
</depends>
|
519 |
-
|
520 |
-
<show_in_default>1</show_in_default>
|
521 |
-
<show_in_website>0</show_in_website>
|
522 |
-
<show_in_store>0</show_in_store>
|
523 |
-
|
524 |
-
<sort_order>11</sort_order>
|
525 |
-
</ideal_height>
|
526 |
-
|
527 |
-
<feedback_email translate="label comment tooltip">
|
528 |
-
<label>Feedback email</label>
|
529 |
-
<comment>The email address of your image editor</comment>
|
530 |
-
<tooltip>The app will help you email feedback to the image editor. Use comma-separated list for more than one.</tooltip>
|
531 |
-
<frontend_type>text</frontend_type>
|
532 |
-
|
533 |
-
<depends>
|
534 |
-
<enable>1</enable>
|
535 |
-
</depends>
|
536 |
-
|
537 |
-
<show_in_default>1</show_in_default>
|
538 |
-
<show_in_website>0</show_in_website>
|
539 |
-
<show_in_store>0</show_in_store>
|
540 |
-
|
541 |
-
<sort_order>12</sort_order>
|
542 |
-
</feedback_email>
|
543 |
-
</fields>
|
544 |
-
</image_clips>
|
545 |
-
|
546 |
<build_info>
|
547 |
<frontend_model>mventory/setting_buildinfo</frontend_model>
|
548 |
|
299 |
</fields>
|
300 |
</qr>
|
301 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
<build_info>
|
303 |
<frontend_model>mventory/setting_buildinfo</frontend_model>
|
304 |
|
app/design/adminhtml/default/default/template/mventory/config/build-info.phtml
CHANGED
@@ -18,5 +18,5 @@
|
|
18 |
|
19 |
?>
|
20 |
|
21 |
-
Build version:
|
22 |
-
<BR/>Build date:
|
18 |
|
19 |
?>
|
20 |
|
21 |
+
Build version: 5519f60
|
22 |
+
<BR/>Build date: 08/02/2016 11:39 UTC
|
app/design/adminhtml/default/default/template/mventory/matching.phtml
CHANGED
@@ -18,8 +18,6 @@
|
|
18 |
*/
|
19 |
|
20 |
$_rules = $this->_getRules();
|
21 |
-
$_attrs = $this->_attrs;
|
22 |
-
|
23 |
$_loaderUrl = $this->getSkinUrl('images/ajax-loader-tr.gif');
|
24 |
|
25 |
$__loading = Mage::helper('adminhtml')->__('Loading...');
|
@@ -45,7 +43,7 @@ $__loading = Mage::helper('adminhtml')->__('Loading...');
|
|
45 |
|
46 |
?>
|
47 |
|
48 |
-
<?php if (count($_rules) < 3 && $_attrs): ?>
|
49 |
<ul id="mventory-matching-messages" class="messages">
|
50 |
<li class="notice-msg">
|
51 |
<ul>
|
@@ -130,7 +128,7 @@ $__loading = Mage::helper('adminhtml')->__('Loading...');
|
|
130 |
<div class="mventory-inner clear">
|
131 |
|
132 |
<?php //Hide attribute selector if there is no attribute and show warning message ?>
|
133 |
-
<?php if (count($_attrs) < 2): ?>
|
134 |
|
135 |
<ul id="mventory-matching-attribute-messages" class="messages">
|
136 |
<li class="warning-msg">
|
@@ -156,7 +154,7 @@ $__loading = Mage::helper('adminhtml')->__('Loading...');
|
|
156 |
<div>
|
157 |
<select class="mventory-rule-new-attr-name">
|
158 |
|
159 |
-
<?php foreach ($_attrs as $id => $attr): ?>
|
160 |
<option <?php if ($attr['used']) echo 'class="mventory-state-used-attr"'; ?> value="<?php echo $id; ?>"><?php echo $attr['label']; ?></option>
|
161 |
<?php endforeach; ?>
|
162 |
|
18 |
*/
|
19 |
|
20 |
$_rules = $this->_getRules();
|
|
|
|
|
21 |
$_loaderUrl = $this->getSkinUrl('images/ajax-loader-tr.gif');
|
22 |
|
23 |
$__loading = Mage::helper('adminhtml')->__('Loading...');
|
43 |
|
44 |
?>
|
45 |
|
46 |
+
<?php if (count($_rules) < 3 && $this->_attrs): ?>
|
47 |
<ul id="mventory-matching-messages" class="messages">
|
48 |
<li class="notice-msg">
|
49 |
<ul>
|
128 |
<div class="mventory-inner clear">
|
129 |
|
130 |
<?php //Hide attribute selector if there is no attribute and show warning message ?>
|
131 |
+
<?php if (count($this->_attrs) < 2): ?>
|
132 |
|
133 |
<ul id="mventory-matching-attribute-messages" class="messages">
|
134 |
<li class="warning-msg">
|
154 |
<div>
|
155 |
<select class="mventory-rule-new-attr-name">
|
156 |
|
157 |
+
<?php foreach ($this->_attrs as $id => $attr): ?>
|
158 |
<option <?php if ($attr['used']) echo 'class="mventory-state-used-attr"'; ?> value="<?php echo $id; ?>"><?php echo $attr['label']; ?></option>
|
159 |
<?php endforeach; ?>
|
160 |
|
package.xml
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<package><name>MVentory_API</name><version>1.
|
3 |
|
4 |
|
5 |
|
@@ -49,5 +49,10 @@ Creative Commons BY-NC-ND 4.0 (http://creativecommons.org/licenses/by-nc-nd/4.0/
|
|
49 |
|
50 |
The extension is free for non-commercial or trial use. Please, request a FREE commercial license from info@mventory.com
|
51 |
|
52 |
-
Visit http://mventory.com for more info.</description><notes>*
|
53 |
-
* Updated config hints and tooltips</notes><authors><author><name>Anatoly A. Kazantsev</name><user>anatoly</user><email>anatoly@mventory.com</email></author></authors><date>2015-04-30</date><time>23:28:59</time><compatible></compatible><dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="js"><dir name="jquery"><file name="jquery-min.js" hash="baae1db8cca4abb2265b0a6e01f1beed"/><file name="jquery-ui-custom-min.js" hash="e37cbc707c78240780a5ce641f476eb3"/></dir><dir name="mventory"><file name="matching.js" hash="2a3d6d34c60aee3f0efe94ff96fd67fc"/></dir></dir><dir name="var"><dir name="connect"><file name="MVentory_API.xml" hash="ad19646bef2d7d239906d23e10cadd02"/></dir></dir><dir name="app"><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="mventory.xml" hash="902a95b8b78acdf528e13993eb6f5030"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="mventory.xml" hash="46b4a123593ad761f3521d5b2d4f71bb"/></dir><dir name="template"><dir name="mventory"><file name="element.phtml" hash="cb233713a0e550b2165280231c24360f"/><file name="matching.phtml" hash="5378e331d15f5daf582021dd96d7f130"/><file name="metadata.phtml" hash="29d84bb98175c7ca358e68f49cffa8f3"/><dir name="matching"><file name="categories.phtml" hash="ab29d30352987276065b9e933acd3fcc"/></dir><dir name="customer"><dir name="edit"><file name="js.phtml" hash="36e6fba58aa4eff02bc57e2a1d628d79"/></dir></dir><dir name="config"><file name="build-info.phtml" hash="0470743e9162bf38d4746fbb8c20e273"/></dir></dir></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="MVentory"><dir name="API"><dir name="controllers"><file name="AppController.php" hash="d4ab9585f3853ec17a197aff505be7c5"/><file name="CarriersController.php" hash="326f66c967a9ee2216be9c6dae043d97"/><file name="CustomerController.php" hash="029f18706ffe07e8a466eb8c30d0a2f9"/><file name="DropboxController.php" hash="e4f9ee9fcafd993e26e931b31c2228c7"/><file name="ImageController.php" hash="deb5c8227a982e8a328479aa88e8f088"/><file name="LogsController.php" hash="96c331e223a6a94ef9d3ba7192d24935"/><file name="MatchingController.php" hash="071284fc5681b70ead84ff2a98f3d519"/><file name="QrController.php" hash="1678dcc58be2ebcb554e7dc0e7c26d80"/><file name="SwitchController.php" hash="1a00ad2aae0845faea5dbe1475e84d8f"/><dir name="Catalog"><file name="ProductController.php" hash="b507cf269539c6dc3fea5e81bada5664"/></dir></dir><dir name="Block"><file name="Matching.php" hash="da741edb96130c120e4eddf0b677bbd2"/><file name="Metadata.php" hash="4b68a44b1f064093ac94722c40c7c651"/><dir name="Setting"><file name="Buildinfo.php" hash="87e71b9cd02e61dff260609be485ca54"/><file name="Fieldset.php" hash="5b5a717192210b9726e5e86ee75949d9"/></dir><dir name="Matching"><file name="Categories.php" hash="e5ffc5a02aa37a43d90079c66eace63b"/></dir><dir name="Carrier"><dir name="Volumerate"><file name="Grid.php" hash="182f5a1eb264ec7648aae468d5faef99"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Exportrates.php" hash="aa4a0e11eaa9330ba35f460582290927"/><file name="Imgcliplog.php" hash="05f8dfba30a9acdc6462b5aadbc154e7"/></dir></dir></dir></dir></dir><dir name="data"><dir name="mventory_setup"><file name="data-upgrade-20-21.php" hash="ab6622b831fc5a806d780eff2eacf75b"/><file name="data-upgrade-23-24.php" hash="9d5bd2a2745585d814d3b203008ef2ad"/><file name="data-upgrade-27-28.php" hash="6b63835702467615f932f6fbac78e97d"/><file name="data-upgrade-28-29.php" hash="db2ca19d3162d377bd1927a22f2b6be0"/></dir></dir><dir name="Helper"><file name="Barcode.php" hash="57de68928ed6da93a02a044bf9f93f86"/><file name="Data.php" hash="d8016b9f4770342d10fe8a047ff1d167"/><file name="Image.php" hash="cb931b138f4c90f7f52cf8303ecb6aa2"/><file name="Imageclipper.php" hash="83634ad59a28a237d5cff3e7b1fb5131"/><file name="Product.php" hash="74a8787d1fc9dc4ff4bf3519d5ecab1e"/><file name="String.php" hash="258c2000ce8feb070211e04816e903e3"/><dir name="Mage"><dir name="Sales"><file name="Data.php" hash="84fbc100be8baa83e5dbb5fcecccbd6b"/></dir></dir><dir name="Product"><file name="Attribute.php" hash="130bee848a2d12bc75ed07383d15c190"/><file name="Configurable.php" hash="5f5eadcb33883752a56ad306fadf32dd"/></dir></dir><dir name="sql"><dir name="mventory_setup"><file name="install-3.php" hash="7514f77abff39b3d359a59978784e275"/><file name="upgrade-10-11.php" hash="fb312c3621c87f7b2222ba56e3f83fb9"/><file name="upgrade-12-13.php" hash="aefb35e0871eafd84864f8052ff21423"/><file name="upgrade-17-18.php" hash="a06e899380dd85a175b331fe5b52f324"/><file name="upgrade-18-19.php" hash="00113090ec00f2385c78d28464871c46"/><file name="upgrade-20-21.php" hash="27d45b15f3ba21df99cd90a3750f9c79"/><file name="upgrade-21-22.php" hash="e882fef187fa158587a4451bfced7e45"/><file name="upgrade-22-23.php" hash="e67150b521f86d35027fcafcf3d6000b"/><file name="upgrade-24-25.php" hash="ef3e432929a236bed6ef0d9c19ca3db5"/><file name="upgrade-25-26.php" hash="e134738e9a55fc1691a38b5eb4cbe73e"/><file name="upgrade-26-27.php" hash="fb5e01ee89497e99426f816240791d4a"/><file name="upgrade-3-4.php" hash="9f04a747fe387598a2871cdc8c9caf87"/><file name="upgrade-8-9.php" hash="0e3e3bb76a0cd039910bf17f2956285f"/><file name="upgrade-9-10.php" hash="05ccf6ee0b530dc5bf63b5fe0bc8f044"/></dir></dir><dir name="Model"><file name="Config.php" hash="c1232e1bf9267f2fa120c96087e69191"/><file name="Matching.php" hash="a54d42a7da654d845a1e79c745a2166b"/><file name="Observer.php" hash="ffd19ee0abbb1f49d8df1855f37ba01f"/><file name="Payment.php" hash="d2745860dfb2eca1adbc0f7b3de6fbfc"/><file name="Shipping.php" hash="043c9d12eebdff5016b84e4d86cc1e77"/><dir name="Setting"><dir name="Backend"><file name="Dbxpath.php" hash="cd9272381487b8a599a63cfe123d57b7"/></dir></dir><dir name="Dataflow"><file name="Api.php" hash="bfb1829343503354daf9db216f313976"/></dir><dir name="Category"><file name="Api.php" hash="9628dc59a845bc36a80a490ee808c338"/></dir><dir name="Carrier"><file name="Volumerate.php" hash="609709fdded050a3ac4204464ef6d922"/></dir><dir name="Stock"><dir name="Item"><file name="Api.php" hash="64473e1600fd51600853eddee75d598e"/></dir></dir><dir name="Config"><dir name="Data"><file name="Websites.php" hash="a7314efd0ca3c6adc8594893c64555aa"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Carrier"><file name="Volumerate.php" hash="2010718655ff39b4559a369403074fa4"/></dir><dir name="Imgclip"><file name="Backupfolder.php" hash="07bd6a17f8e65d96c47ed52d5f1c38e6"/><file name="Csvlog.php" hash="f3780e5079abb09594e018cfb36e4226"/></dir></dir><dir name="Source"><file name="Allowedshippingtypes.php" hash="d2a6259b9278242d3acf8a0c4f34c763"/><file name="Contenttype.php" hash="e91f6a1a495f1a19e1875fbde4ed5aac"/><file name="Customers.php" hash="b3e615aa64cce43d1bb4cadbe41c2ee7"/><file name="Inputmethod.php" hash="0cdc2b42456faeffd2b86481d2a04940"/><file name="Visibility.php" hash="22a8599fb6867d2fe5887f2f9b0246cb"/><file name="Website.php" hash="b8ea07d8f5c82df42c7f0b9be950bb0e"/></dir></dir></dir><dir name="Product"><file name="Action.php" hash="6cb738d6a133a99d0004cad23fed84e5"/><file name="Api.php" hash="630a4b1ae11395b260a22ad880098573"/><dir name="Attribute"><file name="Api.php" hash="f6c53d7a8988119f2f57bfce34dfd1d2"/><dir name="Set"><file name="Api.php" hash="112da5255f9e73b0bc715bccf5c6103f"/></dir><dir name="Media"><file name="Api.php" hash="c8fde457de5a6c59d345f3eed49d24bb"/></dir></dir></dir><dir name="Resource"><file name="Matching.php" hash="790d70f09cc175f643eccdfff754d92c"/><file name="Product.php" hash="e04d66d258b01579e4e6301a01f70771"/><file name="Setup.php" hash="5ce8cb51734c03b947d37a0eff1b7117"/><file name="Sku.php" hash="21379417a6a30c33f74f0a5ffbdfbac7"/><dir name="Carrier"><file name="Volumerate.php" hash="6763c1a02ff9750fd5d8eca703da05dd"/><dir name="Volumerate"><file name="Collection.php" hash="a5e5852a7d58fa31cb49ef7e4c1e38cf"/></dir></dir><dir name="Product"><file name="Collection.php" hash="5e09f3e940fa105aecb8a74bdde295ac"/></dir><dir name="Cart"><file name="Item.php" hash="3e1cbab71c91eca69f225668d55f3d0d"/></dir><dir name="Entity"><file name="Attribute.php" hash="14461aa0ae2e032b9efb16ebf23096af"/></dir><dir name="Order"><file name="Transaction.php" hash="16b62fc85e4b68443941c8212054cce7"/></dir></dir><dir name="Cart"><file name="Api.php" hash="81e07144d21f9cd655abe29732bd4fa7"/><file name="Item.php" hash="84ad9830e7e50a55e28fcd4105521a91"/><dir name="Payment"><file name="Api.php" hash="b9253dd46ee980e322d10be6b7b0ffd7"/></dir></dir><dir name="Order"><file name="Api.php" hash="3d65404a24ab282eee8764d0c77ccaa3"/><file name="Transaction.php" hash="0666f26f229b11f30a1db2dfd6e1bf77"/><dir name="Shipment"><file name="Api.php" hash="f7ac72e14810d9af0ab1f876b57e00b9"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="bceda356fa43b9f5bfc7ab0ea91bafca"/><file name="api.xml" hash="e69c9b6a59cb2bcd4324b53d43bd7440"/><file name="config.xml" hash="1e0e76c76b881d080eceb836b50e5ef7"/><file name="system.xml" hash="0d907826800bab7f4acb4379f53d5483"/></dir></dir></dir><dir name="Hackathon"><dir name="PSR0Autoloader"><dir name="Model"><file name="Observer.php" hash="27ff6168c7057b3d116915c50e34c0a6"/><file name="SplAutoloader.php" hash="ca80992ff765e7fa88c507976205f7e2"/></dir><dir name="etc"><file name="config.xml" hash="4b76d9de1d114e8bf5dfef6fae75d973"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Hackathon_PSR0Autoloader.xml" hash="87095bbf80d16f7e97304317761690dd"/><file name="MVentory_API.xml" hash="3002a36d0a49a782ead45dc5bf2d885a"/></dir></dir></dir><dir name="lib"><dir name="Dropbox"><file name="AppInfo.php" hash="b08006228ca38ac11c1a431646536ad9"/><file name="AppInfoLoadException.php" hash="06360c81e5ceafe6d029a72e0d38a58a"/><file name="ArrayEntryStore.php" hash="abfcab905705695de35004a314b05ec0"/><file name="AuthBase.php" hash="b0ac3fdae57cb61152d0f60066cd1e77"/><file name="AuthInfo.php" hash="3166cd194c72d1951d80bb1f7cc572f8"/><file name="AuthInfoLoadException.php" hash="4435a95cc3ad35471b1491834d3462f2"/><file name="Checker.php" hash="7433c56c1a9b53f918a5ad66d3844caf"/><file name="Client.php" hash="1c8fbbf62477bfba8ba7892f624604ef"/><file name="Curl.php" hash="9ff4836a05237b7990eac9a16a6a97ff"/><file name="CurlStreamRelay.php" hash="99b9d4b311110bbef6455cc3769585fc"/><file name="DeserializeException.php" hash="bb74de5ce4ad24ed03efabe52604a300"/><file name="DropboxMetadataHeaderCatcher.php" hash="608e493bbc560cb5d89804b831b38c43"/><file name="Exception.php" hash="1c55eda1bc2e9fb753c1f8f32b95c2e9"/><file name="Host.php" hash="c46c786726fc59c890ee2e588a7c3af6"/><file name="HttpResponse.php" hash="5cb98bfbaac3e48ffb7f1fe4ecab400c"/><file name="OAuth1AccessToken.php" hash="25ed61cb959c4446ec79552a4ce7fa77"/><file name="OAuth1Upgrader.php" hash="f3bc2125746d19bc99c0f4d8887ea3e6"/><file name="Path.php" hash="242a8243ee9f66281058979922e76c7f"/><file name="RequestUtil.php" hash="34e02972f318c99d1a2247bcbb5eeda7"/><file name="SSLTester.php" hash="2aba98547a9915608073438f6370fd15"/><file name="Security.php" hash="252e63a1a377935aa1ef3e40405d3412"/><file name="StreamReadException.php" hash="464bfb0fc75beef2b73e0c5192d0a061"/><file name="ValueStore.php" hash="c932c52f15d67c01a6e3c841f82306dd"/><file name="WebAuth.php" hash="e9e971b77ffc60544a2d9f10a5940eaf"/><file name="WebAuthBase.php" hash="1128a83bbf693e528e68a3c3893aef4f"/><file name="WebAuthNoRedirect.php" hash="87f2494ed95142f7a7e4c968fbb3e09e"/><file name="WriteMode.php" hash="22a3b70bf74feae770e4aa94915a1b1a"/><file name="app-info.json" hash="418aafd4a85212f6b96a1d180c2fd053"/><file name="autoload.php" hash="55bd4af009c75821e0416f33ef5e5fab"/><file name="strict.php" hash="b39f6f3228a1a499ac88ada9ec57ebfd"/><dir name="Exception"><file name="BadRequest.php" hash="5f0ae16a2d28c26bc66ed2e43ac8b4e1"/><file name="BadResponse.php" hash="c534a78bd9436b3ae6130bfbbdf7b8da"/><file name="BadResponseCode.php" hash="9720559b39e522a3acb6a9986b68c711"/><file name="InvalidAccessToken.php" hash="d2106a45d6366d7060d351e89fa738ed"/><file name="NetworkIO.php" hash="1278b1d756b43912f9083985df756305"/><file name="ProtocolError.php" hash="c99f595645d9fba2ddcec415483ea3af"/><file name="RetryLater.php" hash="b3d88a95ffd772f94838ab03c479f6a7"/><file name="ServerError.php" hash="ed7f0cb2dd114e9f60cf12acece68611"/></dir><dir name="certs"><file name="trusted-certs.crt" hash="847f0dc12cc8ddee1969a3ec857facb6"/></dir><dir name="WebAuthException"><file name="BadRequest.php" hash="8b2e77ef6128b2b96c20ec0847c5812b"/><file name="BadState.php" hash="039a2e21cac09f89ab6090e4f9648241"/><file name="Csrf.php" hash="3e2f878255c5366cabcc2880a7c97586"/><file name="NotApproved.php" hash="5d5db96ad13433a081a0db5dcb6d9412"/><file name="Provider.php" hash="5cf549587d95873cfb4a8e96f98d0534"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mventory"><dir name="css"><file name="styles.css" hash="6e0215c7d35145479634fd50b3b996e3"/></dir></dir></dir></dir></dir></dir></target></contents></package>
|
|
|
|
|
|
|
|
|
|
1 |
<?xml version="1.0"?>
|
2 |
+
<package><name>MVentory_API</name><version>1.6.0</version><stability>stable</stability><license>CC BY-NC-ND 4.0</license><channel>community</channel><extends></extends><summary>The easiest way to sell online: PoS, Inventory and Website control in one elegant Android application.</summary><description>mVentory is an Android application for efficient management of Magento stores. This extension provides additional API functionality and is required for the app to connect to your Magento website.
|
3 |
|
4 |
|
5 |
|
49 |
|
50 |
The extension is free for non-commercial or trial use. Please, request a FREE commercial license from info@mventory.com
|
51 |
|
52 |
+
Visit http://mventory.com for more info.</description><notes>* Bug fixes and refactoring
|
53 |
+
* Image Review moved into separate extension
|
54 |
+
* Compatibility with SUPEE-6788
|
55 |
+
* Allow category matching based on yes/no attributes
|
56 |
+
|
57 |
+
Note: Category matching has changed. All rules that match will be applied to make
|
58 |
+
assignment of a product to multiple categories easier.</notes><authors><author><name>Anatoly A. Kazantsev</name><user>anatoly</user><email>anatoly@mventory.com</email></author></authors><date>2016-02-08</date><time>3:39:22</time><compatible></compatible><dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="js"><dir name="jquery"><file name="jquery-min.js" hash="baae1db8cca4abb2265b0a6e01f1beed"/><file name="jquery-ui-custom-min.js" hash="e37cbc707c78240780a5ce641f476eb3"/></dir><dir name="mventory"><file name="matching.js" hash="2a3d6d34c60aee3f0efe94ff96fd67fc"/></dir></dir><dir name="var"><dir name="connect"><file name="MVentory_API.xml" hash="da16fa4c396c5da070270de40212966d"/></dir></dir><dir name="app"><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="mventory.xml" hash="902a95b8b78acdf528e13993eb6f5030"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="mventory.xml" hash="46b4a123593ad761f3521d5b2d4f71bb"/></dir><dir name="template"><dir name="mventory"><file name="element.phtml" hash="cb233713a0e550b2165280231c24360f"/><file name="matching.phtml" hash="8ea9c645ab56cf781c20394cb70404ba"/><file name="metadata.phtml" hash="29d84bb98175c7ca358e68f49cffa8f3"/><dir name="matching"><file name="categories.phtml" hash="ab29d30352987276065b9e933acd3fcc"/></dir><dir name="customer"><dir name="edit"><file name="js.phtml" hash="36e6fba58aa4eff02bc57e2a1d628d79"/></dir></dir><dir name="config"><file name="build-info.phtml" hash="5ac77e1eb88cf6a61c919461a5f7535a"/></dir></dir></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="MVentory"><dir name="API"><dir name="controllers"><file name="AppController.php" hash="d4ab9585f3853ec17a197aff505be7c5"/><file name="DropboxController.php" hash="e01cffec132c9ef06fdcc383d6f032ad"/><file name="ImageController.php" hash="deb5c8227a982e8a328479aa88e8f088"/><file name="QrController.php" hash="1678dcc58be2ebcb554e7dc0e7c26d80"/><file name="SwitchController.php" hash="1a00ad2aae0845faea5dbe1475e84d8f"/><dir name="Mventory"><file name="CarriersController.php" hash="01eaded7d5657734ad369dd5896a49b0"/><file name="CustomerController.php" hash="ce8499f6debad3df37bc576844f11b2b"/><file name="LogsController.php" hash="d43b0317cc5b35c360aefb7538b5ba43"/><file name="MatchingController.php" hash="5636dc831558cfa4328822f56c9eab6f"/><dir name="Catalog"><file name="ProductController.php" hash="4790e3b3d72699faf5e0c41106cb5aae"/></dir></dir></dir><dir name="Block"><file name="Matching.php" hash="6ed6bbce33870acf34a313c590707dc0"/><file name="Metadata.php" hash="4b68a44b1f064093ac94722c40c7c651"/><dir name="Setting"><file name="Buildinfo.php" hash="87e71b9cd02e61dff260609be485ca54"/><file name="Fieldset.php" hash="5b5a717192210b9726e5e86ee75949d9"/></dir><dir name="Matching"><file name="Categories.php" hash="e5ffc5a02aa37a43d90079c66eace63b"/></dir><dir name="Carrier"><dir name="Volumerate"><file name="Grid.php" hash="182f5a1eb264ec7648aae468d5faef99"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Exportrates.php" hash="ddf0f8e341ac369f17769eb0b627a2c7"/><file name="Imgcliplog.php" hash="30f64331eab18977ec25c41f3565466c"/><file name="Template.php" hash="e018ed53db7aa3d794a93f59be837518"/></dir></dir></dir></dir></dir><dir name="data"><dir name="mventory_setup"><file name="data-upgrade-20-21.php" hash="ab6622b831fc5a806d780eff2eacf75b"/><file name="data-upgrade-23-24.php" hash="9d5bd2a2745585d814d3b203008ef2ad"/><file name="data-upgrade-27-28.php" hash="6b63835702467615f932f6fbac78e97d"/><file name="data-upgrade-28-29.php" hash="db2ca19d3162d377bd1927a22f2b6be0"/></dir></dir><dir name="Helper"><file name="Barcode.php" hash="57de68928ed6da93a02a044bf9f93f86"/><file name="Data.php" hash="bff33fc3ef5c305ab13030eb5acebd2f"/><file name="Image.php" hash="cb931b138f4c90f7f52cf8303ecb6aa2"/><file name="Imageclipper.php" hash="08d96954626102448011dfdcccbccf78"/><file name="Product.php" hash="7200352ec5501528d1a8f1e9db00c65d"/><file name="String.php" hash="258c2000ce8feb070211e04816e903e3"/><dir name="Mage"><dir name="Sales"><file name="Data.php" hash="84fbc100be8baa83e5dbb5fcecccbd6b"/></dir></dir><dir name="Product"><file name="Attribute.php" hash="130bee848a2d12bc75ed07383d15c190"/><file name="Configurable.php" hash="5f5eadcb33883752a56ad306fadf32dd"/></dir></dir><dir name="sql"><dir name="mventory_setup"><file name="install-3.php" hash="7514f77abff39b3d359a59978784e275"/><file name="upgrade-10-11.php" hash="fb312c3621c87f7b2222ba56e3f83fb9"/><file name="upgrade-12-13.php" hash="aefb35e0871eafd84864f8052ff21423"/><file name="upgrade-17-18.php" hash="a06e899380dd85a175b331fe5b52f324"/><file name="upgrade-18-19.php" hash="00113090ec00f2385c78d28464871c46"/><file name="upgrade-20-21.php" hash="27d45b15f3ba21df99cd90a3750f9c79"/><file name="upgrade-21-22.php" hash="e882fef187fa158587a4451bfced7e45"/><file name="upgrade-22-23.php" hash="e67150b521f86d35027fcafcf3d6000b"/><file name="upgrade-24-25.php" hash="ef3e432929a236bed6ef0d9c19ca3db5"/><file name="upgrade-25-26.php" hash="e134738e9a55fc1691a38b5eb4cbe73e"/><file name="upgrade-26-27.php" hash="fb5e01ee89497e99426f816240791d4a"/><file name="upgrade-3-4.php" hash="9f04a747fe387598a2871cdc8c9caf87"/><file name="upgrade-8-9.php" hash="0e3e3bb76a0cd039910bf17f2956285f"/><file name="upgrade-9-10.php" hash="05ccf6ee0b530dc5bf63b5fe0bc8f044"/></dir></dir><dir name="Model"><file name="Config.php" hash="093a3ce94560ab56af1288e2b9ed3248"/><file name="Matching.php" hash="70eb93aa9425e5f3b15866288b64f769"/><file name="Observer.php" hash="13a120855a6cf9a799cbdf2e5a2a57d2"/><file name="Payment.php" hash="d2745860dfb2eca1adbc0f7b3de6fbfc"/><file name="Shipping.php" hash="043c9d12eebdff5016b84e4d86cc1e77"/><dir name="Setting"><dir name="Backend"><file name="Backupdir.php" hash="3e6f19697fbaae8b03961680524f0964"/><file name="Dbxpath.php" hash="cd9272381487b8a599a63cfe123d57b7"/></dir></dir><dir name="Dataflow"><file name="Api.php" hash="bfb1829343503354daf9db216f313976"/></dir><dir name="Category"><file name="Api.php" hash="9628dc59a845bc36a80a490ee808c338"/></dir><dir name="Carrier"><file name="Volumerate.php" hash="609709fdded050a3ac4204464ef6d922"/></dir><dir name="Stock"><dir name="Item"><file name="Api.php" hash="64473e1600fd51600853eddee75d598e"/></dir></dir><dir name="Config"><dir name="Data"><file name="Websites.php" hash="a7314efd0ca3c6adc8594893c64555aa"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Carrier"><file name="Volumerate.php" hash="2010718655ff39b4559a369403074fa4"/></dir></dir><dir name="Source"><file name="Allowedshippingtypes.php" hash="d2a6259b9278242d3acf8a0c4f34c763"/><file name="Contenttype.php" hash="e91f6a1a495f1a19e1875fbde4ed5aac"/><file name="Customers.php" hash="b3e615aa64cce43d1bb4cadbe41c2ee7"/><file name="Inputmethod.php" hash="0cdc2b42456faeffd2b86481d2a04940"/><file name="Visibility.php" hash="22a8599fb6867d2fe5887f2f9b0246cb"/><file name="Website.php" hash="b8ea07d8f5c82df42c7f0b9be950bb0e"/></dir></dir></dir><dir name="Product"><file name="Action.php" hash="6cb738d6a133a99d0004cad23fed84e5"/><file name="Api.php" hash="cf529699ca985ff88cca42b91e1a6d8b"/><dir name="Attribute"><file name="Api.php" hash="f6c53d7a8988119f2f57bfce34dfd1d2"/><dir name="Set"><file name="Api.php" hash="112da5255f9e73b0bc715bccf5c6103f"/></dir><dir name="Media"><file name="Api.php" hash="ddc699334a2d8e168de814b9a2073876"/></dir></dir></dir><dir name="Resource"><file name="Matching.php" hash="790d70f09cc175f643eccdfff754d92c"/><file name="Product.php" hash="e04d66d258b01579e4e6301a01f70771"/><file name="Setup.php" hash="5ce8cb51734c03b947d37a0eff1b7117"/><file name="Sku.php" hash="21379417a6a30c33f74f0a5ffbdfbac7"/><dir name="Carrier"><file name="Volumerate.php" hash="6763c1a02ff9750fd5d8eca703da05dd"/><dir name="Volumerate"><file name="Collection.php" hash="a5e5852a7d58fa31cb49ef7e4c1e38cf"/></dir></dir><dir name="Product"><file name="Collection.php" hash="5e09f3e940fa105aecb8a74bdde295ac"/></dir><dir name="Cart"><file name="Item.php" hash="3e1cbab71c91eca69f225668d55f3d0d"/></dir><dir name="Entity"><file name="Attribute.php" hash="14461aa0ae2e032b9efb16ebf23096af"/></dir><dir name="Order"><file name="Transaction.php" hash="16b62fc85e4b68443941c8212054cce7"/></dir></dir><dir name="Cart"><file name="Api.php" hash="ad1f00db94427ebae92202f1b51ca28f"/><file name="Item.php" hash="84ad9830e7e50a55e28fcd4105521a91"/><dir name="Payment"><file name="Api.php" hash="b9253dd46ee980e322d10be6b7b0ffd7"/></dir></dir><dir name="Order"><file name="Api.php" hash="3d65404a24ab282eee8764d0c77ccaa3"/><file name="Transaction.php" hash="0666f26f229b11f30a1db2dfd6e1bf77"/><dir name="Shipment"><file name="Api.php" hash="f7ac72e14810d9af0ab1f876b57e00b9"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="bceda356fa43b9f5bfc7ab0ea91bafca"/><file name="api.xml" hash="e69c9b6a59cb2bcd4324b53d43bd7440"/><file name="config.xml" hash="2ae5913b9fac82ee527fc406631aaaa7"/><file name="system.xml" hash="16d4a80c430b1aed4575e037d9c859e4"/></dir></dir></dir><dir name="Hackathon"><dir name="PSR0Autoloader"><dir name="Model"><file name="Observer.php" hash="27ff6168c7057b3d116915c50e34c0a6"/><file name="SplAutoloader.php" hash="ca80992ff765e7fa88c507976205f7e2"/></dir><dir name="etc"><file name="config.xml" hash="4b76d9de1d114e8bf5dfef6fae75d973"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Hackathon_PSR0Autoloader.xml" hash="87095bbf80d16f7e97304317761690dd"/><file name="MVentory_API.xml" hash="3002a36d0a49a782ead45dc5bf2d885a"/></dir></dir></dir><dir name="lib"><dir name="Dropbox"><file name="AppInfo.php" hash="b08006228ca38ac11c1a431646536ad9"/><file name="AppInfoLoadException.php" hash="06360c81e5ceafe6d029a72e0d38a58a"/><file name="ArrayEntryStore.php" hash="abfcab905705695de35004a314b05ec0"/><file name="AuthBase.php" hash="b0ac3fdae57cb61152d0f60066cd1e77"/><file name="AuthInfo.php" hash="3166cd194c72d1951d80bb1f7cc572f8"/><file name="AuthInfoLoadException.php" hash="4435a95cc3ad35471b1491834d3462f2"/><file name="Checker.php" hash="7433c56c1a9b53f918a5ad66d3844caf"/><file name="Client.php" hash="1c8fbbf62477bfba8ba7892f624604ef"/><file name="Curl.php" hash="9ff4836a05237b7990eac9a16a6a97ff"/><file name="CurlStreamRelay.php" hash="99b9d4b311110bbef6455cc3769585fc"/><file name="DeserializeException.php" hash="bb74de5ce4ad24ed03efabe52604a300"/><file name="DropboxMetadataHeaderCatcher.php" hash="608e493bbc560cb5d89804b831b38c43"/><file name="Exception.php" hash="1c55eda1bc2e9fb753c1f8f32b95c2e9"/><file name="Host.php" hash="c46c786726fc59c890ee2e588a7c3af6"/><file name="HttpResponse.php" hash="5cb98bfbaac3e48ffb7f1fe4ecab400c"/><file name="OAuth1AccessToken.php" hash="25ed61cb959c4446ec79552a4ce7fa77"/><file name="OAuth1Upgrader.php" hash="f3bc2125746d19bc99c0f4d8887ea3e6"/><file name="Path.php" hash="242a8243ee9f66281058979922e76c7f"/><file name="RequestUtil.php" hash="34e02972f318c99d1a2247bcbb5eeda7"/><file name="SSLTester.php" hash="2aba98547a9915608073438f6370fd15"/><file name="Security.php" hash="252e63a1a377935aa1ef3e40405d3412"/><file name="StreamReadException.php" hash="464bfb0fc75beef2b73e0c5192d0a061"/><file name="ValueStore.php" hash="c932c52f15d67c01a6e3c841f82306dd"/><file name="WebAuth.php" hash="e9e971b77ffc60544a2d9f10a5940eaf"/><file name="WebAuthBase.php" hash="1128a83bbf693e528e68a3c3893aef4f"/><file name="WebAuthNoRedirect.php" hash="87f2494ed95142f7a7e4c968fbb3e09e"/><file name="WriteMode.php" hash="22a3b70bf74feae770e4aa94915a1b1a"/><file name="app-info.json" hash="418aafd4a85212f6b96a1d180c2fd053"/><file name="autoload.php" hash="55bd4af009c75821e0416f33ef5e5fab"/><file name="strict.php" hash="b39f6f3228a1a499ac88ada9ec57ebfd"/><dir name="Exception"><file name="BadRequest.php" hash="5f0ae16a2d28c26bc66ed2e43ac8b4e1"/><file name="BadResponse.php" hash="c534a78bd9436b3ae6130bfbbdf7b8da"/><file name="BadResponseCode.php" hash="9720559b39e522a3acb6a9986b68c711"/><file name="InvalidAccessToken.php" hash="d2106a45d6366d7060d351e89fa738ed"/><file name="NetworkIO.php" hash="1278b1d756b43912f9083985df756305"/><file name="ProtocolError.php" hash="c99f595645d9fba2ddcec415483ea3af"/><file name="RetryLater.php" hash="b3d88a95ffd772f94838ab03c479f6a7"/><file name="ServerError.php" hash="ed7f0cb2dd114e9f60cf12acece68611"/></dir><dir name="certs"><file name="trusted-certs.crt" hash="847f0dc12cc8ddee1969a3ec857facb6"/></dir><dir name="WebAuthException"><file name="BadRequest.php" hash="8b2e77ef6128b2b96c20ec0847c5812b"/><file name="BadState.php" hash="039a2e21cac09f89ab6090e4f9648241"/><file name="Csrf.php" hash="3e2f878255c5366cabcc2880a7c97586"/><file name="NotApproved.php" hash="5d5db96ad13433a081a0db5dcb6d9412"/><file name="Provider.php" hash="5cf549587d95873cfb4a8e96f98d0534"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mventory"><dir name="css"><file name="styles.css" hash="f601b571e9b565d5d78a8de48c56038d"/></dir></dir></dir></dir></dir></dir></target></contents></package>
|
skin/adminhtml/default/default/mventory/css/styles.css
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* See http://mventory.com/legal/licensing/ for other licensing options.
|
11 |
*
|
12 |
* @package MVentory/API
|
13 |
-
* @copyright Copyright (c) 2014 mVentory Ltd. (http://mventory.com)
|
14 |
* @license http://creativecommons.org/licenses/by-nc-nd/4.0/
|
15 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
16 |
*/
|
@@ -198,6 +198,7 @@
|
|
198 |
#mventory-categories-wrapper {
|
199 |
display: none;
|
200 |
position: absolute;
|
|
|
201 |
}
|
202 |
|
203 |
#mventory-matching-attribute-messages {
|
@@ -213,25 +214,39 @@
|
|
213 |
list-style: disc inside;
|
214 |
}
|
215 |
|
216 |
-
|
217 |
-
|
|
|
|
|
218 |
}
|
219 |
|
220 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
margin: 0 0 10px;
|
222 |
}
|
223 |
|
224 |
-
.
|
|
|
|
|
|
|
|
|
|
|
225 |
list-style: decimal inside;
|
226 |
margin: 0 0 0.5em;
|
227 |
}
|
228 |
|
229 |
-
|
230 |
-
|
231 |
-
display: inline-block;
|
232 |
-
margin: 0;
|
233 |
}
|
234 |
|
235 |
-
|
236 |
-
|
237 |
}
|
10 |
* See http://mventory.com/legal/licensing/ for other licensing options.
|
11 |
*
|
12 |
* @package MVentory/API
|
13 |
+
* @copyright Copyright (c) 2014-2015 mVentory Ltd. (http://mventory.com)
|
14 |
* @license http://creativecommons.org/licenses/by-nc-nd/4.0/
|
15 |
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
16 |
*/
|
198 |
#mventory-categories-wrapper {
|
199 |
display: none;
|
200 |
position: absolute;
|
201 |
+
z-index: 1000;
|
202 |
}
|
203 |
|
204 |
#mventory-matching-attribute-messages {
|
214 |
list-style: disc inside;
|
215 |
}
|
216 |
|
217 |
+
/* System config */
|
218 |
+
.section-config .value .buttons-set {
|
219 |
+
display: inline-block;
|
220 |
+
margin: 0;
|
221 |
}
|
222 |
|
223 |
+
#mventory-logo {
|
224 |
+
display: block;
|
225 |
+
}
|
226 |
+
|
227 |
+
.mventory-field-fixed-width {
|
228 |
+
width: 570px;
|
229 |
+
}
|
230 |
+
|
231 |
+
|
232 |
+
.mventory-field-template h4 {
|
233 |
margin: 0 0 10px;
|
234 |
}
|
235 |
|
236 |
+
.mventory-field-template ul {
|
237 |
+
list-style: disc inside;
|
238 |
+
margin: 0 0 0.5em;
|
239 |
+
}
|
240 |
+
|
241 |
+
.mventory-field-template ol {
|
242 |
list-style: decimal inside;
|
243 |
margin: 0 0 0.5em;
|
244 |
}
|
245 |
|
246 |
+
.mventory-field-template ol ul {
|
247 |
+
margin: 0 0 0 1.7em;
|
|
|
|
|
248 |
}
|
249 |
|
250 |
+
.fieldset-footer {
|
251 |
+
margin: 20px 5px 5px;;
|
252 |
}
|
var/connect/MVentory_API.xml
CHANGED
@@ -35,10 +35,15 @@ The extension is free for non-commercial or trial use. Please, request a FREE co
|
|
35 |
Visit http://mventory.com for more info.</description>
|
36 |
<license>CC BY-NC-ND 4.0</license>
|
37 |
<license_uri>http://creativecommons.org/licenses/by-nc-nd/4.0/</license_uri>
|
38 |
-
<version>1.
|
39 |
<stability>stable</stability>
|
40 |
-
<notes>*
|
41 |
-
*
|
|
|
|
|
|
|
|
|
|
|
42 |
<authors>
|
43 |
<name>
|
44 |
<name>Anatoly A. Kazantsev</name>
|
35 |
Visit http://mventory.com for more info.</description>
|
36 |
<license>CC BY-NC-ND 4.0</license>
|
37 |
<license_uri>http://creativecommons.org/licenses/by-nc-nd/4.0/</license_uri>
|
38 |
+
<version>1.6.0</version>
|
39 |
<stability>stable</stability>
|
40 |
+
<notes>* Bug fixes and refactoring
|
41 |
+
* Image Review moved into separate extension
|
42 |
+
* Compatibility with SUPEE-6788
|
43 |
+
* Allow category matching based on yes/no attributes
|
44 |
+
|
45 |
+
Note: Category matching has changed. All rules that match will be applied to mak
|
46 |
+
assignment of a product to multiple categories easier.</notes>
|
47 |
<authors>
|
48 |
<name>
|
49 |
<name>Anatoly A. Kazantsev</name>
|