Springbot - Version 1.4.0.6

Version Notes

Add mapping for purchases and customers assigned to store 0.

Download this release

Release Info

Developer Springbot Integrations Team
Extension Springbot
Version 1.4.0.6
Comparing to
See all releases


Code changes from version 1.4.0.5 to 1.4.0.6

app/code/community/Springbot/BoneCollector/Model/HarvestAbstract.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ /**
6
+ * The attributes which we want to listen for changes on
7
+ *
8
+ * @return array
9
+ */
10
+ protected $_attributes = array();
11
+
12
+ protected function _initObserver($observer)
13
+ {
14
+ if($event = $observer->getEvent()) {
15
+ Springbot_Log::debug($event->getName());
16
+ }
17
+ }
18
+
19
+ /**
20
+ * Get top level sku
21
+ *
22
+ * This aims to get the top level sku. The getSku method for the product
23
+ * model is overloaded providing the type instance version of the sku
24
+ * meaning that it gives the simple sku for configurable or grouped products
25
+ * we need to get the _data array directly and pass that sku up to ensure the
26
+ * parent sku.
27
+ *
28
+ * @param $observer Varient_Event_Observer
29
+ * @return string
30
+ */
31
+ public function getTopLevelSku($observer)
32
+ {
33
+ $product = $observer->getEvent()->getProduct();
34
+ return Mage::helper('combine/parser')->getTopLevelSku($product);
35
+ }
36
+
37
+ public function doSend($object, $sessionKey)
38
+ {
39
+ $json = $object->toJson();
40
+ $hash = sha1($json);
41
+ $session = $this->_getSession();
42
+
43
+ if ($session->getData($sessionKey) == $hash) {
44
+ Springbot_Log::debug("Hash for {$sessionKey} is match, this object has already been posted, skipping");
45
+ return false;
46
+ } else {
47
+ $session->setData($sessionKey, $hash);
48
+ Springbot_Log::debug("Hash for {$sessionKey} does not match cache, sending");
49
+ return true;
50
+ }
51
+ }
52
+
53
+ protected function _getSession()
54
+ {
55
+ return Mage::getSingleton('core/session');
56
+ }
57
+
58
+ protected function _getAttributesToListenFor($extras = array())
59
+ {
60
+ return array_merge($this->_attributes, $extras);
61
+ }
62
+
63
+ protected function _entityChanged($model)
64
+ {
65
+ foreach($this->_getAttributesToListenFor() as $attribute) {
66
+ if($attribute != 'created_at' && $attribute != 'updated_at') {
67
+ if($this->_hasDataChangedFor($model, $attribute)) {
68
+ return true;
69
+ }
70
+ }
71
+ }
72
+ Springbot_Log::debug('Entity unchanged');
73
+ return false;
74
+ }
75
+
76
+ protected function _hasDataChangedFor($model, $field)
77
+ {
78
+ $newData = $model->getData($field);
79
+ $origData = $model->getOrigData($field);
80
+ return $newData != $origData;
81
+ }
82
+
83
+ }
app/code/community/Springbot/BoneCollector/Model/HarvestAttribute/Observer.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestAttribute_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ public function onAdminAttributeSaveAfter($observer)
6
+ {
7
+ try {
8
+ $this->_initObserver($observer);
9
+ $attribute = $observer->getEvent()->getAttribute();
10
+ if ($attribute->getIsUserDefined()) {
11
+ if ($this->doSend($attribute, 'sb_eav_entity_attribute_obs_hash')) {
12
+ Springbot_Log::debug("Attempting to post parent attribute sets");
13
+ Springbot_Boss::scheduleJob(
14
+ 'post:attribute',
15
+ array('i' => $attribute->getAttributeId()),
16
+ Springbot_Services::LISTENER,
17
+ 'listener'
18
+ );
19
+ }
20
+ }
21
+ else {
22
+ Springbot_Log::debug("Attribute is not user defined, skipping");
23
+ }
24
+ }
25
+ catch (Exception $e) {
26
+ Springbot_Log::error($e);
27
+ }
28
+ }
29
+
30
+ public function onAdminAttributeSetSaveAfter($observer)
31
+ {
32
+ try {
33
+ $attribute = $observer->getEvent()->getAttribute();
34
+ $set = $this->_getAttributeSet($attribute->getAttributeSetId());
35
+ if ($this->doSend($set, 'sb_eav_entity_attribute_set_obs_hash')) {
36
+ $this->_initObserver($observer);
37
+ Springbot_Boss::scheduleJob('post:attributeSet', array('i' => $attribute->getAttributeSetId()), Springbot_Services::LISTENER, 'listener');
38
+ }
39
+ }
40
+ catch (Exception $e) {
41
+ Springbot_Log::error($e);
42
+ }
43
+ }
44
+
45
+ protected function _getAttributeSet($id)
46
+ {
47
+ $helper = Mage::helper('combine/attributes');
48
+
49
+ // invalidate cache as attributes are added to set
50
+ $attrIds = $helper->getAttributesBySet($id)->getAllIds();
51
+ return $helper->getAttributeSetById($id)->setNestedAttributeIds($attrIds);
52
+ }
53
+ }
app/code/community/Springbot/BoneCollector/Model/HarvestCart/Observer.php ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestCart_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ /**
6
+ * Push cart object to api
7
+ *
8
+ * @param Varien_Event_Observer $observer
9
+ */
10
+ public function onFrontendQuoteSaveAfter($observer)
11
+ {
12
+ try {
13
+ $this->_initObserver($observer);
14
+ $quoteObject = $observer->getQuote();
15
+ $quoteParser = $this->_initParser($quoteObject);
16
+
17
+ if (
18
+ $quoteParser->getItemsCount() > 0 &&
19
+ ($quoteParser->hasCustomerData() || Mage::getStoreConfig('springbot/config/send_cart_noemail')) &&
20
+ $quoteParser->getStoreId()
21
+ ) {
22
+ $json = $quoteParser->toJson();
23
+
24
+ if (Mage::helper('combine')->doSendQuote($json)) {
25
+ Springbot_Boss::addTrackable(
26
+ 'cart_user_agent',
27
+ $_SERVER['HTTP_USER_AGENT'],
28
+ $quoteParser->getQuoteId(),
29
+ $quoteParser->getCustomerId(),
30
+ $quoteParser->getCustomerEmail()
31
+ );
32
+
33
+ Springbot_Boss::scheduleJob('post:cart', array(
34
+ 's' => Mage::app()->getStore()->getId(),
35
+ 'i' => $quoteParser->getQuoteId(),
36
+ 'r' => Mage::helper('combine/redirect')->getRawEscapedCookie()
37
+ ), Springbot_Services::LISTENER, 'listener'
38
+ );
39
+
40
+ $this->insertRedirectIds($quoteParser);
41
+ $this->createTrackables($quoteParser);
42
+ }
43
+ }
44
+ }
45
+ catch (Exception $e) {
46
+ Springbot_Log::error($e);
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Capture sku for add to cart
52
+ * Inserts line into event csv to push
53
+ *
54
+ * @param Varien_Event_Observer $observer
55
+ */
56
+ public function onFrontendCartAddProduct($observer)
57
+ {
58
+ try {
59
+ $this->_initObserver($observer);
60
+ $quoteId = Mage::getSingleton("checkout/session")->getQuote()->getId();
61
+ $storeId = Mage::app()->getStore()->getStoreId();
62
+ $product = $observer->getEvent()->getProduct();
63
+ $lastCatId = Mage::helper('combine')->checkCategoryIdSanity($this->_getLastCategory(), $storeId);
64
+ $visitorIp = Mage::helper('core/http')->getRemoteAddr(true);
65
+
66
+ // Check added qty from request, default to 1
67
+ $qtyAdded = $observer->getEvent()->getRequest()->getParam('qty');
68
+ $qtyAdded = is_numeric($qtyAdded) && $qtyAdded > 0 ? $qtyAdded : 1;
69
+
70
+ Springbot_Boss::insertEvent(array(
71
+ 'type' => 'atc',
72
+ 'sku' => $this->getTopLevelSku($observer),
73
+ 'sku_fulfillment' => $product->getSku(),
74
+ 'quote_id' => $quoteId,
75
+ 'category_id' => $lastCatId,
76
+ 'store_id' => $storeId,
77
+ 'quantity' => $qtyAdded,
78
+ ));
79
+ Springbot_Cli::runHealthcheck($storeId);
80
+ }
81
+ catch (Exception $e) {
82
+ Springbot_Log::error($e);
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Add product actions on update qty
88
+ *
89
+ * This is a one-way street. This examines the new quantity to the saved
90
+ * quote item amount. If the new quanity is higher, it inserts one event
91
+ * for each item higher than the pre-existing quanity (i.e. the delta).
92
+ * We are not concerned with items getting removed as we are counting the
93
+ * add actions themselves.
94
+ *
95
+ * @param Varien_Event_Observer $observer
96
+ */
97
+ public function onFrontendCartUpdate($observer)
98
+ {
99
+ try {
100
+ $this->_initObserver($observer);
101
+ $info = $observer->getEvent()->getInfo();
102
+ $cart = $observer->getEvent()->getCart();
103
+ $storeId = $cart->getQuote()->getStoreId();
104
+ $parsedQuote = Mage::getModel('combine/parser_quote', $cart->getQuote());
105
+
106
+ foreach ($info as $itemId => $itemInfo) {
107
+ $item = $cart->getQuote()->getItemById($itemId);
108
+
109
+ if($item && isset($itemInfo['qty'])) {
110
+ if($itemInfo['qty'] > $item->getQty()) {
111
+ $parsed = Mage::getModel('combine/parser_quote_item', $item);
112
+ $diffQty = $itemInfo['qty'] - $item->getQty();
113
+ $diffQty = $diffQty > 0 ? $diffQty : 1;
114
+
115
+ Springbot_Log::debug("Cart delta +$diffQty");
116
+ Springbot_Boss::insertEvent(array(
117
+ 'type' => 'atc',
118
+ 'sku' => $parsed->getSku(),
119
+ 'sku_fulfillment' => $parsed->getSkuFulfillment(),
120
+ 'quote_id' => $parsedQuote->getQuoteId(),
121
+ 'category_id' => $this->_getLastCategory(),
122
+ 'store_id' => $storeId,
123
+ 'quantity' => $diffQty,
124
+ ));
125
+ }
126
+ }
127
+ }
128
+ Springbot_Cli::runHealthcheck($storeId);
129
+ }
130
+ catch (Exception $e) {
131
+ Springbot_Log::error($e);
132
+ }
133
+ }
134
+
135
+ /**
136
+ * This exists as a naive dependency injector, so we can set the
137
+ * local object for testing purposes
138
+ *
139
+ * @param $quote Mage_Sales_Model_Quote
140
+ * @return Springbot_Combine_Model_Parser_Quote
141
+ */
142
+ protected function _initParser($quote)
143
+ {
144
+ if (!isset($this->_parser)) {
145
+ $this->_parser = Mage::getModel('Springbot_Combine_Model_Parser_Quote', $quote);
146
+ }
147
+ return $this->_parser;
148
+ }
149
+
150
+ public function insertRedirectIds($quote)
151
+ {
152
+ if (Mage::helper('combine/redirect')->hasRedirectId()) {
153
+ Springbot_Log::debug("Insert redirect id for customer : {$quote->getCustomerEmail()}");
154
+ $params = array(
155
+ 'email' => $quote->getCustomerEmail(),
156
+ 'quote_id' => $quote->getQuoteId(),
157
+ 'customer_id' => $quote->getCustomerId(),
158
+ );
159
+
160
+ Mage::helper('combine/redirect')->insertRedirectIds($params);
161
+ }
162
+ }
163
+
164
+ public function createTrackables($quoteParser)
165
+ {
166
+ $helper = Mage::helper('combine/trackable');
167
+ $model = Mage::getModel('combine/trackable');
168
+
169
+ if ($helper->hasTrackables()) {
170
+ foreach ($helper->getTrackables() as $type => $value) {
171
+ $model->setData(array(
172
+ 'email' => $quoteParser->getCustomerEmail(),
173
+ 'type' => $type,
174
+ 'value' => $value,
175
+ 'quote_id' => $quoteParser->getQuoteId(),
176
+ 'customer_id' => $quoteParser->getCustomerId(),
177
+ ));
178
+ $model->createOrUpdate();
179
+ }
180
+ }
181
+ }
182
+
183
+ public function setParser($parser)
184
+ {
185
+ $this->_parser = $parser;
186
+ }
187
+
188
+ protected function _getLastCategory()
189
+ {
190
+ return Mage::helper('combine')->getLastCategoryId();
191
+ }
192
+
193
+ }
app/code/community/Springbot/BoneCollector/Model/HarvestCategory/Observer.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestCategory_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ public function onCategorySaveAfter($observer)
6
+ {
7
+ try {
8
+ $this->_initObserver($observer);
9
+ $categoryId = $observer->getEvent()->getCategory()->getEntityId();
10
+ if (!empty($categoryId)) {
11
+ Springbot_Boss::scheduleJob('post:category', array('i' => $categoryId), Springbot_Services::LISTENER, 'listener');
12
+ }
13
+ }
14
+ catch (Exception $e) {
15
+ Springbot_Log::error($e);
16
+ }
17
+ }
18
+
19
+ public function onCategoryDeleteAfter($observer)
20
+ {
21
+ try {
22
+ $category = $observer->getEvent()->getCategory();
23
+ $this->_initObserver($observer);
24
+ foreach (Mage::helper('combine/harvest')->mapStoreIds($category) as $mapped) {
25
+ $deleted = array(
26
+ 'store_id' => $mapped->getStoreId(),
27
+ 'cat_id' => $category->getEntityId(),
28
+ 'is_deleted' => true,
29
+ );
30
+ Mage::helper('combine/harvest')->deleteRemote($deleted, 'categories');
31
+ }
32
+
33
+ }
34
+ catch (Exception $e) {
35
+ Springbot_Log::error($e);
36
+ }
37
+ }
38
+ }
app/code/community/Springbot/BoneCollector/Model/HarvestCustomer/Observer.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestCustomer_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ protected $_customer;
6
+
7
+ public function onCustomerSaveAfter($observer)
8
+ {
9
+ try {
10
+ $this->_initObserver($observer);
11
+ $this->_customer = $observer->getEvent()->getCustomer();
12
+
13
+ if ($this->_entityChanged($this->_customer)) {
14
+ $customerId = $this->_customer->getId();
15
+ Springbot_Boss::scheduleJob('post:customer', array('i' => $customerId), Springbot_Services::LISTENER, 'listener');
16
+ }
17
+ } catch (Exception $e) {
18
+ Springbot_Log::error($e);
19
+ }
20
+ }
21
+
22
+ public function onCustomerDeleteBefore($observer)
23
+ {
24
+ try {
25
+ // Runs blocking in session to guarantee record existence
26
+ $customer = $observer->getEvent()->getCustomer();
27
+ $this->_initObserver($observer);
28
+ Mage::getModel('Springbot_Services_Post_Customer')->setData(array(
29
+ 'start_id' => $customer->getId(),
30
+ 'delete' => true,
31
+ ))->run();
32
+ } catch (Exception $e) {
33
+ Springbot_Log::error($e);
34
+ }
35
+ }
36
+
37
+ protected function _getAttributesToListenFor($extras = array())
38
+ {
39
+ $codes = array();
40
+ $h = Mage::helper('combine/attributes');
41
+ $attributes = $h->getCustomerCustomAttributes($h->getCustomerAttributeSet());
42
+
43
+ try {
44
+ foreach($attributes as $attribute) {
45
+ $codes[] = $attribute->getAttributeCode();
46
+ }
47
+ }
48
+ catch (Exception $e) {
49
+ Springbot_Log::debug('Exception caught during attribute iteration for customer observer');
50
+ }
51
+
52
+
53
+ // Ensure we test for change in group
54
+ $codes[] = 'group_id';
55
+
56
+ return parent::_getAttributesToListenFor($codes);
57
+ }
58
+ }
59
+
app/code/community/Springbot/BoneCollector/Model/HarvestProduct/Observer.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestProduct_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ protected $_product;
6
+
7
+ protected $_attributes = array(
8
+ 'entity_id',
9
+ 'sku',
10
+ 'attribute_set_id',
11
+ 'description',
12
+ 'full_description',
13
+ 'short_description',
14
+ 'image',
15
+ 'url_key',
16
+ 'small_image',
17
+ 'thumbnail',
18
+ 'status',
19
+ 'visibility',
20
+ 'price',
21
+ 'special_price',
22
+ 'image_label',
23
+ 'name',
24
+ );
25
+
26
+ public function onProductSaveAfter($observer)
27
+ {
28
+ try {
29
+ $this->_product = $observer->getEvent()->getProduct();
30
+
31
+ if ($this->_entityChanged($this->_product)) {
32
+ $this->_initObserver($observer);
33
+ Springbot_Boss::scheduleJob('post:product', array('i' => $this->_product->getId()), Springbot_Services::LISTENER, 'listener');
34
+ }
35
+
36
+ } catch (Exception $e) {
37
+ Springbot_Log::error($e);
38
+ }
39
+ }
40
+
41
+ public function onProductDeleteBefore($observer)
42
+ {
43
+ $this->_initObserver($observer);
44
+ try{
45
+ $this->_product = $observer->getEvent()->getProduct();
46
+ $entity_id = $this->_product->getId();
47
+ foreach(Mage::helper('combine/harvest')->mapStoreIds($this->_product) as $mapped) {
48
+ $post[] = array(
49
+ 'store_id' => $mapped->getStoreId(),
50
+ 'entity_id' => $entity_id,
51
+ 'sku' => $this->_getSkuFailsafe($this->_product),
52
+ 'is_deleted' => true,
53
+ );
54
+ }
55
+ Mage::helper('combine/harvest')->deleteRemote($post, 'products');
56
+ } catch (Exception $e) {
57
+ Springbot_Log::error($e);
58
+ }
59
+ }
60
+
61
+ protected function _getSkuFailsafe($product)
62
+ {
63
+ if ($sku = $product->getSku()) {
64
+ return $sku;
65
+ }
66
+ else {
67
+ return Springbot_Boss::NO_SKU_PREFIX . $product->getEntityId();
68
+ }
69
+ }
70
+
71
+ protected function _getAttributesToListenFor($extras = array())
72
+ {
73
+ return parent::_getAttributesToListenFor(
74
+ Mage::helper('combine/parser')->getCustomAttributeNames($this->_product)
75
+ );
76
+
77
+ }
78
+ }
app/code/community/Springbot/BoneCollector/Model/HarvestPurchase/Observer.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Springbot_BoneCollector_Model_HarvestPurchase_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
3
+ {
4
+ const ACTION = 'purchase';
5
+
6
+ public function onFrontendOrderSaveAfter($observer)
7
+ {
8
+ try {
9
+ $order = $observer->getEvent()->getOrder();
10
+ Mage::helper('combine/trackable')->updateTrackables($order);
11
+ Springbot_Boss::addTrackable(
12
+ 'purchase_user_agent',
13
+ $_SERVER['HTTP_USER_AGENT'],
14
+ $order->getQuoteId(),
15
+ $order->getCustomerId(),
16
+ $order->getCustomerEmail(),
17
+ $order->getEntityId()
18
+ );
19
+ $this->_schedulePurchasePost($order, true);
20
+ }
21
+ catch (Exception $e) {
22
+ Springbot_Log::error($e);
23
+ }
24
+ }
25
+
26
+ public function onAdminOrderSaveAfter($observer)
27
+ {
28
+ try {
29
+ $order = $observer->getEvent()->getOrder();
30
+ Mage::helper('combine/trackable')->updateTrackables($order);
31
+ $this->_schedulePurchasePost($order, false);
32
+ }
33
+ catch (Exception $e) {
34
+ Springbot_Log::error($e);
35
+ }
36
+ }
37
+
38
+ public function onFrontendOrderPlaceAfter($observer)
39
+ {
40
+ try {
41
+ $this->_initObserver($observer);
42
+ $order = $observer->getEvent()->getOrder();
43
+ $storeId = $order->getStoreId();
44
+ $parsedPurchase = Mage::getModel('combine/parser_purchase', $order);
45
+
46
+ foreach ($order->getAllVisibleItems() as $item) {
47
+ $lastCatId = $this->_getSaneCategoryId($item);
48
+ $qty = $item->getQtyOrdered();
49
+ $qty = $qty > 0 ? $qty : 1;
50
+
51
+ $parsedItem = Mage::getModel('combine/parser_purchase_item', $item);
52
+
53
+ Springbot_Boss::insertEvent(array(
54
+ 'type' => 'purchase',
55
+ 'sku' => $parsedItem->getSku(),
56
+ 'sku_fulfillment' => $parsedItem->getSkuFulfillment(),
57
+ 'purchase_id' => $parsedPurchase->getPurchaseId(),
58
+ 'category_id' => $this->_getSaneCategoryId($item),
59
+ 'store_id' => $storeId,
60
+ 'quantity' => $qty,
61
+ ));
62
+ }
63
+ Springbot_Cli::runHealthcheck($storeId);
64
+ }
65
+ catch (Exception $e) {
66
+ Springbot_Log::error($e);
67
+ }
68
+ }
69
+
70
+ private function _schedulePurchasePost($order, $frontend)
71
+ {
72
+ Springbot_Boss::scheduleJob('post:purchase',
73
+ array(
74
+ 'i' => $order->getEntityId(),
75
+ 'c' => $this->_getLastCategoryId(),
76
+ 'r' => $this->_getRedirectIds($frontend, $order),
77
+ ),
78
+ Springbot_Services::LISTENER, 'listener'
79
+ );
80
+ }
81
+
82
+ private function _getLastCategoryId()
83
+ {
84
+ return Mage::helper('combine')->getLastCategoryId();
85
+ }
86
+
87
+ private function _getSaneCategoryId($item)
88
+ {
89
+ return Mage::helper('combine')->checkCategoryIdSanity(
90
+ $this->_getLastCategoryId(),
91
+ $item->getProductId()
92
+ );
93
+ }
94
+
95
+ private function _getAccessibleSku($item)
96
+ {
97
+ return Mage::helper('combine/parser')->getAccessibleSkuFromSalesItem($item);
98
+ }
99
+
100
+ private function _getRedirectIds($frontend = true, $order)
101
+ {
102
+ $redirects = $frontend ? Mage::helper('combine/redirect')->getRedirectIds() : array();
103
+ $customerEmail = $order->getCustomerEmail();
104
+ if ($dbRedirects = Mage::helper('combine/redirect')->getRedirectsByEmail($customerEmail, $order->getCreatedAt())) {
105
+ $redirects = array_unique(array_merge($redirects, $dbRedirects));
106
+ }
107
+ return array_values($redirects);
108
+ }
109
+ }
app/code/community/Springbot/BoneCollector/Model/HarvestRule/Observer.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestRule_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ protected $_attributes = array(
6
+ 'is_active',
7
+ 'name' ,
8
+ 'coupon_code',
9
+ 'description',
10
+ 'conditions',
11
+ 'actions',
12
+ 'from_date',
13
+ 'to_date',
14
+ 'uses_per_coupon',
15
+ 'uses_per_customer',
16
+ 'stop_rules_processing',
17
+ 'is_advanced',
18
+ 'product_ids',
19
+ 'sort_order',
20
+ 'simple_action',
21
+ 'discount_amount',
22
+ 'discount_qty',
23
+ 'discount_step',
24
+ 'simple_free_shipping',
25
+ 'apply_to_shipping',
26
+ 'times_used',
27
+ 'is_rss',
28
+ 'website_ids',
29
+ 'customer_group_ids',
30
+ );
31
+
32
+ public function onSalesruleRuleSaveAfter($observer)
33
+ {
34
+ try {
35
+ $this->_initObserver($observer);
36
+ $this->_rule = $observer->getEvent()->getRule();
37
+
38
+ if ($this->_entityChanged($this->_rule)) {
39
+ $ruleId = $this->_rule->getId();
40
+
41
+ foreach ($this->_getWebsiteIds() as $websiteId) {
42
+ if ($website = Mage::app()->getWebsite($websiteId)) {
43
+ foreach ($website->getGroups() as $group) {
44
+ $stores = $group->getStores();
45
+ foreach ($stores as $store) {
46
+ Springbot_Boss::scheduleJob(
47
+ 'post:rule',
48
+ array('i' => $ruleId, 's' => $store->getId()),
49
+ Springbot_Services::LISTENER,
50
+ 'listener'
51
+ );
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ catch (Exception $e) {
59
+ Springbot_Log::error($e);
60
+ }
61
+
62
+ }
63
+
64
+ public function onSalesruleRuleDeleteBefore($observer)
65
+ {
66
+ try {
67
+ // Runs blocking in session to guarantee record existence
68
+ $rule = $observer->getEvent()->getRule()->getPrimaryCoupon();
69
+ $this->_initObserver($observer);
70
+ Springbot_Boss::scheduleJob(
71
+ 'post:rule',
72
+ array('i' => $rule->getId(), 'd' => true),
73
+ Springbot_Services::LISTENER,
74
+ 'listener'
75
+ );
76
+ }
77
+ catch (Exception $e) {
78
+ Springbot_Log::error($e);
79
+ }
80
+ }
81
+
82
+ protected function _getWebsiteIds()
83
+ {
84
+ $ids = $this->_rule->getWebsiteIds();
85
+ if(is_string($ids)) {
86
+ $ids = explode(',', $ids);
87
+ }
88
+ if(!is_array($ids)) {
89
+ $ids = array();
90
+ }
91
+ return $ids;
92
+ }
93
+ }
94
+
app/code/community/Springbot/BoneCollector/Model/HarvestSubscriber/Observer.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Springbot_BoneCollector_Model_HarvestSubscriber_Observer extends Springbot_BoneCollector_Model_HarvestAbstract
4
+ {
5
+ public function onSubscriberSaveAfter($observer)
6
+ {
7
+ try {
8
+ $this->_initObserver($observer);
9
+ $subscriberId = $observer->getEvent()->getSubscriber()->getId();
10
+
11
+ Springbot_Boss::scheduleJob(
12
+ 'post:subscriber',
13
+ array('i' => $subscriberId),
14
+ Springbot_Services::LISTENER,
15
+ 'listener'
16
+ );
17
+
18
+ }
19
+ catch (Exception $e) {
20
+ Springbot_Log::error($e);
21
+ }
22
+ }
23
+
24
+ public function onSubscriberDeleteBefore($observer)
25
+ {
26
+ try {
27
+ // Runs blocking in session to guarantee record existence
28
+ $this->_initObserver($observer);
29
+ Mage::getModel('Springbot_Services_Post_Subscriber')->setData(array(
30
+ 'start_id' => $observer->getEvent()->getSubscriber()->getId(),
31
+ 'delete' => true,
32
+ ))->run();
33
+ }
34
+ catch (Exception $e) {
35
+ Springbot_Log::error($e);
36
+ }
37
+ }
38
+ }
39
+
app/code/community/Springbot/BoneCollector/etc/config.xml ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <global>
4
+ <models>
5
+ <bonecollector>
6
+ <class>Springbot_BoneCollector_Model</class>
7
+ </bonecollector>
8
+ </models>
9
+ <events>
10
+ <catalog_product_save_after>
11
+ <observers>
12
+ <springbot_bonecollector_product_observer>
13
+ <type>singleton</type>
14
+ <class>Springbot_BoneCollector_Model_HarvestProduct_Observer</class>
15
+ <method>onProductSaveAfter</method>
16
+ </springbot_bonecollector_product_observer>
17
+ </observers>
18
+ </catalog_product_save_after>
19
+ <catalog_product_delete_before>
20
+ <observers>
21
+ <springbot_bonecollector_productdelete_observer>
22
+ <type>singleton</type>
23
+ <class>Springbot_BoneCollector_Model_HarvestProduct_Observer</class>
24
+ <method>onProductDeleteBefore</method>
25
+ </springbot_bonecollector_productdelete_observer>
26
+ </observers>
27
+ </catalog_product_delete_before>
28
+ <catalog_category_save_after>
29
+ <observers>
30
+ <springbot_bonecollector_categorysave_observer>
31
+ <type>singleton</type>
32
+ <class>Springbot_BoneCollector_Model_HarvestCategory_Observer</class>
33
+ <method>onCategorySaveAfter</method>
34
+ </springbot_bonecollector_categorysave_observer>
35
+ </observers>
36
+ </catalog_category_save_after>
37
+ <catalog_category_delete_after>
38
+ <observers>
39
+ <springbot_bonecollector_categorydelete_observer>
40
+ <type>singleton</type>
41
+ <class>Springbot_BoneCollector_Model_HarvestCategory_Observer</class>
42
+ <method>onCategoryDeleteAfter</method>
43
+ </springbot_bonecollector_categorydelete_observer>
44
+ </observers>
45
+ </catalog_category_delete_after>
46
+ <customer_save_after>
47
+ <observers>
48
+ <springbot_bonecollector_customersave_observer>
49
+ <type>singleton</type>
50
+ <class>Springbot_BoneCollector_Model_HarvestCustomer_Observer</class>
51
+ <method>onCustomerSaveAfter</method>
52
+ </springbot_bonecollector_customersave_observer>
53
+ </observers>
54
+ </customer_save_after>
55
+ <customer_delete_before>
56
+ <observers>
57
+ <springbot_bonecollector_customerdelete_observer>
58
+ <type>singleton</type>
59
+ <class>Springbot_BoneCollector_Model_HarvestCustomer_Observer</class>
60
+ <method>onCustomerDeleteBefore</method>
61
+ </springbot_bonecollector_customerdelete_observer>
62
+ </observers>
63
+ </customer_delete_before>
64
+ <newsletter_subscriber_save_after>
65
+ <observers>
66
+ <springbot_bonecollector_customersave_observer>
67
+ <type>singleton</type>
68
+ <class>Springbot_BoneCollector_Model_HarvestSubscriber_Observer</class>
69
+ <method>onSubscriberSaveAfter</method>
70
+ </springbot_bonecollector_customersave_observer>
71
+ </observers>
72
+ </newsletter_subscriber_save_after>
73
+ <newsletter_subscriber_delete_before>
74
+ <observers>
75
+ <springbot_bonecollector_customerdelete_observer>
76
+ <type>singleton</type>
77
+ <class>Springbot_BoneCollector_Model_HarvestSubscriber_Observer</class>
78
+ <method>onSubscriberDeleteBefore</method>
79
+ </springbot_bonecollector_customerdelete_observer>
80
+ </observers>
81
+ </newsletter_subscriber_delete_before>
82
+ </events>
83
+ </global>
84
+ <frontend>
85
+ <events>
86
+ <sales_order_place_after>
87
+ <observers>
88
+ <springbot_bonecollector_purchase_action_observer>
89
+ <type>singleton</type>
90
+ <class>Springbot_BoneCollector_Model_HarvestPurchase_Observer</class>
91
+ <method>onFrontendOrderPlaceAfter</method>
92
+ </springbot_bonecollector_purchase_action_observer>
93
+ </observers>
94
+ </sales_order_place_after>
95
+ <sales_order_save_after>
96
+ <observers>
97
+ <springbot_bonecollector_purchase_observer>
98
+ <type>singleton</type>
99
+ <class>Springbot_BoneCollector_Model_HarvestPurchase_Observer</class>
100
+ <method>onFrontendOrderSaveAfter</method>
101
+ </springbot_bonecollector_purchase_observer>
102
+ </observers>
103
+ </sales_order_save_after>
104
+ <sales_quote_save_after>
105
+ <observers>
106
+ <springbot_bonecollector_addtocart_observer>
107
+ <type>singleton</type>
108
+ <class>Springbot_BoneCollector_Model_HarvestCart_Observer</class>
109
+ <method>onFrontendQuoteSaveAfter</method>
110
+ </springbot_bonecollector_addtocart_observer>
111
+ </observers>
112
+ </sales_quote_save_after>
113
+ <checkout_cart_add_product_complete>
114
+ <observers>
115
+ <springbot_bonecollector_addskutocart_observer>
116
+ <type>singleton</type>
117
+ <class>Springbot_BoneCollector_Model_HarvestCart_Observer</class>
118
+ <method>onFrontendCartAddProduct</method>
119
+ </springbot_bonecollector_addskutocart_observer>
120
+ </observers>
121
+ </checkout_cart_add_product_complete>
122
+ <checkout_cart_update_items_before>
123
+ <observers>
124
+ <springbot_bonecollector_addskutocart_observer>
125
+ <type>singleton</type>
126
+ <class>Springbot_BoneCollector_Model_HarvestCart_Observer</class>
127
+ <method>onFrontendCartUpdate</method>
128
+ </springbot_bonecollector_addskutocart_observer>
129
+ </observers>
130
+ </checkout_cart_update_items_before>
131
+ </events>
132
+ </frontend>
133
+ <adminhtml>
134
+ <events>
135
+ <sales_order_save_after>
136
+ <observers>
137
+ <springbot_bonecollector_purchase_admin_observer>
138
+ <type>singleton</type>
139
+ <class>Springbot_BoneCollector_Model_HarvestPurchase_Observer</class>
140
+ <method>onAdminOrderSaveAfter</method>
141
+ </springbot_bonecollector_purchase_admin_observer>
142
+ </observers>
143
+ </sales_order_save_after>
144
+ <catalog_entity_attribute_save_commit_after>
145
+ <observers>
146
+ <springbot_bonecollector_attribute_observer>
147
+ <type>singleton</type>
148
+ <class>Springbot_BoneCollector_Model_HarvestAttribute_Observer</class>
149
+ <method>onAdminAttributeSaveAfter</method>
150
+ </springbot_bonecollector_attribute_observer>
151
+ </observers>
152
+ </catalog_entity_attribute_save_commit_after>
153
+ <eav_entity_attribute_save_commit_after>
154
+ <observers>
155
+ <springbot_bonecollector_attribute_set_observer>
156
+ <type>singleton</type>
157
+ <class>Springbot_BoneCollector_Model_HarvestAttribute_Observer</class>
158
+ <method>onAdminAttributeSetSaveAfter</method>
159
+ </springbot_bonecollector_attribute_set_observer>
160
+ </observers>
161
+ </eav_entity_attribute_save_commit_after>
162
+ <salesrule_rule_save_after>
163
+ <observers>
164
+ <springbot_bonecollector_rulesave_observer>
165
+ <type>singleton</type>
166
+ <class>Springbot_BoneCollector_Model_HarvestRule_Observer</class>
167
+ <method>onSalesruleRuleSaveAfter</method>
168
+ </springbot_bonecollector_rulesave_observer>
169
+ </observers>
170
+ </salesrule_rule_save_after>
171
+ <salesrule_rule_delete_before>
172
+ <observers>
173
+ <springbot_bonecollector_coupondelete_observer>
174
+ <type>singleton</type>
175
+ <class>Springbot_BoneCollector_Model_HarvestCoupon_Observer</class>
176
+ <method>onSalesruleRuleDeleteBefore</method>
177
+ </springbot_bonecollector_coupondelete_observer>
178
+ </observers>
179
+ </salesrule_rule_delete_before>
180
+ </events>
181
+ </adminhtml>
182
+ </config>
app/code/community/Springbot/Combine/Model/Parser/Customer.php CHANGED
@@ -36,12 +36,16 @@ class Springbot_Combine_Model_Parser_Customer extends Springbot_Combine_Model_Pa
36
 
37
  protected function _parse()
38
  {
 
 
 
 
39
  $this->setData(array(
40
  'customer_id' => $this->_customer->getEntityId(),
41
  'first_name' => $this->_customer->getFirstname(),
42
  'last_name' => $this->_customer->getLastname(),
43
  'email' => $this->_getEmail(),
44
- 'store_id' => $this->_getSpringbotStoreId($this->_customer->getStore()->getId()),
45
  'has_purchase' => $this->hasCustomerPurchased(),
46
  'json_data' => $this->_getAddressData(),
47
  'custom_attribute_set_id' => $this->_customer->getAttributeSetId(),
36
 
37
  protected function _parse()
38
  {
39
+ $magentoStoreId = $this->_customer->getStore()->getId();
40
+ if ($magentoStoreId == 0) {
41
+ $magentoStoreId = Mage::getStoreConfig('springbot/config/store_zero_alias');
42
+ }
43
  $this->setData(array(
44
  'customer_id' => $this->_customer->getEntityId(),
45
  'first_name' => $this->_customer->getFirstname(),
46
  'last_name' => $this->_customer->getLastname(),
47
  'email' => $this->_getEmail(),
48
+ 'store_id' => $this->_getSpringbotStoreId($magentoStoreId),
49
  'has_purchase' => $this->hasCustomerPurchased(),
50
  'json_data' => $this->_getAddressData(),
51
  'custom_attribute_set_id' => $this->_customer->getAttributeSetId(),
app/code/community/Springbot/Combine/Model/Parser/Purchase.php CHANGED
@@ -16,6 +16,12 @@ class Springbot_Combine_Model_Parser_Purchase extends Springbot_Combine_Model_Pa
16
  protected function _parse()
17
  {
18
  $model = $this->_purchase;
 
 
 
 
 
 
19
 
20
  $this->setData(array(
21
  'purchase_id' => $model->getIncrementId(),
@@ -25,7 +31,7 @@ class Springbot_Combine_Model_Parser_Purchase extends Springbot_Combine_Model_Pa
25
  'redirect_mongo_id' => $this->_getRedirectMongoId(),
26
  'redirect_mongo_ids' => $this->_getRedirectMongoIds(),
27
  'sb_params' => $this->_getSbParams($model->getQuoteId()),
28
- 'store_id' => $this->_getSpringbotStoreId($model->getStoreId()),
29
  'customer_id' => $this->_getCustomerId(),
30
  'order_date_time' => $model->getCreatedAt(),
31
  'order_gross' => $this->_getBaseAmt('grand_total'),
16
  protected function _parse()
17
  {
18
  $model = $this->_purchase;
19
+ if ($model->getStoreId() == 0) {
20
+ $storeId = Mage::getStoreConfig('springbot/config/store_zero_alias');
21
+ }
22
+ else {
23
+ $storeId = $model->getStoreId();
24
+ }
25
 
26
  $this->setData(array(
27
  'purchase_id' => $model->getIncrementId(),
31
  'redirect_mongo_id' => $this->_getRedirectMongoId(),
32
  'redirect_mongo_ids' => $this->_getRedirectMongoIds(),
33
  'sb_params' => $this->_getSbParams($model->getQuoteId()),
34
+ 'store_id' => $this->_getSpringbotStoreId($storeId),
35
  'customer_id' => $this->_getCustomerId(),
36
  'order_date_time' => $model->getCreatedAt(),
37
  'order_gross' => $this->_getBaseAmt('grand_total'),
app/code/community/Springbot/Combine/etc/config.xml CHANGED
@@ -73,6 +73,7 @@
73
  <email_selector>billing:email,login-email,newsletter</email_selector>
74
  <email_selector_classes>validate-email</email_selector_classes>
75
  <sent_store_noemail>0</sent_store_noemail>
 
76
  </config>
77
  <images>
78
  <use_cached_images>0</use_cached_images>
73
  <email_selector>billing:email,login-email,newsletter</email_selector>
74
  <email_selector_classes>validate-email</email_selector_classes>
75
  <sent_store_noemail>0</sent_store_noemail>
76
+ <store_zero_alias>1</store_zero_alias>
77
  </config>
78
  <images>
79
  <use_cached_images>0</use_cached_images>
app/code/community/Springbot/Services/Harvest/Customers.php CHANGED
@@ -14,7 +14,19 @@ class Springbot_Services_Harvest_Customers extends Springbot_Services_Harvest
14
  public function getCollection($storeId, $partition = null)
15
  {
16
  $collection = Mage::getModel('customer/customer')->getCollection();
17
- $collection->addFieldToFilter('store_id', $storeId);
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
  if ($this->getStartId() !== null) {
20
  $collection->addFieldToFilter('entity_id', array('gt' => $this->getStartId()));
14
  public function getCollection($storeId, $partition = null)
15
  {
16
  $collection = Mage::getModel('customer/customer')->getCollection();
17
+
18
+ if ($storeId == Mage::getStoreConfig('springbot/config/store_zero_alias')) {
19
+ $collection->addFieldToFilter('store_id',
20
+ array(
21
+ array('eq' => 0),
22
+ array('eq' => $storeId),
23
+ )
24
+ );
25
+ }
26
+ else {
27
+ $collection->addFieldToFilter('store_id', $storeId);
28
+ }
29
+
30
 
31
  if ($this->getStartId() !== null) {
32
  $collection->addFieldToFilter('entity_id', array('gt' => $this->getStartId()));
app/code/community/Springbot/Services/Harvest/Purchases.php CHANGED
@@ -15,7 +15,19 @@ class Springbot_Services_Harvest_Purchases extends Springbot_Services_Harvest
15
  public function getCollection($storeId, $partition = null)
16
  {
17
  $collection = Mage::getModel('sales/order')->getCollection();
18
- $collection->addFieldToFilter('store_id', $storeId);
 
 
 
 
 
 
 
 
 
 
 
 
19
  if ($this->getStartId() !== null) {
20
  $collection->addFieldToFilter('entity_id', array('gt' => $this->getStartId()));
21
  }
15
  public function getCollection($storeId, $partition = null)
16
  {
17
  $collection = Mage::getModel('sales/order')->getCollection();
18
+
19
+ if ($storeId == Mage::getStoreConfig('springbot/config/store_zero_alias')) {
20
+ $collection->addFieldToFilter('store_id',
21
+ array(
22
+ array('eq' => 0),
23
+ array('eq' => $storeId),
24
+ )
25
+ );
26
+ }
27
+ else {
28
+ $collection->addFieldToFilter('store_id', $storeId);
29
+ }
30
+
31
  if ($this->getStartId() !== null) {
32
  $collection->addFieldToFilter('entity_id', array('gt' => $this->getStartId()));
33
  }
app/code/community/Springbot/Shadow/Helper/Prattler.php CHANGED
@@ -12,9 +12,11 @@ class Springbot_Shadow_Helper_Prattler extends Mage_Core_Helper_Abstract
12
  public function getPrattlerJsonResponse()
13
  {
14
  $jobs = Mage::getModel('combine/cron_queue')->getCollection();
 
15
  $response = array(
16
  'success' => true,
17
  'jobs' => $jobs->getActiveCount(),
 
18
  );
19
  return json_encode($response);
20
  }
12
  public function getPrattlerJsonResponse()
13
  {
14
  $jobs = Mage::getModel('combine/cron_queue')->getCollection();
15
+ $events = Mage::getModel('combine/action')->getCollection();
16
  $response = array(
17
  'success' => true,
18
  'jobs' => $jobs->getActiveCount(),
19
+ 'events' => $events->getSize()
20
  );
21
  return json_encode($response);
22
  }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Springbot</name>
4
- <version>1.4.0.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/OSL-3.0">Open Software License v3.0 (OSL-3.0)</license>
7
  <channel>community</channel>
@@ -47,12 +47,11 @@
47
  Proclivity to Buy Alerts example: Sally Avalon bought a house recently &#xD;
48
  &#xD;
49
  For support information, features and pricing and more details visit springbot.com </description>
50
- <notes>Fixed remote tasks calling issue&#xD;
51
- Added ability to define store on remote healthcheck</notes>
52
  <authors><author><name>Springbot Integrations Team</name><user>Springbot</user><email>magento@springbot.com</email></author></authors>
53
- <date>2014-12-15</date>
54
- <time>15:55:07</time>
55
- <contents><target name="magecommunity"><dir name="Springbot"><dir name="Shadow"><dir name="Block"><dir name="Action"><file name="View.php" hash="498947c2762fba3382bdd9b5bf3fb607"/></dir><file name="Async.php" hash="0d203fe1a722f7045029613a0e97bfc2"/></dir><dir name="Controller"><file name="Action.php" hash="5dc41d4ddf12a468fb23fc757ef49a95"/></dir><dir name="Helper"><file name="Data.php" hash="82089d4cfecee69628ae9d627ad2de0c"/><file name="Prattler.php" hash="31e3f52b756abab70a8ab9e5af3181f8"/></dir><dir name="Model"><dir name="Listeners"><file name="Observer.php" hash="e5b827a61c3b04fdb73e38a424d167eb"/></dir></dir><dir name="controllers"><file name="ActionController.php" hash="2532947b3368c5a4d64bf77cc7aa9316"/><file name="IndexController.php" hash="94e557b60b9902aace5901eaa268ad3e"/></dir><dir name="etc"><file name="config.xml" hash="b1717e37375197b449c0736adff99d87"/></dir></dir><dir name="Services"><dir name="Cmd"><file name="Forecast.php" hash="efaeb6ca5b2667b30929b223cddfb044"/><file name="Halt.php" hash="85c85ae257e9b86d0fb10fb46060fea3"/><file name="Harvest.php" hash="83c74d0736f17475574d1ef3064443fe"/><file name="Healthcheck.php" hash="79eec1fd01ddf9c61418da86ecaaf8cb"/><file name="Update.php" hash="ecc55c4b1d3e7bb0a275727bcb7f904d"/></dir><dir name="Harvest"><file name="AttributeSets.php" hash="95610f6fd6323e0473589c01051781f2"/><file name="Carts.php" hash="ecaf8583962fc63e49cf069d73eb22bf"/><file name="Categories.php" hash="acfe9c8dc9a02992a058015e8aaf9311"/><file name="Coupons.php" hash="4692e989f73e5a285c869c60fa5ac501"/><file name="CustomerAttributeSets.php" hash="7c3a0bed9f841900f692f5a17e7c6e8f"/><file name="Customers.php" hash="4e79c1ba937a3a9f67ff5b19893dfd39"/><file name="Guests.php" hash="e0f6d955ba9bc3f020cc95f3083913ad"/><file name="Products.php" hash="087d01eddc45b4a30c4aa7dba5cc5dce"/><file name="Purchases.php" hash="157d748193623edae627b64644500df9"/><file name="Rules.php" hash="355ecad7266987a391ceca9d2eb0244f"/><file name="Subscribers.php" hash="adcba840c9b1fd40caa05f317320d458"/></dir><file name="Harvest.php" hash="af3b9604c7b9d7da76cffe846dc34d70"/><dir name="Log"><file name="Installer.php" hash="342706712eb2731ea27aeec993fd2d7f"/></dir><dir name="Post"><file name="Attribute.php" hash="e0a283984de84bc16d5f89a893a8dc83"/><file name="AttributeSet.php" hash="c8f66b5a189125a63e834196402b709a"/><file name="Cart.php" hash="26d33fb887417e46d3ba3e46badc04a3"/><file name="Category.php" hash="0645d5eb9bb790f25e29666bc3a703e0"/><file name="Coupon.php" hash="6b8b49327874ce431f6100b6917ba21f"/><file name="Customer.php" hash="d2f018919afdb7d49617e6b9ac7d2760"/><file name="Guest.php" hash="3b7ee9f0e274340713d8c4302d01b361"/><file name="Json.php" hash="86a5f26aa5367d8c4c66d278e4c02546"/><file name="Jsonstring.php" hash="9dfb5761d1a7835bf35040a073fa8fc4"/><file name="Product.php" hash="5ec9cbf29df156da09d17e1b6526f53d"/><file name="Purchase.php" hash="0b924c8e5d8f7018eb335ba9fb6d63dd"/><file name="Rule.php" hash="fa038fa414a176d960ed6470c7b7b4cd"/><file name="Subscriber.php" hash="88c5dbcaae805866595217eedbbf5f34"/></dir><file name="Post.php" hash="df9bf80bee670259f3a54e3308d0dbd3"/><file name="Registry.php" hash="c4f17c52b0814c29b7ab93e911a2de28"/><dir name="Store"><file name="Finalize.php" hash="e3636b532bc8f55ba0e618a973e2faa0"/><file name="Register.php" hash="72ae8d75c11dc1c0635c799e284ecb2d"/></dir><dir name="Tasks"><file name="DeliverEventLog.php" hash="d4448212c228d74a320b541385162b10"/><file name="Forecast.php" hash="9cb195b603f843cf2eac74530aa6c84b"/><file name="GetLog.php" hash="8e663a1dbd2dd87a7bfb65b8e8bc2b4a"/><file name="KillHarvest.php" hash="55c540031b57c0a38d83b99e72865bca"/><file name="LaunchFullHarvest.php" hash="b2a9d9c75a46b8c9c4889ddf02094921"/><file name="LaunchPartialHarvest.php" hash="c2a3bc35d62c3eed93107651de7026c8"/><file name="PackageUpdate.php" hash="cb88473eea4e15760a4fa7c0aba83ddb"/><file name="PostItem.php" hash="58c51f04b3e6d297b33fdf15baf2e8f1"/><file name="ResumeHarvest.php" hash="4cd58b8cb691267b4c1366ea3da47673"/><file name="SetVar.php" hash="5b4bea2e94b4bea05bbf326ee3e74fab"/><file name="SkipStoreHarvest.php" hash="1919b0dba7e20c6ff0e3fc302cc2f172"/></dir><dir name="Update"><file name="Abstract.php" hash="7b9a1d36b4486e250587820731b7fb7c"/><file name="Connect.php" hash="3e4366a42e563ec3406a0fcb9a5f77bf"/><file name="Downloader.php" hash="934ef5788acb45ce94e0a32c1d705df1"/><file name="Installer.php" hash="a09ec2e9f7bbf12c117c8950e46072b0"/><file name="Package.php" hash="60ec01b28a2ded244bf6d4a971918bd5"/></dir><dir name="Work"><file name="Cleanup.php" hash="100fef130220e91dc255b5e0f30c37f1"/><file name="Manager.php" hash="9dbdfb717865b7724f4ffd38b3ec866e"/><file name="Report.php" hash="a6482e618e657688ab85221576d1898f"/><file name="Restart.php" hash="d55e811fbba86348890b4047fa5a579f"/><file name="Runner.php" hash="c0ced9ce83e5e51b4ba5f10bb46760af"/><file name="Stop.php" hash="db97407b43396f0adf44a2354a23a0a5"/></dir></dir><dir name="Util"><file name="Cache.php" hash="2c6eb2ee4ee723758fc92989e9220f6e"/><file name="Caller.php" hash="4fcc265eb1a58fed5c3b404ec864514b"/><file name="Categories.php" hash="1292843306c38d9593902616e04320a6"/><dir name="Log"><file name="Rollover.php" hash="6ad4bd93adb7e906c1de5a05a2871ea8"/></dir><file name="Logger.php" hash="59abca8cb07ef933ca8ef2ac824591b5"/><file name="Partition.php" hash="b9296b086003ba58ba12f8b8b0373c50"/><file name="Timer.php" hash="fe07f62aee3239ad7f9df1e652fd5a1c"/></dir><file name="Services.php" hash="a1620885fe701c90a82f13c9b97fe496"/><dir name="Bmbleb"><dir name="Block"><dir name="Adminhtml"><file name="Auth.php" hash="7dc661bbe9ec85f700a22b319981114d"/><dir name="Bmbleb"><dir name="Login"><file name="Form.php" hash="6d54c1272c7e0a37f3dfe7a23b97a451"/></dir><file name="Login.php" hash="7232e8225f5b21de5675c0d84cb452bd"/></dir><file name="Connected.php" hash="833cef8e351f5efa7a4d104b1c51ca7f"/><file name="Help.php" hash="b280b3292ed778140b751b6426ef56fb"/><dir name="Index"><file name="Messages.php" hash="1e247e31194447de32e54f49dafc3ccc"/><file name="Terms.php" hash="739e5a9ebe204f1f9ac433557c994ae6"/></dir><file name="Index.php" hash="eb7bbef5fa26a53748596e145c3677c4"/><dir name="Jobs"><file name="Grid.php" hash="67255d982ac3d50b38d7a2a525c2b922"/><file name="Status.php" hash="f1b197bf6fdc392bed93ff0734a54ad6"/></dir><file name="Jobs.php" hash="84801c6008802496e168e763a7e6d71f"/><file name="Login.php" hash="2e4d8baead482d404ed40f7d5f3d902c"/><file name="Logout.php" hash="b75af51891b751b9d070e1e784dd6914"/><file name="Logs.php" hash="686e958b553c1e3fcf74841eab30fffb"/><file name="Notifications.php" hash="b9e103d6c255078274c2f3047d944d0e"/><file name="Problems.php" hash="c2fd654e2c4c3a6dd9fbb083d0995e5e"/><file name="Status.php" hash="9b67a20f0ee00608029d24850cefda4d"/><file name="Tabs.php" hash="6f93d5c6bd5208a99637c06118c6c630"/></dir></dir><dir name="Helper"><file name="Account.php" hash="c41f40e6f58abd3b8486e0e92cc079d8"/><file name="Data.php" hash="dca14b137de1e2734a377ca645eeddbe"/><file name="PluginStatus.php" hash="ad6479bb3441a36053fd08d8eef7d556"/></dir><dir name="Model"><file name="Bmbleb.php" hash="700d11c3006f2dcd2e80cd8bbbab15f9"/><file name="Status.php" hash="9409d26c7884be6b8075ba97dbf71f78"/><file name="Sync.php" hash="a800b6064a88f37957392cd967f2b3cb"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="HelpController.php" hash="087e7868dafe9dd2df89a642d405424a"/><file name="IndexController.php" hash="61a95eed027fcb7a7179485288f1b05f"/><file name="JobsController.php" hash="4e912a8fafd2f58235cb2299a83a128b"/><file name="LogsController.php" hash="20a0ce2f584f08480399b7a5ecbd9207"/><file name="ProblemsController.php" hash="9753f4b2d3e7d4873e4bd92b5b2b6aaf"/><file name="SettingsController.php" hash="f75a7a8ef28a296cbd46b04ae9dd5539"/></dir><file name="HelpController.php" hash="2df4608a957f151bf1d01dbde2113680"/><file name="IndexController.php" hash="ea5fa5e2b305f46b222cb2fc2a44f6a5"/><file name="LoginController.php" hash="41a0c13dce233a613f89b614cffa0eb1"/><file name="LogoutController.php" hash="140c9d32f5557aa1169fd1b85cd5cc9f"/></dir><dir name="etc"><file name="config.xml" hash="45f7218274a3eed0086761942a95f27b"/></dir></dir><file name="Boss.php" hash="c0faf455fd65cb018ecd9d921c3da0a7"/><file name="Cli.php" hash="84e3d0391b70498f15ef357677f56b2b"/><file name="Log.php" hash="5ab61d7cf21805adb8f826f83b9bf7b1"/><dir name="Combine"><dir name="Helper"><file name="Attributes.php" hash="5fb06e7cc89bb710039a79fb16e2a998"/><file name="Cart.php" hash="07ce5f461ecded3b9b00ed5c30faa266"/><file name="Data.php" hash="bba3915380a71aaacacc306f10396ef1"/><file name="Harvest.php" hash="08fd1b330802731bf82358fd05789173"/><file name="Parser.php" hash="28baa1d59b6d25ac455441138a5c3f32"/><file name="Redirect.php" hash="92053fb1b356fdd6b3131be0b6a8017c"/><file name="Store.php" hash="8db94d157d7e497e7612844da43a6c11"/><file name="Trackable.php" hash="a042cb0d176730ec87353b1c5c6d21f7"/></dir><dir name="Model"><file name="Action.php" hash="6375461263bdf7fe26e71235d2449c21"/><file name="Api.php" hash="978590ad36b4d6ad6b3a14742f8bb31c"/><dir name="Cron"><file name="Count.php" hash="57552740b6ffdd9a4e879191a51043b0"/><dir name="Manager"><file name="Status.php" hash="aeb4445bc2d4b1b7e0e19c09172f0483"/></dir><dir name="Queue"><dir name="Batch"><file name="Row.php" hash="87e03af3c5d80ddf84df3843bcc8a3b7"/></dir><file name="Batch.php" hash="70b58e8a9a3e604a43c95ce6c2f21232"/></dir><file name="Queue.php" hash="44dc400302dcfd7fe11a7d1dddbd07f0"/><file name="Worker.php" hash="8b5040f1c5c5b3221542e739dc951de7"/></dir><file name="Cron.php" hash="40f2bc9634610f4ed5464de48630ce16"/><dir name="File"><file name="Io.php" hash="6d1f79eaf45897bf0525b0f3f3ac69d2"/><file name="Path.php" hash="24900b670c07fcdc4e54bae585f20002"/></dir><dir name="Harvest"><file name="AttributeSets.php" hash="f96517c3c4aa0d01083253d58214152e"/><file name="Carts.php" hash="0b303b2b7d4458a9a0cbf0653b9d660f"/><file name="Categories.php" hash="fd5f13ad449a320616569f64c82327ff"/><file name="Coupons.php" hash="14112f9063bbf20cea7ff3649f238524"/><file name="CustomerAttributeSets.php" hash="bd763562f3fcdf199c2e93876d238fa9"/><file name="Customers.php" hash="c7850418a39abf09c10fbfafcb96f8e1"/><file name="Guests.php" hash="3685b3220b724e518dc83daad015577f"/><file name="Products.php" hash="da471abcc04837391b5270464164aefd"/><file name="Purchases.php" hash="427d38d1f6579f63730aa6bdf6b7bba4"/><file name="Rules.php" hash="fd1789174225c4ed6ad1e1137fe2aee5"/><file name="Subscribers.php" hash="e499e299612a6e2ce07ee19228cf43c5"/></dir><file name="Harvest.php" hash="8104fb4584411f90706f2fd9c8d8ce9b"/><dir name="Mysql4"><dir name="Action"><file name="Collection.php" hash="830a7db2ea307d594fe945701654d883"/></dir><file name="Action.php" hash="5b18cc8842c83d981575b7b2de496f66"/><dir name="Cron"><file name="Count.php" hash="acbbb7ec28afbbe98101f5d114cb30b3"/><dir name="Queue"><file name="Collection.php" hash="b26806c9e7cefd052bb784f5a6ce814c"/></dir><file name="Queue.php" hash="4add10644bfc94b88ef5042b23c82ae7"/></dir><dir name="Redirect"><file name="Collection.php" hash="3bbe4f8729c603f8d8131154a0a117c1"/><dir name="Order"><file name="Collection.php" hash="88c0cfcce31b0eed8c035dee4e7e86df"/></dir><file name="Order.php" hash="852bea330edac3372ec5c168111301a8"/></dir><file name="Redirect.php" hash="842e4ba35c6b049c8eaa64704588ca76"/><file name="Setup.php" hash="3fdec335980846a4c3adbc6f4e3478eb"/><dir name="Trackable"><file name="Collection.php" hash="8799c5bf630d267b551cf9dba986cbb0"/></dir><file name="Trackable.php" hash="b38749697b641874b42dceae38ab4a30"/></dir><dir name="Parser"><file name="AttributeSet.php" hash="9ae4013d42da5de0e9c8492fb29cd8d6"/><file name="Category.php" hash="0c3c71ff784307b9120d7cf781005069"/><file name="Coupon.php" hash="a66b3d4c8397610863cd74e35cbd5b62"/><file name="Customer.php" hash="4e4b3cf2a33e759a70d36d9fdad6737d"/><file name="CustomerAttributeSet.php" hash="1b51f9300a9ee102872ff9d7f9bbccbc"/><file name="Guest.php" hash="002c900d3722f761e3e3ac63be84014f"/><file name="Product.php" hash="7e0fa4a55ca45fc876e588442cce72eb"/><dir name="Purchase"><file name="Item.php" hash="ca7facc8c81504ea990fdb1feeba64dd"/></dir><file name="Purchase.php" hash="6b9882d860338fc2dd17aaf73995fbc3"/><dir name="Quote"><file name="Item.php" hash="37cbc74a49a16e67e02f421978e1741f"/></dir><file name="Quote.php" hash="df651461575cb44bd08f7eb8466782eb"/><file name="Rule.php" hash="0a0f70172aeff0e5157f2f1652c3ae09"/><file name="Subscriber.php" hash="57ab5db177d4a37f30865cb127912631"/></dir><file name="Parser.php" hash="c6ae117f4671a6f9e6f9107236fdfee8"/><dir name="Redirect"><file name="Order.php" hash="5ca85ca596ef6e45468c8a12cee72614"/></dir><file name="Redirect.php" hash="05dddaa1e9c17c4c79d70d63b56ed454"/><dir name="Resource"><file name="Abstract.php" hash="5e58e98d53c3d49e454d6b0bd2f308c2"/><dir name="Action"><file name="Collection.php" hash="22e278b8cbc5d18d4faa48c4f224d145"/></dir><file name="Action.php" hash="901395757d3b278c0aa04cfd989eca42"/><dir name="Cron"><dir name="Count"><file name="Collection.php" hash="c5cb4ab406c1d008c1bc22bb95b3ba28"/></dir><file name="Count.php" hash="6a356b5d92b509945c4567f479b9bfdd"/><dir name="Queue"><file name="Collection.php" hash="2e7ba35d1a14da641a098078e4db7432"/></dir><file name="Queue.php" hash="5e9b36137eb9e53a4dbf40f7e8ad01b6"/></dir><dir name="Redirect"><file name="Collection.php" hash="0f9db83ade4c50c2f7bbe40deae1c065"/><dir name="Order"><file name="Collection.php" hash="162359ed9499b6f976f5c341fd0585c3"/></dir><file name="Order.php" hash="7ea4477380a5215dc0efe561ede359d9"/></dir><file name="Redirect.php" hash="d239af442388bb9fa80db81a7fc43711"/><file name="Setup.php" hash="0405c44c124f19619ccc9f429d781d44"/><dir name="Trackable"><file name="Collection.php" hash="6f060c3537b49710302e38e881885a69"/></dir><file name="Trackable.php" hash="764b0d21c492dd69b9f85ae3c647666e"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="LogFormat.php" hash="828680dafe5a7042221900cb6d9dfa17"/><file name="LogLevel.php" hash="b86c793ca04205f045efd9ea42d02a10"/><file name="Stability.php" hash="830e5bc4e8ce9657221224dbaf99cee6"/><file name="UrlType.php" hash="28f9a5bc024afe5526685d429a751ad8"/></dir></dir></dir><file name="Trackable.php" hash="0af2cd1e6e1eb948157918df2570bf10"/></dir><dir name="etc"><file name="adminhtml.xml" hash="794fc8a1d67ac3e6b5d71c707a0c7cad"/><file name="config.xml" hash="b13cb6f25e3b4ba561c0c6059df6a7c4"/><file name="system.xml" hash="887d99c8efe22f532aa7f8d1bc93fe17"/></dir><dir name="sql"><dir name="combine_setup"><file name="mysql4-install-1.0.0.70.php" hash="425be4a54012cd64753ee1a216255d67"/><file name="mysql4-upgrade-1.0.0.70-1.0.0.84.php" hash="e51deaff9e65f43483ab00573605329d"/><file name="mysql4-upgrade-1.0.0.84-1.0.0.88.php" hash="89bd8a585c0d351aae6838ace48f608d"/><file name="mysql4-upgrade-1.0.0.88-1.2.0.0.php" hash="4779a5072d23ebdb27177de0dfd19f5d"/><file name="mysql4-upgrade-1.2.0.0-1.2.0.1.php" hash="01a7ef2466b9f676884db4d7a7c562a9"/><file name="mysql4-upgrade-1.2.0.1-1.2.1.0.php" hash="dbba441ac757db26289f21443a948f6b"/><file name="mysql4-upgrade-1.3.9.9-1.4.0.0.php" hash="de0b3996e28572fc3dbc7c12cb12ee1a"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Springbot.xml" hash="69a4e2c056502cd8539b4f66a2c8b1bc"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bmbleb.xml" hash="aa390e236576f79375b407262961043e"/></dir><dir name="template"><dir name="bmbleb"><file name="auth.phtml" hash="bf509b53c49cd69ec3ea60e3effe69c3"/><file name="dashboard_loggedout.phtml" hash="19281143b19a544d4e3072dc754ada2d"/><dir name="help"><file name="index.phtml" hash="e9d3f11c623c735c3e699e406ff9e0e7"/></dir><dir name="index"><file name="messages.phtml" hash="fcbbb47d2cc30c493ed2316a8b888f5d"/><file name="terms.phtml" hash="dfff1182d2fe7d8eee69b9b302c4cbc7"/></dir><file name="index.phtml" hash="a5132e593910b8b59a3467b555d4ed87"/><dir name="jobs"><file name="status.phtml" hash="77f0b0ae7c3c6c42031675cfc959e270"/></dir><file name="jobs.phtml" hash="961ac83f56bf8703dbc433894da4933e"/><file name="login.phtml" hash="0a1a20dfaffe8646bb56323ab811d46a"/><file name="logout.phtml" hash="09b92790c5e124a01086d6929ed7e8de"/><dir name="logs"><file name="index.phtml" hash="17e773a761a24e292b09fe7da1bd7662"/></dir><file name="notifications.phtml" hash="45f8767a090a4f7a7e177151bbc43f4f"/><dir name="problems"><file name="index.phtml" hash="2027d07eed8848a4ed8e801d67072796"/></dir><file name="status.phtml" hash="1acc630a6549b234bc1fa5923e04b8ce"/><file name="tabs.phtml" hash="778b686fb073a8aeb973db3bfb0302aa"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="shadow.xml" hash="3f29bebbcf7e42c57dcac9150c6b7d68"/></dir><dir name="template"><dir name="shadow"><file name="async.phtml" hash="af147801ed74d45bb0580b0bb69ce0fd"/><file name="conversion.phtml" hash="3d46a8930d9658a24a77ff34d52e40eb"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="bmbleb"><file name="bmbleb.css" hash="8aea7d5d46e2a0d0ece11abca6ef5d3f"/><dir name="images"><file name="arrows_up-down-large.png" hash="72c27995e1ab1d182891dad0a4d1dae2"/><file name="bmb-ctl.png" hash="de59a694a82b8699560df5146b2e315f"/><file name="check.png" hash="126f33ed483549e79a16186b7499c190"/><file name="grn-bg.png" hash="f681a524e2b4561dbe94152a2d24d60b"/><file name="h3-bg.png" hash="b93df0b0bdba8e8f6e0a07cc31fcc180"/><file name="icon-alert.png" hash="ac2e70efdcebc3813222d0d3ee62a6d9"/><file name="icon-bmbleb.png" hash="fb5574b5e63ee33b84eee26b3d8ef8e3"/><file name="icon-insights.png" hash="725fd29fe1b705e358c9080408693d3d"/><file name="icon-status.png" hash="bd13429f23166a6d431739010ea1b2cd"/><file name="left-ico1.png" hash="7d188f5e6021569750756f58067f0a3b"/><file name="left-ico2.png" hash="d2f6379a73290a8ffa4cb3e19a809d25"/><file name="left-ico3.png" hash="73bc75f7a746e54a75f14eda7a28a6b9"/><file name="left-ico4.png" hash="1da2c26187fed26b6c61599682b2dc4b"/><file name="left-ico5.png" hash="ada61cb32805f2cb8e8dace46361613e"/><file name="left-ico6.png" hash="1e62822267f72589ffa0771352a002da"/><file name="left-ico7.png" hash="16118412d581f0c83ce45c44f62f25a1"/><file name="left-ico8.png" hash="c7de2fe523c892b432b575648cc05631"/><file name="left-ico_demographics.png" hash="3fe23a2dea68f6c65114f248a8bdaa5e"/><file name="login-icn-b.png" hash="64e72070f595e215ece79736ac77ee2f"/><file name="login-icn.png" hash="6142cc2fc8ee2d1c40bf3c8f9ac1fa85"/><file name="logo.png" hash="8fb783f7d68fca3914123f56b8c066a4"/><file name="orng-bg.png" hash="074a6912ca2a139df537e3d15b6bc9b2"/><file name="plugin_dashboard_syncing.jpg" hash="8511648541f6f1b96ff1c53dda3a439b"/><file name="register.png" hash="f73fe51cf7df27ab11089385fa50714e"/><file name="registration-bg-25.png" hash="9d2cf77619cc8fce3ae4d44b0aae30c1"/><file name="registration-bg-50.png" hash="99942fdc8c3f88b0d4b09f87c9e39045"/><file name="registration-bg.png" hash="96365b39495e56ffe491dd9930fe221d"/><file name="spinner.gif" hash="add667817f25bce331a213ab3cc9621f"/><file name="springbot-ctl.png" hash="de59a694a82b8699560df5146b2e315f"/><file name="submit-btn-bg.png" hash="d98aa287b7b73dad9f780b22cb53fbdb"/><file name="sync_icon.png" hash="cb12f2e8943c8e324e3456375f953c86"/><file name="white-check.png" hash="126f33ed483549e79a16186b7499c190"/></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="shell"><file name="springbot.php" hash="40a39e4b3400ba8724621898c3d562a2"/></dir></target></contents>
56
  <compatible/>
57
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
58
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Springbot</name>
4
+ <version>1.4.0.6</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/OSL-3.0">Open Software License v3.0 (OSL-3.0)</license>
7
  <channel>community</channel>
47
  Proclivity to Buy Alerts example: Sally Avalon bought a house recently &#xD;
48
  &#xD;
49
  For support information, features and pricing and more details visit springbot.com </description>
50
+ <notes>Add mapping for purchases and customers assigned to store 0.</notes>
 
51
  <authors><author><name>Springbot Integrations Team</name><user>Springbot</user><email>magento@springbot.com</email></author></authors>
52
+ <date>2014-12-19</date>
53
+ <time>20:50:50</time>
54
+ <contents><target name="magecommunity"><dir name="Springbot"><dir name="Shadow"><dir name="Block"><dir name="Action"><file name="View.php" hash="498947c2762fba3382bdd9b5bf3fb607"/></dir><file name="Async.php" hash="0d203fe1a722f7045029613a0e97bfc2"/></dir><dir name="Controller"><file name="Action.php" hash="5dc41d4ddf12a468fb23fc757ef49a95"/></dir><dir name="Helper"><file name="Data.php" hash="82089d4cfecee69628ae9d627ad2de0c"/><file name="Prattler.php" hash="1df7b8aaeb78579d5a8c2d34169c20e9"/></dir><dir name="Model"><dir name="Listeners"><file name="Observer.php" hash="e5b827a61c3b04fdb73e38a424d167eb"/></dir></dir><dir name="controllers"><file name="ActionController.php" hash="2532947b3368c5a4d64bf77cc7aa9316"/><file name="IndexController.php" hash="94e557b60b9902aace5901eaa268ad3e"/></dir><dir name="etc"><file name="config.xml" hash="b1717e37375197b449c0736adff99d87"/></dir></dir><dir name="Services"><dir name="Cmd"><file name="Forecast.php" hash="efaeb6ca5b2667b30929b223cddfb044"/><file name="Halt.php" hash="85c85ae257e9b86d0fb10fb46060fea3"/><file name="Harvest.php" hash="83c74d0736f17475574d1ef3064443fe"/><file name="Healthcheck.php" hash="79eec1fd01ddf9c61418da86ecaaf8cb"/><file name="Update.php" hash="ecc55c4b1d3e7bb0a275727bcb7f904d"/></dir><dir name="Harvest"><file name="AttributeSets.php" hash="95610f6fd6323e0473589c01051781f2"/><file name="Carts.php" hash="ecaf8583962fc63e49cf069d73eb22bf"/><file name="Categories.php" hash="acfe9c8dc9a02992a058015e8aaf9311"/><file name="Coupons.php" hash="4692e989f73e5a285c869c60fa5ac501"/><file name="CustomerAttributeSets.php" hash="7c3a0bed9f841900f692f5a17e7c6e8f"/><file name="Customers.php" hash="3d57c8238976554081176e249f2e7f4b"/><file name="Guests.php" hash="e0f6d955ba9bc3f020cc95f3083913ad"/><file name="Products.php" hash="087d01eddc45b4a30c4aa7dba5cc5dce"/><file name="Purchases.php" hash="a3d76ae1a2ea514fcce5ca2607ddf5a4"/><file name="Rules.php" hash="355ecad7266987a391ceca9d2eb0244f"/><file name="Subscribers.php" hash="adcba840c9b1fd40caa05f317320d458"/></dir><file name="Harvest.php" hash="af3b9604c7b9d7da76cffe846dc34d70"/><dir name="Log"><file name="Installer.php" hash="342706712eb2731ea27aeec993fd2d7f"/></dir><dir name="Post"><file name="Attribute.php" hash="e0a283984de84bc16d5f89a893a8dc83"/><file name="AttributeSet.php" hash="c8f66b5a189125a63e834196402b709a"/><file name="Cart.php" hash="26d33fb887417e46d3ba3e46badc04a3"/><file name="Category.php" hash="0645d5eb9bb790f25e29666bc3a703e0"/><file name="Coupon.php" hash="6b8b49327874ce431f6100b6917ba21f"/><file name="Customer.php" hash="d2f018919afdb7d49617e6b9ac7d2760"/><file name="Guest.php" hash="3b7ee9f0e274340713d8c4302d01b361"/><file name="Json.php" hash="86a5f26aa5367d8c4c66d278e4c02546"/><file name="Jsonstring.php" hash="9dfb5761d1a7835bf35040a073fa8fc4"/><file name="Product.php" hash="5ec9cbf29df156da09d17e1b6526f53d"/><file name="Purchase.php" hash="0b924c8e5d8f7018eb335ba9fb6d63dd"/><file name="Rule.php" hash="fa038fa414a176d960ed6470c7b7b4cd"/><file name="Subscriber.php" hash="88c5dbcaae805866595217eedbbf5f34"/></dir><file name="Post.php" hash="df9bf80bee670259f3a54e3308d0dbd3"/><file name="Registry.php" hash="c4f17c52b0814c29b7ab93e911a2de28"/><dir name="Store"><file name="Finalize.php" hash="e3636b532bc8f55ba0e618a973e2faa0"/><file name="Register.php" hash="72ae8d75c11dc1c0635c799e284ecb2d"/></dir><dir name="Tasks"><file name="DeliverEventLog.php" hash="d4448212c228d74a320b541385162b10"/><file name="Forecast.php" hash="9cb195b603f843cf2eac74530aa6c84b"/><file name="GetLog.php" hash="8e663a1dbd2dd87a7bfb65b8e8bc2b4a"/><file name="KillHarvest.php" hash="55c540031b57c0a38d83b99e72865bca"/><file name="LaunchFullHarvest.php" hash="b2a9d9c75a46b8c9c4889ddf02094921"/><file name="LaunchPartialHarvest.php" hash="c2a3bc35d62c3eed93107651de7026c8"/><file name="PackageUpdate.php" hash="cb88473eea4e15760a4fa7c0aba83ddb"/><file name="PostItem.php" hash="58c51f04b3e6d297b33fdf15baf2e8f1"/><file name="ResumeHarvest.php" hash="4cd58b8cb691267b4c1366ea3da47673"/><file name="SetVar.php" hash="5b4bea2e94b4bea05bbf326ee3e74fab"/><file name="SkipStoreHarvest.php" hash="1919b0dba7e20c6ff0e3fc302cc2f172"/></dir><dir name="Update"><file name="Abstract.php" hash="7b9a1d36b4486e250587820731b7fb7c"/><file name="Connect.php" hash="3e4366a42e563ec3406a0fcb9a5f77bf"/><file name="Downloader.php" hash="934ef5788acb45ce94e0a32c1d705df1"/><file name="Installer.php" hash="a09ec2e9f7bbf12c117c8950e46072b0"/><file name="Package.php" hash="60ec01b28a2ded244bf6d4a971918bd5"/></dir><dir name="Work"><file name="Cleanup.php" hash="100fef130220e91dc255b5e0f30c37f1"/><file name="Manager.php" hash="9dbdfb717865b7724f4ffd38b3ec866e"/><file name="Report.php" hash="a6482e618e657688ab85221576d1898f"/><file name="Restart.php" hash="d55e811fbba86348890b4047fa5a579f"/><file name="Runner.php" hash="c0ced9ce83e5e51b4ba5f10bb46760af"/><file name="Stop.php" hash="db97407b43396f0adf44a2354a23a0a5"/></dir></dir><dir name="Util"><file name="Cache.php" hash="2c6eb2ee4ee723758fc92989e9220f6e"/><file name="Caller.php" hash="4fcc265eb1a58fed5c3b404ec864514b"/><file name="Categories.php" hash="1292843306c38d9593902616e04320a6"/><dir name="Log"><file name="Rollover.php" hash="6ad4bd93adb7e906c1de5a05a2871ea8"/></dir><file name="Logger.php" hash="59abca8cb07ef933ca8ef2ac824591b5"/><file name="Partition.php" hash="b9296b086003ba58ba12f8b8b0373c50"/><file name="Timer.php" hash="fe07f62aee3239ad7f9df1e652fd5a1c"/></dir><file name="Services.php" hash="a1620885fe701c90a82f13c9b97fe496"/><dir name="Bmbleb"><dir name="Block"><dir name="Adminhtml"><file name="Auth.php" hash="7dc661bbe9ec85f700a22b319981114d"/><dir name="Bmbleb"><dir name="Login"><file name="Form.php" hash="6d54c1272c7e0a37f3dfe7a23b97a451"/></dir><file name="Login.php" hash="7232e8225f5b21de5675c0d84cb452bd"/></dir><file name="Connected.php" hash="833cef8e351f5efa7a4d104b1c51ca7f"/><file name="Help.php" hash="b280b3292ed778140b751b6426ef56fb"/><dir name="Index"><file name="Messages.php" hash="1e247e31194447de32e54f49dafc3ccc"/><file name="Terms.php" hash="739e5a9ebe204f1f9ac433557c994ae6"/></dir><file name="Index.php" hash="eb7bbef5fa26a53748596e145c3677c4"/><dir name="Jobs"><file name="Grid.php" hash="67255d982ac3d50b38d7a2a525c2b922"/><file name="Status.php" hash="f1b197bf6fdc392bed93ff0734a54ad6"/></dir><file name="Jobs.php" hash="84801c6008802496e168e763a7e6d71f"/><file name="Login.php" hash="2e4d8baead482d404ed40f7d5f3d902c"/><file name="Logout.php" hash="b75af51891b751b9d070e1e784dd6914"/><file name="Logs.php" hash="686e958b553c1e3fcf74841eab30fffb"/><file name="Notifications.php" hash="b9e103d6c255078274c2f3047d944d0e"/><file name="Problems.php" hash="c2fd654e2c4c3a6dd9fbb083d0995e5e"/><file name="Status.php" hash="9b67a20f0ee00608029d24850cefda4d"/><file name="Tabs.php" hash="6f93d5c6bd5208a99637c06118c6c630"/></dir></dir><dir name="Helper"><file name="Account.php" hash="c41f40e6f58abd3b8486e0e92cc079d8"/><file name="Data.php" hash="dca14b137de1e2734a377ca645eeddbe"/><file name="PluginStatus.php" hash="ad6479bb3441a36053fd08d8eef7d556"/></dir><dir name="Model"><file name="Bmbleb.php" hash="700d11c3006f2dcd2e80cd8bbbab15f9"/><file name="Status.php" hash="9409d26c7884be6b8075ba97dbf71f78"/><file name="Sync.php" hash="a800b6064a88f37957392cd967f2b3cb"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="HelpController.php" hash="087e7868dafe9dd2df89a642d405424a"/><file name="IndexController.php" hash="61a95eed027fcb7a7179485288f1b05f"/><file name="JobsController.php" hash="4e912a8fafd2f58235cb2299a83a128b"/><file name="LogsController.php" hash="20a0ce2f584f08480399b7a5ecbd9207"/><file name="ProblemsController.php" hash="9753f4b2d3e7d4873e4bd92b5b2b6aaf"/><file name="SettingsController.php" hash="f75a7a8ef28a296cbd46b04ae9dd5539"/></dir><file name="HelpController.php" hash="2df4608a957f151bf1d01dbde2113680"/><file name="IndexController.php" hash="ea5fa5e2b305f46b222cb2fc2a44f6a5"/><file name="LoginController.php" hash="41a0c13dce233a613f89b614cffa0eb1"/><file name="LogoutController.php" hash="140c9d32f5557aa1169fd1b85cd5cc9f"/></dir><dir name="etc"><file name="config.xml" hash="45f7218274a3eed0086761942a95f27b"/></dir></dir><file name="Boss.php" hash="c0faf455fd65cb018ecd9d921c3da0a7"/><file name="Cli.php" hash="84e3d0391b70498f15ef357677f56b2b"/><file name="Log.php" hash="5ab61d7cf21805adb8f826f83b9bf7b1"/><dir name="Combine"><dir name="Helper"><file name="Attributes.php" hash="5fb06e7cc89bb710039a79fb16e2a998"/><file name="Cart.php" hash="07ce5f461ecded3b9b00ed5c30faa266"/><file name="Data.php" hash="bba3915380a71aaacacc306f10396ef1"/><file name="Harvest.php" hash="08fd1b330802731bf82358fd05789173"/><file name="Parser.php" hash="28baa1d59b6d25ac455441138a5c3f32"/><file name="Redirect.php" hash="92053fb1b356fdd6b3131be0b6a8017c"/><file name="Store.php" hash="8db94d157d7e497e7612844da43a6c11"/><file name="Trackable.php" hash="a042cb0d176730ec87353b1c5c6d21f7"/></dir><dir name="Model"><file name="Action.php" hash="6375461263bdf7fe26e71235d2449c21"/><file name="Api.php" hash="978590ad36b4d6ad6b3a14742f8bb31c"/><dir name="Cron"><file name="Count.php" hash="57552740b6ffdd9a4e879191a51043b0"/><dir name="Manager"><file name="Status.php" hash="aeb4445bc2d4b1b7e0e19c09172f0483"/></dir><dir name="Queue"><dir name="Batch"><file name="Row.php" hash="87e03af3c5d80ddf84df3843bcc8a3b7"/></dir><file name="Batch.php" hash="70b58e8a9a3e604a43c95ce6c2f21232"/></dir><file name="Queue.php" hash="44dc400302dcfd7fe11a7d1dddbd07f0"/><file name="Worker.php" hash="8b5040f1c5c5b3221542e739dc951de7"/></dir><file name="Cron.php" hash="40f2bc9634610f4ed5464de48630ce16"/><dir name="File"><file name="Io.php" hash="6d1f79eaf45897bf0525b0f3f3ac69d2"/><file name="Path.php" hash="24900b670c07fcdc4e54bae585f20002"/></dir><dir name="Harvest"><file name="AttributeSets.php" hash="f96517c3c4aa0d01083253d58214152e"/><file name="Carts.php" hash="0b303b2b7d4458a9a0cbf0653b9d660f"/><file name="Categories.php" hash="fd5f13ad449a320616569f64c82327ff"/><file name="Coupons.php" hash="14112f9063bbf20cea7ff3649f238524"/><file name="CustomerAttributeSets.php" hash="bd763562f3fcdf199c2e93876d238fa9"/><file name="Customers.php" hash="c7850418a39abf09c10fbfafcb96f8e1"/><file name="Guests.php" hash="3685b3220b724e518dc83daad015577f"/><file name="Products.php" hash="da471abcc04837391b5270464164aefd"/><file name="Purchases.php" hash="427d38d1f6579f63730aa6bdf6b7bba4"/><file name="Rules.php" hash="fd1789174225c4ed6ad1e1137fe2aee5"/><file name="Subscribers.php" hash="e499e299612a6e2ce07ee19228cf43c5"/></dir><file name="Harvest.php" hash="8104fb4584411f90706f2fd9c8d8ce9b"/><dir name="Mysql4"><dir name="Action"><file name="Collection.php" hash="830a7db2ea307d594fe945701654d883"/></dir><file name="Action.php" hash="5b18cc8842c83d981575b7b2de496f66"/><dir name="Cron"><file name="Count.php" hash="acbbb7ec28afbbe98101f5d114cb30b3"/><dir name="Queue"><file name="Collection.php" hash="b26806c9e7cefd052bb784f5a6ce814c"/></dir><file name="Queue.php" hash="4add10644bfc94b88ef5042b23c82ae7"/></dir><dir name="Redirect"><file name="Collection.php" hash="3bbe4f8729c603f8d8131154a0a117c1"/><dir name="Order"><file name="Collection.php" hash="88c0cfcce31b0eed8c035dee4e7e86df"/></dir><file name="Order.php" hash="852bea330edac3372ec5c168111301a8"/></dir><file name="Redirect.php" hash="842e4ba35c6b049c8eaa64704588ca76"/><file name="Setup.php" hash="3fdec335980846a4c3adbc6f4e3478eb"/><dir name="Trackable"><file name="Collection.php" hash="8799c5bf630d267b551cf9dba986cbb0"/></dir><file name="Trackable.php" hash="b38749697b641874b42dceae38ab4a30"/></dir><dir name="Parser"><file name="AttributeSet.php" hash="9ae4013d42da5de0e9c8492fb29cd8d6"/><file name="Category.php" hash="0c3c71ff784307b9120d7cf781005069"/><file name="Coupon.php" hash="a66b3d4c8397610863cd74e35cbd5b62"/><file name="Customer.php" hash="99233c3da1eb28f1ec15e20e837d764a"/><file name="CustomerAttributeSet.php" hash="1b51f9300a9ee102872ff9d7f9bbccbc"/><file name="Guest.php" hash="002c900d3722f761e3e3ac63be84014f"/><file name="Product.php" hash="7e0fa4a55ca45fc876e588442cce72eb"/><dir name="Purchase"><file name="Item.php" hash="ca7facc8c81504ea990fdb1feeba64dd"/></dir><file name="Purchase.php" hash="ec3929b9e1a0df0e5816c1558391dcdc"/><dir name="Quote"><file name="Item.php" hash="37cbc74a49a16e67e02f421978e1741f"/></dir><file name="Quote.php" hash="df651461575cb44bd08f7eb8466782eb"/><file name="Rule.php" hash="0a0f70172aeff0e5157f2f1652c3ae09"/><file name="Subscriber.php" hash="57ab5db177d4a37f30865cb127912631"/></dir><file name="Parser.php" hash="c6ae117f4671a6f9e6f9107236fdfee8"/><dir name="Redirect"><file name="Order.php" hash="5ca85ca596ef6e45468c8a12cee72614"/></dir><file name="Redirect.php" hash="05dddaa1e9c17c4c79d70d63b56ed454"/><dir name="Resource"><file name="Abstract.php" hash="5e58e98d53c3d49e454d6b0bd2f308c2"/><dir name="Action"><file name="Collection.php" hash="22e278b8cbc5d18d4faa48c4f224d145"/></dir><file name="Action.php" hash="901395757d3b278c0aa04cfd989eca42"/><dir name="Cron"><dir name="Count"><file name="Collection.php" hash="c5cb4ab406c1d008c1bc22bb95b3ba28"/></dir><file name="Count.php" hash="6a356b5d92b509945c4567f479b9bfdd"/><dir name="Queue"><file name="Collection.php" hash="2e7ba35d1a14da641a098078e4db7432"/></dir><file name="Queue.php" hash="5e9b36137eb9e53a4dbf40f7e8ad01b6"/></dir><dir name="Redirect"><file name="Collection.php" hash="0f9db83ade4c50c2f7bbe40deae1c065"/><dir name="Order"><file name="Collection.php" hash="162359ed9499b6f976f5c341fd0585c3"/></dir><file name="Order.php" hash="7ea4477380a5215dc0efe561ede359d9"/></dir><file name="Redirect.php" hash="d239af442388bb9fa80db81a7fc43711"/><file name="Setup.php" hash="0405c44c124f19619ccc9f429d781d44"/><dir name="Trackable"><file name="Collection.php" hash="6f060c3537b49710302e38e881885a69"/></dir><file name="Trackable.php" hash="764b0d21c492dd69b9f85ae3c647666e"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="LogFormat.php" hash="828680dafe5a7042221900cb6d9dfa17"/><file name="LogLevel.php" hash="b86c793ca04205f045efd9ea42d02a10"/><file name="Stability.php" hash="830e5bc4e8ce9657221224dbaf99cee6"/><file name="UrlType.php" hash="28f9a5bc024afe5526685d429a751ad8"/></dir></dir></dir><file name="Trackable.php" hash="0af2cd1e6e1eb948157918df2570bf10"/></dir><dir name="etc"><file name="adminhtml.xml" hash="794fc8a1d67ac3e6b5d71c707a0c7cad"/><file name="config.xml" hash="655153f9873b65cfc0896d1e489bee4b"/><file name="system.xml" hash="887d99c8efe22f532aa7f8d1bc93fe17"/></dir><dir name="sql"><dir name="combine_setup"><file name="mysql4-install-1.0.0.70.php" hash="425be4a54012cd64753ee1a216255d67"/><file name="mysql4-upgrade-1.0.0.70-1.0.0.84.php" hash="e51deaff9e65f43483ab00573605329d"/><file name="mysql4-upgrade-1.0.0.84-1.0.0.88.php" hash="89bd8a585c0d351aae6838ace48f608d"/><file name="mysql4-upgrade-1.0.0.88-1.2.0.0.php" hash="4779a5072d23ebdb27177de0dfd19f5d"/><file name="mysql4-upgrade-1.2.0.0-1.2.0.1.php" hash="01a7ef2466b9f676884db4d7a7c562a9"/><file name="mysql4-upgrade-1.2.0.1-1.2.1.0.php" hash="dbba441ac757db26289f21443a948f6b"/><file name="mysql4-upgrade-1.3.9.9-1.4.0.0.php" hash="de0b3996e28572fc3dbc7c12cb12ee1a"/></dir></dir></dir><dir name="BoneCollector"><dir name="Model"><file name="HarvestAbstract.php" hash="fecaefad7d4fc279e3a54b4c8cac54ae"/><dir name="HarvestAttribute"><file name="Observer.php" hash="26d016ab4fae05872aa46b6abdc3e562"/></dir><dir name="HarvestCart"><file name="Observer.php" hash="7364d7b70e2b3fb65c7effac8cc2ade6"/></dir><dir name="HarvestCategory"><file name="Observer.php" hash="7ddb0b58b301863c1e46dd2db3628db8"/></dir><dir name="HarvestCustomer"><file name="Observer.php" hash="a20e21f1033dc35025ab9b402d6574bc"/></dir><dir name="HarvestProduct"><file name="Observer.php" hash="60af24cee3ad4105822ff4bfb73a5b62"/></dir><dir name="HarvestPurchase"><file name="Observer.php" hash="45b457d55548283c29c0d6105db52df7"/></dir><dir name="HarvestRule"><file name="Observer.php" hash="49f369f960101ec66458f8dbe7972e40"/></dir><dir name="HarvestSubscriber"><file name="Observer.php" hash="5b64106296e9d0045610c69ed0c9be4b"/></dir></dir><dir name="etc"><file name="config.xml" hash="e9a8c899a8c4d1320779f3aa8e58906a"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Springbot.xml" hash="69a4e2c056502cd8539b4f66a2c8b1bc"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bmbleb.xml" hash="aa390e236576f79375b407262961043e"/></dir><dir name="template"><dir name="bmbleb"><file name="auth.phtml" hash="bf509b53c49cd69ec3ea60e3effe69c3"/><file name="dashboard_loggedout.phtml" hash="19281143b19a544d4e3072dc754ada2d"/><dir name="help"><file name="index.phtml" hash="e9d3f11c623c735c3e699e406ff9e0e7"/></dir><dir name="index"><file name="messages.phtml" hash="fcbbb47d2cc30c493ed2316a8b888f5d"/><file name="terms.phtml" hash="dfff1182d2fe7d8eee69b9b302c4cbc7"/></dir><file name="index.phtml" hash="a5132e593910b8b59a3467b555d4ed87"/><dir name="jobs"><file name="status.phtml" hash="77f0b0ae7c3c6c42031675cfc959e270"/></dir><file name="jobs.phtml" hash="961ac83f56bf8703dbc433894da4933e"/><file name="login.phtml" hash="0a1a20dfaffe8646bb56323ab811d46a"/><file name="logout.phtml" hash="09b92790c5e124a01086d6929ed7e8de"/><dir name="logs"><file name="index.phtml" hash="17e773a761a24e292b09fe7da1bd7662"/></dir><file name="notifications.phtml" hash="45f8767a090a4f7a7e177151bbc43f4f"/><dir name="problems"><file name="index.phtml" hash="2027d07eed8848a4ed8e801d67072796"/></dir><file name="status.phtml" hash="1acc630a6549b234bc1fa5923e04b8ce"/><file name="tabs.phtml" hash="778b686fb073a8aeb973db3bfb0302aa"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="shadow.xml" hash="3f29bebbcf7e42c57dcac9150c6b7d68"/></dir><dir name="template"><dir name="shadow"><file name="async.phtml" hash="af147801ed74d45bb0580b0bb69ce0fd"/><file name="conversion.phtml" hash="3d46a8930d9658a24a77ff34d52e40eb"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="bmbleb"><file name="bmbleb.css" hash="8aea7d5d46e2a0d0ece11abca6ef5d3f"/><dir name="images"><file name="arrows_up-down-large.png" hash="72c27995e1ab1d182891dad0a4d1dae2"/><file name="bmb-ctl.png" hash="de59a694a82b8699560df5146b2e315f"/><file name="check.png" hash="126f33ed483549e79a16186b7499c190"/><file name="grn-bg.png" hash="f681a524e2b4561dbe94152a2d24d60b"/><file name="h3-bg.png" hash="b93df0b0bdba8e8f6e0a07cc31fcc180"/><file name="icon-alert.png" hash="ac2e70efdcebc3813222d0d3ee62a6d9"/><file name="icon-bmbleb.png" hash="fb5574b5e63ee33b84eee26b3d8ef8e3"/><file name="icon-insights.png" hash="725fd29fe1b705e358c9080408693d3d"/><file name="icon-status.png" hash="bd13429f23166a6d431739010ea1b2cd"/><file name="left-ico1.png" hash="7d188f5e6021569750756f58067f0a3b"/><file name="left-ico2.png" hash="d2f6379a73290a8ffa4cb3e19a809d25"/><file name="left-ico3.png" hash="73bc75f7a746e54a75f14eda7a28a6b9"/><file name="left-ico4.png" hash="1da2c26187fed26b6c61599682b2dc4b"/><file name="left-ico5.png" hash="ada61cb32805f2cb8e8dace46361613e"/><file name="left-ico6.png" hash="1e62822267f72589ffa0771352a002da"/><file name="left-ico7.png" hash="16118412d581f0c83ce45c44f62f25a1"/><file name="left-ico8.png" hash="c7de2fe523c892b432b575648cc05631"/><file name="left-ico_demographics.png" hash="3fe23a2dea68f6c65114f248a8bdaa5e"/><file name="login-icn-b.png" hash="64e72070f595e215ece79736ac77ee2f"/><file name="login-icn.png" hash="6142cc2fc8ee2d1c40bf3c8f9ac1fa85"/><file name="logo.png" hash="8fb783f7d68fca3914123f56b8c066a4"/><file name="orng-bg.png" hash="074a6912ca2a139df537e3d15b6bc9b2"/><file name="plugin_dashboard_syncing.jpg" hash="8511648541f6f1b96ff1c53dda3a439b"/><file name="register.png" hash="f73fe51cf7df27ab11089385fa50714e"/><file name="registration-bg-25.png" hash="9d2cf77619cc8fce3ae4d44b0aae30c1"/><file name="registration-bg-50.png" hash="99942fdc8c3f88b0d4b09f87c9e39045"/><file name="registration-bg.png" hash="96365b39495e56ffe491dd9930fe221d"/><file name="spinner.gif" hash="add667817f25bce331a213ab3cc9621f"/><file name="springbot-ctl.png" hash="de59a694a82b8699560df5146b2e315f"/><file name="submit-btn-bg.png" hash="d98aa287b7b73dad9f780b22cb53fbdb"/><file name="sync_icon.png" hash="cb12f2e8943c8e324e3456375f953c86"/><file name="white-check.png" hash="126f33ed483549e79a16186b7499c190"/></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="shell"><file name="springbot.php" hash="40a39e4b3400ba8724621898c3d562a2"/></dir></target></contents>
55
  <compatible/>
56
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
57
  </package>