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 +83 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestAttribute/Observer.php +53 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestCart/Observer.php +193 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestCategory/Observer.php +38 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestCustomer/Observer.php +59 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestProduct/Observer.php +78 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestPurchase/Observer.php +109 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestRule/Observer.php +94 -0
- app/code/community/Springbot/BoneCollector/Model/HarvestSubscriber/Observer.php +39 -0
- app/code/community/Springbot/BoneCollector/etc/config.xml +182 -0
- app/code/community/Springbot/Combine/Model/Parser/Customer.php +5 -1
- app/code/community/Springbot/Combine/Model/Parser/Purchase.php +7 -1
- app/code/community/Springbot/Combine/etc/config.xml +1 -0
- app/code/community/Springbot/Services/Harvest/Customers.php +13 -1
- app/code/community/Springbot/Services/Harvest/Purchases.php +13 -1
- app/code/community/Springbot/Shadow/Helper/Prattler.php +2 -0
- package.xml +5 -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($
|
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($
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
<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 
|
48 |

|
49 |
For support information, features and pricing and more details visit springbot.com </description>
|
50 |
-
<notes>
|
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-
|
54 |
-
<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 
|
48 |

|
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>
|