Version Notes
* Add additional data (price, QTY, images, etc) to output of product.list API call
* Other small bug fixies and improvements
Download this release
Release Info
| Developer | Anatoly A. Kazantsev |
| Extension | MVentory_API |
| Version | 1.5.0 |
| Comparing to | |
| See all releases | |
Code changes from version 1.4.1 to 1.5.0
- app/code/community/MVentory/API/Model/Observer.php +3 -1
- app/code/community/MVentory/API/Model/Product/Api.php +321 -80
- app/code/community/MVentory/API/Model/Resource/Product/Collection.php +55 -0
- app/code/community/MVentory/API/controllers/AppController.php +6 -5
- app/design/adminhtml/default/default/template/mventory/config/build-info.phtml +2 -2
- package.xml +3 -3
- var/connect/MVentory_API.xml +6 -10
app/code/community/MVentory/API/Model/Observer.php
CHANGED
|
@@ -233,7 +233,9 @@ EOT;
|
|
| 233 |
|
| 234 |
$msg = $helper->__(
|
| 235 |
self::__CONFIG_URL,
|
| 236 |
-
$store->getBaseUrl(
|
|
|
|
|
|
|
| 237 |
round($period / 3600)
|
| 238 |
);
|
| 239 |
|
| 233 |
|
| 234 |
$msg = $helper->__(
|
| 235 |
self::__CONFIG_URL,
|
| 236 |
+
$store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK, true)
|
| 237 |
+
. 'mventory-key/'
|
| 238 |
+
. urlencode($key),
|
| 239 |
round($period / 3600)
|
| 240 |
);
|
| 241 |
|
app/code/community/MVentory/API/Model/Product/Api.php
CHANGED
|
@@ -14,7 +14,7 @@
|
|
| 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 |
|
|
@@ -36,6 +36,12 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 36 |
// Add to whitelist in MVentory_API_Helper_Product_Attribute
|
| 37 |
'status' => true,
|
| 38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
'stock_data' => true
|
| 40 |
);
|
| 41 |
|
|
@@ -75,7 +81,7 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 75 |
$productId = $product->getId();
|
| 76 |
|
| 77 |
$_result = array(
|
| 78 |
-
'
|
| 79 |
'sku' => $product->getSku(),
|
| 80 |
'set' => $product->getAttributeSetId(),
|
| 81 |
'websites' => $product->getWebsiteIds(),
|
|
@@ -104,7 +110,7 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 104 |
$_result,
|
| 105 |
array_merge(
|
| 106 |
array(
|
| 107 |
-
'
|
| 108 |
'set' => true,
|
| 109 |
'websites' => true,
|
| 110 |
'url_path' => true,
|
|
@@ -120,6 +126,11 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 120 |
)
|
| 121 |
);
|
| 122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
$stockItem = Mage::getModel('mventory/stock_item_api');
|
| 124 |
|
| 125 |
$_result = $stockItem->items($productId);
|
|
@@ -127,60 +138,28 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 127 |
if (isset($_result[0]))
|
| 128 |
$result = array_merge($result, $_result[0]);
|
| 129 |
|
| 130 |
-
$
|
| 131 |
-
= Mage::getModel('mventory/product_attribute_media_api');
|
| 132 |
-
|
| 133 |
-
$baseUrlPath = Mage_Core_Model_Store::XML_PATH_UNSECURE_BASE_URL;
|
| 134 |
-
|
| 135 |
-
$mediaConfig = Mage::getSingleton('catalog/product_media_config');
|
| 136 |
|
| 137 |
-
$
|
| 138 |
-
|
| 139 |
-
. 'media/'
|
| 140 |
-
. $mediaConfig->getBaseMediaUrlAddition();
|
| 141 |
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
if ($siblingIds = $helper->getSiblingsIds($productId)) {
|
| 157 |
-
$attrs = Mage::getModel('mventory/product_attribute_api')
|
| 158 |
-
->fullInfoList($result['set']);
|
| 159 |
-
|
| 160 |
-
foreach ($attrs as $attr)
|
| 161 |
-
if ($attr['is_configurable'])
|
| 162 |
-
break;
|
| 163 |
-
|
| 164 |
-
$siblings = Mage::getResourceModel('catalog/product_collection')
|
| 165 |
-
->addAttributeToSelect('price')
|
| 166 |
-
->addAttributeToSelect('name')
|
| 167 |
-
->addAttributeToSelect($attr['attribute_code'])
|
| 168 |
-
->addIdFilter($siblingIds)
|
| 169 |
-
->addStoreFilter($storeId)
|
| 170 |
-
->setFlag('require_stock_items');
|
| 171 |
-
|
| 172 |
-
foreach ($siblings as $sibling)
|
| 173 |
-
$result['siblings'][] = array(
|
| 174 |
-
'product_id' => $sibling->getId(),
|
| 175 |
-
'sku' => $sibling->getSku(),
|
| 176 |
-
'name' => $sibling->getName(),
|
| 177 |
-
'price' => $sibling->getPrice(),
|
| 178 |
-
'qty' => $sibling->getStockItem()->getQty(),
|
| 179 |
-
$attr['attribute_code'] => $sibling->getData($attr['attribute_code'])
|
| 180 |
-
);
|
| 181 |
}
|
| 182 |
|
| 183 |
-
$product = new Varien_Object($result);
|
|
|
|
| 184 |
|
| 185 |
Mage::dispatchEvent(
|
| 186 |
'mventory_api_product_info',
|
|
@@ -191,7 +170,7 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 191 |
}
|
| 192 |
|
| 193 |
public function limitedList ($name = null, $categoryId = null, $page = 1) {
|
| 194 |
-
$helper = Mage::helper('mventory');
|
| 195 |
$storeId = $helper->getCurrentStoreId();
|
| 196 |
|
| 197 |
$limit = (int) Mage::getStoreConfig(
|
|
@@ -199,6 +178,15 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 199 |
$storeId
|
| 200 |
);
|
| 201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 202 |
if ($categoryId) {
|
| 203 |
$category = Mage::getModel('catalog/category')
|
| 204 |
->setStoreId($storeId)
|
|
@@ -207,11 +195,7 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 207 |
if (!$category->getId())
|
| 208 |
$this->_fault('category_not_exists');
|
| 209 |
|
| 210 |
-
$collection
|
| 211 |
-
} else {
|
| 212 |
-
$collection = Mage::getModel('catalog/product')
|
| 213 |
-
->getCollection()
|
| 214 |
-
->addStoreFilter($storeId);
|
| 215 |
}
|
| 216 |
|
| 217 |
if ($name) {
|
|
@@ -229,31 +213,86 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 229 |
'left'
|
| 230 |
);
|
| 231 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 232 |
|
| 233 |
-
$
|
| 234 |
-
|
| 235 |
-
->
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 240 |
|
| 241 |
if (!$name)
|
| 242 |
-
$collection
|
| 243 |
-
|
|
|
|
|
|
|
| 244 |
|
| 245 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
|
| 247 |
-
|
| 248 |
-
$result['items']
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
|
| 255 |
-
|
| 256 |
-
|
|
|
|
|
|
|
|
|
|
| 257 |
|
| 258 |
return $helper->prepareApiResponse($result);
|
| 259 |
}
|
|
@@ -294,12 +333,20 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 294 |
$website
|
| 295 |
);
|
| 296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 297 |
//Use admin store ID to save values of attributes in the default scope
|
| 298 |
$id = $this->create(
|
| 299 |
$type,
|
| 300 |
$set,
|
| 301 |
$sku,
|
| 302 |
-
$
|
| 303 |
Mage_Core_Model_App::ADMIN_STORE_ID
|
| 304 |
);
|
| 305 |
|
|
@@ -622,7 +669,8 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 622 |
$product->setAttributeSetId($newSet);
|
| 623 |
}
|
| 624 |
|
| 625 |
-
$skus = isset($productData['additional_sku'])
|
|
|
|
| 626 |
? (array) $productData['additional_sku']
|
| 627 |
: false;
|
| 628 |
|
|
@@ -815,4 +863,197 @@ class MVentory_API_Model_Product_Api extends Mage_Catalog_Model_Product_Api {
|
|
| 815 |
)
|
| 816 |
);
|
| 817 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 818 |
}
|
| 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 |
|
| 36 |
// Add to whitelist in MVentory_API_Helper_Product_Attribute
|
| 37 |
'status' => true,
|
| 38 |
|
| 39 |
+
/**
|
| 40 |
+
* @todo remove it after API code will be changed to update product
|
| 41 |
+
* visibility directly in product but not via update call
|
| 42 |
+
*/
|
| 43 |
+
'visibility' => true,
|
| 44 |
+
|
| 45 |
'stock_data' => true
|
| 46 |
);
|
| 47 |
|
| 81 |
$productId = $product->getId();
|
| 82 |
|
| 83 |
$_result = array(
|
| 84 |
+
'id' => $productId,
|
| 85 |
'sku' => $product->getSku(),
|
| 86 |
'set' => $product->getAttributeSetId(),
|
| 87 |
'websites' => $product->getWebsiteIds(),
|
| 110 |
$_result,
|
| 111 |
array_merge(
|
| 112 |
array(
|
| 113 |
+
'id' => true,
|
| 114 |
'set' => true,
|
| 115 |
'websites' => true,
|
| 116 |
'url_path' => true,
|
| 126 |
)
|
| 127 |
);
|
| 128 |
|
| 129 |
+
/**
|
| 130 |
+
* @todo Remove after apps will be updated
|
| 131 |
+
*/
|
| 132 |
+
$result['product_id'] = $productId;
|
| 133 |
+
|
| 134 |
$stockItem = Mage::getModel('mventory/stock_item_api');
|
| 135 |
|
| 136 |
$_result = $stockItem->items($productId);
|
| 138 |
if (isset($_result[0]))
|
| 139 |
$result = array_merge($result, $_result[0]);
|
| 140 |
|
| 141 |
+
$result['images'] = $this->_getImages($productId, $storeId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 142 |
|
| 143 |
+
if ($attr = $helper->getConfigurable($result['set'])) {
|
| 144 |
+
$_tmp = array($productId => $result);
|
|
|
|
|
|
|
| 145 |
|
| 146 |
+
$this->_addSiblings(
|
| 147 |
+
$_tmp,
|
| 148 |
+
array($result['set'] => $attr),
|
| 149 |
+
array(
|
| 150 |
+
'name',
|
| 151 |
+
'price',
|
| 152 |
+
'special_price',
|
| 153 |
+
'special_from_date',
|
| 154 |
+
'special_to_date'
|
| 155 |
+
),
|
| 156 |
+
$storeId,
|
| 157 |
+
array('load_image' => true)
|
| 158 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
}
|
| 160 |
|
| 161 |
+
$product = new Varien_Object(isset($_tmp) ? $_tmp[$productId] : $result);
|
| 162 |
+
unset($_tmp);
|
| 163 |
|
| 164 |
Mage::dispatchEvent(
|
| 165 |
'mventory_api_product_info',
|
| 170 |
}
|
| 171 |
|
| 172 |
public function limitedList ($name = null, $categoryId = null, $page = 1) {
|
| 173 |
+
$helper = Mage::helper('mventory/product_attribute');
|
| 174 |
$storeId = $helper->getCurrentStoreId();
|
| 175 |
|
| 176 |
$limit = (int) Mage::getStoreConfig(
|
| 178 |
$storeId
|
| 179 |
);
|
| 180 |
|
| 181 |
+
$collection = Mage::getResourceModel('mventory/product_collection')
|
| 182 |
+
->addAttributeToFilter(
|
| 183 |
+
'type_id',
|
| 184 |
+
Mage_Catalog_Model_Product_Type::TYPE_SIMPLE
|
| 185 |
+
)
|
| 186 |
+
->setStoreId($storeId)
|
| 187 |
+
->addStoreFilter($storeId)
|
| 188 |
+
->setPage($page, $limit);
|
| 189 |
+
|
| 190 |
if ($categoryId) {
|
| 191 |
$category = Mage::getModel('catalog/category')
|
| 192 |
->setStoreId($storeId)
|
| 195 |
if (!$category->getId())
|
| 196 |
$this->_fault('category_not_exists');
|
| 197 |
|
| 198 |
+
$collection->addCategoryFilter($category);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 199 |
}
|
| 200 |
|
| 201 |
if ($name) {
|
| 213 |
'left'
|
| 214 |
);
|
| 215 |
}
|
| 216 |
+
else
|
| 217 |
+
$collection->setOrder(
|
| 218 |
+
'updated_at',
|
| 219 |
+
Varien_Data_Collection::SORT_ORDER_DESC
|
| 220 |
+
);
|
| 221 |
|
| 222 |
+
$result = array(
|
| 223 |
+
'items' => array(),
|
| 224 |
+
'current_page' => $collection->getCurPage(),
|
| 225 |
+
'last_page' => (int) $collection->getLastPageNumber()
|
| 226 |
+
);
|
| 227 |
+
|
| 228 |
+
//Check if there's products which pass collection filters
|
| 229 |
+
if (!$collection->getSize())
|
| 230 |
+
return $helper->prepareApiResponse($result);
|
| 231 |
+
|
| 232 |
+
//List of product attributes which should be returned in the result
|
| 233 |
+
$_attrs = array(
|
| 234 |
+
'name',
|
| 235 |
+
'price',
|
| 236 |
+
'special_price',
|
| 237 |
+
'special_from_date',
|
| 238 |
+
'special_to_date'
|
| 239 |
+
);
|
| 240 |
+
|
| 241 |
+
//Get product IDs and attribute set IDs for the collection. We will use
|
| 242 |
+
//loaded IDs later to load product data
|
| 243 |
+
$ids = $collection->getIdsAndSets();
|
| 244 |
+
|
| 245 |
+
//Collect attrribute set IDs and their configurable attributes to
|
| 246 |
+
//get list of attributes which should be loaded in collection.
|
| 247 |
+
//Also this data is used to add data of sibling products.
|
| 248 |
+
$confAttrs = $confCodes = array();
|
| 249 |
+
|
| 250 |
+
foreach ($ids as $id => $setId)
|
| 251 |
+
if (!isset($confAttrs[$setId])
|
| 252 |
+
&& $confAttr = $helper->getConfigurable($setId)) {
|
| 253 |
+
|
| 254 |
+
$confAttrs[$setId] = $confAttr;
|
| 255 |
+
$confCodes[] = $confAttr->getAttributeCode();
|
| 256 |
+
}
|
| 257 |
+
|
| 258 |
+
unset($code);
|
| 259 |
+
|
| 260 |
+
//Get full list of attributes which should be returned in the result
|
| 261 |
+
$attrs = array_merge($_attrs, $confCodes);
|
| 262 |
+
|
| 263 |
+
$collection = Mage::getResourceModel('mventory/product_collection')
|
| 264 |
+
->addIdFilter(array_keys($ids))
|
| 265 |
+
->setStoreId($storeId)
|
| 266 |
+
->addAttributeToSelect($attrs)
|
| 267 |
+
->setFlag('require_stock_items', true);
|
| 268 |
|
| 269 |
if (!$name)
|
| 270 |
+
$collection->setOrder(
|
| 271 |
+
'updated_at',
|
| 272 |
+
Varien_Data_Collection::SORT_ORDER_DESC
|
| 273 |
+
);
|
| 274 |
|
| 275 |
+
foreach ($collection as $id => $product)
|
| 276 |
+
$result['items'][$id] = $this->_getProductData(
|
| 277 |
+
$product,
|
| 278 |
+
$attrs,
|
| 279 |
+
$storeId,
|
| 280 |
+
array('load_image' => false)
|
| 281 |
+
);
|
| 282 |
|
| 283 |
+
$this->_addSiblings(
|
| 284 |
+
$result['items'],
|
| 285 |
+
$confAttrs,
|
| 286 |
+
$_attrs,
|
| 287 |
+
$storeId,
|
| 288 |
+
array('load_image' => false)
|
| 289 |
+
);
|
| 290 |
|
| 291 |
+
/**
|
| 292 |
+
* @todo [COMPAT] reset keys temporarely, because old app expects plain
|
| 293 |
+
* array
|
| 294 |
+
*/
|
| 295 |
+
$result['items'] = array_values($result['items']);
|
| 296 |
|
| 297 |
return $helper->prepareApiResponse($result);
|
| 298 |
}
|
| 333 |
$website
|
| 334 |
);
|
| 335 |
|
| 336 |
+
Mage::dispatchEvent(
|
| 337 |
+
'mventory_api_product_create',
|
| 338 |
+
array(
|
| 339 |
+
'product' => ($product = new Varien_Object($data)),
|
| 340 |
+
'website' => $website
|
| 341 |
+
)
|
| 342 |
+
);
|
| 343 |
+
|
| 344 |
//Use admin store ID to save values of attributes in the default scope
|
| 345 |
$id = $this->create(
|
| 346 |
$type,
|
| 347 |
$set,
|
| 348 |
$sku,
|
| 349 |
+
$product->getData(),
|
| 350 |
Mage_Core_Model_App::ADMIN_STORE_ID
|
| 351 |
);
|
| 352 |
|
| 669 |
$product->setAttributeSetId($newSet);
|
| 670 |
}
|
| 671 |
|
| 672 |
+
$skus = (isset($productData['additional_sku'])
|
| 673 |
+
&& $productData['additional_sku'])
|
| 674 |
? (array) $productData['additional_sku']
|
| 675 |
: false;
|
| 676 |
|
| 863 |
)
|
| 864 |
);
|
| 865 |
}
|
| 866 |
+
|
| 867 |
+
/**
|
| 868 |
+
* Return prepared product data for list API call. Also loads and prepares
|
| 869 |
+
* images data.
|
| 870 |
+
*
|
| 871 |
+
* @param Mage_Catalog_Model_Product $product
|
| 872 |
+
* Product model
|
| 873 |
+
*
|
| 874 |
+
* @param array $attrs
|
| 875 |
+
* List of attributes which data should be included
|
| 876 |
+
*
|
| 877 |
+
* @param int $storeId
|
| 878 |
+
* Current store ID
|
| 879 |
+
*
|
| 880 |
+
* @param array $params
|
| 881 |
+
* Additional parameters
|
| 882 |
+
*
|
| 883 |
+
* @return array
|
| 884 |
+
* Prepared product data
|
| 885 |
+
*/
|
| 886 |
+
protected function _getProductData ($product, $attrs, $storeId, $params) {
|
| 887 |
+
$stock = $product->getStockItem();
|
| 888 |
+
|
| 889 |
+
$id = $product->getId();
|
| 890 |
+
$qty = $stock->getQty();
|
| 891 |
+
|
| 892 |
+
return array_merge(
|
| 893 |
+
array(
|
| 894 |
+
'id' => $id,
|
| 895 |
+
'sku' => $product->getSku(),
|
| 896 |
+
'set' => $product->getAttributeSetId(),
|
| 897 |
+
'category_ids' => $product->getCategoryIds(),
|
| 898 |
+
'stock' => array(
|
| 899 |
+
'qty' => $qty,
|
| 900 |
+
'is_in_stock' => $stock->getIsInStock(),
|
| 901 |
+
'manage_stock' => $stock->getManageStock(),
|
| 902 |
+
'is_qty_decimal' => $stock->getIsQtyDecimal()
|
| 903 |
+
),
|
| 904 |
+
'images' => $this->_getImages($id, $storeId, $params['load_image']),
|
| 905 |
+
|
| 906 |
+
/**
|
| 907 |
+
* @todo Remove after apps will be updated
|
| 908 |
+
*/
|
| 909 |
+
'product_id' => $id,
|
| 910 |
+
'type' => $product->getTypeId(),
|
| 911 |
+
'qty' => $qty
|
| 912 |
+
),
|
| 913 |
+
array_intersect_key($product->getData(), array_flip($attrs))
|
| 914 |
+
);
|
| 915 |
+
}
|
| 916 |
+
|
| 917 |
+
/**
|
| 918 |
+
* Add data of sibling products to the supplied list of product data
|
| 919 |
+
*
|
| 920 |
+
* @param array $products
|
| 921 |
+
* Prepared product data
|
| 922 |
+
*
|
| 923 |
+
* @param array $confAttrs
|
| 924 |
+
* List of attribute sets IDs anf their configurable attributes, where
|
| 925 |
+
* key is ID of attribute set and value is attribute model
|
| 926 |
+
*
|
| 927 |
+
* @param array $_attrs
|
| 928 |
+
* List of attributes which data should be included
|
| 929 |
+
*
|
| 930 |
+
* @param int $storeId
|
| 931 |
+
* Current store ID
|
| 932 |
+
*
|
| 933 |
+
* @param array $params
|
| 934 |
+
* Additional parameters
|
| 935 |
+
*/
|
| 936 |
+
protected function _addSiblings (&$products,
|
| 937 |
+
$confAttrs,
|
| 938 |
+
$_attrs,
|
| 939 |
+
$storeId,
|
| 940 |
+
$params) {
|
| 941 |
+
|
| 942 |
+
$helper = Mage::helper('mventory/product_configurable');
|
| 943 |
+
|
| 944 |
+
foreach ($products as &$product) {
|
| 945 |
+
$setId = $product['set'];
|
| 946 |
+
|
| 947 |
+
$product['siblings'] = array();
|
| 948 |
+
|
| 949 |
+
if (!isset($confAttrs[$setId]))
|
| 950 |
+
continue;
|
| 951 |
+
|
| 952 |
+
$attr = $confAttrs[$setId];
|
| 953 |
+
$code = $attr->getAttributeCode();
|
| 954 |
+
|
| 955 |
+
if (!(isset($product[$code]) && $product[$code]))
|
| 956 |
+
continue;
|
| 957 |
+
|
| 958 |
+
if (!$siblingIds = $helper->getSiblingsIds($product['id']))
|
| 959 |
+
continue;
|
| 960 |
+
|
| 961 |
+
$_siblings = array();
|
| 962 |
+
|
| 963 |
+
//Find which sibling products were already loaded and reuse exising data
|
| 964 |
+
if ($loaded = array_intersect_key($products, array_flip($siblingIds))) {
|
| 965 |
+
foreach ($loaded as $id => $_sibling) {
|
| 966 |
+
unset($_sibling['siblings']);
|
| 967 |
+
|
| 968 |
+
$_siblings[$id] = $_sibling;
|
| 969 |
+
}
|
| 970 |
+
|
| 971 |
+
if (count($loaded) == count($siblingIds)) {
|
| 972 |
+
$product['siblings'] = $_siblings;
|
| 973 |
+
continue;
|
| 974 |
+
}
|
| 975 |
+
|
| 976 |
+
//Get list of IDs of not loaded sibling products
|
| 977 |
+
$siblingIds = array_diff($siblingIds, array_keys($loaded));
|
| 978 |
+
}
|
| 979 |
+
|
| 980 |
+
unset($loaded);
|
| 981 |
+
|
| 982 |
+
$attrs = array_merge($_attrs, array($code));
|
| 983 |
+
|
| 984 |
+
$siblings = Mage::getResourceModel('mventory/product_collection')
|
| 985 |
+
->addIdFilter($siblingIds)
|
| 986 |
+
->addAttributeToSelect($attrs)
|
| 987 |
+
->setFlag('require_stock_items', true)
|
| 988 |
+
->setStoreId($storeId);
|
| 989 |
+
|
| 990 |
+
foreach ($siblings as $id => $sibling)
|
| 991 |
+
$_siblings[$id] = $this->_getProductData(
|
| 992 |
+
$sibling,
|
| 993 |
+
$attrs,
|
| 994 |
+
$storeId,
|
| 995 |
+
$params
|
| 996 |
+
);
|
| 997 |
+
|
| 998 |
+
/**
|
| 999 |
+
* @todo [COMPAT] reset keys temporarely, because old app expects plain
|
| 1000 |
+
* array
|
| 1001 |
+
*/
|
| 1002 |
+
$product['siblings'] = array_values($_siblings);
|
| 1003 |
+
}
|
| 1004 |
+
}
|
| 1005 |
+
|
| 1006 |
+
/**
|
| 1007 |
+
* Return prepared data for product's images
|
| 1008 |
+
*
|
| 1009 |
+
* @param int $id
|
| 1010 |
+
* ID of product
|
| 1011 |
+
*
|
| 1012 |
+
* @param int $storeId
|
| 1013 |
+
* Current store ID
|
| 1014 |
+
*
|
| 1015 |
+
* @param bool $loadImage
|
| 1016 |
+
* Flag to load image to get additional data
|
| 1017 |
+
*
|
| 1018 |
+
* @return array
|
| 1019 |
+
* Prepared data for product's images
|
| 1020 |
+
*/
|
| 1021 |
+
protected function _getImages ($id, $storeId, $loadImage = true) {
|
| 1022 |
+
if (!isset($this->__mediaApi))
|
| 1023 |
+
$this->__mediaApi = Mage::getModel(
|
| 1024 |
+
'mventory/product_attribute_media_api'
|
| 1025 |
+
);
|
| 1026 |
+
|
| 1027 |
+
if (!isset($this->__mediaPath, $this->__mediaUrl)) {
|
| 1028 |
+
$config = Mage::getSingleton('catalog/product_media_config');
|
| 1029 |
+
|
| 1030 |
+
$this->__mediaPath = $config->getBaseMediaPath();
|
| 1031 |
+
$this->__mediaUrl = Mage::getStoreConfig(
|
| 1032 |
+
Mage_Core_Model_Store::XML_PATH_UNSECURE_BASE_URL,
|
| 1033 |
+
$storeId
|
| 1034 |
+
)
|
| 1035 |
+
. 'media/'
|
| 1036 |
+
. $config->getBaseMediaUrlAddition();
|
| 1037 |
+
}
|
| 1038 |
+
|
| 1039 |
+
$images = $this
|
| 1040 |
+
->__mediaApi
|
| 1041 |
+
->items($id, $storeId, 'id');
|
| 1042 |
+
|
| 1043 |
+
foreach ($images as &$image) {
|
| 1044 |
+
$image['url'] = $this->__mediaUrl . $image['file'];
|
| 1045 |
+
|
| 1046 |
+
if ($loadImage
|
| 1047 |
+
&& file_exists($_image = $this->__mediaPath . $image['file'])) try {
|
| 1048 |
+
|
| 1049 |
+
$_image = new Varien_Image($_image);
|
| 1050 |
+
|
| 1051 |
+
$image['width'] = (string) $_image->getOriginalWidth();
|
| 1052 |
+
$image['height'] = (string) $_image->getOriginalHeight();
|
| 1053 |
+
}
|
| 1054 |
+
catch (Exception $e) {}
|
| 1055 |
+
}
|
| 1056 |
+
|
| 1057 |
+
return $images;
|
| 1058 |
+
}
|
| 1059 |
}
|
app/code/community/MVentory/API/Model/Resource/Product/Collection.php
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
+
* Product collection
|
| 23 |
+
*
|
| 24 |
+
* @package MVentory/API
|
| 25 |
+
* @author Anatoly A. Kazantsev <anatoly@mventory.com>
|
| 26 |
+
*/
|
| 27 |
+
class MVentory_API_Model_Resource_Product_Collection
|
| 28 |
+
extends Mage_Catalog_Model_Resource_Product_Collection
|
| 29 |
+
{
|
| 30 |
+
/**
|
| 31 |
+
* Retrive all pairs of product ID and its attribute set ID for collection
|
| 32 |
+
*
|
| 33 |
+
* @return array
|
| 34 |
+
* Pairs of product ID and its attribute set ID
|
| 35 |
+
*/
|
| 36 |
+
public function getIdsAndSets () {
|
| 37 |
+
$this->_renderFilters();
|
| 38 |
+
$this->_renderOrders();
|
| 39 |
+
$this->_renderLimit();
|
| 40 |
+
|
| 41 |
+
$select = clone $this->getSelect();
|
| 42 |
+
|
| 43 |
+
$select
|
| 44 |
+
->reset(Zend_Db_Select::COLUMNS)
|
| 45 |
+
->columns(array(
|
| 46 |
+
'e.' . $this->getEntity()->getIdFieldName(),
|
| 47 |
+
'attribute_set_id',
|
| 48 |
+
))
|
| 49 |
+
->resetJoinLeft();
|
| 50 |
+
|
| 51 |
+
return $this
|
| 52 |
+
->getConnection()
|
| 53 |
+
->fetchPairs($select, $this->_bindParams);
|
| 54 |
+
}
|
| 55 |
+
}
|
app/code/community/MVentory/API/controllers/AppController.php
CHANGED
|
@@ -94,7 +94,8 @@ class MVentory_API_AppController
|
|
| 94 |
|
| 95 |
$output = $user->getUsername() . "\n"
|
| 96 |
. $apiKey . "\n"
|
| 97 |
-
. $store->getBaseUrl()
|
|
|
|
| 98 |
|
| 99 |
$response = $this->getResponse();
|
| 100 |
|
|
@@ -115,11 +116,11 @@ class MVentory_API_AppController
|
|
| 115 |
return;
|
| 116 |
}
|
| 117 |
|
| 118 |
-
$
|
| 119 |
-
|
| 120 |
-
|
| 121 |
|
| 122 |
-
$url = 'mventory://'
|
| 123 |
. substr($url, strpos($url, '//') + 2)
|
| 124 |
. 'mventory-key/'
|
| 125 |
. urlencode($key)
|
| 94 |
|
| 95 |
$output = $user->getUsername() . "\n"
|
| 96 |
. $apiKey . "\n"
|
| 97 |
+
. $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK, true)
|
| 98 |
+
. "\n";
|
| 99 |
|
| 100 |
$response = $this->getResponse();
|
| 101 |
|
| 116 |
return;
|
| 117 |
}
|
| 118 |
|
| 119 |
+
$store = Mage::app()->getStore();
|
| 120 |
+
$secure = $store->isCurrentlySecure();
|
| 121 |
+
$url = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK, $secure);
|
| 122 |
|
| 123 |
+
$url = ($secure ? 'mventorys://' : 'mventory://')
|
| 124 |
. substr($url, strpos($url, '//') + 2)
|
| 125 |
. 'mventory-key/'
|
| 126 |
. urlencode($key)
|
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: ad197bc
|
| 22 |
+
<BR/>Build date: 22/04/2015 05:51 UTC
|
package.xml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
-
<package><name>MVentory_API</name><version>1.
|
| 3 |
|
| 4 |
|
| 5 |
|
|
@@ -49,6 +49,6 @@ 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 |
|
| 54 |
-
* Fix bug which breaks API settings page in Magento versions prior 1.9 release</notes><authors><author><name>Anatoly A. Kazantsev</name><user>anatoly</user><email>anatoly@mventory.com</email></author></authors><date>2015-02-24</date><time>4:36:08</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="d36dcd9f365b5b4feb8043412d4c63b3"/></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="907ff053c9190c226b0ae77f916c4b01"/></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="4037d44fb61810a4f9b002f8aa19fbf7"/><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="ab5b388a5d83c818f8002ab4bb4bbca3"/><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="e707cbecd8e371eb5c930aaed068723c"/><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="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="5e154ff60f57f5d11675be3ad9415579"/><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="eee035212b89d57558f7d9299c53ac58"/></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.5.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>* Add additional data (price, QTY, images, etc) to output of product.list API call
|
| 53 |
|
| 54 |
+
* Other small bug fixies and improvements</notes><authors><author><name>Anatoly A. Kazantsev</name><user>anatoly</user><email>anatoly@mventory.com</email></author></authors><date>2015-04-21</date><time>22:51:15</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="045afa5d3ddc5c0b8d1b938d99ee0676"/></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="03a6160cbda741188468e6f79412e532"/></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="607581fc3b4810618ac06770c8656e98"/><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="265747686a9c80cbcce805c47501cd95"/><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="5e154ff60f57f5d11675be3ad9415579"/><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="eee035212b89d57558f7d9299c53ac58"/></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>
|
var/connect/MVentory_API.xml
CHANGED
|
@@ -1,5 +1,6 @@
|
|
| 1 |
<_>
|
| 2 |
-
<form_key>
|
|
|
|
| 3 |
<name>MVentory_API</name>
|
| 4 |
<channel>community</channel>
|
| 5 |
<version_ids>
|
|
@@ -34,10 +35,10 @@ The extension is free for non-commercial or trial use. Please, request a FREE co
|
|
| 34 |
Visit http://mventory.com for more info.</description>
|
| 35 |
<license>CC BY-NC-ND 4.0</license>
|
| 36 |
<license_uri>http://creativecommons.org/licenses/by-nc-nd/4.0/</license_uri>
|
| 37 |
-
<version>1.
|
| 38 |
-
<stability>
|
| 39 |
-
<notes>*
|
| 40 |
-
*
|
| 41 |
<authors>
|
| 42 |
<name>
|
| 43 |
<name>Anatoly A. Kazantsev</name>
|
|
@@ -55,23 +56,18 @@ Visit http://mventory.com for more info.</description>
|
|
| 55 |
<package>
|
| 56 |
<name>
|
| 57 |
<name/>
|
| 58 |
-
<name>Mage_Core_Modules</name>
|
| 59 |
</name>
|
| 60 |
<channel>
|
| 61 |
<channel/>
|
| 62 |
-
<channel>community</channel>
|
| 63 |
</channel>
|
| 64 |
<min>
|
| 65 |
<min/>
|
| 66 |
-
<min/>
|
| 67 |
</min>
|
| 68 |
<max>
|
| 69 |
<max/>
|
| 70 |
-
<max/>
|
| 71 |
</max>
|
| 72 |
<files>
|
| 73 |
<files></files>
|
| 74 |
-
<files></files>
|
| 75 |
</files>
|
| 76 |
</package>
|
| 77 |
<extension>
|
| 1 |
<_>
|
| 2 |
+
<form_key>wUYdj2Aes1qrNG5j</form_key>
|
| 3 |
+
<_create/>
|
| 4 |
<name>MVentory_API</name>
|
| 5 |
<channel>community</channel>
|
| 6 |
<version_ids>
|
| 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.5.0</version>
|
| 39 |
+
<stability>stable</stability>
|
| 40 |
+
<notes>* Add additional data (price, QTY, images, etc) to output of product.list API call
|
| 41 |
+
* Other small bug fixies and improvements</notes>
|
| 42 |
<authors>
|
| 43 |
<name>
|
| 44 |
<name>Anatoly A. Kazantsev</name>
|
| 56 |
<package>
|
| 57 |
<name>
|
| 58 |
<name/>
|
|
|
|
| 59 |
</name>
|
| 60 |
<channel>
|
| 61 |
<channel/>
|
|
|
|
| 62 |
</channel>
|
| 63 |
<min>
|
| 64 |
<min/>
|
|
|
|
| 65 |
</min>
|
| 66 |
<max>
|
| 67 |
<max/>
|
|
|
|
| 68 |
</max>
|
| 69 |
<files>
|
| 70 |
<files></files>
|
|
|
|
| 71 |
</files>
|
| 72 |
</package>
|
| 73 |
<extension>
|
