Version Notes
Fixed some minor bugs and improved performance
Download this release
Release Info
Developer | Pierre Vigier |
Extension | Bootic |
Version | 1.0.3 |
Comparing to | |
See all releases |
Code changes from version 1.0.2 to 1.0.3
- app/code/community/Bootic/Bootic/Block/Adminhtml/Catalog/Category.php +6 -1
- app/code/community/Bootic/Bootic/Block/Adminhtml/Connect/Profile.php +6 -1
- app/code/community/Bootic/Bootic/Block/Adminhtml/Product.php +7 -3
- app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Create/Form.php +4 -4
- app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Edit.php +9 -5
- app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Edit/Tab/Design.php +5 -4
- app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Edit/Tab/Design/Preview.php +3 -3
- app/code/community/Bootic/Bootic/Block/Adminhtml/System/Config/Button/Cron.php +3 -0
- app/code/community/Bootic/Bootic/Block/Adminhtml/System/Config/Testapiconnection.php +1 -0
- app/code/community/Bootic/Bootic/Exception.php +5 -0
- app/code/community/Bootic/Bootic/Helper/Category.php +38 -23
- app/code/community/Bootic/Bootic/Helper/Orders.php +5 -1
- app/code/community/Bootic/Bootic/Helper/Product.php +41 -9
- app/code/community/Bootic/Bootic/Model/Cron.php +6 -0
- app/code/community/Bootic/Bootic/Model/Mysql4/Category.php +85 -2
- app/code/community/Bootic/Bootic/Model/Shipping/Flatrate.php +17 -15
- app/code/community/Bootic/Bootic/controllers/Adminhtml/Catalog/CategoryController.php +16 -4
- app/code/community/Bootic/Bootic/controllers/Adminhtml/CatalogController.php +7 -2
- app/code/community/Bootic/Bootic/controllers/Adminhtml/ConnectController.php +6 -1
- app/code/community/Bootic/Bootic/controllers/Adminhtml/StorefrontController.php +7 -2
- app/code/community/Bootic/Bootic/controllers/Adminhtml/System/CronController.php +2 -0
- app/code/community/Bootic/Bootic/controllers/IndexController.php +24 -1
- app/code/community/Bootic/Bootic/etc/config.xml +8 -0
- app/design/adminhtml/default/default/layout/bootic.xml +1 -1
- app/design/adminhtml/default/default/template/bootic/bootic.phtml +2 -2
- app/design/adminhtml/default/default/template/bootic/storefront/banners.phtml +2 -2
- app/design/adminhtml/default/default/template/bootic/storefront/preview.phtml +4 -4
- lib/Bootic/Api/Client.php +46 -0
- lib/Bootic/Api/Result.php +5 -2
- package.xml +6 -6
app/code/community/Bootic/Bootic/Block/Adminhtml/Catalog/Category.php
CHANGED
@@ -28,7 +28,12 @@ class Bootic_Bootic_Block_Adminhtml_Catalog_Category extends Mage_Adminhtml_Bloc
|
|
28 |
|
29 |
public function getHeaderText()
|
30 |
{
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
33 |
|
34 |
/**
|
28 |
|
29 |
public function getHeaderText()
|
30 |
{
|
31 |
+
$email = Mage::getStoreConfig('bootic/account/email');
|
32 |
+
if ($email) {
|
33 |
+
return Mage::helper('bootic')->__('Match Magento categories with Bootic categories (email: '.$email.')');
|
34 |
+
} else {
|
35 |
+
return Mage::helper('bootic')->__('Match Magento categories with Bootic categories');
|
36 |
+
}
|
37 |
}
|
38 |
|
39 |
/**
|
app/code/community/Bootic/Bootic/Block/Adminhtml/Connect/Profile.php
CHANGED
@@ -19,6 +19,11 @@ class Bootic_Bootic_Block_Adminhtml_Connect_Profile extends Mage_Adminhtml_Block
|
|
19 |
|
20 |
public function getHeaderText()
|
21 |
{
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
}
|
19 |
|
20 |
public function getHeaderText()
|
21 |
{
|
22 |
+
$email = Mage::getStoreConfig('bootic/account/email');
|
23 |
+
if ($email) {
|
24 |
+
return Mage::helper('bootic')->__('Edit your profile (email: '.$email.')');
|
25 |
+
} else {
|
26 |
+
return Mage::helper('bootic')->__('Edit your profile');
|
27 |
+
}
|
28 |
}
|
29 |
}
|
app/code/community/Bootic/Bootic/Block/Adminhtml/Product.php
CHANGED
@@ -8,7 +8,8 @@ class Bootic_Bootic_Block_Adminhtml_Product extends Mage_Adminhtml_Block_Widget_
|
|
8 |
public function __construct()
|
9 |
{
|
10 |
parent::__construct();
|
11 |
-
|
|
|
12 |
$this->setId('ProductGrid');
|
13 |
$this->_parentTemplate = $this->getTemplate();
|
14 |
$this->setEmptyText('No Products');
|
@@ -19,7 +20,8 @@ class Bootic_Bootic_Block_Adminhtml_Product extends Mage_Adminhtml_Block_Widget_
|
|
19 |
|
20 |
protected function _prepareCollection()
|
21 |
{
|
22 |
-
|
|
|
23 |
->addAttributeToSelect('*')
|
24 |
->addAttributeToFilter('type_id', array('nin' => array('bundle', 'virtual', 'grouped', 'downloadable')))
|
25 |
->addAttributeToFilter('status', 1)
|
@@ -55,6 +57,7 @@ class Bootic_Bootic_Block_Adminhtml_Product extends Mage_Adminhtml_Block_Widget_
|
|
55 |
|
56 |
protected function _prepareColumns()
|
57 |
{
|
|
|
58 |
$this->addColumn('id', array(
|
59 |
'header'=> Mage::helper('bootic')->__('ID'),
|
60 |
'width' => '50px',
|
@@ -148,7 +151,8 @@ class Bootic_Bootic_Block_Adminhtml_Product extends Mage_Adminhtml_Block_Widget_
|
|
148 |
|
149 |
protected function _prepareMassaction(){
|
150 |
|
151 |
-
|
|
|
152 |
$this->getMassactionBlock()->setFormFieldName('ids');
|
153 |
|
154 |
$this->getMassactionBlock()->addItem('add_selection', array(
|
8 |
public function __construct()
|
9 |
{
|
10 |
parent::__construct();
|
11 |
+
Mage::log("Product->__construct()");
|
12 |
+
|
13 |
$this->setId('ProductGrid');
|
14 |
$this->_parentTemplate = $this->getTemplate();
|
15 |
$this->setEmptyText('No Products');
|
20 |
|
21 |
protected function _prepareCollection()
|
22 |
{
|
23 |
+
Mage::log("Product->_prepareCollection()");
|
24 |
+
$collection = mage::getResourceModel('catalog/product_collection')
|
25 |
->addAttributeToSelect('*')
|
26 |
->addAttributeToFilter('type_id', array('nin' => array('bundle', 'virtual', 'grouped', 'downloadable')))
|
27 |
->addAttributeToFilter('status', 1)
|
57 |
|
58 |
protected function _prepareColumns()
|
59 |
{
|
60 |
+
Mage::log("Product->_prepareColumns()");
|
61 |
$this->addColumn('id', array(
|
62 |
'header'=> Mage::helper('bootic')->__('ID'),
|
63 |
'width' => '50px',
|
151 |
|
152 |
protected function _prepareMassaction(){
|
153 |
|
154 |
+
Mage::log("Product->_prepareMassaction()");
|
155 |
+
$this->setMassactionIdField('id');
|
156 |
$this->getMassactionBlock()->setFormFieldName('ids');
|
157 |
|
158 |
$this->getMassactionBlock()->addItem('add_selection', array(
|
app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Create/Form.php
CHANGED
@@ -57,10 +57,10 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Create_Form extends Mage_Adminhtm
|
|
57 |
'values' => Mage::helper('bootic/storefront')->getAvailableTemplatesValues()
|
58 |
));
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
));
|
64 |
|
65 |
$form->setUseContainer(true);
|
66 |
$this->setForm($form);
|
57 |
'values' => Mage::helper('bootic/storefront')->getAvailableTemplatesValues()
|
58 |
));
|
59 |
|
60 |
+
//$fieldset->addField('color_theme', 'hidden', array(
|
61 |
+
// 'name' => 'color_theme',
|
62 |
+
// 'value' => '000000'
|
63 |
+
//));
|
64 |
|
65 |
$form->setUseContainer(true);
|
66 |
$this->setForm($form);
|
app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Edit.php
CHANGED
@@ -20,8 +20,12 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Edit extends Mage_Adminhtml_Block
|
|
20 |
|
21 |
public function getHeaderText()
|
22 |
{
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
|
|
25 |
return $headerText;
|
26 |
}
|
27 |
|
@@ -32,8 +36,8 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Edit extends Mage_Adminhtml_Block
|
|
32 |
*/
|
33 |
protected function _prepareLayout()
|
34 |
{
|
35 |
-
|
36 |
-
|
37 |
$this->_formScripts[] = "
|
38 |
var cp = new colorPicker('storefront_color_theme', {
|
39 |
color:'#" . $color . "',
|
@@ -44,7 +48,7 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Edit extends Mage_Adminhtml_Block
|
|
44 |
}
|
45 |
});
|
46 |
";
|
47 |
-
|
48 |
return parent::_prepareLayout();
|
49 |
}
|
50 |
}
|
20 |
|
21 |
public function getHeaderText()
|
22 |
{
|
23 |
+
$email = Mage::getStoreConfig('bootic/account/email');
|
24 |
+
if ($email) {
|
25 |
+
$headerText = Mage::helper('bootic')->__('Edit Storefront (email: '.$email.')');
|
26 |
+
} else {
|
27 |
+
$headerText = Mage::helper('bootic')->__('Edit Storefront');
|
28 |
+
}
|
29 |
return $headerText;
|
30 |
}
|
31 |
|
36 |
*/
|
37 |
protected function _prepareLayout()
|
38 |
{
|
39 |
+
//$color = Mage::getSingleton('bootic/storefront')->getColor_theme() ? Mage::getSingleton('bootic/storefront')->getColor_theme() : null;
|
40 |
+
/*
|
41 |
$this->_formScripts[] = "
|
42 |
var cp = new colorPicker('storefront_color_theme', {
|
43 |
color:'#" . $color . "',
|
48 |
}
|
49 |
});
|
50 |
";
|
51 |
+
*/
|
52 |
return parent::_prepareLayout();
|
53 |
}
|
54 |
}
|
app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Edit/Tab/Design.php
CHANGED
@@ -21,13 +21,14 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Edit_Tab_Design
|
|
21 |
'values' => Mage::helper('bootic/storefront')->getAvailableTemplatesValues()
|
22 |
));
|
23 |
|
|
|
24 |
$fieldset->addField('color_theme', 'text', array(
|
25 |
'name' => 'color_theme',
|
26 |
'label' => Mage::helper('bootic')->__('Color:'),
|
27 |
'style' => "width:100px;float:left;margin-right:10px;",
|
28 |
'after_element_html' => '<div id="color-preview" style="display:block;width:15px;height:15px;float:left;padding:1px;border:1px solid #AAA;"></div>'
|
29 |
));
|
30 |
-
|
31 |
$bannerFieldset = $form->addFieldset('banner_fieldset', array('legend' => Mage::helper('bootic')->__('Storefront Banner')));
|
32 |
|
33 |
$bannerFieldset->addField('banner', 'hidden', array(
|
@@ -43,9 +44,9 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Edit_Tab_Design
|
|
43 |
'note' => Mage::helper('bootic')->__('Image has to be either png, gif or jpg and be exactly 996*180px'),
|
44 |
));
|
45 |
|
46 |
-
$form->addFieldset('preview_fieldset', array(
|
47 |
-
'legend' => Mage::helper('bootic')->__('Storefront Preview'),
|
48 |
-
));
|
49 |
|
50 |
// $previewFieldset->addType('preview','Bootic_Bootic_Block_Adminhtml_Storefront_Edit_Tab_Design_Preview');
|
51 |
//
|
21 |
'values' => Mage::helper('bootic/storefront')->getAvailableTemplatesValues()
|
22 |
));
|
23 |
|
24 |
+
/*
|
25 |
$fieldset->addField('color_theme', 'text', array(
|
26 |
'name' => 'color_theme',
|
27 |
'label' => Mage::helper('bootic')->__('Color:'),
|
28 |
'style' => "width:100px;float:left;margin-right:10px;",
|
29 |
'after_element_html' => '<div id="color-preview" style="display:block;width:15px;height:15px;float:left;padding:1px;border:1px solid #AAA;"></div>'
|
30 |
));
|
31 |
+
*/
|
32 |
$bannerFieldset = $form->addFieldset('banner_fieldset', array('legend' => Mage::helper('bootic')->__('Storefront Banner')));
|
33 |
|
34 |
$bannerFieldset->addField('banner', 'hidden', array(
|
44 |
'note' => Mage::helper('bootic')->__('Image has to be either png, gif or jpg and be exactly 996*180px'),
|
45 |
));
|
46 |
|
47 |
+
// $form->addFieldset('preview_fieldset', array(
|
48 |
+
// 'legend' => Mage::helper('bootic')->__('Storefront Preview'),
|
49 |
+
// ));
|
50 |
|
51 |
// $previewFieldset->addType('preview','Bootic_Bootic_Block_Adminhtml_Storefront_Edit_Tab_Design_Preview');
|
52 |
//
|
app/code/community/Bootic/Bootic/Block/Adminhtml/Storefront/Edit/Tab/Design/Preview.php
CHANGED
@@ -33,7 +33,7 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Edit_Tab_Design_Preview extends V
|
|
33 |
'<script type="text/javascript">
|
34 |
var storeOptions = ' . json_encode($this->getOptions()) . ';
|
35 |
var templates = storeOptions.templates;
|
36 |
-
var color = "#" + $("storefront_color_theme").value;
|
37 |
var previewImg = new Element("img");
|
38 |
|
39 |
templates.each(function (template) {
|
@@ -46,10 +46,10 @@ class Bootic_Bootic_Block_Adminhtml_Storefront_Edit_Tab_Design_Preview extends V
|
|
46 |
})
|
47 |
|
48 |
$("storefront_preview_fieldset").setStyle({ backgroundColor: color });
|
49 |
-
|
50 |
</script>'
|
51 |
;
|
52 |
|
53 |
return $js;
|
54 |
}
|
55 |
-
}
|
33 |
'<script type="text/javascript">
|
34 |
var storeOptions = ' . json_encode($this->getOptions()) . ';
|
35 |
var templates = storeOptions.templates;
|
36 |
+
/*var color = "#" + $("storefront_color_theme").value;
|
37 |
var previewImg = new Element("img");
|
38 |
|
39 |
templates.each(function (template) {
|
46 |
})
|
47 |
|
48 |
$("storefront_preview_fieldset").setStyle({ backgroundColor: color });
|
49 |
+
*/
|
50 |
</script>'
|
51 |
;
|
52 |
|
53 |
return $js;
|
54 |
}
|
55 |
+
}
|
app/code/community/Bootic/Bootic/Block/Adminhtml/System/Config/Button/Cron.php
CHANGED
@@ -10,6 +10,7 @@ class Bootic_Bootic_Block_Adminhtml_System_Config_Button_Cron extends Mage_Admin
|
|
10 |
*/
|
11 |
protected function _prepareLayout()
|
12 |
{
|
|
|
13 |
parent::_prepareLayout();
|
14 |
if (!$this->getTemplate()) {
|
15 |
$this->setTemplate('bootic/adminhtml/system/config/button/cron.phtml');
|
@@ -26,6 +27,7 @@ class Bootic_Bootic_Block_Adminhtml_System_Config_Button_Cron extends Mage_Admin
|
|
26 |
*/
|
27 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
28 |
{
|
|
|
29 |
$element->unsScope()->unsCanUseWebsiteValue()->unsCanUseDefaultValue();
|
30 |
return parent::render($element);
|
31 |
}
|
@@ -38,6 +40,7 @@ class Bootic_Bootic_Block_Adminhtml_System_Config_Button_Cron extends Mage_Admin
|
|
38 |
*/
|
39 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
40 |
{
|
|
|
41 |
$originalData = $element->getOriginalData();
|
42 |
$this->addData(array(
|
43 |
'button_label' => Mage::helper('bootic')->__($originalData['button_label']),
|
10 |
*/
|
11 |
protected function _prepareLayout()
|
12 |
{
|
13 |
+
Mage::log('_prepareLayout');
|
14 |
parent::_prepareLayout();
|
15 |
if (!$this->getTemplate()) {
|
16 |
$this->setTemplate('bootic/adminhtml/system/config/button/cron.phtml');
|
27 |
*/
|
28 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
29 |
{
|
30 |
+
Mage::log('render');
|
31 |
$element->unsScope()->unsCanUseWebsiteValue()->unsCanUseDefaultValue();
|
32 |
return parent::render($element);
|
33 |
}
|
40 |
*/
|
41 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
42 |
{
|
43 |
+
Mage::log('_getElementHtml');
|
44 |
$originalData = $element->getOriginalData();
|
45 |
$this->addData(array(
|
46 |
'button_label' => Mage::helper('bootic')->__($originalData['button_label']),
|
app/code/community/Bootic/Bootic/Block/Adminhtml/System/Config/Testapiconnection.php
CHANGED
@@ -15,6 +15,7 @@ class Bootic_Bootic_Block_Adminhtml_System_Config_Testapiconnection extends Mage
|
|
15 |
parent::_prepareLayout();
|
16 |
|
17 |
$displayCreateAccount = true;
|
|
|
18 |
if (Mage::getStoreConfig('bootic/account/password') && Mage::getStoreConfig('bootic/account/email')) {
|
19 |
$displayCreateAccount = false;
|
20 |
}
|
15 |
parent::_prepareLayout();
|
16 |
|
17 |
$displayCreateAccount = true;
|
18 |
+
Mage::Log('bootic/account/email'.Mage::getStoreConfig('bootic/account/email'));
|
19 |
if (Mage::getStoreConfig('bootic/account/password') && Mage::getStoreConfig('bootic/account/email')) {
|
20 |
$displayCreateAccount = false;
|
21 |
}
|
app/code/community/Bootic/Bootic/Exception.php
CHANGED
@@ -11,11 +11,16 @@ class Bootic_Bootic_Exception extends Zend_Exception
|
|
11 |
public function __construct($msg = '', $code = 0, Exception $previous = null, $isWarning = false)
|
12 |
{
|
13 |
$this->_isWarning = $isWarning;
|
|
|
|
|
|
|
|
|
14 |
parent::__construct($msg, $code, $previous);
|
15 |
}
|
16 |
|
17 |
public function isWarning()
|
18 |
{
|
|
|
19 |
return $this->_isWarning;
|
20 |
}
|
21 |
}
|
11 |
public function __construct($msg = '', $code = 0, Exception $previous = null, $isWarning = false)
|
12 |
{
|
13 |
$this->_isWarning = $isWarning;
|
14 |
+
if ($previous) {
|
15 |
+
Mage::logException($previous);
|
16 |
+
}
|
17 |
+
Mage::log($msg);
|
18 |
parent::__construct($msg, $code, $previous);
|
19 |
}
|
20 |
|
21 |
public function isWarning()
|
22 |
{
|
23 |
+
Mage::log('is warning');
|
24 |
return $this->_isWarning;
|
25 |
}
|
26 |
}
|
app/code/community/Bootic/Bootic/Helper/Category.php
CHANGED
@@ -25,19 +25,10 @@ class Bootic_Bootic_Helper_Category extends Bootic_Bootic_Helper_Abstract
|
|
25 |
*/
|
26 |
public function getBooticCategories()
|
27 |
{
|
28 |
-
if (isset($this->_booticCategories)) {
|
29 |
-
|
30 |
}
|
31 |
|
32 |
-
$booticCategoryCollection = Mage::getResourceModel('bootic/category_collection')->load();
|
33 |
-
|
34 |
-
$booticCategories = array();
|
35 |
-
foreach ($booticCategoryCollection as $booticCategory) {
|
36 |
-
$booticCategories[$booticCategory->getId()] = Mage::getModel('bootic/category')->load($booticCategory->getId());
|
37 |
-
}
|
38 |
-
|
39 |
-
$this->_booticCategories = $booticCategories;
|
40 |
-
|
41 |
return $this->_booticCategories;
|
42 |
}
|
43 |
|
@@ -161,18 +152,16 @@ class Bootic_Bootic_Helper_Category extends Bootic_Bootic_Helper_Abstract
|
|
161 |
}
|
162 |
|
163 |
/**
|
164 |
-
* Gets the selected root category from config
|
165 |
-
*
|
166 |
* @return Mage_Core_Model_Abstract
|
167 |
*/
|
168 |
public function getRootCategory()
|
169 |
{
|
170 |
$rootCategoryId = Mage::getStoreConfig('bootic/product/root_category');
|
171 |
-
if (
|
172 |
-
return Mage::getModel('catalog/category')->load($rootCategoryId);
|
173 |
-
} else {
|
174 |
Mage::throwException('Root category is not set in system/configuration/bootic');
|
175 |
}
|
|
|
|
|
176 |
}
|
177 |
|
178 |
/**
|
@@ -246,18 +235,25 @@ class Bootic_Bootic_Helper_Category extends Bootic_Bootic_Helper_Abstract
|
|
246 |
/**
|
247 |
* Gets categories from Bootic and stores them locally
|
248 |
*/
|
249 |
-
public function pullBooticCategories()
|
250 |
{
|
251 |
$result = $this->listOrigCategories();
|
252 |
$booticCategories = $result->getData();
|
253 |
|
254 |
-
foreach ($booticCategories as $booticCategory) {
|
255 |
-
$category = Mage::getModel('bootic/category')->load($booticCategory['id']);
|
256 |
-
$category->setId($booticCategory['id']);
|
257 |
-
$category->setName($booticCategory['name']);
|
258 |
-
$category->setParents($booticCategory['parents']);
|
259 |
-
$category->save();
|
|
|
|
|
|
|
|
|
260 |
}
|
|
|
|
|
|
|
261 |
}
|
262 |
|
263 |
|
@@ -279,4 +275,23 @@ class Bootic_Bootic_Helper_Category extends Bootic_Bootic_Helper_Abstract
|
|
279 |
|
280 |
return $collection;
|
281 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
}
|
25 |
*/
|
26 |
public function getBooticCategories()
|
27 |
{
|
28 |
+
if (!isset($this->_booticCategories)) {
|
29 |
+
$this->_booticCategories = Mage::getResourceModel('bootic/category')->getAllCategories();
|
30 |
}
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
return $this->_booticCategories;
|
33 |
}
|
34 |
|
152 |
}
|
153 |
|
154 |
/**
|
|
|
|
|
155 |
* @return Mage_Core_Model_Abstract
|
156 |
*/
|
157 |
public function getRootCategory()
|
158 |
{
|
159 |
$rootCategoryId = Mage::getStoreConfig('bootic/product/root_category');
|
160 |
+
if (!$rootCategoryId) {
|
|
|
|
|
161 |
Mage::throwException('Root category is not set in system/configuration/bootic');
|
162 |
}
|
163 |
+
|
164 |
+
return Mage::getModel('catalog/category')->load($rootCategoryId);
|
165 |
}
|
166 |
|
167 |
/**
|
235 |
/**
|
236 |
* Gets categories from Bootic and stores them locally
|
237 |
*/
|
238 |
+
public function pullBooticCategories($lastRemoteUpdate = null)
|
239 |
{
|
240 |
$result = $this->listOrigCategories();
|
241 |
$booticCategories = $result->getData();
|
242 |
|
243 |
+
// foreach ($booticCategories as $booticCategory) {
|
244 |
+
// $category = Mage::getModel('bootic/category')->load($booticCategory['id']);
|
245 |
+
// $category->setId($booticCategory['id']);
|
246 |
+
// $category->setName($booticCategory['name']);
|
247 |
+
// $category->setParents($booticCategory['parents']);
|
248 |
+
// $category->save();
|
249 |
+
// }
|
250 |
+
|
251 |
+
if (!$lastRemoteUpdate) {
|
252 |
+
$lastRemoteUpdate = Mage::getModel('core/date')->gmtDate(null, 'now');
|
253 |
}
|
254 |
+
|
255 |
+
$categoryResource = Mage::getResourceModel('bootic/category');
|
256 |
+
$categoryResource->insertCategories($booticCategories, $lastRemoteUpdate);
|
257 |
}
|
258 |
|
259 |
|
275 |
|
276 |
return $collection;
|
277 |
}
|
278 |
+
|
279 |
+
public function syncCategories()
|
280 |
+
{
|
281 |
+
$timeZone = new DateTimeZone('GMT');
|
282 |
+
|
283 |
+
$result = $this->getBootic()->getCategoriesLastModified();
|
284 |
+
$lastRemoteUpdate = new DateTime($result->getData('last_modification_date'), $timeZone);
|
285 |
+
|
286 |
+
if ($t = Mage::getResourceModel('bootic/category')->getLocalLastUpdate()) {
|
287 |
+
$lastLocalUpdate = new DateTime($t, $timeZone);
|
288 |
+
} else {
|
289 |
+
$this->pullBooticCategories($lastRemoteUpdate);
|
290 |
+
return;
|
291 |
+
}
|
292 |
+
|
293 |
+
if ($lastLocalUpdate < $lastRemoteUpdate) {
|
294 |
+
$this->pullBooticCategories($lastRemoteUpdate);
|
295 |
+
}
|
296 |
+
}
|
297 |
}
|
app/code/community/Bootic/Bootic/Helper/Orders.php
CHANGED
@@ -146,6 +146,10 @@ class Bootic_Bootic_Helper_Orders extends Bootic_Bootic_Helper_Abstract
|
|
146 |
*/
|
147 |
public function createOrder($order)
|
148 |
{
|
|
|
|
|
|
|
|
|
149 |
//create customer
|
150 |
$customer = $this->createOrGetCustomer($order);
|
151 |
|
@@ -565,4 +569,4 @@ class Bootic_Bootic_Helper_Orders extends Bootic_Bootic_Helper_Abstract
|
|
565 |
return false;
|
566 |
}
|
567 |
}
|
568 |
-
}
|
146 |
*/
|
147 |
public function createOrder($order)
|
148 |
{
|
149 |
+
// We set a flag so that from our custom shipping method we know that it's a bootic order
|
150 |
+
// otherwise that shipping method is showed to front end users
|
151 |
+
Mage::register('bootic_order_creation', true);
|
152 |
+
|
153 |
//create customer
|
154 |
$customer = $this->createOrGetCustomer($order);
|
155 |
|
569 |
return false;
|
570 |
}
|
571 |
}
|
572 |
+
}
|
app/code/community/Bootic/Bootic/Helper/Product.php
CHANGED
@@ -26,6 +26,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
26 |
*/
|
27 |
public function massCreateProducts(Mage_Core_Controller_Request_Http $request)
|
28 |
{
|
|
|
29 |
$ids = $request->__get('ids');
|
30 |
|
31 |
$addedToQueue = array();
|
@@ -136,6 +137,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
136 |
*/
|
137 |
public function loadByBooticId($id)
|
138 |
{
|
|
|
139 |
/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
|
140 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
141 |
->addAttributeToSelect('*')
|
@@ -167,6 +169,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
167 |
*/
|
168 |
public function uploadProducts()
|
169 |
{
|
|
|
170 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
171 |
->addAttributeToSelect('*')
|
172 |
->addAttributeToSort('entity_id', 'ASC')
|
@@ -225,6 +228,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
225 |
|
226 |
} catch (Bootic_Bootic_Exception $e) {
|
227 |
// If an error occured on one of the calls, we flag product as errored and log the errors
|
|
|
228 |
$statusError = Mage::getModel('bootic/product_data')->getStatusError();
|
229 |
Mage::helper('bootic/product_data')->updateProductStatus($product, $statusError);
|
230 |
|
@@ -234,7 +238,8 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
234 |
} catch (Bootic_Api_Exception $e) {
|
235 |
// Probably a network error or an API downtime
|
236 |
// We try 5 times and then we notify Admin
|
237 |
-
|
|
|
238 |
$productData = Mage::getModel('bootic/product_data')->load($product->getId());
|
239 |
$productData->setBooticStatus($statusProcessing);
|
240 |
$productData->incrementUploadFailures();
|
@@ -252,7 +257,8 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
252 |
|
253 |
} catch (Exception $e) {
|
254 |
// If anything else weird happens, we re-queue the product
|
255 |
-
|
|
|
256 |
Mage::helper('bootic/product_data')->updateProductStatus($product, $statusProcessing);
|
257 |
|
258 |
$count ++;
|
@@ -267,6 +273,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
267 |
*/
|
268 |
public function editProducts()
|
269 |
{
|
|
|
270 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
271 |
->addAttributeToSelect('*')
|
272 |
->addAttributeToSort('entity_id', 'ASC')
|
@@ -312,7 +319,8 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
312 |
$count ++;
|
313 |
|
314 |
} catch (Bootic_Bootic_Exception $e) {
|
315 |
-
|
|
|
316 |
$statusException = ($e->isWarning()) ? Mage::getModel('bootic/product_data')->getStatusIncomplete() : Mage::getModel('bootic/product_data')->getStatusError();
|
317 |
$status = ($e->isWarning()) ? 'warning' : 'error';
|
318 |
Mage::helper('bootic/product_data')->updateProductStatus($product, $statusException);
|
@@ -328,6 +336,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
328 |
}
|
329 |
|
330 |
} catch (Exception $e) {
|
|
|
331 |
// If anything else weird happens, we simply disregard
|
332 |
Mage::log('Failed editing a product on Bootic');
|
333 |
}
|
@@ -343,6 +352,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
343 |
*/
|
344 |
protected function _isProductUploadable(Mage_Catalog_Model_Product $product)
|
345 |
{
|
|
|
346 |
$parents = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
|
347 |
|
348 |
$result = true;
|
@@ -364,6 +374,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
364 |
*/
|
365 |
public function makeSimpleProduct(Mage_Catalog_Model_Product $product)
|
366 |
{
|
|
|
367 |
$attributes = $product->getAttributes();
|
368 |
$personalizations = array();
|
369 |
foreach ($attributes as $attribute) {
|
@@ -400,6 +411,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
400 |
$productData->save();
|
401 |
|
402 |
} catch (Bootic_Api_Exception $e) {
|
|
|
403 |
// If an error occurs during this call, product stock gets set to out of sync
|
404 |
$productData->setIsStockSynced(false);
|
405 |
$productData->save();
|
@@ -408,11 +420,12 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
408 |
// If product upload call originally had warnings, we notify the admin
|
409 |
if ($result->hasWarning()) {
|
410 |
$warningMessages = $result->getWarningMessages();
|
411 |
-
|
|
|
412 |
// We remove the first message which is not intended for Magento Admins
|
413 |
array_shift($warningMessages);
|
414 |
$message = implode(' ', $warningMessages);
|
415 |
-
|
416 |
throw new Bootic_Bootic_Exception($message);
|
417 |
}
|
418 |
}
|
@@ -426,6 +439,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
426 |
*/
|
427 |
public function editSimpleProduct(Mage_Catalog_Model_Product $product)
|
428 |
{
|
|
|
429 |
$attributes = $product->getAttributes();
|
430 |
$personalizations = array();
|
431 |
foreach ($attributes as $attribute) {
|
@@ -471,6 +485,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
471 |
*/
|
472 |
public function makeConfigurableProduct(Mage_Catalog_Model_Product $product)
|
473 |
{
|
|
|
474 |
$productAttributes = $this->_getConfigurableProductAttributes($product, $productOptions, $matchedAttributes);
|
475 |
|
476 |
$attributes = $product->getAttributes();
|
@@ -542,6 +557,8 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
542 |
$_productData->save();
|
543 |
|
544 |
} catch (Bootic_Api_Exception $e) {
|
|
|
|
|
545 |
// If an error occurs during this call, product stock gets set to out of sync
|
546 |
$_productData->setIsStockSynced(false);
|
547 |
$_productData->save();
|
@@ -552,6 +569,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
552 |
try {
|
553 |
$this->updateProductStock($productId, $stockId, $sku, $stock, $valid);
|
554 |
} catch (Exception $e) {
|
|
|
555 |
$stockInSync = false;
|
556 |
}
|
557 |
}
|
@@ -563,11 +581,12 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
563 |
// If product upload call originally had warnings, we notify the admin
|
564 |
if ($result->hasWarning()) {
|
565 |
$warningMessages = $result->getWarningMessages();
|
566 |
-
|
567 |
// We remove the first message which is not intended for Magento Admins
|
568 |
array_shift($warningMessages);
|
569 |
$message = implode(' ', $warningMessages);
|
570 |
-
|
|
|
571 |
throw new Bootic_Bootic_Exception($message);
|
572 |
}
|
573 |
}
|
@@ -581,6 +600,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
581 |
*/
|
582 |
public function editConfigurableProduct(Mage_Catalog_Model_Product $product)
|
583 |
{
|
|
|
584 |
$productAttributes = $this->_getConfigurableProductAttributes($product, $productOptions, $matchedAttributes);
|
585 |
|
586 |
$attributes = $product->getAttributes();
|
@@ -609,17 +629,21 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
609 |
throw new Bootic_Bootic_Exception($result->getErrorMessage());
|
610 |
} elseif ($result->hasWarning()) {
|
611 |
$warningMessages = $result->getWarningMessages();
|
612 |
-
|
|
|
|
|
613 |
// We remove the first message which is not intended for Magento Admins
|
614 |
array_shift($warningMessages);
|
615 |
$message = implode(' ', $warningMessages);
|
616 |
-
|
|
|
617 |
throw new Bootic_Bootic_Exception($message, 0, null, true);
|
618 |
}
|
619 |
}
|
620 |
|
621 |
protected function _getConfigurableProductAttributes(Mage_Catalog_Model_Product $product, &$productOptions, &$matchedAttributes)
|
622 |
{
|
|
|
623 |
$productOptions = Mage::helper('bootic/product_type_configurable')->getOptions($product);
|
624 |
|
625 |
$matchedAttributes = array();
|
@@ -665,6 +689,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
665 |
*/
|
666 |
public function updateProductStock($productId = null, $stockId = null, $sku = null, $stock = null, $valid = false)
|
667 |
{
|
|
|
668 |
$p['product_id'] = (int)$productId;
|
669 |
$p['stock_id'] = $stockId;
|
670 |
$p['sku'] = $sku;
|
@@ -687,6 +712,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
687 |
*/
|
688 |
public function listProductAvailableAttributes()
|
689 |
{
|
|
|
690 |
$result = $this->getBootic()->listProductAvailableAttributes();
|
691 |
|
692 |
return $result->getData();
|
@@ -701,6 +727,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
701 |
*/
|
702 |
public function createProductAttribute($attributeCode)
|
703 |
{
|
|
|
704 |
if (is_null($attributeCode)) {
|
705 |
throw new Bootic_Bootic_Exception('Attribute code cannot be empty');
|
706 |
}
|
@@ -750,6 +777,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
750 |
*/
|
751 |
public function addBooticAttribute(array $attribute)
|
752 |
{
|
|
|
753 |
$this->_booticAttributes[] = $attribute;
|
754 |
return $this;
|
755 |
}
|
@@ -763,6 +791,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
763 |
*/
|
764 |
private function _prepareBooticProductArray(Mage_Catalog_Model_Product $_product, $product_attributes = null)
|
765 |
{
|
|
|
766 |
/** @var $product Mage_Catalog_Model_Product */
|
767 |
$product = Mage::getModel('catalog/product')->load($_product->getId());
|
768 |
|
@@ -892,6 +921,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
892 |
*/
|
893 |
public function checkProductsStatus()
|
894 |
{
|
|
|
895 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
896 |
->addAttributeToSelect('*')
|
897 |
->addAttributeToSort('entity_id', 'ASC')
|
@@ -961,6 +991,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
961 |
*/
|
962 |
public function syncProductsStocks()
|
963 |
{
|
|
|
964 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
965 |
->addAttributeToSelect('*')
|
966 |
->addAttributeToSort('entity_id', 'ASC')
|
@@ -1000,6 +1031,7 @@ class Bootic_Bootic_Helper_Product extends Bootic_Bootic_Helper_Abstract
|
|
1000 |
$this->updateProductStock($productId, $stockId, $sku, $stock, $valid);
|
1001 |
Mage::helper('bootic/product_data')->setStockSync($product, true);
|
1002 |
} catch (Exception $e) {
|
|
|
1003 |
// Here we just do nothing to let the system retry on its own on a next cron run
|
1004 |
}
|
1005 |
}
|
26 |
*/
|
27 |
public function massCreateProducts(Mage_Core_Controller_Request_Http $request)
|
28 |
{
|
29 |
+
Mage::log('massCreateProducts');
|
30 |
$ids = $request->__get('ids');
|
31 |
|
32 |
$addedToQueue = array();
|
137 |
*/
|
138 |
public function loadByBooticId($id)
|
139 |
{
|
140 |
+
Mage::log('loadByBooticId');
|
141 |
/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
|
142 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
143 |
->addAttributeToSelect('*')
|
169 |
*/
|
170 |
public function uploadProducts()
|
171 |
{
|
172 |
+
Mage::log('uploadProducts');
|
173 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
174 |
->addAttributeToSelect('*')
|
175 |
->addAttributeToSort('entity_id', 'ASC')
|
228 |
|
229 |
} catch (Bootic_Bootic_Exception $e) {
|
230 |
// If an error occured on one of the calls, we flag product as errored and log the errors
|
231 |
+
Mage::logException($e);
|
232 |
$statusError = Mage::getModel('bootic/product_data')->getStatusError();
|
233 |
Mage::helper('bootic/product_data')->updateProductStatus($product, $statusError);
|
234 |
|
238 |
} catch (Bootic_Api_Exception $e) {
|
239 |
// Probably a network error or an API downtime
|
240 |
// We try 5 times and then we notify Admin
|
241 |
+
Mage::logException($e);
|
242 |
+
$statusProcessing = Mage::getModel('bootic/product_data')->getStatusProcessing();
|
243 |
$productData = Mage::getModel('bootic/product_data')->load($product->getId());
|
244 |
$productData->setBooticStatus($statusProcessing);
|
245 |
$productData->incrementUploadFailures();
|
257 |
|
258 |
} catch (Exception $e) {
|
259 |
// If anything else weird happens, we re-queue the product
|
260 |
+
Mage::logException($e);
|
261 |
+
$statusProcessing = Mage::getModel('bootic/product_data')->getStatusProcessing();
|
262 |
Mage::helper('bootic/product_data')->updateProductStatus($product, $statusProcessing);
|
263 |
|
264 |
$count ++;
|
273 |
*/
|
274 |
public function editProducts()
|
275 |
{
|
276 |
+
Mage::log('editProducts');
|
277 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
278 |
->addAttributeToSelect('*')
|
279 |
->addAttributeToSort('entity_id', 'ASC')
|
319 |
$count ++;
|
320 |
|
321 |
} catch (Bootic_Bootic_Exception $e) {
|
322 |
+
Mage::logException($e);
|
323 |
+
// If update fails or get warning, we show admin the product has errors
|
324 |
$statusException = ($e->isWarning()) ? Mage::getModel('bootic/product_data')->getStatusIncomplete() : Mage::getModel('bootic/product_data')->getStatusError();
|
325 |
$status = ($e->isWarning()) ? 'warning' : 'error';
|
326 |
Mage::helper('bootic/product_data')->updateProductStatus($product, $statusException);
|
336 |
}
|
337 |
|
338 |
} catch (Exception $e) {
|
339 |
+
Mage::logException($e);
|
340 |
// If anything else weird happens, we simply disregard
|
341 |
Mage::log('Failed editing a product on Bootic');
|
342 |
}
|
352 |
*/
|
353 |
protected function _isProductUploadable(Mage_Catalog_Model_Product $product)
|
354 |
{
|
355 |
+
Mage::log('_isProductUploadable');
|
356 |
$parents = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
|
357 |
|
358 |
$result = true;
|
374 |
*/
|
375 |
public function makeSimpleProduct(Mage_Catalog_Model_Product $product)
|
376 |
{
|
377 |
+
Mage::log('makeSimpleProduct');
|
378 |
$attributes = $product->getAttributes();
|
379 |
$personalizations = array();
|
380 |
foreach ($attributes as $attribute) {
|
411 |
$productData->save();
|
412 |
|
413 |
} catch (Bootic_Api_Exception $e) {
|
414 |
+
Mage::logException($e);
|
415 |
// If an error occurs during this call, product stock gets set to out of sync
|
416 |
$productData->setIsStockSynced(false);
|
417 |
$productData->save();
|
420 |
// If product upload call originally had warnings, we notify the admin
|
421 |
if ($result->hasWarning()) {
|
422 |
$warningMessages = $result->getWarningMessages();
|
423 |
+
Mage::log($warningMessages);
|
424 |
+
|
425 |
// We remove the first message which is not intended for Magento Admins
|
426 |
array_shift($warningMessages);
|
427 |
$message = implode(' ', $warningMessages);
|
428 |
+
Mage::log($message);
|
429 |
throw new Bootic_Bootic_Exception($message);
|
430 |
}
|
431 |
}
|
439 |
*/
|
440 |
public function editSimpleProduct(Mage_Catalog_Model_Product $product)
|
441 |
{
|
442 |
+
Mage::log('editSimpleProduct');
|
443 |
$attributes = $product->getAttributes();
|
444 |
$personalizations = array();
|
445 |
foreach ($attributes as $attribute) {
|
485 |
*/
|
486 |
public function makeConfigurableProduct(Mage_Catalog_Model_Product $product)
|
487 |
{
|
488 |
+
Mage::log('makeConfigurableProduct');
|
489 |
$productAttributes = $this->_getConfigurableProductAttributes($product, $productOptions, $matchedAttributes);
|
490 |
|
491 |
$attributes = $product->getAttributes();
|
557 |
$_productData->save();
|
558 |
|
559 |
} catch (Bootic_Api_Exception $e) {
|
560 |
+
Mage::logException($e);
|
561 |
+
|
562 |
// If an error occurs during this call, product stock gets set to out of sync
|
563 |
$_productData->setIsStockSynced(false);
|
564 |
$_productData->save();
|
569 |
try {
|
570 |
$this->updateProductStock($productId, $stockId, $sku, $stock, $valid);
|
571 |
} catch (Exception $e) {
|
572 |
+
Mage::logException($e);
|
573 |
$stockInSync = false;
|
574 |
}
|
575 |
}
|
581 |
// If product upload call originally had warnings, we notify the admin
|
582 |
if ($result->hasWarning()) {
|
583 |
$warningMessages = $result->getWarningMessages();
|
584 |
+
Mage::log($warningMessages);
|
585 |
// We remove the first message which is not intended for Magento Admins
|
586 |
array_shift($warningMessages);
|
587 |
$message = implode(' ', $warningMessages);
|
588 |
+
Mage::log(message);
|
589 |
+
|
590 |
throw new Bootic_Bootic_Exception($message);
|
591 |
}
|
592 |
}
|
600 |
*/
|
601 |
public function editConfigurableProduct(Mage_Catalog_Model_Product $product)
|
602 |
{
|
603 |
+
Mage::log('editConfigurableProduct');
|
604 |
$productAttributes = $this->_getConfigurableProductAttributes($product, $productOptions, $matchedAttributes);
|
605 |
|
606 |
$attributes = $product->getAttributes();
|
629 |
throw new Bootic_Bootic_Exception($result->getErrorMessage());
|
630 |
} elseif ($result->hasWarning()) {
|
631 |
$warningMessages = $result->getWarningMessages();
|
632 |
+
|
633 |
+
Mage::log($warningMessages);
|
634 |
+
|
635 |
// We remove the first message which is not intended for Magento Admins
|
636 |
array_shift($warningMessages);
|
637 |
$message = implode(' ', $warningMessages);
|
638 |
+
Mage::log($message);
|
639 |
+
|
640 |
throw new Bootic_Bootic_Exception($message, 0, null, true);
|
641 |
}
|
642 |
}
|
643 |
|
644 |
protected function _getConfigurableProductAttributes(Mage_Catalog_Model_Product $product, &$productOptions, &$matchedAttributes)
|
645 |
{
|
646 |
+
Mage::log('_getConfigurableProductAttributes');
|
647 |
$productOptions = Mage::helper('bootic/product_type_configurable')->getOptions($product);
|
648 |
|
649 |
$matchedAttributes = array();
|
689 |
*/
|
690 |
public function updateProductStock($productId = null, $stockId = null, $sku = null, $stock = null, $valid = false)
|
691 |
{
|
692 |
+
Mage::log('updateProductStock');
|
693 |
$p['product_id'] = (int)$productId;
|
694 |
$p['stock_id'] = $stockId;
|
695 |
$p['sku'] = $sku;
|
712 |
*/
|
713 |
public function listProductAvailableAttributes()
|
714 |
{
|
715 |
+
Mage::log('listProductAvailableAttributes');
|
716 |
$result = $this->getBootic()->listProductAvailableAttributes();
|
717 |
|
718 |
return $result->getData();
|
727 |
*/
|
728 |
public function createProductAttribute($attributeCode)
|
729 |
{
|
730 |
+
Mage::log('createProductAttribute');
|
731 |
if (is_null($attributeCode)) {
|
732 |
throw new Bootic_Bootic_Exception('Attribute code cannot be empty');
|
733 |
}
|
777 |
*/
|
778 |
public function addBooticAttribute(array $attribute)
|
779 |
{
|
780 |
+
Mage::log('addBooticAttribute');
|
781 |
$this->_booticAttributes[] = $attribute;
|
782 |
return $this;
|
783 |
}
|
791 |
*/
|
792 |
private function _prepareBooticProductArray(Mage_Catalog_Model_Product $_product, $product_attributes = null)
|
793 |
{
|
794 |
+
Mage::log('_prepareBooticProductArray');
|
795 |
/** @var $product Mage_Catalog_Model_Product */
|
796 |
$product = Mage::getModel('catalog/product')->load($_product->getId());
|
797 |
|
921 |
*/
|
922 |
public function checkProductsStatus()
|
923 |
{
|
924 |
+
Mage::log('checkProductsStatus');
|
925 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
926 |
->addAttributeToSelect('*')
|
927 |
->addAttributeToSort('entity_id', 'ASC')
|
991 |
*/
|
992 |
public function syncProductsStocks()
|
993 |
{
|
994 |
+
Mage::log('syncProductsStocks');
|
995 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
996 |
->addAttributeToSelect('*')
|
997 |
->addAttributeToSort('entity_id', 'ASC')
|
1031 |
$this->updateProductStock($productId, $stockId, $sku, $stock, $valid);
|
1032 |
Mage::helper('bootic/product_data')->setStockSync($product, true);
|
1033 |
} catch (Exception $e) {
|
1034 |
+
Mage::logException($e);
|
1035 |
// Here we just do nothing to let the system retry on its own on a next cron run
|
1036 |
}
|
1037 |
}
|
app/code/community/Bootic/Bootic/Model/Cron.php
CHANGED
@@ -40,4 +40,10 @@ class Bootic_Bootic_Model_Cron extends Mage_Core_Model_Abstract
|
|
40 |
Mage::log('syncing orders');
|
41 |
Mage::helper('bootic/orders')->syncOrders();
|
42 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
40 |
Mage::log('syncing orders');
|
41 |
Mage::helper('bootic/orders')->syncOrders();
|
42 |
}
|
43 |
+
|
44 |
+
public function syncCategories()
|
45 |
+
{
|
46 |
+
Mage::log('syncing categories');
|
47 |
+
Mage::helper('bootic/category')->syncCategories();
|
48 |
+
}
|
49 |
}
|
app/code/community/Bootic/Bootic/Model/Mysql4/Category.php
CHANGED
@@ -114,7 +114,7 @@ class Bootic_Bootic_Model_Mysql4_Category extends Mage_Core_Model_Mysql4_Abstrac
|
|
114 |
* @param int $id
|
115 |
* @return array
|
116 |
*/
|
117 |
-
|
118 |
{
|
119 |
$adapter = $this->_getReadAdapter();
|
120 |
|
@@ -135,7 +135,7 @@ class Bootic_Bootic_Model_Mysql4_Category extends Mage_Core_Model_Mysql4_Abstrac
|
|
135 |
* @param int $id
|
136 |
* @return array
|
137 |
*/
|
138 |
-
|
139 |
{
|
140 |
$adapter = $this->_getReadAdapter();
|
141 |
|
@@ -149,4 +149,87 @@ class Bootic_Bootic_Model_Mysql4_Category extends Mage_Core_Model_Mysql4_Abstrac
|
|
149 |
|
150 |
return $adapter->fetchCol($select, $binds);
|
151 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
}
|
114 |
* @param int $id
|
115 |
* @return array
|
116 |
*/
|
117 |
+
protected function lookupParentIds($id)
|
118 |
{
|
119 |
$adapter = $this->_getReadAdapter();
|
120 |
|
135 |
* @param int $id
|
136 |
* @return array
|
137 |
*/
|
138 |
+
protected function lookupChildrenIds($id)
|
139 |
{
|
140 |
$adapter = $this->_getReadAdapter();
|
141 |
|
149 |
|
150 |
return $adapter->fetchCol($select, $binds);
|
151 |
}
|
152 |
+
|
153 |
+
public function insertCategories(array $categories, DateTime $lastRemoteUpdate)
|
154 |
+
{
|
155 |
+
// We clear our 2 tables
|
156 |
+
$this->_getWriteAdapter()->delete($this->getMainTable());
|
157 |
+
$this->_getWriteAdapter()->delete($this->getTable('bootic/category_parent'));
|
158 |
+
|
159 |
+
$insertCategories = array();
|
160 |
+
$insertCategoryParents = array();
|
161 |
+
foreach ($categories as $category) {
|
162 |
+
$insertCategories[] = array(
|
163 |
+
'category_id' => $category['id'],
|
164 |
+
'name' => $category['name'],
|
165 |
+
'update_time' => $lastRemoteUpdate->format('Y-m-d H:i:s')
|
166 |
+
);
|
167 |
+
|
168 |
+
if (count($category['parents']) > 0) {
|
169 |
+
foreach ($category['parents'] as $key => $parent) {
|
170 |
+
$insertCategoryParents[] = array(
|
171 |
+
'category_id' => $category['id'],
|
172 |
+
'parent_id' => $parent
|
173 |
+
);
|
174 |
+
}
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
$this->_getWriteAdapter()->insertMultiple($this->getMainTable(), $insertCategories);
|
179 |
+
$this->_getWriteAdapter()->insertMultiple($this->getTable('bootic/category_parent'), $insertCategoryParents);
|
180 |
+
}
|
181 |
+
|
182 |
+
public function getAllCategories()
|
183 |
+
{
|
184 |
+
$read = $this->_getReadAdapter();
|
185 |
+
|
186 |
+
$results = $read->fetchAll("SELECT c.*, p.parent_id FROM bootic_category c LEFT JOIN bootic_category_parent p ON p.category_id = c.category_id");
|
187 |
+
|
188 |
+
$categories = array();
|
189 |
+
foreach ($results as $result) {
|
190 |
+
if (array_key_exists($result['category_id'], $categories)) {
|
191 |
+
$categories[$result['category_id']]['parents'][] = $result['parent_id'];
|
192 |
+
} else {
|
193 |
+
$categories[$result['category_id']] = array(
|
194 |
+
'category_id' => $result['category_id'],
|
195 |
+
'name' => $result['name'],
|
196 |
+
'parents' => ($result['parent_id'] !== null) ? array($result['parent_id']) : array(),
|
197 |
+
'children' => array()
|
198 |
+
);
|
199 |
+
}
|
200 |
+
}
|
201 |
+
|
202 |
+
// We populate the children
|
203 |
+
foreach ($categories as $category) {
|
204 |
+
if (count($category['parents']) > 0) {
|
205 |
+
foreach ($category['parents'] as $parent) {
|
206 |
+
if (array_key_exists($parent, $categories)) {
|
207 |
+
$categories[$parent]['children'][] = $category['category_id'];
|
208 |
+
}
|
209 |
+
}
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
$booticCategories = array();
|
214 |
+
foreach ($categories as $category) {
|
215 |
+
$c = Mage::getModel('bootic/category');
|
216 |
+
|
217 |
+
$c->setCategoryId($category['category_id']);
|
218 |
+
$c->setName($category['name']);
|
219 |
+
$c->setParents($category['parents']);
|
220 |
+
$c->setChildren($category['children']);
|
221 |
+
|
222 |
+
$booticCategories[$category['category_id']] = $c;
|
223 |
+
}
|
224 |
+
|
225 |
+
return $booticCategories;
|
226 |
+
}
|
227 |
+
|
228 |
+
public function getLocalLastUpdate()
|
229 |
+
{
|
230 |
+
return $this
|
231 |
+
->_getReadAdapter()
|
232 |
+
->fetchOne("SELECT c.update_time FROM bootic_category c ORDER BY c.update_time DESC")
|
233 |
+
;
|
234 |
+
}
|
235 |
}
|
app/code/community/Bootic/Bootic/Model/Shipping/Flatrate.php
CHANGED
@@ -9,20 +9,22 @@ class Bootic_Bootic_Model_Shipping_Flatrate extends Mage_Shipping_Model_Carrier_
|
|
9 |
|
10 |
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
11 |
{
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
26 |
}
|
27 |
|
28 |
public function getAllowedMethods()
|
@@ -34,4 +36,4 @@ class Bootic_Bootic_Model_Shipping_Flatrate extends Mage_Shipping_Model_Carrier_
|
|
34 |
{
|
35 |
return false;
|
36 |
}
|
37 |
-
}
|
9 |
|
10 |
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
11 |
{
|
12 |
+
if (Mage::registry('bootic_order_creation') ) {
|
13 |
+
|
14 |
+
$result = Mage::getModel('shipping/rate_result');
|
15 |
+
|
16 |
+
$method = Mage::getModel('shipping/rate_result_method');
|
17 |
+
$method->setCarrier($this->_code);
|
18 |
+
$method->setCarrierTitle($this->getConfigData('title'));
|
19 |
+
$method->setMethod('flat_shipping');
|
20 |
+
$method->setMethodTitle($this->getConfigData('name'));
|
21 |
+
$method->setPrice(0);
|
22 |
+
$method->setCost(0);
|
23 |
+
|
24 |
+
$result->append($method);
|
25 |
+
|
26 |
+
return $result;
|
27 |
+
}
|
28 |
}
|
29 |
|
30 |
public function getAllowedMethods()
|
36 |
{
|
37 |
return false;
|
38 |
}
|
39 |
+
}
|
app/code/community/Bootic/Bootic/controllers/Adminhtml/Catalog/CategoryController.php
CHANGED
@@ -12,14 +12,20 @@ class Bootic_Bootic_Adminhtml_Catalog_CategoryController extends Mage_Adminhtml_
|
|
12 |
} catch (Exception $e) {
|
13 |
Mage::getSingleton('adminhtml/session')
|
14 |
->addError(Mage::helper('bootic')->__('Please select a Root Category and save the configuration.'))
|
15 |
-
->addData(array('bootic_category_redirect' => 'bootic/adminhtml_catalog_category/index'))
|
|
|
16 |
|
17 |
$this->_redirect('adminhtml/system_config/edit', array('section' => 'bootic'));
|
18 |
|
19 |
return;
|
20 |
}
|
21 |
|
22 |
-
Mage::
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
$collection = Mage::getResourceModel('bootic/category_mapping_collection')->load();
|
25 |
|
@@ -30,11 +36,17 @@ class Bootic_Bootic_Adminhtml_Catalog_CategoryController extends Mage_Adminhtml_
|
|
30 |
|
31 |
Mage::register('category_mapping', $mapping);
|
32 |
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
34 |
$this
|
35 |
->loadLayout()
|
36 |
->_setActiveMenu('bootic/bootic')
|
37 |
-
->renderLayout()
|
|
|
38 |
}
|
39 |
|
40 |
public function saveAction()
|
12 |
} catch (Exception $e) {
|
13 |
Mage::getSingleton('adminhtml/session')
|
14 |
->addError(Mage::helper('bootic')->__('Please select a Root Category and save the configuration.'))
|
15 |
+
->addData(array('bootic_category_redirect' => 'bootic/adminhtml_catalog_category/index'))
|
16 |
+
;
|
17 |
|
18 |
$this->_redirect('adminhtml/system_config/edit', array('section' => 'bootic'));
|
19 |
|
20 |
return;
|
21 |
}
|
22 |
|
23 |
+
$categoryCollection = Mage::getResourceModel('bootic/category_collection')->load();
|
24 |
+
// We only fetch categories from Bootic if necessary - if they are already in place,
|
25 |
+
// we let cron maintain then in sync
|
26 |
+
if ($categoryCollection->count() == 0) {
|
27 |
+
Mage::helper('bootic/category')->pullBooticCategories();
|
28 |
+
}
|
29 |
|
30 |
$collection = Mage::getResourceModel('bootic/category_mapping_collection')->load();
|
31 |
|
36 |
|
37 |
Mage::register('category_mapping', $mapping);
|
38 |
|
39 |
+
if ($email = Mage::getStoreConfig('bootic/account/email')) {
|
40 |
+
$this->_title($this->__('Bootic Category Mapping (email: '.$email. ')'));
|
41 |
+
} else {
|
42 |
+
$this->_title($this->__('Bootic Category Mapping'));
|
43 |
+
}
|
44 |
+
|
45 |
$this
|
46 |
->loadLayout()
|
47 |
->_setActiveMenu('bootic/bootic')
|
48 |
+
->renderLayout()
|
49 |
+
;
|
50 |
}
|
51 |
|
52 |
public function saveAction()
|
app/code/community/Bootic/Bootic/controllers/Adminhtml/CatalogController.php
CHANGED
@@ -38,11 +38,16 @@ class Bootic_Bootic_Adminhtml_CatalogController extends Bootic_Bootic_Adminhtml_
|
|
38 |
}
|
39 |
}
|
40 |
|
41 |
-
$
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
$this
|
44 |
->loadLayout()
|
45 |
->_setActiveMenu('bootic/bootic')
|
46 |
->renderLayout();
|
47 |
}
|
48 |
-
}
|
38 |
}
|
39 |
}
|
40 |
|
41 |
+
$email = Mage::getStoreConfig('bootic/account/email');
|
42 |
+
if ($email) {
|
43 |
+
$this->_title($this->__('Bootic Catalog (email: '.$email.')'));
|
44 |
+
} else {
|
45 |
+
$this->_title($this->__('Bootic Catalog'));
|
46 |
+
}
|
47 |
|
48 |
$this
|
49 |
->loadLayout()
|
50 |
->_setActiveMenu('bootic/bootic')
|
51 |
->renderLayout();
|
52 |
}
|
53 |
+
}
|
app/code/community/Bootic/Bootic/controllers/Adminhtml/ConnectController.php
CHANGED
@@ -25,7 +25,12 @@ class Bootic_Bootic_Adminhtml_ConnectController extends Bootic_Bootic_Adminhtml_
|
|
25 |
|
26 |
public function indexAction()
|
27 |
{
|
28 |
-
$
|
|
|
|
|
|
|
|
|
|
|
29 |
$this
|
30 |
->loadLayout()
|
31 |
->_setActiveMenu('bootic/bootic')
|
25 |
|
26 |
public function indexAction()
|
27 |
{
|
28 |
+
$email = Mage::getStoreConfig('bootic/account/email');
|
29 |
+
if ($email) {
|
30 |
+
$this->_title($this->__('Bootic Connect (email: '.$email.')'));
|
31 |
+
} else {
|
32 |
+
$this->_title($this->__('Bootic Connect'));
|
33 |
+
}
|
34 |
$this
|
35 |
->loadLayout()
|
36 |
->_setActiveMenu('bootic/bootic')
|
app/code/community/Bootic/Bootic/controllers/Adminhtml/StorefrontController.php
CHANGED
@@ -24,7 +24,12 @@ class Bootic_Bootic_Adminhtml_StorefrontController extends Bootic_Bootic_Adminht
|
|
24 |
{
|
25 |
protected function _init()
|
26 |
{
|
27 |
-
$
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
$this
|
30 |
->loadLayout()
|
@@ -193,4 +198,4 @@ class Bootic_Bootic_Adminhtml_StorefrontController extends Bootic_Bootic_Adminht
|
|
193 |
|
194 |
$this->_redirect('*/*/');
|
195 |
}
|
196 |
-
}
|
24 |
{
|
25 |
protected function _init()
|
26 |
{
|
27 |
+
$email = Mage::getStoreConfig('bootic/account/email');
|
28 |
+
if ($email) {
|
29 |
+
$this->_title($this->__('Bootic Storefront (email: '.$email.')'));
|
30 |
+
} else {
|
31 |
+
$this->_title($this->__('Bootic Storefront'));
|
32 |
+
}
|
33 |
|
34 |
$this
|
35 |
->loadLayout()
|
198 |
|
199 |
$this->_redirect('*/*/');
|
200 |
}
|
201 |
+
}
|
app/code/community/Bootic/Bootic/controllers/Adminhtml/System/CronController.php
CHANGED
@@ -4,6 +4,7 @@ class Bootic_Bootic_Adminhtml_System_CronController extends Mage_Adminhtml_Contr
|
|
4 |
{
|
5 |
public function runProcessOrdersAction()
|
6 |
{
|
|
|
7 |
try {
|
8 |
$orders = $this->getCronObserver()->processOrders();
|
9 |
$response = array(
|
@@ -26,6 +27,7 @@ class Bootic_Bootic_Adminhtml_System_CronController extends Mage_Adminhtml_Contr
|
|
26 |
*/
|
27 |
public function getCronObserver()
|
28 |
{
|
|
|
29 |
return Mage::getModel('bootic/OrdersCronObserver');
|
30 |
}
|
31 |
}
|
4 |
{
|
5 |
public function runProcessOrdersAction()
|
6 |
{
|
7 |
+
Mage::log('runProcessOrdersAction');
|
8 |
try {
|
9 |
$orders = $this->getCronObserver()->processOrders();
|
10 |
$response = array(
|
27 |
*/
|
28 |
public function getCronObserver()
|
29 |
{
|
30 |
+
Mage::log('getCronObserver');
|
31 |
return Mage::getModel('bootic/OrdersCronObserver');
|
32 |
}
|
33 |
}
|
app/code/community/Bootic/Bootic/controllers/IndexController.php
CHANGED
@@ -112,7 +112,12 @@ class Bootic_Bootic_IndexController extends Mage_Core_Controller_Front_Action
|
|
112 |
public function cronAction()
|
113 |
{
|
114 |
try {
|
115 |
-
|
|
|
|
|
|
|
|
|
|
|
116 |
} catch (Exception $e) {
|
117 |
var_dump($e);
|
118 |
}
|
@@ -206,4 +211,22 @@ class Bootic_Bootic_IndexController extends Mage_Core_Controller_Front_Action
|
|
206 |
Mage::helper('bootic/lists')->getCountries();
|
207 |
}
|
208 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
}
|
112 |
public function cronAction()
|
113 |
{
|
114 |
try {
|
115 |
+
Mage::helper('bootic/product')->uploadProducts();
|
116 |
+
Mage::helper('bootic/product')->editProducts();
|
117 |
+
Mage::helper('bootic/product')->checkProductsStatus();
|
118 |
+
Mage::helper('bootic/product')->syncProductsStocks();
|
119 |
+
Mage::helper('bootic/orders')->processPendingOrders();
|
120 |
+
Mage::helper('bootic/orders')->syncOrders();
|
121 |
} catch (Exception $e) {
|
122 |
var_dump($e);
|
123 |
}
|
211 |
Mage::helper('bootic/lists')->getCountries();
|
212 |
}
|
213 |
|
214 |
+
public function testTestAction()
|
215 |
+
{
|
216 |
+
// $result = Mage::helper('bootic/category')->listOrigCategories();
|
217 |
+
// $booticCategories = $result->getData();
|
218 |
+
|
219 |
+
|
220 |
+
|
221 |
+
$categoryResource = Mage::getResourceModel('bootic/category');
|
222 |
+
// $categoryResource->insertCategories($booticCategories);
|
223 |
+
$result = $categoryResource->getLastUpdate();
|
224 |
+
|
225 |
+
}
|
226 |
+
|
227 |
+
public function syncCategoriesAction()
|
228 |
+
{
|
229 |
+
Mage::helper('bootic/category')->syncCategories();
|
230 |
+
}
|
231 |
+
|
232 |
}
|
app/code/community/Bootic/Bootic/etc/config.xml
CHANGED
@@ -244,6 +244,14 @@
|
|
244 |
<model>bootic/cron::syncOrders</model>
|
245 |
</run>
|
246 |
</bootic_bootic_sync_orders>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
</jobs>
|
248 |
</crontab>
|
249 |
<default>
|
244 |
<model>bootic/cron::syncOrders</model>
|
245 |
</run>
|
246 |
</bootic_bootic_sync_orders>
|
247 |
+
<bootic_bootic_sync_categories>
|
248 |
+
<schedule>
|
249 |
+
<cron_expr>0 0 * * *</cron_expr>
|
250 |
+
</schedule>
|
251 |
+
<run>
|
252 |
+
<model>bootic/cron::syncCategories</model>
|
253 |
+
</run>
|
254 |
+
</bootic_bootic_sync_categories>
|
255 |
</jobs>
|
256 |
</crontab>
|
257 |
<default>
|
app/design/adminhtml/default/default/layout/bootic.xml
CHANGED
@@ -66,4 +66,4 @@
|
|
66 |
</reference>
|
67 |
</bootic_adminhtml_system_config_account_index>
|
68 |
|
69 |
-
</layout>
|
66 |
</reference>
|
67 |
</bootic_adminhtml_system_config_account_index>
|
68 |
|
69 |
+
</layout>
|
app/design/adminhtml/default/default/template/bootic/bootic.phtml
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
<div class="content-header">
|
8 |
<table cellspacing="0" class="grid-header">
|
9 |
<tr>
|
10 |
-
<td><h3><?php echo $this->__('Bootic - Manage your products') ?></h3></td>
|
11 |
<td class="a-right">
|
12 |
</td>
|
13 |
</tr>
|
@@ -15,4 +15,4 @@
|
|
15 |
</div>
|
16 |
|
17 |
<?php echo $this->getChildHtml('bootic_adminhtml_catalog_tabs'); ?>
|
18 |
-
<div id="bootic_catalog_tab_content"></div>
|
7 |
<div class="content-header">
|
8 |
<table cellspacing="0" class="grid-header">
|
9 |
<tr>
|
10 |
+
<td><h3><?php echo $this->__('Bootic - Manage your products (email: '.Mage::getStoreConfig('bootic/account/email').')') ?></h3></td>
|
11 |
<td class="a-right">
|
12 |
</td>
|
13 |
</tr>
|
15 |
</div>
|
16 |
|
17 |
<?php echo $this->getChildHtml('bootic_adminhtml_catalog_tabs'); ?>
|
18 |
+
<div id="bootic_catalog_tab_content"></div>
|
app/design/adminhtml/default/default/template/bootic/storefront/banners.phtml
CHANGED
@@ -30,7 +30,7 @@ $booticClient = Mage::helper('bootic')->getBootic();
|
|
30 |
this.addClassName('selected');
|
31 |
$('storefront_banner').value = this.identify();
|
32 |
|
33 |
-
updatePreviewBanner(this);
|
34 |
});
|
35 |
|
36 |
function updatePreviewBanner(banner) {
|
@@ -38,4 +38,4 @@ $booticClient = Mage::helper('bootic')->getBootic();
|
|
38 |
$('bannerPreview').src = img.src;
|
39 |
}
|
40 |
|
41 |
-
</script>
|
30 |
this.addClassName('selected');
|
31 |
$('storefront_banner').value = this.identify();
|
32 |
|
33 |
+
// updatePreviewBanner(this);
|
34 |
});
|
35 |
|
36 |
function updatePreviewBanner(banner) {
|
38 |
$('bannerPreview').src = img.src;
|
39 |
}
|
40 |
|
41 |
+
</script>
|
app/design/adminhtml/default/default/template/bootic/storefront/preview.phtml
CHANGED
@@ -11,15 +11,15 @@
|
|
11 |
<script type="text/javascript">
|
12 |
document.observe("dom:loaded", function() {
|
13 |
var storeOptions = <?php echo json_encode($opts) ?>;
|
14 |
-
console.log(storeOptions);
|
15 |
|
16 |
var templates = storeOptions.templates;
|
17 |
-
var color = "#" + $('storefront_color_theme').value;
|
18 |
var bannerSrc = $$('.banners-container .selected img')[0].src;
|
19 |
|
20 |
var template = new Element('img');
|
21 |
template.setStyle({ position: 'absolute' });
|
22 |
|
|
|
23 |
var banner = new Element('img');
|
24 |
banner.src = bannerSrc;
|
25 |
banner.setStyle({ position: 'absolute', width: '500px', top: '55px'});
|
@@ -44,7 +44,6 @@
|
|
44 |
});
|
45 |
}
|
46 |
});
|
47 |
-
|
48 |
// Now we track change event on template
|
49 |
// for color see Bootic_Bootic_Block_Adminhtml_Storefront_Edit
|
50 |
// for banner see banners.phtml
|
@@ -57,6 +56,7 @@
|
|
57 |
}
|
58 |
});
|
59 |
});
|
|
|
60 |
|
61 |
});
|
62 |
-
</script>
|
11 |
<script type="text/javascript">
|
12 |
document.observe("dom:loaded", function() {
|
13 |
var storeOptions = <?php echo json_encode($opts) ?>;
|
|
|
14 |
|
15 |
var templates = storeOptions.templates;
|
16 |
+
// var color = "#" + $('storefront_color_theme').value;
|
17 |
var bannerSrc = $$('.banners-container .selected img')[0].src;
|
18 |
|
19 |
var template = new Element('img');
|
20 |
template.setStyle({ position: 'absolute' });
|
21 |
|
22 |
+
/*
|
23 |
var banner = new Element('img');
|
24 |
banner.src = bannerSrc;
|
25 |
banner.setStyle({ position: 'absolute', width: '500px', top: '55px'});
|
44 |
});
|
45 |
}
|
46 |
});
|
|
|
47 |
// Now we track change event on template
|
48 |
// for color see Bootic_Bootic_Block_Adminhtml_Storefront_Edit
|
49 |
// for banner see banners.phtml
|
56 |
}
|
57 |
});
|
58 |
});
|
59 |
+
*/
|
60 |
|
61 |
});
|
62 |
+
</script>
|
lib/Bootic/Api/Client.php
CHANGED
@@ -28,6 +28,7 @@ class Bootic_Api_Client
|
|
28 |
*/
|
29 |
public function __construct(Zend_Rest_Client $restClient = null)
|
30 |
{
|
|
|
31 |
if (null !== $restClient) {
|
32 |
$this->setRestClient($restClient);
|
33 |
}
|
@@ -81,6 +82,7 @@ class Bootic_Api_Client
|
|
81 |
*/
|
82 |
public function authenticateByEmailAndPassword($email, $password)
|
83 |
{
|
|
|
84 |
return $this->_request('/account/login', array(
|
85 |
'email' => $email,
|
86 |
'password' => $password,
|
@@ -95,6 +97,7 @@ class Bootic_Api_Client
|
|
95 |
*/
|
96 |
public function authenticateByApiKey($apiKey)
|
97 |
{
|
|
|
98 |
return $this->_request('/account/login', array(
|
99 |
'api_key' => $apiKey
|
100 |
));
|
@@ -105,6 +108,7 @@ class Bootic_Api_Client
|
|
105 |
*/
|
106 |
public function getInfo()
|
107 |
{
|
|
|
108 |
$result = $this->_request('/common/info');
|
109 |
|
110 |
return $result;
|
@@ -116,6 +120,7 @@ class Bootic_Api_Client
|
|
116 |
*/
|
117 |
public function getCommonList($type)
|
118 |
{
|
|
|
119 |
return $this->_request('/common/list', array('name' => $type));
|
120 |
}
|
121 |
/**
|
@@ -126,6 +131,7 @@ class Bootic_Api_Client
|
|
126 |
*/
|
127 |
public function createAccount($email, $password)
|
128 |
{
|
|
|
129 |
$result = $this->_request('account/create', array(
|
130 |
'email' => $email,
|
131 |
'password' => $password
|
@@ -144,6 +150,7 @@ class Bootic_Api_Client
|
|
144 |
*/
|
145 |
public function createKey($apiKeyName, $apiKeyDescription)
|
146 |
{
|
|
|
147 |
$result = $this->_request('/account/create_key', array(
|
148 |
'api_key_name' => $apiKeyName,
|
149 |
'api_key_description' => $apiKeyDescription
|
@@ -159,6 +166,7 @@ class Bootic_Api_Client
|
|
159 |
*/
|
160 |
public function getProfile()
|
161 |
{
|
|
|
162 |
$result = $this->_request('/account/get_profile');
|
163 |
|
164 |
return $result;
|
@@ -172,6 +180,9 @@ class Bootic_Api_Client
|
|
172 |
*/
|
173 |
public function editProfile(array $profile)
|
174 |
{
|
|
|
|
|
|
|
175 |
$result = $this->_request('/account/edit_profile', $profile);
|
176 |
|
177 |
return $result;
|
@@ -185,6 +196,7 @@ class Bootic_Api_Client
|
|
185 |
*/
|
186 |
public function editProfilePicture(array $data)
|
187 |
{
|
|
|
188 |
$result = $this->_request('/account/edit_profile_image', $data);
|
189 |
|
190 |
return $result;
|
@@ -198,6 +210,7 @@ class Bootic_Api_Client
|
|
198 |
*/
|
199 |
public function getOrderList(array $params = array())
|
200 |
{
|
|
|
201 |
$result = $this->_request('/transaction/list_orders', $params);
|
202 |
if ($result->getData('record_count') > 0) {
|
203 |
//load additional data
|
@@ -223,6 +236,7 @@ class Bootic_Api_Client
|
|
223 |
*/
|
224 |
public function updateTransactionStatus($id, array $data)
|
225 |
{
|
|
|
226 |
$data['id'] = $id;
|
227 |
$result = $this->_request('/transaction/update_status', $data);
|
228 |
return $result;
|
@@ -234,6 +248,7 @@ class Bootic_Api_Client
|
|
234 |
*/
|
235 |
public function getSalesList(array $params = array())
|
236 |
{
|
|
|
237 |
$result = $this->_request('/transaction/list_sales', $params);
|
238 |
return $result;
|
239 |
}
|
@@ -245,6 +260,7 @@ class Bootic_Api_Client
|
|
245 |
*/
|
246 |
public function getStoreFrontList()
|
247 |
{
|
|
|
248 |
$result = $this->_request('/storefront/list');
|
249 |
|
250 |
return $result;
|
@@ -258,6 +274,7 @@ class Bootic_Api_Client
|
|
258 |
*/
|
259 |
public function createStorefront(array $data)
|
260 |
{
|
|
|
261 |
$result = $this->_request('/storefront/create', $data);
|
262 |
|
263 |
return $result;
|
@@ -271,6 +288,7 @@ class Bootic_Api_Client
|
|
271 |
*/
|
272 |
public function updateStorefront(array $data)
|
273 |
{
|
|
|
274 |
$result = $this->_request('/storefront/update', $data);
|
275 |
|
276 |
return $result;
|
@@ -284,6 +302,7 @@ class Bootic_Api_Client
|
|
284 |
*/
|
285 |
public function getAvailableOptionsForStorefront($shop_id)
|
286 |
{
|
|
|
287 |
$result = $this->_request('/storefront/get_available_options', array(
|
288 |
'shop_id' => $shop_id
|
289 |
));
|
@@ -299,6 +318,7 @@ class Bootic_Api_Client
|
|
299 |
*/
|
300 |
public function addStorefrontBanner(array $data)
|
301 |
{
|
|
|
302 |
$result = $this->_request('/storefront/add_banner', $data);
|
303 |
|
304 |
return $result;
|
@@ -312,6 +332,7 @@ class Bootic_Api_Client
|
|
312 |
*/
|
313 |
public function addProduct(array $data)
|
314 |
{
|
|
|
315 |
$result = $this->_request('product/add_product', $data);
|
316 |
|
317 |
return $result;
|
@@ -325,6 +346,7 @@ class Bootic_Api_Client
|
|
325 |
*/
|
326 |
public function editProduct(array $data)
|
327 |
{
|
|
|
328 |
$result = $this->_request('product/edit_product', $data);
|
329 |
|
330 |
return $result;
|
@@ -338,6 +360,7 @@ class Bootic_Api_Client
|
|
338 |
*/
|
339 |
public function updateProductStock(array $data)
|
340 |
{
|
|
|
341 |
$result = $this->_request('product/update_product_stock', $data);
|
342 |
|
343 |
return $result;
|
@@ -351,6 +374,7 @@ class Bootic_Api_Client
|
|
351 |
*/
|
352 |
public function getProductStock(array $data)
|
353 |
{
|
|
|
354 |
$result = $this->_request('product/get_product_stock', $data);
|
355 |
|
356 |
return $result;
|
@@ -364,6 +388,7 @@ class Bootic_Api_Client
|
|
364 |
*/
|
365 |
public function getProductInfo(array $data)
|
366 |
{
|
|
|
367 |
$result = $this->_request('/product/get_product_info', $data);
|
368 |
|
369 |
return $result;
|
@@ -377,6 +402,7 @@ class Bootic_Api_Client
|
|
377 |
*/
|
378 |
public function createProductAttribute(array $data)
|
379 |
{
|
|
|
380 |
$result = $this->_request('product/create_attribute', $data);
|
381 |
|
382 |
return $result;
|
@@ -389,6 +415,7 @@ class Bootic_Api_Client
|
|
389 |
*/
|
390 |
public function listProductAvailableAttributes()
|
391 |
{
|
|
|
392 |
$result = $this->_request('product/list_available_attributes');
|
393 |
|
394 |
return $result;
|
@@ -401,6 +428,7 @@ class Bootic_Api_Client
|
|
401 |
*/
|
402 |
public function listCategories()
|
403 |
{
|
|
|
404 |
$result = $this->_request('category/list');
|
405 |
|
406 |
return $result;
|
@@ -413,6 +441,7 @@ class Bootic_Api_Client
|
|
413 |
*/
|
414 |
public function getAccountMessages()
|
415 |
{
|
|
|
416 |
$result = $this->_request('account/message');
|
417 |
|
418 |
return $result;
|
@@ -426,6 +455,7 @@ class Bootic_Api_Client
|
|
426 |
*/
|
427 |
public function markMessageAsRead(array $data)
|
428 |
{
|
|
|
429 |
$result = $this->_request('message/mark_as_read', $data);
|
430 |
|
431 |
return $result;
|
@@ -434,11 +464,20 @@ class Bootic_Api_Client
|
|
434 |
|
435 |
public function getOrderDetails($orderId)
|
436 |
{
|
|
|
437 |
$result = $this->_request('/transaction/get_order_details', array('id' => $orderId));
|
438 |
|
439 |
return $result;
|
440 |
}
|
441 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
442 |
/**
|
443 |
* Issues the request, always with POST method
|
444 |
*
|
@@ -481,6 +520,7 @@ class Bootic_Api_Client
|
|
481 |
*/
|
482 |
public function setRestClient($restClient)
|
483 |
{
|
|
|
484 |
$this->_restClient = $restClient;
|
485 |
$this->_restClient->setUri(Zend_Uri_Http::fromString($this->_defaultUri));
|
486 |
|
@@ -492,6 +532,7 @@ class Bootic_Api_Client
|
|
492 |
*/
|
493 |
public function getRestClient()
|
494 |
{
|
|
|
495 |
if (null == $this->_restClient) {
|
496 |
$restClient = new Zend_Rest_Client();
|
497 |
$this->setRestClient($restClient);
|
@@ -506,6 +547,7 @@ class Bootic_Api_Client
|
|
506 |
*/
|
507 |
public function setCookieJar($cookieJar)
|
508 |
{
|
|
|
509 |
$this->_cookieJar = $cookieJar;
|
510 |
|
511 |
return $this;
|
@@ -516,6 +558,7 @@ class Bootic_Api_Client
|
|
516 |
*/
|
517 |
public function getCookieJar()
|
518 |
{
|
|
|
519 |
return $this->_cookieJar;
|
520 |
}
|
521 |
|
@@ -525,6 +568,7 @@ class Bootic_Api_Client
|
|
525 |
*/
|
526 |
public function addUri($key, $value)
|
527 |
{
|
|
|
528 |
$this->_uris[$key] = $value;
|
529 |
}
|
530 |
|
@@ -534,6 +578,7 @@ class Bootic_Api_Client
|
|
534 |
*/
|
535 |
public function hasUri($key)
|
536 |
{
|
|
|
537 |
return array_key_exists($key, $this->_uris);
|
538 |
}
|
539 |
|
@@ -546,6 +591,7 @@ class Bootic_Api_Client
|
|
546 |
*/
|
547 |
public function getUri($key, $asString = false)
|
548 |
{
|
|
|
549 |
if ($this->hasUri($key)) {
|
550 |
if ($asString) {
|
551 |
return (string) $this->_uris[$key];
|
28 |
*/
|
29 |
public function __construct(Zend_Rest_Client $restClient = null)
|
30 |
{
|
31 |
+
Mage::log("construct");
|
32 |
if (null !== $restClient) {
|
33 |
$this->setRestClient($restClient);
|
34 |
}
|
82 |
*/
|
83 |
public function authenticateByEmailAndPassword($email, $password)
|
84 |
{
|
85 |
+
Mage::log("authenticateByEmailAndPassword");
|
86 |
return $this->_request('/account/login', array(
|
87 |
'email' => $email,
|
88 |
'password' => $password,
|
97 |
*/
|
98 |
public function authenticateByApiKey($apiKey)
|
99 |
{
|
100 |
+
Mage::log("authenticateByApiKey");
|
101 |
return $this->_request('/account/login', array(
|
102 |
'api_key' => $apiKey
|
103 |
));
|
108 |
*/
|
109 |
public function getInfo()
|
110 |
{
|
111 |
+
Mage::log("getInfo");
|
112 |
$result = $this->_request('/common/info');
|
113 |
|
114 |
return $result;
|
120 |
*/
|
121 |
public function getCommonList($type)
|
122 |
{
|
123 |
+
Mage::log("getCommonList");
|
124 |
return $this->_request('/common/list', array('name' => $type));
|
125 |
}
|
126 |
/**
|
131 |
*/
|
132 |
public function createAccount($email, $password)
|
133 |
{
|
134 |
+
Mage::log("createAccount");
|
135 |
$result = $this->_request('account/create', array(
|
136 |
'email' => $email,
|
137 |
'password' => $password
|
150 |
*/
|
151 |
public function createKey($apiKeyName, $apiKeyDescription)
|
152 |
{
|
153 |
+
Mage::log("createKey");
|
154 |
$result = $this->_request('/account/create_key', array(
|
155 |
'api_key_name' => $apiKeyName,
|
156 |
'api_key_description' => $apiKeyDescription
|
166 |
*/
|
167 |
public function getProfile()
|
168 |
{
|
169 |
+
Mage::log("getProfile");
|
170 |
$result = $this->_request('/account/get_profile');
|
171 |
|
172 |
return $result;
|
180 |
*/
|
181 |
public function editProfile(array $profile)
|
182 |
{
|
183 |
+
Mage::log("editProfile");
|
184 |
+
Mage::log("profile = [$profile]");
|
185 |
+
Mage::log($profile);
|
186 |
$result = $this->_request('/account/edit_profile', $profile);
|
187 |
|
188 |
return $result;
|
196 |
*/
|
197 |
public function editProfilePicture(array $data)
|
198 |
{
|
199 |
+
Mage::log("editProfilePicture");
|
200 |
$result = $this->_request('/account/edit_profile_image', $data);
|
201 |
|
202 |
return $result;
|
210 |
*/
|
211 |
public function getOrderList(array $params = array())
|
212 |
{
|
213 |
+
Mage::log("getOrderList");
|
214 |
$result = $this->_request('/transaction/list_orders', $params);
|
215 |
if ($result->getData('record_count') > 0) {
|
216 |
//load additional data
|
236 |
*/
|
237 |
public function updateTransactionStatus($id, array $data)
|
238 |
{
|
239 |
+
Mage::log("updateTransactionStatus");
|
240 |
$data['id'] = $id;
|
241 |
$result = $this->_request('/transaction/update_status', $data);
|
242 |
return $result;
|
248 |
*/
|
249 |
public function getSalesList(array $params = array())
|
250 |
{
|
251 |
+
Mage::log("getSalesList");
|
252 |
$result = $this->_request('/transaction/list_sales', $params);
|
253 |
return $result;
|
254 |
}
|
260 |
*/
|
261 |
public function getStoreFrontList()
|
262 |
{
|
263 |
+
Mage::log("getStoreFrontList");
|
264 |
$result = $this->_request('/storefront/list');
|
265 |
|
266 |
return $result;
|
274 |
*/
|
275 |
public function createStorefront(array $data)
|
276 |
{
|
277 |
+
Mage::log("createStorefront");
|
278 |
$result = $this->_request('/storefront/create', $data);
|
279 |
|
280 |
return $result;
|
288 |
*/
|
289 |
public function updateStorefront(array $data)
|
290 |
{
|
291 |
+
Mage::log("updateStorefront");
|
292 |
$result = $this->_request('/storefront/update', $data);
|
293 |
|
294 |
return $result;
|
302 |
*/
|
303 |
public function getAvailableOptionsForStorefront($shop_id)
|
304 |
{
|
305 |
+
Mage::log("getAvailableOptionsForStorefront");
|
306 |
$result = $this->_request('/storefront/get_available_options', array(
|
307 |
'shop_id' => $shop_id
|
308 |
));
|
318 |
*/
|
319 |
public function addStorefrontBanner(array $data)
|
320 |
{
|
321 |
+
Mage::log("addStorefrontBanner");
|
322 |
$result = $this->_request('/storefront/add_banner', $data);
|
323 |
|
324 |
return $result;
|
332 |
*/
|
333 |
public function addProduct(array $data)
|
334 |
{
|
335 |
+
Mage::log("addProduct");
|
336 |
$result = $this->_request('product/add_product', $data);
|
337 |
|
338 |
return $result;
|
346 |
*/
|
347 |
public function editProduct(array $data)
|
348 |
{
|
349 |
+
Mage::log("editProduct");
|
350 |
$result = $this->_request('product/edit_product', $data);
|
351 |
|
352 |
return $result;
|
360 |
*/
|
361 |
public function updateProductStock(array $data)
|
362 |
{
|
363 |
+
Mage::log("updateProductStock");
|
364 |
$result = $this->_request('product/update_product_stock', $data);
|
365 |
|
366 |
return $result;
|
374 |
*/
|
375 |
public function getProductStock(array $data)
|
376 |
{
|
377 |
+
Mage::log("getProductStock");
|
378 |
$result = $this->_request('product/get_product_stock', $data);
|
379 |
|
380 |
return $result;
|
388 |
*/
|
389 |
public function getProductInfo(array $data)
|
390 |
{
|
391 |
+
Mage::log("getProductInfo");
|
392 |
$result = $this->_request('/product/get_product_info', $data);
|
393 |
|
394 |
return $result;
|
402 |
*/
|
403 |
public function createProductAttribute(array $data)
|
404 |
{
|
405 |
+
Mage::log("createProductAttribute");
|
406 |
$result = $this->_request('product/create_attribute', $data);
|
407 |
|
408 |
return $result;
|
415 |
*/
|
416 |
public function listProductAvailableAttributes()
|
417 |
{
|
418 |
+
Mage::log("listProductAvailableAttributes");
|
419 |
$result = $this->_request('product/list_available_attributes');
|
420 |
|
421 |
return $result;
|
428 |
*/
|
429 |
public function listCategories()
|
430 |
{
|
431 |
+
Mage::log("listCategories");
|
432 |
$result = $this->_request('category/list');
|
433 |
|
434 |
return $result;
|
441 |
*/
|
442 |
public function getAccountMessages()
|
443 |
{
|
444 |
+
Mage::log("getAccountMessages");
|
445 |
$result = $this->_request('account/message');
|
446 |
|
447 |
return $result;
|
455 |
*/
|
456 |
public function markMessageAsRead(array $data)
|
457 |
{
|
458 |
+
Mage::log("markMessageAsRead");
|
459 |
$result = $this->_request('message/mark_as_read', $data);
|
460 |
|
461 |
return $result;
|
464 |
|
465 |
public function getOrderDetails($orderId)
|
466 |
{
|
467 |
+
Mage::log("getOrderDetails");
|
468 |
$result = $this->_request('/transaction/get_order_details', array('id' => $orderId));
|
469 |
|
470 |
return $result;
|
471 |
}
|
472 |
|
473 |
+
public function getCategoriesLastModified()
|
474 |
+
{
|
475 |
+
Mage::log("getCategoriesLastModified");
|
476 |
+
$result = $this->_request('/category/modified');
|
477 |
+
|
478 |
+
return $result;
|
479 |
+
}
|
480 |
+
|
481 |
/**
|
482 |
* Issues the request, always with POST method
|
483 |
*
|
520 |
*/
|
521 |
public function setRestClient($restClient)
|
522 |
{
|
523 |
+
Mage::log("setRestClient");
|
524 |
$this->_restClient = $restClient;
|
525 |
$this->_restClient->setUri(Zend_Uri_Http::fromString($this->_defaultUri));
|
526 |
|
532 |
*/
|
533 |
public function getRestClient()
|
534 |
{
|
535 |
+
Mage::log("getRestClient");
|
536 |
if (null == $this->_restClient) {
|
537 |
$restClient = new Zend_Rest_Client();
|
538 |
$this->setRestClient($restClient);
|
547 |
*/
|
548 |
public function setCookieJar($cookieJar)
|
549 |
{
|
550 |
+
Mage::log("setCookieJar");
|
551 |
$this->_cookieJar = $cookieJar;
|
552 |
|
553 |
return $this;
|
558 |
*/
|
559 |
public function getCookieJar()
|
560 |
{
|
561 |
+
Mage::log("getCookieJar");
|
562 |
return $this->_cookieJar;
|
563 |
}
|
564 |
|
568 |
*/
|
569 |
public function addUri($key, $value)
|
570 |
{
|
571 |
+
Mage::log("addUri");
|
572 |
$this->_uris[$key] = $value;
|
573 |
}
|
574 |
|
578 |
*/
|
579 |
public function hasUri($key)
|
580 |
{
|
581 |
+
Mage::log("hasUri");
|
582 |
return array_key_exists($key, $this->_uris);
|
583 |
}
|
584 |
|
591 |
*/
|
592 |
public function getUri($key, $asString = false)
|
593 |
{
|
594 |
+
Mage::log("getUri");
|
595 |
if ($this->hasUri($key)) {
|
596 |
if ($asString) {
|
597 |
return (string) $this->_uris[$key];
|
lib/Bootic/Api/Result.php
CHANGED
@@ -84,7 +84,10 @@ class Bootic_Api_Result
|
|
84 |
}
|
85 |
$this->setHasWarning($hasWarning);
|
86 |
|
87 |
-
|
|
|
|
|
|
|
88 |
}
|
89 |
|
90 |
/**
|
@@ -208,4 +211,4 @@ class Bootic_Api_Result
|
|
208 |
{
|
209 |
return array_key_exists($name, $this->_data);
|
210 |
}
|
211 |
-
}
|
84 |
}
|
85 |
$this->setHasWarning($hasWarning);
|
86 |
|
87 |
+
Mage::log($data);
|
88 |
+
if (isset($data['data'])) {
|
89 |
+
$this->setData(null, $data['data']);
|
90 |
+
}
|
91 |
}
|
92 |
|
93 |
/**
|
211 |
{
|
212 |
return array_key_exists($name, $this->_data);
|
213 |
}
|
214 |
+
}
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Bootic</name>
|
4 |
-
<version>1.0.
|
5 |
<stability>stable</stability>
|
6 |
<license>Berkeley Software Distribution License (BSDL)</license>
|
7 |
<channel>community</channel>
|
@@ -17,11 +17,11 @@ Automatically synchronize orders placed on Bootic.com into your Magento store. A
|
|
17 |
Automatically update any change to your product information from your Magento store to your Bootic storefront.
|
18 |

|
19 |
With Bootic for Magento, create a new channel for selling your products without adding any overhead to your store management.</description>
|
20 |
-
<notes>
|
21 |
-
<authors><author><name>
|
22 |
-
<date>2013-
|
23 |
-
<time>
|
24 |
-
<contents><target name="magecommunity"><dir name="Bootic"><dir name="Bootic"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><file name="Category.php" hash="61e515ee3ab1114b42e0469a621ebfb5"/><dir name="Tab"><file name="General.php" hash="659bd4392cad0c83b914c3a56a3caba2"/></dir><file name="Tabs.php" hash="ad9b5ae88bcad6c62c5218305e287592"/></dir><file name="Catalog.php" hash="75a07745c1c30434ea317aa818925864"/><dir name="Connect"><dir name="Profile"><file name="Form.php" hash="13fabf5e01c3bca00de40dcd5d539ac6"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Profile.php" hash="53c9d21a74afcda2b3e01b248fcf46ce"/></dir><dir name="Log"><file name="Error.php" hash="2e6dadac4c46fa269a11974c63a205e7"/><file name="Grid.php" hash="ca0f774aa0c303f5c1ff5ea2a4ce2c20"/></dir><file name="Log.php" hash="4e5e1775d3d67c3d2d4a72abd76240e3"/><file name="Product.php" hash="b6846a5fe9f6b3f7073838039a501854"/><dir name="Storefront"><file name="Banner.php" hash="e12622feb541bcecb07343299f2f2edf"/><dir name="Create"><file name="Form.php" hash="aa8296efce9f909b58d03e70b60852d0"/></dir><file name="Create.php" hash="5ba25ea32fd4353ae6a7ac6686aade7b"/><dir name="Edit"><file name="Form.php" hash="a3016d71e63337bdf6a2101376c09fe6"/><dir name="Tab"><dir name="Design"><file name="Preview.php" hash="b9edb2c70a2266959721065872274f3a"/></dir><file name="Design.php" hash="c666ff3a2987ebe7fa933ef8a40c0668"/><file name="General.php" hash="9f2667b3f6304077526a2d2b9498ca92"/><file name="Settings.php" hash="6dfcebbbde9dc81aaf9679ab428eaa28"/><file name="Social.php" hash="e08a86710f2c92ba4ab47c98e67e4244"/></dir><file name="Tabs.php" hash="3b2b2b8d9a3c6e8acb2b0b40560cde78"/></dir><file name="Edit.php" hash="7f3830d12da3cac1fff52f760bf23526"/><file name="Preview.php" hash="887ef63c7fb5694dd63960fc197a91d3"/></dir><dir name="System"><dir name="Config"><dir name="Account"><dir name="Create"><file name="Form.php" hash="d4d6bbb2b6834400187b5dbf9f7d5424"/></dir><file name="Create.php" hash="c0f3159d6d5c3da1b4c7c6574b24bfed"/></dir><dir name="Button"><file name="Cron.php" hash="599c7cbf533a2809cb0e8b4c330d068b"/></dir><file name="Createaccount.php" hash="3192790d6089cbdf2c5b542ae49fd48e"/><file name="Tabs.php" hash="a5cb3c71b707f8ed002a1d33b7e1f9b2"/><file name="Testapiconnection.php" hash="b1cd2c239ed264355ddbf724661d54e8"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><dir name="Log"><file name="Message.php" hash="ce36a8329355d7dfeaaa10e401bb7aba"/></dir></dir></dir></dir></dir><file name=".DS_Store" hash="86b5d0dc5126cf670280b5f5be2b8986"/></dir><dir name="Payment"><file name="Form.php" hash="bb94bee836626fa1636997f308a59f3f"/><file name="Info.php" hash="e878b75b994f9a6c97826e6acca70ca2"/></dir><file name=".DS_Store" hash="0047fe0bc161a58c6088a4e959de43a4"/></dir><file name="Exception.php" hash="85fa2711bf13af12eab9162e927f4bd1"/><dir name="Helper"><file name="Abstract.php" hash="d48714ad954c69a1f13f8d835dbcbdad"/><file name="Account.php" hash="dab88db126c74e21039d2765fba289d2"/><file name="Api.php" hash="cce30bd36caee36bab0d18510a0ddc16"/><file name="Category.php" hash="0aac5e04199fa1fc06adcd55a4d1e03f"/><file name="Connect.php" hash="0e33dccb82732343518f6bea1ea83135"/><file name="Data.php" hash="a44a46a29fad09ce994c61b183c5730a"/><file name="Lists.php" hash="cedbf515e0ebe42b1408d8aa73d5e0ba"/><file name="Log.php" hash="4bf257fb8d16c7f25497331469022697"/><file name="Message.php" hash="dc9fb0d515d896972d0039dc736d9154"/><file name="Orders.php" hash="3c7c90992f46479d27140c15072ad695"/><dir name="Product"><file name="Data.php" hash="57a58c08a8e097077d66f4cbd20bf7cd"/><file name="Inventory.php" hash="9e94729f86617dd8b413d2ecfeb99448"/><dir name="Type"><file name="Configurable.php" hash="bc76e8e796578163416b32308dec5407"/></dir></dir><file name="Product.php" hash="08de3b6229ee848eaa343f27d6bdcf95"/><file name="Storefront.php" hash="902b7ce9f6bc72c52c921fb0b2197377"/></dir><dir name="Model"><dir name="Category"><file name="Mapping.php" hash="d90be7d27649c5388566d3bddca38c57"/></dir><file name="Category.php" hash="0308ca6b03e2340693077407cc0fc122"/><file name="Cron.php" hash="11758c445d08649c600a9f57d92cc207"/><file name="Log.php" hash="77f49a02f8c9cf71aa8ec84a1acf55a9"/><dir name="Message"><file name="Observer.php" hash="1f543cba2b2771915d225fdad36699d4"/></dir><file name="Message.php" hash="5eb2da8d19c607222c3d6297a7dbb23d"/><dir name="Mysql4"><dir name="Category"><file name="Collection.php" hash="a2afe60249de587c18e2d2f4ac2d7a78"/><dir name="Mapping"><file name="Collection.php" hash="614dda5dadab20f3b7725e2d5b556e6a"/></dir><file name="Mapping.php" hash="887d7cf4576ffd2c4b40dcf80e6c7021"/></dir><file name="Category.php" hash="9184a297db32337680b6ca54b4e73b74"/><dir name="Log"><file name="Collection.php" hash="d43c896a4c6de8e2280938373739e6e7"/></dir><file name="Log.php" hash="aa05f1803941172a8df3bcf5b4310016"/><file name="Message.php" hash="3f300ab7f6e5133487622562f9db55be"/><dir name="Order"><file name="Data.php" hash="c4e49baba9627bbbdb1b8d69012ac07f"/></dir><dir name="Product"><dir name="Data"><file name="Collection.php" hash="9176b66372bbbe51bb597d4ee2b86f35"/></dir><file name="Data.php" hash="a1365dedd73e0cc3d32d17ee3e0643ff"/></dir></dir><dir name="Order"><file name="Data.php" hash="1a5a72b9ef87f1d5323369535d8e0933"/><file name="Observer.php" hash="73e779f2b27d5ee623bab6bbd55a43ba"/></dir><file name="Payment.php" hash="d021f0560f01b89a37ba2c4d4de26804"/><dir name="Product"><file name="Data.php" hash="c92c28a67e616dc63c4aaccb5bdb5231"/><file name="Observer.php" hash="72b57ae0b34bc195c9b26e0427a9c632"/></dir><file name="Profile.php" hash="4a2067406d93a10aba308f52fc012ca3"/><dir name="Session"><file name="Observer.php" hash="f46c8ac3ce3c987c5ec79f4b9a90d159"/></dir><dir name="Shipping"><file name="Flatrate.php" hash="c383f093244cd04e0ca27583fd0527d1"/></dir><dir name="Stock"><file name="Observer.php" hash="5ff1fe7c76ffbdc5d07173cea2dc03e2"/></dir><file name="Storefront.php" hash="10b6a555b86331d03d4836887065a4ae"/><dir name="System"><dir name="Config"><file name="Commission.php" hash="ee9df0d2091afb9efac78c5eeb6c2c8d"/><file name="Connection.php" hash="7b1fdab2f86c4bd158e7f587b0332e42"/><file name="Observer.php" hash="5669f88c72bb8ff10cb84fd43133b268"/><dir name="Source"><file name="Attribute.php" hash="0d02faa3c926ef506c147b64e494313b"/><file name="Image.php" hash="90c2bb6ff6b860a9abc9a2b181fa8ec0"/><file name="Store.php" hash="15e70a19b7acd1890d45fed5d837cb02"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="AbstractController.php" hash="b89a3229d94b02889a4a5cfa9b37d141"/><dir name="Catalog"><file name="CategoryController.php" hash="f31b36b88b88f020e90b4c43ff74a94b"/><file name="ProductController.php" hash="16527d9cd2c76e6f34249d66e7efd131"/></dir><file name="CatalogController.php" hash="7e50ea47a0c0afcba1598c3ef0fb5d02"/><file name="ConnectController.php" hash="e001299d152d1cd5fdec3650de8eeec9"/><file name="StorefrontController.php" hash="7a1e4ae9485cce71670bfcdcab5e7cb5"/><dir name="System"><dir name="Config"><file name="AccountController.php" hash="7296e50848f908ee4f4ce37e5c2552fe"/><file name="TestapiconnectionController.php" hash="1e712c1c029d289e269a74d10bd9c74e"/></dir><file name="CronController.php" hash="a6b58f29920488dca0062d71a4058b0f"/></dir></dir><file name="IndexController.php" hash="eeabb3471a6e5b8327f32165002800ed"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d2f0649aae5e258fbd195b6a61871359"/><file name="config.xml" hash="752f521749dd8c87ca323cd6b5ebd872"/><file name="system.xml" hash="5d1f1f14ba871a69c1d1f5597c4a41f9"/></dir><dir name="sql"><dir name="bootic_setup"><file name="mysql4-install-1.0.0.php" hash="88f4a6dbf3bf7144992ef9d24ed7deac"/><file name="mysql4-upgrade-1.0.0-1.0.2.php" hash="d6c0f1b560661e68a1ffb897bd32d8db"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="176ff25ca3c96ca91ea2ceb80dd7304b"/></dir><file name=".DS_Store" hash="665e7b0adb116db6663e012e46df97a0"/></dir></target><target name="magelib"><dir name="Bootic"><dir name="Api"><file name="Client.php" hash="ff0db90404a62cdbbcb7130628496ef0"/><dir name="Exception"><file name="UnsupportedDataType.php" hash="aaa6d6d08d34f10ca99766135b7a8942"/></dir><file name="Exception.php" hash="7482fb7536873fbd95a87dd5c34fcdfb"/><file name="Result.php" hash="acbda91e9d44f6a3e6145f02ff0db7c4"/></dir><dir name="File"><file name="Uploader.php" hash="51d7167bd4f68b143d0a1349acbf4c0b"/></dir><dir name="Tests"><dir name="Fixtures"><file name="account_create.json" hash="a66b8d81d7d837fcd5e6663477207113"/><file name="order_list.json" hash="73676f4c34d8d1fe0dccd887bc17d457"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bootic_Bootic.xml" hash="1bf446ba0b56654285cdda9e3eb9caa5"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bootic.xml" hash="894aef183d5db57b26451ffdda0a7b63"/></dir><dir name="template"><dir name="bootic"><dir name="adminhtml"><dir name="system"><dir name="config"><dir name="button"><file name="cron.phtml" hash="8bc3c44ee69082c8bc16f964546246f9"/></dir><file name="createaccount.phtml" hash="89cbf36935071304deb3046f780c132f"/><file name="testapiconnection.phtml" hash="61be68e23ebdc238818a3e14a87aa0f0"/></dir></dir></dir><file name="bootic.phtml" hash="482f4ca6e0d96f0266a63e697ccd7857"/><dir name="catalog"><file name="category.phtml" hash="a51881b295fd898c4404c9a8506a6a59"/><dir name="tab"><file name="general.phtml" hash="3dd8fef0fd39457f70bfda2a94edecba"/></dir></dir><dir name="log"><file name="error.phtml" hash="76097855fd05302da368d17966db3942"/></dir><file name="products.phtml" hash="9af8e0740e281d494e402c413380cb1e"/><dir name="storefront"><file name="banners.phtml" hash="996f628a818a718cdc8b2d8bfcfe9810"/><file name="preview.phtml" hash="7d115f25724734f12ffa212328f7e6f3"/></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="bootic"><dir name="prototype-color-picker"><dir name="css"><file name="prototype_colorpicker.css" hash="1e2474f995501728e7cb3a5f74690523"/></dir><dir name="images"><file name="blank.gif" hash="56398e76be6355ad5999b262208a17c9"/><file name="colorpicker_background.png" hash="a79f1a2a81bfe3ed1c2ca4c41b8e1fbf"/><file name="colorpicker_extra.png" hash="920c87d67408ee59529aa1789836a0eb"/><file name="colorpicker_extra_background.png" hash="ae834a141fb00963c5056f015c99db71"/><file name="colorpicker_hex.png" hash="16d6870c36e379c06fb26ebd2e16bf44"/><file name="colorpicker_hsb_b.png" hash="2be4e81b4a5c98674abe6fc60b447e9a"/><file name="colorpicker_hsb_h.png" hash="d47409a203bedc76b26dc60b71a69f6b"/><file name="colorpicker_hsb_s.png" hash="5ff5e43ab6b7b41b6123bfab692a9b19"/><file name="colorpicker_indic.gif" hash="f485d07540a89502e36dc1a55cec05d0"/><file name="colorpicker_overlay.png" hash="c7a33805ffda0d32bd2a9904c8b02750"/><file name="colorpicker_rgb_b.png" hash="2be4e81b4a5c98674abe6fc60b447e9a"/><file name="colorpicker_rgb_g.png" hash="dc17f953a6febbe174e92b54690586c3"/><file name="colorpicker_rgb_r.png" hash="87eeb205d093b713b68a341771f4ee27"/><file name="colorpicker_select.gif" hash="cec464162af0cce10348e7bb7701ef86"/><file name="colorpicker_submit.png" hash="e887e023931707d8b63e390bfad1f39b"/><file name="custom_background.png" hash="06c91f7ae1561ccd8f1c79119529600d"/><file name="custom_hex.png" hash="e27aaa92b15d9392d909f8b94e797524"/><file name="custom_hsb_b.png" hash="b45588ca2fe9ba46673862300fcd3083"/><file name="custom_hsb_h.png" hash="4a1afa5636421aae4c44471d2273496d"/><file name="custom_hsb_s.png" hash="83aa97407fb76615a7db5ed721681148"/><file name="custom_indic.gif" hash="04660eb352eb259581a36a0fe8da2d4d"/><file name="custom_rgb_b.png" hash="f6e50cd567bd3059742d45ab224a413b"/><file name="custom_rgb_g.png" hash="b1e286e06692b3640862a3d07f636a80"/><file name="custom_rgb_r.png" hash="8ae4b3ef109ee66ec1022632470ddd0f"/><file name="custom_submit.png" hash="35423f0f2538e507dec193b52f8d0327"/><file name="select.png" hash="7b086953a8c62d2685a65644979d5d04"/><file name="select2.png" hash="c8d194d92dbad98615b2a9140b34ab48"/><file name="slider.png" hash="3a50b8078dea50b9811603a85ecef836"/></dir><file name="index.html" hash="c9c853215e6be66882221be357c84c16"/><dir name="js"><file name="prototype.1.6.js" hash="965fe52b851d8ff3c2b915ada9fb273f"/><file name="prototype_colorpicker.js" hash="90a7fd9030d010fac223f95953dc7b59"/></dir><file name=".DS_Store" hash="cf29419b5633cc71cfcb916356c6da81"/></dir></dir></dir></target></contents>
|
25 |
<compatible/>
|
26 |
<dependencies><required><php><min>5.2.0</min><max>5.4.10</max></php></required></dependencies>
|
27 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Bootic</name>
|
4 |
+
<version>1.0.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>Berkeley Software Distribution License (BSDL)</license>
|
7 |
<channel>community</channel>
|
17 |
Automatically update any change to your product information from your Magento store to your Bootic storefront.
|
18 |

|
19 |
With Bootic for Magento, create a new channel for selling your products without adding any overhead to your store management.</description>
|
20 |
+
<notes>Fixed some minor bugs and improved performance</notes>
|
21 |
+
<authors><author><name>Pierre Vigier</name><user>bootic</user><email>magento@bootic.com</email></author></authors>
|
22 |
+
<date>2013-03-12</date>
|
23 |
+
<time>23:48:45</time>
|
24 |
+
<contents><target name="magecommunity"><dir name="Bootic"><dir name="Bootic"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><file name="Category.php" hash="b7aceadd40ea7fd556782ea80bb836f8"/><dir name="Tab"><file name="General.php" hash="659bd4392cad0c83b914c3a56a3caba2"/></dir><file name="Tabs.php" hash="ad9b5ae88bcad6c62c5218305e287592"/></dir><file name="Catalog.php" hash="75a07745c1c30434ea317aa818925864"/><dir name="Connect"><dir name="Profile"><file name="Form.php" hash="13fabf5e01c3bca00de40dcd5d539ac6"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Profile.php" hash="f7ce30351fddda454221136828aba4af"/></dir><dir name="Log"><file name="Error.php" hash="2e6dadac4c46fa269a11974c63a205e7"/><file name="Grid.php" hash="ca0f774aa0c303f5c1ff5ea2a4ce2c20"/></dir><file name="Log.php" hash="4e5e1775d3d67c3d2d4a72abd76240e3"/><file name="Product.php" hash="e4e9e6612ba8ec3029c5ba05ff820898"/><dir name="Storefront"><file name="Banner.php" hash="e12622feb541bcecb07343299f2f2edf"/><dir name="Create"><file name="Form.php" hash="0b678fc55cc65c5305dbec435a270a1c"/></dir><file name="Create.php" hash="5ba25ea32fd4353ae6a7ac6686aade7b"/><dir name="Edit"><file name="Form.php" hash="a3016d71e63337bdf6a2101376c09fe6"/><dir name="Tab"><dir name="Design"><file name="Preview.php" hash="9b9dc48c084a11ba04fd6dd5b18f51db"/></dir><file name="Design.php" hash="6c1eaa59d2e8010a3b98109c0fbb1192"/><file name="General.php" hash="9f2667b3f6304077526a2d2b9498ca92"/><file name="Settings.php" hash="6dfcebbbde9dc81aaf9679ab428eaa28"/><file name="Social.php" hash="e08a86710f2c92ba4ab47c98e67e4244"/></dir><file name="Tabs.php" hash="3b2b2b8d9a3c6e8acb2b0b40560cde78"/></dir><file name="Edit.php" hash="bf60ded0738512ddebb787e6bff564f2"/><file name="Preview.php" hash="887ef63c7fb5694dd63960fc197a91d3"/></dir><dir name="System"><dir name="Config"><dir name="Account"><dir name="Create"><file name="Form.php" hash="d4d6bbb2b6834400187b5dbf9f7d5424"/></dir><file name="Create.php" hash="c0f3159d6d5c3da1b4c7c6574b24bfed"/></dir><dir name="Button"><file name="Cron.php" hash="243be1baeb73351b77e62c8214e42a66"/></dir><file name="Createaccount.php" hash="3192790d6089cbdf2c5b542ae49fd48e"/><file name="Tabs.php" hash="a5cb3c71b707f8ed002a1d33b7e1f9b2"/><file name="Testapiconnection.php" hash="e7dc6c9e2ae6e7f5170a05af622123ac"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><dir name="Log"><file name="Message.php" hash="ce36a8329355d7dfeaaa10e401bb7aba"/></dir></dir></dir></dir></dir><file name=".DS_Store" hash="86b5d0dc5126cf670280b5f5be2b8986"/></dir><dir name="Payment"><file name="Form.php" hash="bb94bee836626fa1636997f308a59f3f"/><file name="Info.php" hash="e878b75b994f9a6c97826e6acca70ca2"/></dir><file name=".DS_Store" hash="0047fe0bc161a58c6088a4e959de43a4"/></dir><file name="Exception.php" hash="14bc1e0b8bd6cd4533f8d50d2f3fd727"/><dir name="Helper"><file name="Abstract.php" hash="d48714ad954c69a1f13f8d835dbcbdad"/><file name="Account.php" hash="dab88db126c74e21039d2765fba289d2"/><file name="Api.php" hash="cce30bd36caee36bab0d18510a0ddc16"/><file name="Category.php" hash="428b915745c5b540b0ce47f94fc936e0"/><file name="Connect.php" hash="0e33dccb82732343518f6bea1ea83135"/><file name="Data.php" hash="a44a46a29fad09ce994c61b183c5730a"/><file name="Lists.php" hash="cedbf515e0ebe42b1408d8aa73d5e0ba"/><file name="Log.php" hash="4bf257fb8d16c7f25497331469022697"/><file name="Message.php" hash="dc9fb0d515d896972d0039dc736d9154"/><file name="Orders.php" hash="731e12aea70d189be111d75e26b54ebe"/><dir name="Product"><file name="Data.php" hash="57a58c08a8e097077d66f4cbd20bf7cd"/><file name="Inventory.php" hash="9e94729f86617dd8b413d2ecfeb99448"/><dir name="Type"><file name="Configurable.php" hash="bc76e8e796578163416b32308dec5407"/></dir></dir><file name="Product.php" hash="bc6f947886f75ea701be84d1080c8f06"/><file name="Storefront.php" hash="902b7ce9f6bc72c52c921fb0b2197377"/></dir><dir name="Model"><dir name="Category"><file name="Mapping.php" hash="d90be7d27649c5388566d3bddca38c57"/></dir><file name="Category.php" hash="0308ca6b03e2340693077407cc0fc122"/><file name="Cron.php" hash="aa02c12fa0c954610074e4f724172600"/><file name="Log.php" hash="77f49a02f8c9cf71aa8ec84a1acf55a9"/><dir name="Message"><file name="Observer.php" hash="1f543cba2b2771915d225fdad36699d4"/></dir><file name="Message.php" hash="5eb2da8d19c607222c3d6297a7dbb23d"/><dir name="Mysql4"><dir name="Category"><file name="Collection.php" hash="a2afe60249de587c18e2d2f4ac2d7a78"/><dir name="Mapping"><file name="Collection.php" hash="614dda5dadab20f3b7725e2d5b556e6a"/></dir><file name="Mapping.php" hash="887d7cf4576ffd2c4b40dcf80e6c7021"/></dir><file name="Category.php" hash="e86e793c763c94a43c45ab9d851be56d"/><dir name="Log"><file name="Collection.php" hash="d43c896a4c6de8e2280938373739e6e7"/></dir><file name="Log.php" hash="aa05f1803941172a8df3bcf5b4310016"/><file name="Message.php" hash="3f300ab7f6e5133487622562f9db55be"/><dir name="Order"><file name="Data.php" hash="c4e49baba9627bbbdb1b8d69012ac07f"/></dir><dir name="Product"><dir name="Data"><file name="Collection.php" hash="9176b66372bbbe51bb597d4ee2b86f35"/></dir><file name="Data.php" hash="a1365dedd73e0cc3d32d17ee3e0643ff"/></dir></dir><dir name="Order"><file name="Data.php" hash="1a5a72b9ef87f1d5323369535d8e0933"/><file name="Observer.php" hash="73e779f2b27d5ee623bab6bbd55a43ba"/></dir><file name="Payment.php" hash="d021f0560f01b89a37ba2c4d4de26804"/><dir name="Product"><file name="Data.php" hash="c92c28a67e616dc63c4aaccb5bdb5231"/><file name="Observer.php" hash="72b57ae0b34bc195c9b26e0427a9c632"/></dir><file name="Profile.php" hash="4a2067406d93a10aba308f52fc012ca3"/><dir name="Session"><file name="Observer.php" hash="f46c8ac3ce3c987c5ec79f4b9a90d159"/></dir><dir name="Shipping"><file name="Flatrate.php" hash="de6b93bbc2e39d2ced36272a6e0952eb"/></dir><dir name="Stock"><file name="Observer.php" hash="5ff1fe7c76ffbdc5d07173cea2dc03e2"/></dir><file name="Storefront.php" hash="10b6a555b86331d03d4836887065a4ae"/><dir name="System"><dir name="Config"><file name="Commission.php" hash="ee9df0d2091afb9efac78c5eeb6c2c8d"/><file name="Connection.php" hash="7b1fdab2f86c4bd158e7f587b0332e42"/><file name="Observer.php" hash="5669f88c72bb8ff10cb84fd43133b268"/><dir name="Source"><file name="Attribute.php" hash="0d02faa3c926ef506c147b64e494313b"/><file name="Image.php" hash="90c2bb6ff6b860a9abc9a2b181fa8ec0"/><file name="Store.php" hash="15e70a19b7acd1890d45fed5d837cb02"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="AbstractController.php" hash="b89a3229d94b02889a4a5cfa9b37d141"/><dir name="Catalog"><file name="CategoryController.php" hash="bdf5f532a1bffd9d29adcd514fb815b0"/><file name="ProductController.php" hash="16527d9cd2c76e6f34249d66e7efd131"/></dir><file name="CatalogController.php" hash="c0b50d58a1e942ab0eebaa54bf03bc8a"/><file name="ConnectController.php" hash="ea8c3874ec5976dd544fc2a2d5c3d21a"/><file name="StorefrontController.php" hash="48c41be8c3cec3dc6abfe60461b809a3"/><dir name="System"><dir name="Config"><file name="AccountController.php" hash="7296e50848f908ee4f4ce37e5c2552fe"/><file name="TestapiconnectionController.php" hash="1e712c1c029d289e269a74d10bd9c74e"/></dir><file name="CronController.php" hash="76ffc588808e14bfc09d9eeeff2c344f"/></dir></dir><file name="IndexController.php" hash="c0a0c8a749525c0dd076853ef731770d"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d2f0649aae5e258fbd195b6a61871359"/><file name="config.xml" hash="3292a063a6fb94f02cb19d8822b2fe70"/><file name="system.xml" hash="5d1f1f14ba871a69c1d1f5597c4a41f9"/></dir><dir name="sql"><dir name="bootic_setup"><file name="mysql4-install-1.0.0.php" hash="88f4a6dbf3bf7144992ef9d24ed7deac"/><file name="mysql4-upgrade-1.0.0-1.0.2.php" hash="d6c0f1b560661e68a1ffb897bd32d8db"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="176ff25ca3c96ca91ea2ceb80dd7304b"/></dir><file name=".DS_Store" hash="665e7b0adb116db6663e012e46df97a0"/></dir></target><target name="magelib"><dir name="Bootic"><dir name="Api"><file name="Client.php" hash="e159c0a627cfd13fb18b4d27a4466e47"/><dir name="Exception"><file name="UnsupportedDataType.php" hash="aaa6d6d08d34f10ca99766135b7a8942"/></dir><file name="Exception.php" hash="7482fb7536873fbd95a87dd5c34fcdfb"/><file name="Result.php" hash="ff63e9bdaff26a261bc2c90ab2b2fb8e"/></dir><dir name="File"><file name="Uploader.php" hash="51d7167bd4f68b143d0a1349acbf4c0b"/></dir><dir name="Tests"><dir name="Fixtures"><file name="account_create.json" hash="a66b8d81d7d837fcd5e6663477207113"/><file name="order_list.json" hash="73676f4c34d8d1fe0dccd887bc17d457"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bootic_Bootic.xml" hash="1bf446ba0b56654285cdda9e3eb9caa5"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bootic.xml" hash="e21cf9e69ef47fd3a3953bad6c7f69c5"/></dir><dir name="template"><dir name="bootic"><dir name="adminhtml"><dir name="system"><dir name="config"><dir name="button"><file name="cron.phtml" hash="8bc3c44ee69082c8bc16f964546246f9"/></dir><file name="createaccount.phtml" hash="89cbf36935071304deb3046f780c132f"/><file name="testapiconnection.phtml" hash="61be68e23ebdc238818a3e14a87aa0f0"/></dir></dir></dir><file name="bootic.phtml" hash="7d86f132199944bfc3e4f7bbdb54b529"/><dir name="catalog"><file name="category.phtml" hash="a51881b295fd898c4404c9a8506a6a59"/><dir name="tab"><file name="general.phtml" hash="3dd8fef0fd39457f70bfda2a94edecba"/></dir></dir><dir name="log"><file name="error.phtml" hash="76097855fd05302da368d17966db3942"/></dir><file name="products.phtml" hash="9af8e0740e281d494e402c413380cb1e"/><dir name="storefront"><file name="banners.phtml" hash="de766567ba0ea95c78460704ae64fb3b"/><file name="preview.phtml" hash="17987a27ea3110afa993abbc9d72ff69"/></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="bootic"><dir name="prototype-color-picker"><dir name="css"><file name="prototype_colorpicker.css" hash="1e2474f995501728e7cb3a5f74690523"/></dir><dir name="images"><file name="blank.gif" hash="56398e76be6355ad5999b262208a17c9"/><file name="colorpicker_background.png" hash="a79f1a2a81bfe3ed1c2ca4c41b8e1fbf"/><file name="colorpicker_extra.png" hash="920c87d67408ee59529aa1789836a0eb"/><file name="colorpicker_extra_background.png" hash="ae834a141fb00963c5056f015c99db71"/><file name="colorpicker_hex.png" hash="16d6870c36e379c06fb26ebd2e16bf44"/><file name="colorpicker_hsb_b.png" hash="2be4e81b4a5c98674abe6fc60b447e9a"/><file name="colorpicker_hsb_h.png" hash="d47409a203bedc76b26dc60b71a69f6b"/><file name="colorpicker_hsb_s.png" hash="5ff5e43ab6b7b41b6123bfab692a9b19"/><file name="colorpicker_indic.gif" hash="f485d07540a89502e36dc1a55cec05d0"/><file name="colorpicker_overlay.png" hash="c7a33805ffda0d32bd2a9904c8b02750"/><file name="colorpicker_rgb_b.png" hash="2be4e81b4a5c98674abe6fc60b447e9a"/><file name="colorpicker_rgb_g.png" hash="dc17f953a6febbe174e92b54690586c3"/><file name="colorpicker_rgb_r.png" hash="87eeb205d093b713b68a341771f4ee27"/><file name="colorpicker_select.gif" hash="cec464162af0cce10348e7bb7701ef86"/><file name="colorpicker_submit.png" hash="e887e023931707d8b63e390bfad1f39b"/><file name="custom_background.png" hash="06c91f7ae1561ccd8f1c79119529600d"/><file name="custom_hex.png" hash="e27aaa92b15d9392d909f8b94e797524"/><file name="custom_hsb_b.png" hash="b45588ca2fe9ba46673862300fcd3083"/><file name="custom_hsb_h.png" hash="4a1afa5636421aae4c44471d2273496d"/><file name="custom_hsb_s.png" hash="83aa97407fb76615a7db5ed721681148"/><file name="custom_indic.gif" hash="04660eb352eb259581a36a0fe8da2d4d"/><file name="custom_rgb_b.png" hash="f6e50cd567bd3059742d45ab224a413b"/><file name="custom_rgb_g.png" hash="b1e286e06692b3640862a3d07f636a80"/><file name="custom_rgb_r.png" hash="8ae4b3ef109ee66ec1022632470ddd0f"/><file name="custom_submit.png" hash="35423f0f2538e507dec193b52f8d0327"/><file name="select.png" hash="7b086953a8c62d2685a65644979d5d04"/><file name="select2.png" hash="c8d194d92dbad98615b2a9140b34ab48"/><file name="slider.png" hash="3a50b8078dea50b9811603a85ecef836"/></dir><file name="index.html" hash="c9c853215e6be66882221be357c84c16"/><dir name="js"><file name="prototype.1.6.js" hash="965fe52b851d8ff3c2b915ada9fb273f"/><file name="prototype_colorpicker.js" hash="90a7fd9030d010fac223f95953dc7b59"/></dir><file name=".DS_Store" hash="cf29419b5633cc71cfcb916356c6da81"/></dir></dir></dir></target></contents>
|
25 |
<compatible/>
|
26 |
<dependencies><required><php><min>5.2.0</min><max>5.4.10</max></php></required></dependencies>
|
27 |
</package>
|