Oro_Api - Version 1.2.7.0

Version Notes

OroCRM Bridge extension adds a couple of improvements to Magento SOAP API v2 in order to expose more shopping cart and customer data.

Download this release

Release Info

Developer Oro, Inc
Extension Oro_Api
Version 1.2.7.0
Comparing to
See all releases


Code changes from version 1.2.5.0 to 1.2.7.0

app/code/community/Oro/Api/Helper/Data.php CHANGED
@@ -260,4 +260,25 @@ class Oro_Api_Helper_Data
260
 
261
  return $result;
262
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  }
260
 
261
  return $result;
262
  }
263
+
264
+ /**
265
+ * Get store/wibsite filter data as array from filter condition
266
+ *
267
+ * @param array $condition
268
+ * @return array
269
+ */
270
+ public function getDataFromFilterCondition($condition)
271
+ {
272
+ $result = array();
273
+
274
+ if (is_array($condition)) {
275
+ if (isset($condition['eq'])) {
276
+ $result = array($condition['eq']);
277
+ } elseif (isset($condition['in'])) {
278
+ $result = $condition['in'];
279
+ }
280
+ }
281
+
282
+ return $result;
283
+ }
284
  }
app/code/community/Oro/Api/Model/Ping.php CHANGED
@@ -22,10 +22,13 @@ class Oro_Api_Model_Ping extends Mage_Api_Model_Resource_Abstract
22
  */
23
  public function ping()
24
  {
 
 
25
  return array(
26
- 'version' => (string)Mage::getConfig()->getNode('modules/Oro_Api/version'),
27
- 'mage_version' => Mage::getVersion(),
28
- 'admin_url' => Mage::getUrl('adminhtml'),
 
29
  );
30
  }
31
  }
22
  */
23
  public function ping()
24
  {
25
+ $customerScope = (int)Mage::getSingleton('customer/config_share')->isWebsiteScope();
26
+
27
  return array(
28
+ 'version' => (string)Mage::getConfig()->getNode('modules/Oro_Api/version'),
29
+ 'mage_version' => Mage::getVersion(),
30
+ 'admin_url' => Mage::getUrl('adminhtml'),
31
+ 'customer_scope' => $customerScope,
32
  );
33
  }
34
  }
app/code/community/Oro/Api/Model/Resource/Setup.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /**
20
+ * Oro API wishlist resource setup
21
+ *
22
+ */
23
+ class Oro_Api_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup
24
+ {
25
+ }
app/code/community/Oro/Api/Model/Resource/Wishlist/Status.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /**
20
+ * Wishlist status resource model
21
+ */
22
+ class Oro_Api_Model_Resource_Wishlist_Status extends Mage_Core_Model_Resource_Db_Abstract
23
+ {
24
+ /**
25
+ * Primary key auto increment flag
26
+ *
27
+ * @var bool
28
+ */
29
+ protected $_isPkAutoIncrement = false;
30
+
31
+ /**
32
+ * Constructor
33
+ */
34
+ protected function _construct()
35
+ {
36
+ $this->_init('oro_api/wishlist_status', 'wishlist_id');
37
+ }
38
+
39
+ /**
40
+ * Clean status logs
41
+ *
42
+ * @param Oro_Api_Model_Wishlist_Status $object
43
+ * @return Oro_Api_Model_Resource_Wishlist_Status
44
+ */
45
+ public function clean(Oro_Api_Model_Wishlist_Status $object)
46
+ {
47
+ $cleanTime = $object->getLogCleanTime();
48
+ $this->_cleanStatuses($cleanTime);
49
+
50
+ return $this;
51
+ }
52
+
53
+ /**
54
+ * Clean statuses table
55
+ *
56
+ * @param int $time
57
+ * @return Oro_Api_Model_Resource_Wishlist_Status
58
+ */
59
+ protected function _cleanStatuses($time)
60
+ {
61
+ $writeAdapter = $this->_getWriteAdapter();
62
+ $timeLimit = $this->formatDate(Mage::getModel('core/date')->gmtTimestamp() - $time);
63
+ $condition = array('deleted_at < ?' => $timeLimit);
64
+
65
+ // remove wishlist statuses from oro_api/wishlist_status
66
+ try {
67
+ $writeAdapter->delete($this->getTable('oro_api/wishlist_status'), $condition);
68
+ } catch (Exception $e) {
69
+ Mage::log($e->getMessage());
70
+ }
71
+
72
+ return $this;
73
+ }
74
+ }
app/code/community/Oro/Api/Model/Resource/Wishlist/Status/Collection.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /**
20
+ * Wishlist Status Resource Collection
21
+ */
22
+ class Oro_Api_Model_Resource_Wishlist_Status_Collection
23
+ extends Mage_Core_Model_Resource_Db_Collection_Abstract
24
+ {
25
+ /**
26
+ * Resource constructor
27
+ *
28
+ */
29
+ protected function _construct()
30
+ {
31
+ $this->_init('oro_api/wishlist_status');
32
+ }
33
+ }
app/code/community/Oro/Api/Model/Sales/Quote/Api.php CHANGED
@@ -45,7 +45,6 @@ class Oro_Api_Model_Sales_Quote_Api
45
  {
46
  /** @var Mage_Sales_Model_Resource_Quote_Collection $quoteCollection */
47
  $quoteCollection = Mage::getResourceModel('sales/quote_collection');
48
-
49
  $filters = $this->_apiHelper->parseFilters($filters);
50
  try {
51
  foreach ($filters as $field => $value) {
@@ -61,6 +60,8 @@ class Oro_Api_Model_Sales_Quote_Api
61
  return array();
62
  }
63
 
 
 
64
  $resultArray = array();
65
  /** @var Mage_Sales_Model_Quote $quote */
66
  foreach ($quoteCollection as $quote) {
@@ -84,12 +85,6 @@ class Oro_Api_Model_Sales_Quote_Api
84
  */
85
  protected function info($quote)
86
  {
87
- if ($quote->getGiftMessageId() > 0) {
88
- $quote->setGiftMessage(
89
- Mage::getSingleton('giftmessage/message')->load($quote->getGiftMessageId())->getMessage()
90
- );
91
- }
92
-
93
  $result = $this->_getAttributes($quote, 'quote');
94
  $result['shipping_address'] = $this->_getAttributes($quote->getShippingAddress(), 'quote_address');
95
  $result['billing_address'] = $this->_getAttributes($quote->getBillingAddress(), 'quote_address');
@@ -97,12 +92,6 @@ class Oro_Api_Model_Sales_Quote_Api
97
 
98
  /** @var Mage_Sales_Model_Quote_Item $item */
99
  foreach ($quote->getAllItems() as $item) {
100
- if ($item->getGiftMessageId() > 0) {
101
- $item->setGiftMessage(
102
- Mage::getSingleton('giftmessage/message')->load($item->getGiftMessageId())->getMessage()
103
- );
104
- }
105
-
106
  $quoteItem = $this->_getAttributes($item, 'quote_item');
107
  $productAttributes = $this->_getProductAttributes($item);
108
  $quoteItem = array_merge($quoteItem, $productAttributes);
@@ -127,30 +116,14 @@ class Oro_Api_Model_Sales_Quote_Api
127
  protected function _getProductAttributes($item)
128
  {
129
  $result = array();
130
- /** @var Mage_Catalog_Model_Product $productModel */
131
- $productModel = Mage::getModel('catalog/product');
132
- /** @var Mage_Catalog_Model_Resource_Eav_Attribute[] $mediaAttributes */
133
- $mediaAttributes = $productModel->getMediaAttributes();
134
- if (is_array($mediaAttributes) && array_key_exists('image', $mediaAttributes)) {
135
- /** @var Mage_Catalog_Model_Product $product */
136
- $product = Mage::getModel('catalog/product')
137
- ->setStoreId($item->getQuote()->getStoreId())
138
- ->load($item->getProductId(), array($mediaAttributes['image']->getAttributeCode()));
139
-
140
- if ($product) {
141
- /** @var Mage_Catalog_Model_Product_Media_Config $productMediaConfig */
142
- $productMediaConfig = Mage::getSingleton('catalog/product_media_config');
143
-
144
- $productImage = $product->getData('image');
145
- if ($productImage) {
146
- $result['product_image_url'] = $productMediaConfig->getMediaUrl($productImage);
147
- }
148
- }
149
- } else {
150
- $product = $item->getProduct();
151
- }
152
 
153
  if ($product) {
 
 
 
 
 
154
  $result['product_url'] = $product->getProductUrl(false);
155
  }
156
 
@@ -173,4 +146,46 @@ class Oro_Api_Model_Sales_Quote_Api
173
 
174
  return $this->_knownAttributes;
175
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  }
45
  {
46
  /** @var Mage_Sales_Model_Resource_Quote_Collection $quoteCollection */
47
  $quoteCollection = Mage::getResourceModel('sales/quote_collection');
 
48
  $filters = $this->_apiHelper->parseFilters($filters);
49
  try {
50
  foreach ($filters as $field => $value) {
60
  return array();
61
  }
62
 
63
+ $this->_preparesGiftMessages($quoteCollection);
64
+
65
  $resultArray = array();
66
  /** @var Mage_Sales_Model_Quote $quote */
67
  foreach ($quoteCollection as $quote) {
85
  */
86
  protected function info($quote)
87
  {
 
 
 
 
 
 
88
  $result = $this->_getAttributes($quote, 'quote');
89
  $result['shipping_address'] = $this->_getAttributes($quote->getShippingAddress(), 'quote_address');
90
  $result['billing_address'] = $this->_getAttributes($quote->getBillingAddress(), 'quote_address');
92
 
93
  /** @var Mage_Sales_Model_Quote_Item $item */
94
  foreach ($quote->getAllItems() as $item) {
 
 
 
 
 
 
95
  $quoteItem = $this->_getAttributes($item, 'quote_item');
96
  $productAttributes = $this->_getProductAttributes($item);
97
  $quoteItem = array_merge($quoteItem, $productAttributes);
116
  protected function _getProductAttributes($item)
117
  {
118
  $result = array();
119
+ $product = $item->getProduct();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
 
121
  if ($product) {
122
+ $productImage = $product->getData('image');
123
+ if ($productImage) {
124
+ $result['product_image_url'] = Mage::getSingleton('catalog/product_media_config')
125
+ ->getMediaUrl($productImage);
126
+ }
127
  $result['product_url'] = $product->getProductUrl(false);
128
  }
129
 
146
 
147
  return $this->_knownAttributes;
148
  }
149
+
150
+ /**
151
+ * Set gift_message key to quote and quote item
152
+ *
153
+ * @param Mage_Sales_Model_Resource_Quote_Collection $quoteCollection
154
+ */
155
+ protected function _preparesGiftMessages($quoteCollection)
156
+ {
157
+ $messageIds = array();
158
+ /* @var Mage_Sales_Model_Quote $quote */
159
+ foreach ($quoteCollection as $quote) {
160
+ if ($quote->getGiftMessageId()) {
161
+ $messageIds[] = $quote->getGiftMessageId();
162
+ }
163
+ foreach ($quote->getAllItems() as $quoteItem) {
164
+ if ($quoteItem->getGiftMessageId()) {
165
+ $messageIds[] = $quoteItem->getGiftMessageId();
166
+ }
167
+ }
168
+ }
169
+
170
+ if (!$messageIds) {
171
+ return;
172
+ }
173
+
174
+ $messageIds = array_unique($messageIds);
175
+
176
+ $giftCollection = Mage::getResourceModel('giftmessage/message_collection');
177
+ $giftCollection->addFieldToFilter('gift_message_id', array('in' => $messageIds));
178
+
179
+ /* @var Mage_Sales_Model_Quote $quote */
180
+ foreach ($quoteCollection as $quote) {
181
+ if ($quote->getGiftMessageId()) {
182
+ $quote->setGiftMessage($giftCollection->getItemById($quote->getGiftMessageId())->getMessage());
183
+ }
184
+ foreach ($quote->getAllItems() as $quoteItem) {
185
+ if ($quoteItem->getGiftMessageId()) {
186
+ $quoteItem->setGiftMessage($giftCollection->getItemById($quoteItem->getGiftMessageId())->getMessage());
187
+ }
188
+ }
189
+ }
190
+ }
191
  }
app/code/community/Oro/Api/Model/Wishlist/Api.php CHANGED
@@ -15,20 +15,46 @@
15
  * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
- class Oro_Api_Model_Wishlist_Api
19
- extends Mage_Checkout_Model_Api_Resource
 
 
 
20
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  /**
22
  * @param array|object $filters
 
23
  * @return array
24
  */
25
- public function items($filters)
26
  {
27
  /** @var Mage_Wishlist_Model_Resource_Wishlist_Collection $collection */
28
  $collection = Mage::getResourceModel('wishlist/wishlist_collection');
29
- /** @var $apiHelper Mage_Api_Helper_Data */
30
- $apiHelper = Mage::helper('oro_api');
31
- $filters = $apiHelper->parseFilters($filters);
32
  try {
33
  foreach ($filters as $field => $value) {
34
  $collection->addFieldToFilter($field, $value);
@@ -37,8 +63,193 @@ class Oro_Api_Model_Wishlist_Api
37
  $this->_fault('filters_invalid', $e->getMessage());
38
  }
39
 
 
 
 
 
 
40
  $arr = $collection->toArray();
41
 
42
  return $arr['items'];
43
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  }
15
  * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
  */
18
+
19
+ /**
20
+ * Oro Wishlist Api
21
+ */
22
+ class Oro_Api_Model_Wishlist_Api extends Mage_Api_Model_Resource_Abstract
23
  {
24
+ protected $_mapAttributes = array(
25
+ 'wishlist_id' => 'entity_id'
26
+ );
27
+
28
+ /**
29
+ * Store ids (website stores)
30
+ *
31
+ * @var array
32
+ */
33
+ protected $storeIds = null;
34
+
35
+ /**
36
+ * @var Oro_Api_Helper_Data
37
+ */
38
+ protected $apiHelper;
39
+
40
+ /**
41
+ * Constructor.
42
+ */
43
+ public function __construct()
44
+ {
45
+ $this->apiHelper = Mage::helper('oro_api');
46
+ }
47
+
48
  /**
49
  * @param array|object $filters
50
+ * @param \stdClass $pager
51
  * @return array
52
  */
53
+ public function items($filters, $pager = null)
54
  {
55
  /** @var Mage_Wishlist_Model_Resource_Wishlist_Collection $collection */
56
  $collection = Mage::getResourceModel('wishlist/wishlist_collection');
57
+ $filters = $this->apiHelper->parseFilters($filters);
 
 
58
  try {
59
  foreach ($filters as $field => $value) {
60
  $collection->addFieldToFilter($field, $value);
63
  $this->_fault('filters_invalid', $e->getMessage());
64
  }
65
 
66
+ if ($pager && !$this->apiHelper->applyPager($collection, $pager)) {
67
+ // there's no such page, so no results for it
68
+ return array();
69
+ }
70
+
71
  $arr = $collection->toArray();
72
 
73
  return $arr['items'];
74
  }
75
+
76
+ /**
77
+ * Get wishlist with items info
78
+ *
79
+ * @param array|object $filters
80
+ * @param null|\stdClass $pager
81
+ * @return array
82
+ *
83
+ * @throws Mage_Api_Exception
84
+ */
85
+ public function listWithItems($filters, $pager = null)
86
+ {
87
+ /** @var Mage_Wishlist_Model_Resource_Wishlist_Collection $collection */
88
+ $collection = Mage::getResourceModel('wishlist/wishlist_collection');
89
+ $filters = $this->apiHelper->parseFilters($filters, array('updated_at' => 'main_table.updated_at'));
90
+ /* Prepare store/website filters for wishlist */
91
+ $filters = $this->prepareFilters($filters);
92
+
93
+ try {
94
+ foreach ($filters as $field => $value) {
95
+ $collection->addFieldToFilter($field, $value);
96
+ }
97
+ // Load customer data
98
+ $collection = $this->addCustomerData($collection);
99
+ } catch (Mage_Core_Exception $e) {
100
+ $this->_fault('filters_invalid', $e->getMessage());
101
+ }
102
+
103
+ if ($pager && !$this->apiHelper->applyPager($collection, $pager)) {
104
+ // there's no such page, so no results for it
105
+ return array();
106
+ }
107
+
108
+ $result = array();
109
+ foreach ($collection as $wishlist) {
110
+ /** @var Mage_Wishlist_Model_Wishlist $wishlist */
111
+ $wishlistData = $this->info($wishlist);
112
+ $result[] = $wishlistData;
113
+ }
114
+
115
+ return $result;
116
+ }
117
+
118
+ /**
119
+ * Retrieve store ids
120
+ *
121
+ * @param null|integer $websiteId
122
+ * @return array
123
+ */
124
+ public function getStoreIds($websiteId = null)
125
+ {
126
+ $storeIds = array();
127
+ if ($websiteId) {
128
+ $website = Mage::getModel('core/website')->load($websiteId);
129
+ $storeIds = $website->getStoreIds();
130
+ } else {
131
+ $stores = Mage::app()->getStores();
132
+ foreach ($stores as $store) {
133
+ $storeIds[] = $store->getId();
134
+ }
135
+ }
136
+ return $storeIds;
137
+ }
138
+
139
+ /**
140
+ * Add customer data to collection
141
+ *
142
+ * @param Mage_Wishlist_Model_Resource_Wishlist_Collection $collection
143
+ * @return Mage_Wishlist_Model_Resource_Wishlist_Collection
144
+ */
145
+ protected function addCustomerData($collection)
146
+ {
147
+ $customerTable = $collection->getTable('customer/entity');
148
+ $select = $collection->getSelect();
149
+ $select->joinLeft(
150
+ array('customer' => $customerTable),
151
+ 'main_table.customer_id = customer.entity_id',
152
+ array(
153
+ 'customer_email' => 'email',
154
+ 'website_id' => 'website_id'
155
+ )
156
+ );
157
+
158
+ return $collection;
159
+ }
160
+
161
+ /**
162
+ * Retrieve full information about wishlist
163
+ *
164
+ * @param Mage_Wishlist_Model_Wishlist $wishlist
165
+ * @return array
166
+ */
167
+ protected function info($wishlist)
168
+ {
169
+ $result = $wishlist->toArray();
170
+ $result['items'] = array();
171
+
172
+ // Load wishlist items data
173
+ /** @var Mage_Wishlist_Model_Resource_Item_Collection $collection */
174
+ $collection = Mage::getResourceModel('wishlist/item_collection')
175
+ ->addWishlistFilter($wishlist)
176
+ ->addStoreFilter($this->storeIds)
177
+ ->setVisibilityFilter();
178
+
179
+ /** @var Mage_Wishlist_Model_Item $item */
180
+ foreach ($collection as $item) {
181
+ $product = $item->getProduct();
182
+ if ($product) {
183
+ $item->setSku($product->getSku());
184
+ $item->setProductName($product->getName());
185
+ $item->setWebsiteId(Mage::app()->getStore($item->getStoreId())->getWebsiteId());
186
+ }
187
+ $wishlistItem = $item->toArray();
188
+ unset($wishlistItem['product']);
189
+ $result['items'][] = $wishlistItem;
190
+ }
191
+ return $result;
192
+ }
193
+
194
+ /**
195
+ * Prepare store/website filters for wishlist
196
+ *
197
+ * Exclude store fields from complex filter for wishlist if exists
198
+ * Save store filter data to storeIds - used for filter wishlist items
199
+ * Save website filter data to websiteIds - used for filter wishlists by customer's website
200
+ *
201
+ * If website filter exists in the incoming filter (from integration) and customer accounts shared globally
202
+ * ignore sent filters, set all stores where customer can be presented to storeIds
203
+ *
204
+ * Example if complex filter:
205
+ * 'website_id',
206
+ * [
207
+ * 'key' => 'website_id',
208
+ * 'value' => [
209
+ * 'key' => 'eq',
210
+ * 'value' => '1'
211
+ * ]
212
+ * ]
213
+ * 'store_id',
214
+ * [
215
+ * 'key' => 'store_id',
216
+ * 'value' => [
217
+ * 'key' => 'in',
218
+ * 'value' => [1,2]
219
+ * ]
220
+ * ]
221
+ *
222
+ * @param array $filters
223
+ * @return array
224
+ */
225
+ protected function prepareFilters($filters)
226
+ {
227
+ if (Mage::getSingleton('customer/config_share')->isWebsiteScope()) {
228
+ if (isset($filters['store_id'])) {
229
+ $storeIds = $this->apiHelper->getDataFromFilterCondition($filters['store_id']);
230
+ $this->storeIds = $storeIds;
231
+ unset($filters['store_id']);
232
+ }
233
+ if (isset($filters['website_id'])) {
234
+ $websiteIds = $this->apiHelper->getDataFromFilterCondition($filters['website_id']);
235
+ if (!$this->storeIds) {
236
+ foreach ($websiteIds as $websiteId) {
237
+ $storeIds = $this->getStoreIds($websiteId);
238
+ foreach ($storeIds as $id) {
239
+ $this->storeIds[] = $id;
240
+ }
241
+ }
242
+ }
243
+ }
244
+ } else {
245
+ unset($filters['store_id']);
246
+ unset($filters['website_id']);
247
+ }
248
+
249
+ if (!$this->storeIds) {
250
+ $this->storeIds = $this->getStoreIds();
251
+ }
252
+
253
+ return $filters;
254
+ }
255
  }
app/code/community/Oro/Api/Model/Wishlist/Observer.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /**
20
+ * Multiple wishlist observer.
21
+ */
22
+ class Oro_Api_Model_Wishlist_Observer
23
+ {
24
+ /**
25
+ * Log wishlist on manually wishlist deletion
26
+ *
27
+ * @param Varien_Event_Observer $observer
28
+ * @return Oro_Api_Model_Wishlist_Observer
29
+ */
30
+ public function registerWishlistChange(Varien_Event_Observer $observer)
31
+ {
32
+ if (Mage::helper('core')->isModuleEnabled('Enterprise_Wishlist') &&
33
+ Mage::helper('enterprise_wishlist')->isMultipleEnabled()) {
34
+ /** @var Mage_Wishlist_Model_Wishlist $wishlist */
35
+ $wishlist = $observer->getEvent()->getObject();
36
+ $wishlistId = $wishlist->getId();
37
+ if ($wishlistId) {
38
+ try {
39
+ $websiteId = $this->getWishlistOwnerWebsiteId($wishlist);
40
+ /** @var Oro_Api_Model_Wishlist_Status $wishlistStatus */
41
+ $wishlistStatus = Mage::getModel('oro_api/wishlist_status')
42
+ ->setWishlistId($wishlistId)
43
+ ->setWebsiteId($websiteId)
44
+ ->setDeletedAt(Mage::getSingleton('core/date')->gmtDate());
45
+ $wishlistStatus->save();
46
+ } catch (Exception $e) {
47
+ Mage::log($e->getMessage());
48
+ }
49
+ }
50
+ }
51
+
52
+ return $this;
53
+ }
54
+
55
+ /**
56
+ * Retrieve wishlist owner website
57
+ *
58
+ * @param Mage_Wishlist_Model_Wishlist $wishlist
59
+ * @return null
60
+ */
61
+ public function getWishlistOwnerWebsiteId($wishlist)
62
+ {
63
+ $customerId = $wishlist->getCustomerId();
64
+ if ($customerId) {
65
+ /** @var Mage_Customer_Model_Customer $owner */
66
+ $owner = Mage::getModel("customer/customer");
67
+ $owner->load($customerId);
68
+ if ($owner->getId()) {
69
+ return $owner->getWebsiteId();
70
+ }
71
+ }
72
+
73
+ return null;
74
+ }
75
+ }
app/code/community/Oro/Api/Model/Wishlist/Status.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /**
20
+ * Log Wishlist Status Model
21
+ */
22
+ class Oro_Api_Model_Wishlist_Status extends Mage_Core_Model_Abstract
23
+ {
24
+ const XML_WISHLIST_STATUS_CLEAN_DAYS = 'oro/api/wishlist_status_clean_after_day';
25
+
26
+ /**
27
+ * Init Resource Model
28
+ */
29
+ protected function _construct()
30
+ {
31
+ $this->_init('oro_api/wishlist_status');
32
+ }
33
+
34
+ public function getLogCleanTime()
35
+ {
36
+ return Mage::getStoreConfig(self::XML_WISHLIST_STATUS_CLEAN_DAYS) * 60 * 60 * 24;
37
+ }
38
+
39
+ /**
40
+ * Clean statuses
41
+ *
42
+ * @return Oro_Api_Model_Wishlist_Status
43
+ */
44
+ public function clean()
45
+ {
46
+ $this->getResource()->clean($this);
47
+ return $this;
48
+ }
49
+ }
app/code/community/Oro/Api/Model/Wishlist/Status/Api.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /**
20
+ * Oro API Wishlist Status Api
21
+ */
22
+ class Oro_Api_Model_Wishlist_Status_Api extends Mage_Api_Model_Resource_Abstract
23
+ {
24
+ /**
25
+ * @var Oro_Api_Helper_Data
26
+ */
27
+ protected $apiHelper;
28
+
29
+ /**
30
+ * Constructor.
31
+ */
32
+ public function __construct()
33
+ {
34
+ $this->apiHelper = Mage::helper('oro_api');
35
+ }
36
+
37
+ /**
38
+ * Get wishlist status list
39
+ *
40
+ * @param array|object $filters
41
+ * @param null|\stdClass $pager
42
+ * @return array
43
+ * @throws Mage_Api_Exception
44
+ */
45
+ public function items($filters, $pager = null)
46
+ {
47
+ /** @var Oro_Api_Model_Resource_Wishlist_Status_Collection $collection */
48
+ $collection = Mage::getResourceModel('oro_api/wishlist_status_collection');
49
+ $filters = $this->apiHelper->parseFilters($filters);
50
+ try {
51
+ foreach ($filters as $field => $value) {
52
+ $collection->addFieldToFilter($field, $value);
53
+ }
54
+ } catch (Mage_Core_Exception $e) {
55
+ $this->_fault('filters_invalid', $e->getMessage());
56
+ }
57
+
58
+ if ($pager && !$this->apiHelper->applyPager($collection, $pager)) {
59
+ // there's no such page, so no results for it
60
+ return array();
61
+ }
62
+
63
+ $result = array();
64
+ /** @var Oro_Api_Model_Wishlist_Status $status */
65
+ foreach ($collection as $status) {
66
+ $result[] = $status->toArray();
67
+ }
68
+
69
+ return $result;
70
+ }
71
+ }
app/code/community/Oro/Api/Model/Wishlist/Status/Api/V2.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+ class Oro_Api_Model_Wishlist_Status_Api_V2 extends Oro_Api_Model_Wishlist_Status_Api
19
+ {
20
+
21
+ }
app/code/community/Oro/Api/etc/api.xml CHANGED
@@ -167,6 +167,42 @@
167
  </list>
168
  </methods>
169
  </wishlist_item>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  <report_product_viewed translate="title" module="oro_api">
171
  <model>oro_api/report_product_viewed_api</model>
172
  <title>Report Product Viewed</title>
@@ -262,6 +298,12 @@
262
  <wishlist_item_list>
263
  <get><method>list</method></get>
264
  </wishlist_item_list>
 
 
 
 
 
 
265
  <report_product_viewed>
266
  <get><method>list</method></get>
267
  </report_product_viewed>
@@ -319,6 +361,12 @@
319
  <wishlist_item translate="title" module="oro_api">
320
  <title>Wishlist Item Info</title>
321
  </wishlist_item>
 
 
 
 
 
 
322
  <report_product_viewed translate="title" module="oro_api">
323
  <title>Report Product Viewed</title>
324
  </report_product_viewed>
@@ -356,6 +404,8 @@
356
  <oro_customer_address>oroCustomerAddress</oro_customer_address>
357
  <wishlist>wishlist</wishlist>
358
  <wishlist_item>wishlistItem</wishlist_item>
 
 
359
  <report_product_viewed>reportProductViewed</report_product_viewed>
360
  <newsletter_subscriber>newsletterSubscriber</newsletter_subscriber>
361
  </resources_function_prefix>
167
  </list>
168
  </methods>
169
  </wishlist_item>
170
+ <oro_wishlist translate="title" module="oro_api">
171
+ <model>oro_api/wishlist_api</model>
172
+ <title>Oro Wishlist API</title>
173
+ <acl>oro</acl>
174
+ <methods>
175
+ <list translate="title" module="oro_api">
176
+ <title>Get wishlist with items by filters</title>
177
+ <method>listWithItems</method>
178
+ <acl>oro/wishlist</acl>
179
+ </list>
180
+ </methods>
181
+ <faults module="oro_api">
182
+ <filters_invalid>
183
+ <code>100</code>
184
+ <message>Invalid filters given. Details in error message.</message>
185
+ </filters_invalid>
186
+ </faults>
187
+ </oro_wishlist>
188
+ <oro_wishlist_status translate="title" module="oro_api">
189
+ <model>oro_api/wishlist_status_api</model>
190
+ <title>Wishlist Status Information</title>
191
+ <acl>oro</acl>
192
+ <methods>
193
+ <list translate="title" module="oro_api">
194
+ <title>Get wishlist status by filters</title>
195
+ <method>items</method>
196
+ <acl>oro/wishlist</acl>
197
+ </list>
198
+ </methods>
199
+ <faults module="oro_api">
200
+ <filters_invalid>
201
+ <code>100</code>
202
+ <message>Invalid filters given. Details in error message.</message>
203
+ </filters_invalid>
204
+ </faults>
205
+ </oro_wishlist_status>
206
  <report_product_viewed translate="title" module="oro_api">
207
  <model>oro_api/report_product_viewed_api</model>
208
  <title>Report Product Viewed</title>
298
  <wishlist_item_list>
299
  <get><method>list</method></get>
300
  </wishlist_item_list>
301
+ <oro_wishlist_list>
302
+ <get><method>list</method></get>
303
+ </oro_wishlist_list>
304
+ <oro_wishlist_status_list>
305
+ <get><method>list</method></get>
306
+ </oro_wishlist_status_list>
307
  <report_product_viewed>
308
  <get><method>list</method></get>
309
  </report_product_viewed>
361
  <wishlist_item translate="title" module="oro_api">
362
  <title>Wishlist Item Info</title>
363
  </wishlist_item>
364
+ <oro_wishlist translate="title" module="oro_api">
365
+ <title>Wishlist with Items Info</title>
366
+ </oro_wishlist>
367
+ <oro_wishlist_status translate="title" module="oro_api">
368
+ <title>Wishlist Status Info</title>
369
+ </oro_wishlist_status>
370
  <report_product_viewed translate="title" module="oro_api">
371
  <title>Report Product Viewed</title>
372
  </report_product_viewed>
404
  <oro_customer_address>oroCustomerAddress</oro_customer_address>
405
  <wishlist>wishlist</wishlist>
406
  <wishlist_item>wishlistItem</wishlist_item>
407
+ <oro_wishlist>oroWishlist</oro_wishlist>
408
+ <oro_wishlist_status>oroWishlistStatus</oro_wishlist_status>
409
  <report_product_viewed>reportProductViewed</report_product_viewed>
410
  <newsletter_subscriber>newsletterSubscriber</newsletter_subscriber>
411
  </resources_function_prefix>
app/code/community/Oro/Api/etc/config.xml CHANGED
@@ -20,7 +20,7 @@
20
  <config>
21
  <modules>
22
  <Oro_Api>
23
- <version>1.2.5</version>
24
  </Oro_Api>
25
  </modules>
26
  <global>
@@ -31,6 +31,11 @@
31
  </oro_api>
32
  <oro_api_resource>
33
  <class>Oro_Api_Model_Resource</class>
 
 
 
 
 
34
  </oro_api_resource>
35
  <catalog>
36
  <rewrite>
@@ -47,8 +52,22 @@
47
  <oro_api_setup>
48
  <setup>
49
  <module>Oro_Api</module>
 
50
  </setup>
 
 
 
51
  </oro_api_setup>
 
 
 
 
 
 
 
 
 
 
52
  </resources>
53
  <events>
54
  <newsletter_subscriber_save_before>
@@ -59,7 +78,24 @@
59
  </oro_api_newsletter_subscriber_save_before_observer>
60
  </observers>
61
  </newsletter_subscriber_save_before>
 
 
 
 
 
 
 
 
62
  </events>
 
 
 
 
 
 
 
 
 
63
  </global>
64
  <admin>
65
  <routers>
@@ -112,4 +148,23 @@
112
  </checkout_submit_all_after>
113
  </events>
114
  </adminhtml>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  </config>
20
  <config>
21
  <modules>
22
  <Oro_Api>
23
+ <version>1.2.7</version>
24
  </Oro_Api>
25
  </modules>
26
  <global>
31
  </oro_api>
32
  <oro_api_resource>
33
  <class>Oro_Api_Model_Resource</class>
34
+ <entities>
35
+ <wishlist_status>
36
+ <table>oro_wishlist_status</table>
37
+ </wishlist_status>
38
+ </entities>
39
  </oro_api_resource>
40
  <catalog>
41
  <rewrite>
52
  <oro_api_setup>
53
  <setup>
54
  <module>Oro_Api</module>
55
+ <class>Oro_Api_Model_Resource_Setup</class>
56
  </setup>
57
+ <connection>
58
+ <use>core_setup</use>
59
+ </connection>
60
  </oro_api_setup>
61
+ <oro_api_read>
62
+ <connection>
63
+ <use>core_read</use>
64
+ </connection>
65
+ </oro_api_read>
66
+ <oro_api_write>
67
+ <connection>
68
+ <use>core_write</use>
69
+ </connection>
70
+ </oro_api_write>
71
  </resources>
72
  <events>
73
  <newsletter_subscriber_save_before>
78
  </oro_api_newsletter_subscriber_save_before_observer>
79
  </observers>
80
  </newsletter_subscriber_save_before>
81
+ <wishlist_delete_commit_after>
82
+ <observers>
83
+ <oro_api_wishlist_status>
84
+ <class>oro_api/wishlist_observer</class>
85
+ <method>registerWishlistChange</method>
86
+ </oro_api_wishlist_status>
87
+ </observers>
88
+ </wishlist_delete_commit_after>
89
  </events>
90
+ <sales>
91
+ <quote>
92
+ <item>
93
+ <product_attributes>
94
+ <image/>
95
+ </product_attributes>
96
+ </item>
97
+ </quote>
98
+ </sales>
99
  </global>
100
  <admin>
101
  <routers>
148
  </checkout_submit_all_after>
149
  </events>
150
  </adminhtml>
151
+ <default>
152
+ <oro>
153
+ <api>
154
+ <wishlist_status_clean_after_day>30</wishlist_status_clean_after_day>
155
+ </api>
156
+ </oro>
157
+ </default>
158
+ <crontab>
159
+ <jobs>
160
+ <oro_api_wishlist_status_clean>
161
+ <schedule>
162
+ <cron_expr>15 0 1 * *</cron_expr>
163
+ </schedule>
164
+ <run>
165
+ <model>oro_api/wishlist_status::clean</model>
166
+ </run>
167
+ </oro_api_wishlist_status_clean>
168
+ </jobs>
169
+ </crontab>
170
  </config>
app/code/community/Oro/Api/etc/system.xml CHANGED
@@ -45,6 +45,15 @@
45
  <show_in_website>0</show_in_website>
46
  <show_in_store>0</show_in_store>
47
  </enable_attributes>
 
 
 
 
 
 
 
 
 
48
  </fields>
49
  </api>
50
  </groups>
45
  <show_in_website>0</show_in_website>
46
  <show_in_store>0</show_in_store>
47
  </enable_attributes>
48
+ <wishlist_status_clean_after_day translate="label">
49
+ <label>Save Wishlist Status Log, Days</label>
50
+ <comment>Used in case of Magento Enterprise Multiple Wishlist enabled to clean Wishlist deletion logs.</comment>
51
+ <frontend_type>text</frontend_type>
52
+ <sort_order>20</sort_order>
53
+ <show_in_default>1</show_in_default>
54
+ <show_in_website>0</show_in_website>
55
+ <show_in_store>0</show_in_store>
56
+ </wishlist_status_clean_after_day>
57
  </fields>
58
  </api>
59
  </groups>
app/code/community/Oro/Api/etc/wsdl.xml CHANGED
@@ -93,6 +93,7 @@
93
  <element name="ext_shipping_info" type="xsd:string" minOccurs="0" />
94
  <element name="gift_message_id" type="xsd:string" minOccurs="0" />
95
  <element name="is_persistent" type="xsd:string" minOccurs="0" />
 
96
 
97
  <element name="shipping_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
98
  <element name="billing_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
@@ -167,6 +168,65 @@
167
  </restriction>
168
  </complexContent>
169
  </complexType>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  <!-- Report Product Viewed -->
171
  <complexType name="reportProductViewedEntity">
172
  <all>
@@ -218,6 +278,7 @@
218
  <element name="version" type="xsd:string" minOccurs="0" />
219
  <element name="mage_version" type="xsd:string" minOccurs="0" />
220
  <element name="admin_url" type="xsd:string" minOccurs="0" />
 
221
  </all>
222
  </complexType>
223
 
@@ -375,8 +436,20 @@
375
  <output message="typens:wishlistItemListResponse"/>
376
  </operation>
377
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  <operation name="reportProductViewedList">
379
- <documentation>Get wishlist item collection</documentation>
380
  <input message="typens:reportProductViewedListRequest"/>
381
  <output message="typens:reportProductViewedListResponse"/>
382
  </operation>
@@ -480,6 +553,16 @@
480
  <input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
481
  <output><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
482
  </operation>
 
 
 
 
 
 
 
 
 
 
483
  <operation name="reportProductViewedList">
484
  <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
485
  <input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
@@ -592,6 +675,26 @@
592
  <message name="wishlistItemListResponse">
593
  <part name="result" type="typens:wishlistItemEntityArray" />
594
  </message>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
595
 
596
  <!-- Report Product Viewed -->
597
  <message name="reportProductViewedListRequest">
93
  <element name="ext_shipping_info" type="xsd:string" minOccurs="0" />
94
  <element name="gift_message_id" type="xsd:string" minOccurs="0" />
95
  <element name="is_persistent" type="xsd:string" minOccurs="0" />
96
+ <element name="gift_message" type="xsd:string" minOccurs="0" />
97
 
98
  <element name="shipping_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
99
  <element name="billing_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
168
  </restriction>
169
  </complexContent>
170
  </complexType>
171
+ <!-- Oro Wishlist With Items-->
172
+ <complexType name="oroWishlistEntity">
173
+ <all>
174
+ <element name="wishlist_id" type="xsd:string" minOccurs="0" />
175
+ <element name="customer_id" type="xsd:string" minOccurs="0" />
176
+ <element name="shared" type="xsd:string" minOccurs="0" />
177
+ <element name="sharing_code" type="xsd:string" minOccurs="0" />
178
+ <element name="updated_at" type="xsd:string" minOccurs="0" />
179
+ <element name="name" type="xsd:string" minOccurs="0" />
180
+ <element name="visibility" type="xsd:string" minOccurs="0" />
181
+ <element name="customer_email" type="xsd:string" minOccurs="0" />
182
+ <element name="items" type="typens:oroWishlistItemEntityArray" minOccurs="0"/>
183
+ </all>
184
+ </complexType>
185
+ <complexType name="oroWishlistEntityArray">
186
+ <complexContent>
187
+ <restriction base="soapenc:Array">
188
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:oroWishlistEntity[]" />
189
+ </restriction>
190
+ </complexContent>
191
+ </complexType>
192
+ <complexType name="oroWishlistItemEntity">
193
+ <all>
194
+ <element name="wishlist_item_id" type="xsd:string" minOccurs="0" />
195
+ <element name="wishlist_id" type="xsd:string" minOccurs="0" />
196
+ <element name="product_id" type="xsd:string" minOccurs="0" />
197
+ <element name="store_id" type="xsd:string" minOccurs="0" />
198
+ <element name="website_id" type="xsd:string" minOccurs="0" />
199
+ <element name="added_at" type="xsd:string" minOccurs="0" />
200
+ <element name="description" type="xsd:string" minOccurs="0" />
201
+ <element name="qty" type="xsd:string" minOccurs="0" />
202
+ <element name="sku" type="xsd:string" minOccurs="0" />
203
+ <element name="product_name" type="xsd:string" minOccurs="0" />
204
+ </all>
205
+ </complexType>
206
+ <complexType name="oroWishlistItemEntityArray">
207
+ <complexContent>
208
+ <restriction base="soapenc:Array">
209
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:oroWishlistItemEntity[]" />
210
+ </restriction>
211
+ </complexContent>
212
+ </complexType>
213
+ <!-- Oro Wishlist With Items-->
214
+ <!-- Oro Wishlist Status -->
215
+ <complexType name="oroWishlistStatusEntity">
216
+ <all>
217
+ <element name="wishlist_id" type="xsd:string" minOccurs="0" />
218
+ <element name="deleted_at" type="xsd:string" minOccurs="0" />
219
+ </all>
220
+ </complexType>
221
+ <complexType name="oroWishlistStatusEntityArray">
222
+ <complexContent>
223
+ <restriction base="soapenc:Array">
224
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:oroWishlistStatusEntity[]" />
225
+ </restriction>
226
+ </complexContent>
227
+ </complexType>
228
+ <!-- Oro Wishlist Status -->
229
+
230
  <!-- Report Product Viewed -->
231
  <complexType name="reportProductViewedEntity">
232
  <all>
278
  <element name="version" type="xsd:string" minOccurs="0" />
279
  <element name="mage_version" type="xsd:string" minOccurs="0" />
280
  <element name="admin_url" type="xsd:string" minOccurs="0" />
281
+ <element name="customer_scope" type="xsd:int" minOccurs="0" />
282
  </all>
283
  </complexType>
284
 
436
  <output message="typens:wishlistItemListResponse"/>
437
  </operation>
438
 
439
+ <operation name="oroWishlistList">
440
+ <documentation>Get wishlist collection with items</documentation>
441
+ <input message="typens:oroWishlistListRequest"/>
442
+ <output message="typens:oroWishlistListResponse"/>
443
+ </operation>
444
+
445
+ <operation name="oroWishlistStatusList">
446
+ <documentation>Get wishlist Status collection</documentation>
447
+ <input message="typens:oroWishlistStatusListRequest"/>
448
+ <output message="typens:oroWishlistStatusListResponse"/>
449
+ </operation>
450
+
451
  <operation name="reportProductViewedList">
452
+ <documentation>Get product viewed collection</documentation>
453
  <input message="typens:reportProductViewedListRequest"/>
454
  <output message="typens:reportProductViewedListResponse"/>
455
  </operation>
553
  <input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
554
  <output><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
555
  </operation>
556
+ <operation name="oroWishlistList">
557
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
558
+ <input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
559
+ <output><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
560
+ </operation>
561
+ <operation name="oroWishlistStatusList">
562
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
563
+ <input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
564
+ <output><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
565
+ </operation>
566
  <operation name="reportProductViewedList">
567
  <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
568
  <input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
675
  <message name="wishlistItemListResponse">
676
  <part name="result" type="typens:wishlistItemEntityArray" />
677
  </message>
678
+ <!-- Oro Wishlist -->
679
+ <message name="oroWishlistListRequest">
680
+ <part name="sessionId" type="xsd:string" />
681
+ <part name="filters" type="typens:filters" />
682
+ <part name="pager" type="typens:pager" />
683
+ </message>
684
+ <message name="oroWishlistListResponse">
685
+ <part name="result" type="typens:oroWishlistEntityArray" />
686
+ </message>
687
+ <!-- Oro Wishlist -->
688
+ <!-- Oro Wishlist Status -->
689
+ <message name="oroWishlistStatusListRequest">
690
+ <part name="sessionId" type="xsd:string" />
691
+ <part name="filters" type="typens:filters" />
692
+ <part name="pager" type="typens:pager" />
693
+ </message>
694
+ <message name="oroWishlistStatusListResponse">
695
+ <part name="result" type="typens:oroWishlistStatusEntityArray" />
696
+ </message>
697
+ <!-- Oro Wishlist Status -->
698
 
699
  <!-- Report Product Viewed -->
700
  <message name="reportProductViewedListRequest">
app/code/community/Oro/Api/etc/wsi.xml CHANGED
@@ -75,6 +75,7 @@
75
  <xsd:element name="ext_shipping_info" type="xsd:string" minOccurs="0" />
76
  <xsd:element name="gift_message_id" type="xsd:string" minOccurs="0" />
77
  <xsd:element name="is_persistent" type="xsd:string" minOccurs="0" />
 
78
 
79
  <xsd:element name="shipping_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
80
  <xsd:element name="billing_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
@@ -145,6 +146,64 @@
145
  </xsd:sequence>
146
  </xsd:complexType>
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  <!-- Report Product Viewed -->
149
  <xsd:complexType name="reportProductViewedEntity">
150
  <xsd:sequence>
@@ -197,6 +256,7 @@
197
  <xsd:element name="version" type="xsd:string" minOccurs="0" />
198
  <xsd:element name="mage_version" type="xsd:string" minOccurs="0" />
199
  <xsd:element name="admin_url" type="xsd:string" minOccurs="0" />
 
200
  </xsd:sequence>
201
  </xsd:complexType>
202
 
@@ -542,6 +602,8 @@
542
  <xsd:complexType>
543
  <xsd:sequence>
544
  <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
 
 
545
  </xsd:sequence>
546
  </xsd:complexType>
547
  </xsd:element>
@@ -643,6 +705,16 @@
643
  <wsdl:part name="result" element="typens:wishlistItemEntityArray" />
644
  </wsdl:message>
645
 
 
 
 
 
 
 
 
 
 
 
646
  <!-- Report Product Viewed -->
647
  <wsdl:message name="reportProductViewedListRequest">
648
  <wsdl:part name="sessionId" element="xsd:string" />
@@ -772,8 +844,20 @@
772
  <wsdl:output message="typens:wishlistItemListResponse"/>
773
  </wsdl:operation>
774
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  <wsdl:operation name="reportProductViewedList">
776
- <wsdl:documentation>Get wishlist item collection</wsdl:documentation>
777
  <wsdl:input message="typens:reportProductViewedListRequest"/>
778
  <wsdl:output message="typens:reportProductViewedListResponse"/>
779
  </wsdl:operation>
@@ -925,6 +1009,24 @@
925
  <soap:body use="literal" />
926
  </wsdl:output>
927
  </wsdl:operation>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
928
  <wsdl:operation name="reportProductViewedList">
929
  <soap:operation soapAction=""/>
930
  <wsdl:input>
75
  <xsd:element name="ext_shipping_info" type="xsd:string" minOccurs="0" />
76
  <xsd:element name="gift_message_id" type="xsd:string" minOccurs="0" />
77
  <xsd:element name="is_persistent" type="xsd:string" minOccurs="0" />
78
+ <xsd:element name="gift_message" type="xsd:string" minOccurs="0" />
79
 
80
  <xsd:element name="shipping_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
81
  <xsd:element name="billing_address" type="typens:shoppingCartAddressEntity" minOccurs="0"/>
146
  </xsd:sequence>
147
  </xsd:complexType>
148
 
149
+ <!-- Oro Wishlist -->
150
+ <xsd:complexType name="oroWishlistEntity">
151
+ <xsd:sequence>
152
+ <xsd:element name="wishlist_id" type="xsd:string" minOccurs="0" />
153
+ <xsd:element name="customer_id" type="xsd:string" minOccurs="0" />
154
+ <xsd:element name="shared" type="xsd:string" minOccurs="0" />
155
+ <xsd:element name="sharing_code" type="xsd:string" minOccurs="0" />
156
+ <xsd:element name="updated_at" type="xsd:string" minOccurs="0" />
157
+ <xsd:element name="name" type="xsd:string" minOccurs="0" />
158
+ <xsd:element name="visibility" type="xsd:string" minOccurs="0" />
159
+ <xsd:element name="customer_email" type="xsd:string" minOccurs="0" />
160
+ <xsd:element name="items" type="typens:oroWishlistItemEntityArray" minOccurs="0"/>
161
+ </xsd:sequence>
162
+ </xsd:complexType>
163
+
164
+ <xsd:complexType name="oroWishlistEntityArray">
165
+ <xsd:sequence>
166
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:oroWishlistEntity" />
167
+ </xsd:sequence>
168
+ </xsd:complexType>
169
+
170
+ <xsd:complexType name="oroWishlistItemEntity">
171
+ <xsd:sequence>
172
+ <xsd:element name="wishlist_item_id" type="xsd:string" minOccurs="0" />
173
+ <xsd:element name="wishlist_id" type="xsd:string" minOccurs="0" />
174
+ <xsd:element name="product_id" type="xsd:string" minOccurs="0" />
175
+ <xsd:element name="store_id" type="xsd:string" minOccurs="0" />
176
+ <xsd:element name="website_id" type="xsd:string" minOccurs="0" />
177
+ <xsd:element name="added_at" type="xsd:string" minOccurs="0" />
178
+ <xsd:element name="description" type="xsd:string" minOccurs="0" />
179
+ <xsd:element name="qty" type="xsd:string" minOccurs="0" />
180
+ <xsd:element name="sku" type="xsd:string" minOccurs="0" />
181
+ <xsd:element name="product_name" type="xsd:string" minOccurs="0" />
182
+ </xsd:sequence>
183
+ </xsd:complexType>
184
+
185
+ <xsd:complexType name="oroWishlistItemEntityArray">
186
+ <xsd:sequence>
187
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:oroWishlistItemEntity" />
188
+ </xsd:sequence>
189
+ </xsd:complexType>
190
+ <!-- Oro Wishlist -->
191
+
192
+ <!-- Oro Wishlist Status-->
193
+ <xsd:complexType name="oroWishlistStatusEntity">
194
+ <xsd:sequence>
195
+ <xsd:element name="wishlist_id" type="xsd:string" minOccurs="0" />
196
+ <xsd:element name="deleted_at" type="xsd:string" minOccurs="0" />
197
+ </xsd:sequence>
198
+ </xsd:complexType>
199
+
200
+ <xsd:complexType name="oroWishlistStatusEntityArray">
201
+ <xsd:sequence>
202
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:oroWishlistStatusEntity" />
203
+ </xsd:sequence>
204
+ </xsd:complexType>
205
+ <!-- Oro Wishlist Status-->
206
+
207
  <!-- Report Product Viewed -->
208
  <xsd:complexType name="reportProductViewedEntity">
209
  <xsd:sequence>
256
  <xsd:element name="version" type="xsd:string" minOccurs="0" />
257
  <xsd:element name="mage_version" type="xsd:string" minOccurs="0" />
258
  <xsd:element name="admin_url" type="xsd:string" minOccurs="0" />
259
+ <xsd:element name="customer_scope" type="xsd:int" minOccurs="0" />
260
  </xsd:sequence>
261
  </xsd:complexType>
262
 
602
  <xsd:complexType>
603
  <xsd:sequence>
604
  <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
605
+ <xsd:element minOccurs="0" maxOccurs="1" name="filters" type="typens:filters" />
606
+ <xsd:element minOccurs="0" maxOccurs="1" name="pager" type="typens:pager" />
607
  </xsd:sequence>
608
  </xsd:complexType>
609
  </xsd:element>
705
  <wsdl:part name="result" element="typens:wishlistItemEntityArray" />
706
  </wsdl:message>
707
 
708
+ <!-- Oro Wishlist -->
709
+ <wsdl:message name="oroWishlistItemListRequest">
710
+ <wsdl:part name="sessionId" element="xsd:string" />
711
+ <wsdl:part name="filters" element="typens:filters" />
712
+ </wsdl:message>
713
+ <wsdl:message name="oroWishlistItemListResponse">
714
+ <wsdl:part name="result" element="typens:oroWishlistItemEntityArray" />
715
+ </wsdl:message>
716
+ <!-- Oro Wishlist -->
717
+
718
  <!-- Report Product Viewed -->
719
  <wsdl:message name="reportProductViewedListRequest">
720
  <wsdl:part name="sessionId" element="xsd:string" />
844
  <wsdl:output message="typens:wishlistItemListResponse"/>
845
  </wsdl:operation>
846
 
847
+ <wsdl:operation name="oroWishlistList">
848
+ <wsdl:documentation>Get wishlist collection with items</wsdl:documentation>
849
+ <wsdl:input message="typens:oroWishlistListRequest"/>
850
+ <wsdl:output message="typens:oroWishlistListResponse"/>
851
+ </wsdl:operation>
852
+
853
+ <wsdl:operation name="oroWishlistStatusList">
854
+ <wsdl:documentation>Get wishlist collection with items</wsdl:documentation>
855
+ <wsdl:input message="typens:oroWishlistStatusListRequest"/>
856
+ <wsdl:output message="typens:oroWishlistStatusListResponse"/>
857
+ </wsdl:operation>
858
+
859
  <wsdl:operation name="reportProductViewedList">
860
+ <wsdl:documentation>Get product viewed collection</wsdl:documentation>
861
  <wsdl:input message="typens:reportProductViewedListRequest"/>
862
  <wsdl:output message="typens:reportProductViewedListResponse"/>
863
  </wsdl:operation>
1009
  <soap:body use="literal" />
1010
  </wsdl:output>
1011
  </wsdl:operation>
1012
+ <wsdl:operation name="oroWishlistList">
1013
+ <soap:operation soapAction=""/>
1014
+ <wsdl:input>
1015
+ <soap:body use="literal" />
1016
+ </wsdl:input>
1017
+ <wsdl:output>
1018
+ <soap:body use="literal" />
1019
+ </wsdl:output>
1020
+ </wsdl:operation>
1021
+ <wsdl:operation name="oroWishlistStatusList">
1022
+ <soap:operation soapAction=""/>
1023
+ <wsdl:input>
1024
+ <soap:body use="literal" />
1025
+ </wsdl:input>
1026
+ <wsdl:output>
1027
+ <soap:body use="literal" />
1028
+ </wsdl:output>
1029
+ </wsdl:operation>
1030
  <wsdl:operation name="reportProductViewedList">
1031
  <soap:operation soapAction=""/>
1032
  <wsdl:input>
app/code/community/Oro/Api/sql/oro_api_setup/install-1.2.5.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /* @var $installer Oro_Api_Model_Resource_Setup */
20
+ $installer = $this;
app/code/community/Oro/Api/sql/oro_api_setup/upgrade-1.2.5.0-1.2.5.1.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Oro Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is published at http://opensource.org/licenses/osl-3.0.php.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to license@magecore.com so we can send you a copy immediately
12
+ *
13
+ * @category Oro
14
+ * @package Oro_Api
15
+ * @copyright Copyright 2013 Oro Inc. (http://www.orocrm.com)
16
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
+ */
18
+
19
+ /* @var $installer Oro_Api_Model_Resource_Setup */
20
+ $installer = $this;
21
+
22
+ $installer->startSetup();
23
+
24
+ /**
25
+ * Create table 'oro_api/wishlist_status'
26
+ */
27
+ $table = $installer->getConnection()
28
+ ->newTable($installer->getTable('oro_api/wishlist_status'))
29
+ ->addColumn('wishlist_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
30
+ 'unsigned' => true,
31
+ 'nullable' => false,
32
+ 'primary' => true,
33
+ ), 'Wishlist ID')
34
+ ->addColumn('website_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
35
+ 'unsigned' => true,
36
+ ), 'Website Id')
37
+ ->addColumn('deleted_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
38
+ ), 'Wishlist Deletion Time')
39
+ ->setComment('Wishlist Deletion Status Table');
40
+ $installer->getConnection()->createTable($table);
41
+
42
+ $installer->endSetup();
app/etc/modules/Oro_Api.xml CHANGED
@@ -22,6 +22,9 @@
22
  <Oro_Api>
23
  <active>true</active>
24
  <codePool>community</codePool>
 
 
 
25
  </Oro_Api>
26
  </modules>
27
  </config>
22
  <Oro_Api>
23
  <active>true</active>
24
  <codePool>community</codePool>
25
+ <depends>
26
+ <Mage_Api/>
27
+ </depends>
28
  </Oro_Api>
29
  </modules>
30
  </config>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Oro_Api</name>
4
- <version>1.2.5.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
@@ -10,9 +10,9 @@
10
  <description>OroCRM Bridge extension adds a couple of improvements to Magento SOAP API v2 in order to expose more shopping cart and customer data.</description>
11
  <notes>OroCRM Bridge extension adds a couple of improvements to Magento SOAP API v2 in order to expose more shopping cart and customer data.</notes>
12
  <authors><author><name>Oro, Inc</name><user>orocrm</user><email>info@orocrm.com</email></author></authors>
13
- <date>2015-11-13</date>
14
- <time>15:18:50</time>
15
- <contents><target name="magecommunity"><dir name="Oro"><dir name="Api"><dir name="Helper"><file name="Data.php" hash="e87ff76a27ef9decf5e15e686b3f06ef"/></dir><dir name="Model"><dir name="Catalog"><dir name="Product"><dir name="Api"><file name="V2.php" hash="9fe5e65e1b189ba6a9fed25fe8d858d6"/></dir></dir></dir><dir name="Customer"><dir name="Address"><dir name="Api"><file name="V2.php" hash="d78fb25439d4c4f172f8ff49dc24439d"/></dir><file name="Api.php" hash="bc68a17a8b3f4ef84d4887c9bbe148f0"/></dir><dir name="Api"><file name="V2.php" hash="89fc6f16e7f452438d4927669ea0f0de"/></dir><file name="Api.php" hash="36e09efd92d3ecb1d4dc833f3c259ad3"/></dir><dir name="Newsletter"><dir name="Subscriber"><dir name="Api"><file name="V2.php" hash="7b18db294f86ccf841a95aa7b7e656af"/></dir><file name="Api.php" hash="ac35ba0bb921258495149509fdb1b66e"/></dir></dir><dir name="Observer"><dir name="Crm"><file name="Controller.php" hash="7b3ec12f8934af2cb97ee21d7cd1c903"/></dir><dir name="Sales"><file name="Order.php" hash="81e2f8992f57a406130c893072365782"/></dir></dir><file name="Observer.php" hash="cf5202298ae9319e731ef8b5845a36a1"/><dir name="Ping"><file name="V2.php" hash="0fa10110ecb67d32079c5530a979c55a"/></dir><file name="Ping.php" hash="5a12b76b0e1f99b3fa096b1436f6a42f"/><dir name="Report"><dir name="Product"><dir name="Viewed"><dir name="Api"><file name="V2.php" hash="c8481504cefd028a17cc4a6555182ad0"/></dir><file name="Api.php" hash="fe175f2aab97cafa47574f1da2e169a3"/></dir></dir></dir><dir name="Resource"><dir name="Reports"><dir name="Product"><dir name="Index"><dir name="Viewed"><file name="Collection.php" hash="199749c5c972ab305abff0c9b10e9954"/></dir></dir></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="Api"><file name="V2.php" hash="0621bd68c420feb8000dae6861c49369"/></dir><file name="Api.php" hash="9a38a73ed31bdc4a681478be4456cedf"/></dir><dir name="Quote"><dir name="Api"><file name="V2.php" hash="4e8ba0ed7757110c4eae1d239b2adf76"/></dir><file name="Api.php" hash="93de572d94cf36b39082cdfcde98c96c"/></dir></dir><dir name="Website"><dir name="Api"><file name="V2.php" hash="aa9ab487ab696216d287be68dac262a6"/></dir><file name="Api.php" hash="a7cc7c6b06873e6d63b5d393cd50fd9b"/></dir><dir name="Wishlist"><dir name="Api"><file name="V2.php" hash="f0ac63e1cf9440ed0e4ca72eb93834f2"/></dir><file name="Api.php" hash="3ebfc3b7841c265921ea05d63f8ba5a9"/><dir name="Item"><dir name="Api"><file name="V2.php" hash="43a919dae8dd432e211878a39ba3f4a2"/></dir><file name="Api.php" hash="8d5d856ea533b9b122c96d0bef32861b"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Oro"><file name="GatewayController.php" hash="aca4efd099a889a77fb119356d9fab23"/><file name="SalesController.php" hash="3cd40b74eafe18fc6885ce871e305c5c"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="b3298b50c6f9556d36055f01cdfeb180"/><file name="api.xml" hash="d364546feb7f8f5b6947fd452ecf4e6c"/><file name="config.xml" hash="c7588ab4cb1f29146b6e7090b83e3bc4"/><file name="system.xml" hash="602816f300ad544e9bf4f82d752a092c"/><file name="workflow.xml" hash="40e7f46d53156e77b1d5498769e8f6cc"/><file name="wsdl.xml" hash="f7fea9f3f12d83333f99b084c52df629"/><file name="wsi.xml" hash="a15beb48543783f924e603194a49231c"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Oro_Api.xml" hash="e4836dedcf0ace31dd01b117a1fd962e"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="oro"><dir><dir name="api"><file name="check.phtml" hash="142e380fa9eae5c0b7f233d519d13dc7"/><file name="login_styles.phtml" hash="a89d5d690702cf8296d76923b85e4ced"/><file name="page.phtml" hash="e9359e49019bbaa6e8b77e2a0ec458dd"/><file name="script.phtml" hash="89c3810165995c0ef6a0f5ad3b39f41f"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="oro"><file name="add_button_icon_dark.png" hash="01929b4351b537427035ba0f4df61689"/><file name="apply_button_icon.png" hash="4fc6fffbf943e82ea2b1a0022ec329e1"/><file name="error.png" hash="0caf3533e40e7f425d206803ef6e1876"/><file name="grid_sort_asc.gif" hash="8a86df764d4219dc0cf04f8529165cef"/><file name="grid_sort_desc.gif" hash="4f493deb94cb0eb0c6401e7f6bf6e0af"/><file name="loader.gif" hash="edf214475c8e79574dac3687926fc62b"/></dir></dir><file name="oro_style.css" hash="fd0609bb04a1f6748c06dd17a2946a54"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.13</min><max>5.6.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Oro_Api</name>
4
+ <version>1.2.7.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
10
  <description>OroCRM Bridge extension adds a couple of improvements to Magento SOAP API v2 in order to expose more shopping cart and customer data.</description>
11
  <notes>OroCRM Bridge extension adds a couple of improvements to Magento SOAP API v2 in order to expose more shopping cart and customer data.</notes>
12
  <authors><author><name>Oro, Inc</name><user>orocrm</user><email>info@orocrm.com</email></author></authors>
13
+ <date>2016-09-08</date>
14
+ <time>10:08:48</time>
15
+ <contents><target name="magecommunity"><dir name="Oro"><dir name="Api"><dir name="Helper"><file name="Data.php" hash="3f60d322fbdeea0f751addadc3d0b10e"/></dir><dir name="Model"><dir name="Catalog"><dir name="Product"><dir name="Api"><file name="V2.php" hash="9fe5e65e1b189ba6a9fed25fe8d858d6"/></dir></dir></dir><dir name="Customer"><dir name="Address"><dir name="Api"><file name="V2.php" hash="d78fb25439d4c4f172f8ff49dc24439d"/></dir><file name="Api.php" hash="bc68a17a8b3f4ef84d4887c9bbe148f0"/></dir><dir name="Api"><file name="V2.php" hash="89fc6f16e7f452438d4927669ea0f0de"/></dir><file name="Api.php" hash="36e09efd92d3ecb1d4dc833f3c259ad3"/></dir><dir name="Newsletter"><dir name="Subscriber"><dir name="Api"><file name="V2.php" hash="7b18db294f86ccf841a95aa7b7e656af"/></dir><file name="Api.php" hash="ac35ba0bb921258495149509fdb1b66e"/></dir></dir><dir name="Observer"><dir name="Crm"><file name="Controller.php" hash="7b3ec12f8934af2cb97ee21d7cd1c903"/></dir><dir name="Sales"><file name="Order.php" hash="81e2f8992f57a406130c893072365782"/></dir></dir><file name="Observer.php" hash="cf5202298ae9319e731ef8b5845a36a1"/><dir name="Ping"><file name="V2.php" hash="0fa10110ecb67d32079c5530a979c55a"/></dir><file name="Ping.php" hash="223e546950e0f7c23dfcc567e44893a3"/><dir name="Report"><dir name="Product"><dir name="Viewed"><dir name="Api"><file name="V2.php" hash="c8481504cefd028a17cc4a6555182ad0"/></dir><file name="Api.php" hash="fe175f2aab97cafa47574f1da2e169a3"/></dir></dir></dir><dir name="Resource"><dir name="Reports"><dir name="Product"><dir name="Index"><dir name="Viewed"><file name="Collection.php" hash="199749c5c972ab305abff0c9b10e9954"/></dir></dir></dir></dir><file name="Setup.php" hash="4186114dd1317db2c98d54089d7edf89"/><dir name="Wishlist"><dir name="Status"><file name="Collection.php" hash="c700fba4fcdf3c229cac1636c09e6d63"/></dir><file name="Status.php" hash="2af51c733fd1a967d0c540b7d8db9f76"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Api"><file name="V2.php" hash="0621bd68c420feb8000dae6861c49369"/></dir><file name="Api.php" hash="9a38a73ed31bdc4a681478be4456cedf"/></dir><dir name="Quote"><dir name="Api"><file name="V2.php" hash="4e8ba0ed7757110c4eae1d239b2adf76"/></dir><file name="Api.php" hash="5d279114dda6adff26e85a7af3641570"/></dir></dir><dir name="Website"><dir name="Api"><file name="V2.php" hash="aa9ab487ab696216d287be68dac262a6"/></dir><file name="Api.php" hash="a7cc7c6b06873e6d63b5d393cd50fd9b"/></dir><dir name="Wishlist"><dir name="Api"><file name="V2.php" hash="f0ac63e1cf9440ed0e4ca72eb93834f2"/></dir><file name="Api.php" hash="db30a7c3c9fbd7ff5fa6dcf7ba4c594f"/><dir name="Item"><dir name="Api"><file name="V2.php" hash="43a919dae8dd432e211878a39ba3f4a2"/></dir><file name="Api.php" hash="8d5d856ea533b9b122c96d0bef32861b"/></dir><file name="Observer.php" hash="475495be5a367730dfdf1ffbc20b54fa"/><dir name="Status"><dir name="Api"><file name="V2.php" hash="37a227a428a277ace34cbb25d30e92c2"/></dir><file name="Api.php" hash="25789253dbd23561aabaf62aba3a982c"/></dir><file name="Status.php" hash="0fe5e02ae58a405adbc7b69a282acdab"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Oro"><file name="GatewayController.php" hash="aca4efd099a889a77fb119356d9fab23"/><file name="SalesController.php" hash="3cd40b74eafe18fc6885ce871e305c5c"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="b3298b50c6f9556d36055f01cdfeb180"/><file name="api.xml" hash="f7bfee159a0af513bc55a82c270c2caf"/><file name="config.xml" hash="617796a28a194e16d9a9a5c318d343e6"/><file name="system.xml" hash="d42daecd30f4b9a1de9952fa1041bfbe"/><file name="workflow.xml" hash="40e7f46d53156e77b1d5498769e8f6cc"/><file name="wsdl.xml" hash="02b59d257447b63b80019dc9755c3b67"/><file name="wsi.xml" hash="8cbeca1823c055abf2576b18562067dc"/></dir><dir name="sql"><dir name="oro_api_setup"><file name="install-1.2.5.php" hash="d7c5d2ef1ebfd4f6084aa48d318fe307"/><file name="upgrade-1.2.5.0-1.2.5.1.php" hash="7946d51070254f4230c90da2e97801e8"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Oro_Api.xml" hash="9e6e71fac0eecdb2eb3d5589a19aa60e"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="oro"><dir><dir name="api"><file name="check.phtml" hash="142e380fa9eae5c0b7f233d519d13dc7"/><file name="login_styles.phtml" hash="a89d5d690702cf8296d76923b85e4ced"/><file name="page.phtml" hash="e9359e49019bbaa6e8b77e2a0ec458dd"/><file name="script.phtml" hash="89c3810165995c0ef6a0f5ad3b39f41f"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="oro"><file name="add_button_icon_dark.png" hash="01929b4351b537427035ba0f4df61689"/><file name="apply_button_icon.png" hash="4fc6fffbf943e82ea2b1a0022ec329e1"/><file name="error.png" hash="0caf3533e40e7f425d206803ef6e1876"/><file name="grid_sort_asc.gif" hash="8a86df764d4219dc0cf04f8529165cef"/><file name="grid_sort_desc.gif" hash="4f493deb94cb0eb0c6401e7f6bf6e0af"/><file name="loader.gif" hash="edf214475c8e79574dac3687926fc62b"/></dir></dir><file name="oro_style.css" hash="fd0609bb04a1f6748c06dd17a2946a54"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.13</min><max>5.6.0</max></php></required></dependencies>
18
  </package>