Version Notes
Share Jewelry Products to Jewelrslink.
Includes importing product from jewerlslink and Exporting products to Jewelerslink with attributes mapping functions.
Download this release
Release Info
Developer | John Dorsey |
Extension | Jewelerslink_Jewelryshare |
Version | 0.1.0 |
Comparing to | |
See all releases |
Version 0.1.0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Edit/Codes.php +64 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Edit/Codes/Edit/Form.php +124 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare.php +12 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit.php +38 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Form.php +19 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Import.php +11 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Priceincrease.php +10 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Update.php +11 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Vendor.php +10 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tabs.php +42 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Codes.php +55 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Codes/Grid.php +131 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Items.php +51 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Items/Grid.php +188 -0
- app/code/community/Jewelerslink/Jewelryshare/Block/Jewelryshare.php +17 -0
- app/code/community/Jewelerslink/Jewelryshare/Helper/Data.php +43 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Adminhtml/System/Source/Cron/Frequency.php +63 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Adminhtml/System/Source/Cron/Hours.php +50 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Codes.php +43 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Import.php +352 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Importcron.php +359 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Jewelryshare.php +10 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Codes.php +35 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Codes/Collection.php +36 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Jewelryshare.php +10 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Jewelryshare/Collection.php +10 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Setup.php +36 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Observer.php +92 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Resource/Codes.php +42 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Resource/Codes/Collection.php +55 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Resource/Setup.php +36 -0
- app/code/community/Jewelerslink/Jewelryshare/Model/Status.php +15 -0
- app/code/community/Jewelerslink/Jewelryshare/controllers/Adminhtml/Jewelryshare/Codes/GridController.php +161 -0
- app/code/community/Jewelerslink/Jewelryshare/controllers/Adminhtml/Jewelryshare/Items/GridController.php +154 -0
- app/code/community/Jewelerslink/Jewelryshare/controllers/Adminhtml/JewelryshareController.php +1179 -0
- app/code/community/Jewelerslink/Jewelryshare/etc/config.xml +372 -0
- app/code/community/Jewelerslink/Jewelryshare/etc/system.xml +113 -0
- app/code/community/Jewelerslink/Jewelryshare/sql/jewelryshare_setup/mysql4-install-0.1.0.php +73 -0
- app/design/adminhtml/default/jewelerslink/layout/jewelryshare.xml +33 -0
- app/etc/modules/Jewelerslink_Jewelryshare.xml +9 -0
- js/jewelerslink/btn_bg.gif +0 -0
- js/jewelerslink/content_bg.gif +0 -0
- js/jewelerslink/jewelerslink.css +39 -0
- js/jewelerslink/top_bg.gif +0 -0
- js/jewelerslink/window_close.png +0 -0
- package.xml +20 -0
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Edit/Codes.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Attribute map edit codes form container block
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Edit_Codes extends Mage_Adminhtml_Block_Widget_Form_Container
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Initialize form container
|
39 |
+
*
|
40 |
+
*/
|
41 |
+
public function __construct()
|
42 |
+
{
|
43 |
+
$this->_blockGroup = 'jewelryshare';
|
44 |
+
$this->_controller = 'adminhtml_edit_codes';
|
45 |
+
|
46 |
+
parent::__construct();
|
47 |
+
|
48 |
+
$this->_removeButton('back');
|
49 |
+
$url = $this->getUrl('*/adminhtml_jewelryshare_codes_grid/saveForm');
|
50 |
+
$this->_updateButton('save', 'onclick', 'saveNewImportItem(\''.$url.'\')');
|
51 |
+
$this->_updateButton('reset', 'label', 'Close');
|
52 |
+
$this->_updateButton('reset', 'onclick', 'closeNewImportItem()');
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Return Form Header text
|
57 |
+
*
|
58 |
+
* @return string
|
59 |
+
*/
|
60 |
+
public function getHeaderText()
|
61 |
+
{
|
62 |
+
return Mage::helper('jewelryshare')->__('Import attribute map');
|
63 |
+
}
|
64 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Edit/Codes/Edit/Form.php
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Attribute map edit form container block
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Edit_Codes_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Import codes list
|
39 |
+
*
|
40 |
+
* @return array
|
41 |
+
*/
|
42 |
+
protected function _getImportCodeList()
|
43 |
+
{
|
44 |
+
$attributes = Mage::getConfig()->getNode(Jewelerslink_Jewelryshare_Model_Import::XML_NODE_FIND_FEED_ATTRIBUTES)->children();
|
45 |
+
$result = array();
|
46 |
+
foreach ($attributes as $node) {
|
47 |
+
$label = trim((string)$node->label);
|
48 |
+
if ($label) {
|
49 |
+
$result[$label] = $label;
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
return $result;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Magento entity type list for eav attributes
|
58 |
+
*
|
59 |
+
* @return array
|
60 |
+
*/
|
61 |
+
protected function _getCatalogEntityType()
|
62 |
+
{
|
63 |
+
return Mage::getSingleton('eav/config')->getEntityType('catalog_product')->getId();
|
64 |
+
}
|
65 |
+
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Magento eav attributes list
|
69 |
+
*
|
70 |
+
* @return array
|
71 |
+
*/
|
72 |
+
protected function _getEavAttributeList()
|
73 |
+
{
|
74 |
+
$result = array();
|
75 |
+
$collection = Mage::getResourceModel('catalog/product_attribute_collection');
|
76 |
+
foreach ($collection as $model) {
|
77 |
+
$result[$model->getAttributeCode()] = $model->getAttributeCode();
|
78 |
+
}
|
79 |
+
return $result;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Prepare form
|
84 |
+
*
|
85 |
+
* @return Varien_Object
|
86 |
+
*/
|
87 |
+
protected function _prepareForm()
|
88 |
+
{
|
89 |
+
$form = new Varien_Data_Form(array(
|
90 |
+
'id' => 'import_item_form',
|
91 |
+
'method' => 'post'
|
92 |
+
));
|
93 |
+
|
94 |
+
$fieldset = $form->addFieldset('generate_fieldset', array(
|
95 |
+
'legend' => Mage::helper('jewelryshare')->__('Item params')
|
96 |
+
));
|
97 |
+
$fieldset->addField('import_code', 'select', array(
|
98 |
+
'label' => Mage::helper('jewelryshare')->__('JewelersLink Code'),
|
99 |
+
'name' => 'import_code',
|
100 |
+
'required' => true,
|
101 |
+
'options' => $this->_getImportCodeList()
|
102 |
+
));
|
103 |
+
$fieldset->addField('eav_code', 'select', array(
|
104 |
+
'label' => Mage::helper('jewelryshare')->__('Site attribute code'),
|
105 |
+
'name' => 'eav_code',
|
106 |
+
'required' => true,
|
107 |
+
'options' => $this->_getEavAttributeList()
|
108 |
+
));
|
109 |
+
|
110 |
+
$source = Mage::getModel('eav/entity_attribute_source_boolean');
|
111 |
+
$isImportedOptions = $source->getOptionArray();
|
112 |
+
|
113 |
+
$fieldset->addField('jewelry_imported', 'select', array(
|
114 |
+
'label' => Mage::helper('jewelryshare')->__('Is imported'),
|
115 |
+
'name' => 'jewelry_imported',
|
116 |
+
'value' => 1,
|
117 |
+
'options' => $isImportedOptions
|
118 |
+
));
|
119 |
+
$form->setUseContainer(true);
|
120 |
+
|
121 |
+
$this->setForm($form);
|
122 |
+
return parent::_prepareForm();
|
123 |
+
}
|
124 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare extends Mage_Adminhtml_Block_Widget_Grid_Container
|
3 |
+
{
|
4 |
+
public function __construct()
|
5 |
+
{
|
6 |
+
$this->_controller = 'adminhtml_jewelryshare';
|
7 |
+
$this->_blockGroup = 'jewelryshare';
|
8 |
+
$this->_headerText = Mage::helper('jewelryshare')->__('Jewelry Manager');
|
9 |
+
$this->_addButtonLabel = Mage::helper('jewelryshare')->__('Manage Jewelry');
|
10 |
+
parent::__construct();
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
|
4 |
+
{
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
parent::__construct();
|
8 |
+
|
9 |
+
$this->_objectId = 'id';
|
10 |
+
$this->_blockGroup = 'jewelryshare';
|
11 |
+
$this->_controller = 'adminhtml_jewelryshare';
|
12 |
+
$this->_removeButton('reset');
|
13 |
+
$this->_removeButton('back');
|
14 |
+
$this->_updateButton('save', 'label', Mage::helper('jewelryshare')->__('Save'));
|
15 |
+
|
16 |
+
/* $this->_addButton('disable_older', array(
|
17 |
+
'label' => Mage::helper('adminhtml')->__('Disable Old Products'),
|
18 |
+
'onclick' => 'setLocation(\''.$this->getUrl('jewelryshare/adminhtml_jewelryshare/disableOlder', array('_current'=>true)).'\')',
|
19 |
+
'class' => 'delete',
|
20 |
+
), -100); */
|
21 |
+
|
22 |
+
$this->_addButton('restore_price_increase', array(
|
23 |
+
'label' => Mage::helper('adminhtml')->__('Restore Price Increase'),
|
24 |
+
'onclick' => 'setLocation(\''.$this->getUrl('jewelryshare/adminhtml_jewelryshare/restorePriceIncrease', array('_current'=>true)).'\')',
|
25 |
+
'class' => 'delete',
|
26 |
+
), -100);
|
27 |
+
}
|
28 |
+
|
29 |
+
protected function _prepareLayout()
|
30 |
+
{
|
31 |
+
return parent::_prepareLayout();
|
32 |
+
}
|
33 |
+
|
34 |
+
public function getHeaderText()
|
35 |
+
{
|
36 |
+
return Mage::helper('jewelryshare')->__('Manage Jewelry');
|
37 |
+
}
|
38 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Form.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
|
4 |
+
{
|
5 |
+
protected function _prepareForm()
|
6 |
+
{
|
7 |
+
$form = new Varien_Data_Form(array(
|
8 |
+
'id' => 'edit_form',
|
9 |
+
'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
|
10 |
+
'method' => 'post',
|
11 |
+
'enctype' => 'multipart/form-data'
|
12 |
+
)
|
13 |
+
);
|
14 |
+
|
15 |
+
$form->setUseContainer(true);
|
16 |
+
$this->setForm($form);
|
17 |
+
return parent::_prepareForm();
|
18 |
+
}
|
19 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Import.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare_Edit_Tab_Import extends Mage_Adminhtml_Block_Widget_Form
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->setTemplate('jewelryshare/tab/import.phtml');
|
9 |
+
}
|
10 |
+
}
|
11 |
+
?>
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Priceincrease.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare_Edit_Tab_Priceincrease extends Mage_Adminhtml_Block_Widget_Form
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->setTemplate('jewelryshare/tab/priceincrease.phtml');
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Update.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare_Edit_Tab_Update extends Mage_Adminhtml_Block_Widget_Form
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->setTemplate('jewelryshare/tab/update.phtml');
|
9 |
+
}
|
10 |
+
}
|
11 |
+
?>
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tab/Vendor.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare_Edit_Tab_Vendor extends Mage_Adminhtml_Block_Widget_Form
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->setTemplate('jewelryshare/tab/vendor.phtml');
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/Jewelryshare/Edit/Tabs.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_Jewelryshare_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
|
4 |
+
{
|
5 |
+
|
6 |
+
public function __construct()
|
7 |
+
{
|
8 |
+
parent::__construct();
|
9 |
+
$this->setId('jewelryshare_tabs');
|
10 |
+
$this->setDestElementId('edit_form');
|
11 |
+
$this->setTitle(Mage::helper('jewelryshare')->__('Item Information'));
|
12 |
+
}
|
13 |
+
|
14 |
+
protected function _beforeToHtml()
|
15 |
+
{
|
16 |
+
$this->addTab('priceincrease', array(
|
17 |
+
'label' => Mage::helper('jewelryshare')->__('Jewelry Price Increase'),
|
18 |
+
'title' => Mage::helper('jewelryshare')->__('Jewelry Price Increase'),
|
19 |
+
'content' => $this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit_tab_priceincrease')->toHtml(),
|
20 |
+
));
|
21 |
+
|
22 |
+
$this->addTab('vendor', array(
|
23 |
+
'label' => Mage::helper('jewelryshare')->__('Manage Vendors'),
|
24 |
+
'title' => Mage::helper('jewelryshare')->__('Manage Vendors'),
|
25 |
+
'content' => $this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit_tab_vendor')->toHtml(),
|
26 |
+
));
|
27 |
+
|
28 |
+
$this->addTab('import', array(
|
29 |
+
'label' => Mage::helper('jewelryshare')->__('Import Products'),
|
30 |
+
'title' => Mage::helper('jewelryshare')->__('Import Products'),
|
31 |
+
'content' => $this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit_tab_import')->toHtml(),
|
32 |
+
));
|
33 |
+
|
34 |
+
$this->addTab('update', array(
|
35 |
+
'label' => Mage::helper('jewelryshare')->__('Update Products'),
|
36 |
+
'title' => Mage::helper('jewelryshare')->__('Update Products'),
|
37 |
+
'content' => $this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit_tab_update')->toHtml(),
|
38 |
+
));
|
39 |
+
|
40 |
+
return parent::_beforeToHtml();
|
41 |
+
}
|
42 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Codes.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* TheJewelerslink jewelryshare attribute map grid container
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_List_Codes extends Mage_Adminhtml_Block_Widget_Grid_Container
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Initialize grid container settings
|
39 |
+
*
|
40 |
+
*/
|
41 |
+
public function __construct()
|
42 |
+
{
|
43 |
+
|
44 |
+
$this->_blockGroup = 'jewelryshare';
|
45 |
+
$this->_controller = 'adminhtml_list_codes';
|
46 |
+
$this->_headerText = Mage::helper('jewelryshare')->__('Attributes map');
|
47 |
+
$this->_addButtonLabel = Mage::helper('jewelryshare')->__('Add new');
|
48 |
+
|
49 |
+
parent::__construct();
|
50 |
+
|
51 |
+
|
52 |
+
$url = $this->getUrl('*/adminhtml_jewelryshare_codes_grid/editForm');
|
53 |
+
$this->_updateButton('add', 'onclick', 'openNewImportWindow(\''.$url.'\');');
|
54 |
+
}
|
55 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Codes/Grid.php
ADDED
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* TheJewelerslink jewelryshare attribute map Grid
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_List_Codes_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Initialize grid settings
|
39 |
+
*
|
40 |
+
*/
|
41 |
+
protected function _construct()
|
42 |
+
{
|
43 |
+
parent::_construct();
|
44 |
+
|
45 |
+
$this->setId('jewelryshare_list_codes');
|
46 |
+
$this->setUseAjax(true);
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Prepare codes collection
|
51 |
+
*
|
52 |
+
* @return Jewelerslink_Jewelryshare_Block_Adminhtml_List_Codes_Grid
|
53 |
+
*/
|
54 |
+
protected function _prepareCollection()
|
55 |
+
{
|
56 |
+
$collection = Mage::getResourceModel('jewelerslink_jewelryshare/codes_collection');
|
57 |
+
$this->setCollection($collection);
|
58 |
+
return parent::_prepareCollection();
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Configuration of grid
|
63 |
+
*
|
64 |
+
* @return $this
|
65 |
+
*/
|
66 |
+
protected function _prepareColumns()
|
67 |
+
{
|
68 |
+
$this->addColumn('import_code', array(
|
69 |
+
'header'=> Mage::helper('jewelryshare')->__('JewelersLink Code'),
|
70 |
+
'width' => '80px',
|
71 |
+
'type' => 'text',
|
72 |
+
'index' => 'import_code'
|
73 |
+
));
|
74 |
+
|
75 |
+
$this->addColumn('eav_code', array(
|
76 |
+
'header'=> Mage::helper('jewelryshare')->__('Site attribute code'),
|
77 |
+
'width' => '80px',
|
78 |
+
'type' => 'text',
|
79 |
+
'index' => 'eav_code'
|
80 |
+
));
|
81 |
+
|
82 |
+
$source = Mage::getModel('eav/entity_attribute_source_boolean');
|
83 |
+
$isImportedOptions = $source->getOptionArray();
|
84 |
+
|
85 |
+
$this->addColumn('jewelry_imported', array(
|
86 |
+
'header' => Mage::helper('jewelryshare')->__('Publish In Jewelerslink'),
|
87 |
+
'width' => '100px',
|
88 |
+
'index' => 'jewelry_imported',
|
89 |
+
'type' => 'options',
|
90 |
+
'options' => $isImportedOptions
|
91 |
+
));
|
92 |
+
return parent::_prepareColumns();
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Prepare massaction
|
97 |
+
*
|
98 |
+
* @return $this
|
99 |
+
*/
|
100 |
+
protected function _prepareMassaction()
|
101 |
+
{
|
102 |
+
$this->setMassactionIdField('code_id');
|
103 |
+
$this->getMassactionBlock()->setFormFieldName('code_id');
|
104 |
+
|
105 |
+
//$this->getMassactionBlock()->addItem('enable', array(
|
106 |
+
// 'label' => Mage::helper('jewelryshare')->__('Import'),
|
107 |
+
// 'url' => $this->getUrl('*/codes_grid/massEnable'),
|
108 |
+
// 'selected' => true,
|
109 |
+
//));
|
110 |
+
//$this->getMassactionBlock()->addItem('disable', array(
|
111 |
+
// 'label' => Mage::helper('jewelryshare')->__('Not import'),
|
112 |
+
// 'url' => $this->getUrl('*/codes_grid/massDisable'),
|
113 |
+
//));
|
114 |
+
$this->getMassactionBlock()->addItem('delete', array(
|
115 |
+
'label' => Mage::helper('jewelryshare')->__('Delete'),
|
116 |
+
'url' => $this->getUrl('*/adminhtml_jewelryshare_codes_grid/delete'),
|
117 |
+
));
|
118 |
+
|
119 |
+
return $this;
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Return Grid URL for AJAX query
|
124 |
+
*
|
125 |
+
* @return string
|
126 |
+
*/
|
127 |
+
public function getGridUrl()
|
128 |
+
{
|
129 |
+
return $this->getUrl('*/*/grid', array('_current'=>true));
|
130 |
+
}
|
131 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Items.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* TheJewelerslink jewelryshare product grid container
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_List_Items extends Mage_Adminhtml_Block_Widget_Grid_Container
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Initialize grid container settings
|
39 |
+
*
|
40 |
+
*/
|
41 |
+
public function __construct()
|
42 |
+
{
|
43 |
+
$this->_blockGroup = 'jewelryshare';
|
44 |
+
$this->_controller = 'adminhtml_list_items';
|
45 |
+
$this->_headerText = Mage::helper('jewelryshare')->__('Select products to be exported to jewelerslink');
|
46 |
+
|
47 |
+
parent::__construct();
|
48 |
+
|
49 |
+
$this->_removeButton('add');
|
50 |
+
}
|
51 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Adminhtml/List/Items/Grid.php
ADDED
@@ -0,0 +1,188 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* TheJewelerslink jewelryshare product grid container
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Jewelerslink_Jewelryshare_Block_Adminhtml_List_Items_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Initialize grid settings
|
39 |
+
*
|
40 |
+
*/
|
41 |
+
protected function _construct()
|
42 |
+
{
|
43 |
+
parent::_construct();
|
44 |
+
|
45 |
+
$this->setId('jewelryshare_list_items');
|
46 |
+
$this->setDefaultSort('id');
|
47 |
+
$this->setUseAjax(true);
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Return Current work store
|
52 |
+
*
|
53 |
+
* @return Mage_Core_Model_Store
|
54 |
+
*/
|
55 |
+
protected function _getStore()
|
56 |
+
{
|
57 |
+
return Mage::app()->getStore();
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Prepare product collection
|
62 |
+
*
|
63 |
+
* @return Jewelerslink_Jewelryshare_Block_Adminhtml_List_Items_Grid
|
64 |
+
*/
|
65 |
+
protected function _prepareCollection()
|
66 |
+
{
|
67 |
+
$collection = Mage::getModel('catalog/product')->getCollection()
|
68 |
+
->setStore($this->_getStore())
|
69 |
+
->addAttributeToSelect('name')
|
70 |
+
->addAttributeToSelect('sku')
|
71 |
+
->addAttributeToSelect('price')
|
72 |
+
->addAttributeToSelect('attribute_set_id')
|
73 |
+
->addAttributeToSelect('jewelry_imported');
|
74 |
+
$this->setCollection($collection);
|
75 |
+
|
76 |
+
return parent::_prepareCollection();
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Prepare grid columns
|
81 |
+
*
|
82 |
+
* @return Jewelerslink_Jewelryshare_Block_Adminhtml_List_Items_Grid
|
83 |
+
*/
|
84 |
+
protected function _prepareColumns()
|
85 |
+
{
|
86 |
+
$this->addColumn('id', array(
|
87 |
+
'header' => Mage::helper('jewelryshare')->__('ID'),
|
88 |
+
'sortable' => true,
|
89 |
+
'width' => '60px',
|
90 |
+
'index' => 'entity_id'
|
91 |
+
));
|
92 |
+
|
93 |
+
$this->addColumn('name', array(
|
94 |
+
'header' => Mage::helper('jewelryshare')->__('Product Name'),
|
95 |
+
'index' => 'name',
|
96 |
+
'column_css_class' => 'name'
|
97 |
+
));
|
98 |
+
|
99 |
+
$this->addColumn('type', array(
|
100 |
+
'header' => Mage::helper('jewelryshare')->__('Type'),
|
101 |
+
'width' => '60px',
|
102 |
+
'index' => 'type_id',
|
103 |
+
'type' => 'options',
|
104 |
+
'options' => Mage::getSingleton('catalog/product_type')->getOptionArray(),
|
105 |
+
));
|
106 |
+
|
107 |
+
$entityTypeId = Mage::helper('jewelryshare')->getProductEntityType();
|
108 |
+
$sets = Mage::getResourceModel('eav/entity_attribute_set_collection')
|
109 |
+
->setEntityTypeFilter($entityTypeId)
|
110 |
+
->load()
|
111 |
+
->toOptionHash();
|
112 |
+
|
113 |
+
$this->addColumn('set_name', array(
|
114 |
+
'header' => Mage::helper('jewelryshare')->__('Attrib. Set Name'),
|
115 |
+
'width' => '100px',
|
116 |
+
'index' => 'attribute_set_id',
|
117 |
+
'type' => 'options',
|
118 |
+
'options' => $sets,
|
119 |
+
));
|
120 |
+
|
121 |
+
$this->addColumn('sku', array(
|
122 |
+
'header' => Mage::helper('jewelryshare')->__('SKU'),
|
123 |
+
'width' => '80px',
|
124 |
+
'index' => 'sku',
|
125 |
+
'column_css_class' => 'sku'
|
126 |
+
));
|
127 |
+
|
128 |
+
$this->addColumn('price', array(
|
129 |
+
'header' => Mage::helper('jewelryshare')->__('Price'),
|
130 |
+
'align' => 'center',
|
131 |
+
'type' => 'currency',
|
132 |
+
'currency_code' => $this->_getStore()->getCurrentCurrencyCode(),
|
133 |
+
'rate' => $this->_getStore()->getBaseCurrency()->getRate($this->_getStore()->getCurrentCurrencyCode()),
|
134 |
+
'index' => 'price'
|
135 |
+
));
|
136 |
+
|
137 |
+
$source = Mage::getModel('eav/entity_attribute_source_boolean');
|
138 |
+
$isImportedOptions = $source->getOptionArray();
|
139 |
+
|
140 |
+
$this->addColumn('jewelry_imported', array(
|
141 |
+
'header' => Mage::helper('jewelryshare')->__('Publish In Jewelerslink'),
|
142 |
+
'width' => '100px',
|
143 |
+
'index' => 'jewelry_imported',
|
144 |
+
'type' => 'options',
|
145 |
+
'options' => $isImportedOptions
|
146 |
+
));
|
147 |
+
|
148 |
+
return parent::_prepareColumns();
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Prepare massaction
|
153 |
+
*
|
154 |
+
* @return Jewelerslink_Jewelryshare_Block_Adminhtml_List_Items_Grid
|
155 |
+
*/
|
156 |
+
protected function _prepareMassaction()
|
157 |
+
{
|
158 |
+
$this->setMassactionIdField('entity_id');
|
159 |
+
$this->getMassactionBlock()->setFormFieldName('item_id');
|
160 |
+
|
161 |
+
$this->getMassactionBlock()->addItem('enable', array(
|
162 |
+
'label' => Mage::helper('jewelryshare')->__('Publish to Jewelerslink'),
|
163 |
+
'url' => $this->getUrl('*/adminhtml_jewelryshare_items_grid/massEnable'),
|
164 |
+
//'selected' => true,
|
165 |
+
));
|
166 |
+
$this->getMassactionBlock()->addItem('disable', array(
|
167 |
+
'label' => Mage::helper('jewelryshare')->__("Don't publish to Jewelerslink"),
|
168 |
+
'url' => $this->getUrl('*/adminhtml_jewelryshare_items_grid/massDisable'),
|
169 |
+
));
|
170 |
+
|
171 |
+
$this->getMassactionBlock()->addItem('jw_export', array(
|
172 |
+
'label' => Mage::helper('jewelryshare')->__('Export published products to Jewelerslink'),
|
173 |
+
'url' => $this->getUrl('*/adminhtml_jewelryshare_items_grid/massJwExport'),
|
174 |
+
));
|
175 |
+
|
176 |
+
return $this;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Return Grid URL for AJAX query
|
181 |
+
*
|
182 |
+
* @return string
|
183 |
+
*/
|
184 |
+
public function getGridUrl()
|
185 |
+
{
|
186 |
+
return $this->getUrl('*/*/grid', array('_current'=>true));
|
187 |
+
}
|
188 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Block/Jewelryshare.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Jewelerslink_Jewelryshare_Block_Jewelryshare extends Mage_Core_Block_Template
|
3 |
+
{
|
4 |
+
public function _prepareLayout()
|
5 |
+
{
|
6 |
+
return parent::_prepareLayout();
|
7 |
+
}
|
8 |
+
|
9 |
+
public function getJewelryshare()
|
10 |
+
{
|
11 |
+
if (!$this->hasData('jewelryshare')) {
|
12 |
+
$this->setData('jewelryshare', Mage::registry('jewelryshare'));
|
13 |
+
}
|
14 |
+
return $this->getData('jewelryshare');
|
15 |
+
|
16 |
+
}
|
17 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Helper/Data.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Helper_Data extends Mage_Core_Helper_Abstract
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* Checking if some required attributes missed
|
7 |
+
*
|
8 |
+
* @param array $attributes
|
9 |
+
* @return bool
|
10 |
+
*/
|
11 |
+
public function checkRequired($attributes)
|
12 |
+
{
|
13 |
+
return true;
|
14 |
+
|
15 |
+
$attributeConfig = Mage::getConfig()->getNode(Jewelerslink_Jewelryshare_Model_Import::XML_NODE_FIND_FEED_ATTRIBUTES);
|
16 |
+
$attributeRequired = array();
|
17 |
+
foreach ($attributeConfig->children() as $ac) {
|
18 |
+
if ((int)$ac->required) {
|
19 |
+
$attributeRequired[] = (string)$ac->label;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
//echo "<pre>"; print_r($attributeRequired); exit;
|
24 |
+
|
25 |
+
foreach ($attributeRequired as $value) {
|
26 |
+
if (!isset($attributes[$value])) {
|
27 |
+
return false;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
return true;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Product entity type
|
35 |
+
*
|
36 |
+
* @return int
|
37 |
+
*/
|
38 |
+
public function getProductEntityType()
|
39 |
+
{
|
40 |
+
return Mage::getSingleton('eav/config')->getEntityType('catalog_product')->getId();
|
41 |
+
}
|
42 |
+
|
43 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Adminhtml/System/Source/Cron/Frequency.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Source for cron frequency
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
*/
|
34 |
+
class Jewelerslink_Jewelryshare_Model_Adminhtml_System_Source_Cron_Frequency
|
35 |
+
{
|
36 |
+
const DAILY = 1;
|
37 |
+
const WEEKLY = 2;
|
38 |
+
const MONTHLY = 3;
|
39 |
+
const EVERY_MINUTE = 4;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Fetch options array
|
43 |
+
*
|
44 |
+
* @return array
|
45 |
+
*/
|
46 |
+
public function toOptionArray()
|
47 |
+
{
|
48 |
+
return array(
|
49 |
+
array(
|
50 |
+
'label' => 'Daily',
|
51 |
+
'value' => self::DAILY),
|
52 |
+
array(
|
53 |
+
'label' => 'Weekly',
|
54 |
+
'value' => self::WEEKLY),
|
55 |
+
array(
|
56 |
+
'label' => 'Monthly',
|
57 |
+
'value' => self::MONTHLY),
|
58 |
+
array(
|
59 |
+
'label' => 'Every minute',
|
60 |
+
'value' => self::EVERY_MINUTE)
|
61 |
+
);
|
62 |
+
}
|
63 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Adminhtml/System/Source/Cron/Hours.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Source for cron hours
|
30 |
+
*
|
31 |
+
* @category Jewelerslink
|
32 |
+
* @package Jewelerslink_Jewelryshare
|
33 |
+
*/
|
34 |
+
class Jewelerslink_Jewelryshare_Model_Adminhtml_System_Source_Cron_Hours
|
35 |
+
{
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Fetch options array
|
39 |
+
*
|
40 |
+
* @return array
|
41 |
+
*/
|
42 |
+
public function toOptionArray()
|
43 |
+
{
|
44 |
+
$hours = array();
|
45 |
+
for ($i = 1; $i <= 24; $i++) {
|
46 |
+
$hours[] = array('label' => $i, 'value' => $i);
|
47 |
+
}
|
48 |
+
return $hours;
|
49 |
+
}
|
50 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Codes.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jwshare attribute map grid container
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Codes extends Mage_Core_Model_Abstract
|
34 |
+
{
|
35 |
+
/**
|
36 |
+
* Local constructor
|
37 |
+
*
|
38 |
+
*/
|
39 |
+
protected function _construct()
|
40 |
+
{
|
41 |
+
$this->_init('jewelerslink_jewelryshare/codes');
|
42 |
+
}
|
43 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Import.php
ADDED
@@ -0,0 +1,352 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jewelryshare import model
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Import extends Mage_Core_Model_Abstract
|
34 |
+
{
|
35 |
+
//const SEPARATOR = "\t";
|
36 |
+
const LINE_END = "\r\n";
|
37 |
+
const ENCLOSURE = '"';
|
38 |
+
const SEPARATOR = ',';
|
39 |
+
const COLLECTION_PAGE_SIZE = 5000;
|
40 |
+
|
41 |
+
const XML_PATH_SETTINGS_FTP_SERVER = 'jewelryshare/settings/ftp_server';
|
42 |
+
const XML_PATH_SETTINGS_FTP_USER = 'jewelryshare/settings/ftp_user';
|
43 |
+
const XML_PATH_SETTINGS_FTP_PASSWORD = 'jewelryshare/settings/ftp_password';
|
44 |
+
//const XML_PATH_SETTINGS_FTP_PATH = 'jewelryshare/settings/ftp_path';
|
45 |
+
//const XML_PATH_SETTINGS_FINDFEED_FILENAME = 'jewelryshare/settings/jewelerslinkjewelryshare_filename';
|
46 |
+
const XML_NODE_FIND_FEED_ATTRIBUTES = 'jewelerslink_jewelryshare_attributes';
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Attribute sources
|
50 |
+
*
|
51 |
+
* @var array
|
52 |
+
*/
|
53 |
+
protected $_attributeSources = array();
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Cron action
|
57 |
+
*/
|
58 |
+
public function dispatch()
|
59 |
+
{
|
60 |
+
$this->processImport();
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* TheJewelerslink jewelryshare process import
|
65 |
+
*/
|
66 |
+
public function processImport()
|
67 |
+
{
|
68 |
+
$file = $this->_createFile();
|
69 |
+
if ($file) {
|
70 |
+
$this->_deleteFtpFiles();
|
71 |
+
$this->_sendFile($file);
|
72 |
+
if (!$this->_deleteFile($file)) {
|
73 |
+
Mage::throwException(Mage::helper('jewelryshare')->__("FTP: Can't delete files"));
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Create temp csv file and write export
|
80 |
+
*
|
81 |
+
* @return mixed
|
82 |
+
*/
|
83 |
+
protected function _createFile()
|
84 |
+
{
|
85 |
+
|
86 |
+
|
87 |
+
$dir = $this->_getTmpDir();
|
88 |
+
$customerId = $this->getJwCustomerId();
|
89 |
+
|
90 |
+
$fileName = $customerId.".csv";
|
91 |
+
|
92 |
+
if (!$dir || !$customerId) {
|
93 |
+
return false;
|
94 |
+
}
|
95 |
+
//echo count($this->_getImportAttributes());exit;
|
96 |
+
|
97 |
+
if (!($attributes = $this->_getImportAttributes()) || count($attributes) <= 0) {
|
98 |
+
return false;
|
99 |
+
}
|
100 |
+
$headers = array_keys($attributes);
|
101 |
+
|
102 |
+
$file = new Varien_Io_File;
|
103 |
+
$file->checkAndCreateFolder($dir);
|
104 |
+
$file->cd($dir);
|
105 |
+
$file->streamOpen($fileName, 'w+');
|
106 |
+
$file->streamLock();
|
107 |
+
|
108 |
+
//echo "<pre>"; print_r($headers); exit;
|
109 |
+
$file->streamWriteCsv($headers, self::SEPARATOR, self::ENCLOSURE);
|
110 |
+
|
111 |
+
$productCollectionPrototype = Mage::getResourceModel('catalog/product_collection');
|
112 |
+
$productCollectionPrototype->setPageSize(self::COLLECTION_PAGE_SIZE);
|
113 |
+
$pageNumbers = $productCollectionPrototype->getLastPageNumber();
|
114 |
+
unset($productCollectionPrototype);
|
115 |
+
|
116 |
+
for ($i = 1; $i <= $pageNumbers; $i++) {
|
117 |
+
$productCollection = Mage::getResourceModel('catalog/product_collection');
|
118 |
+
$productCollection->addAttributeToSelect($attributes);
|
119 |
+
$productCollection->addAttributeToFilter('is_imported', 1);
|
120 |
+
$productCollection->setPageSize(self::COLLECTION_PAGE_SIZE);
|
121 |
+
$productCollection->setCurPage($i)->load();
|
122 |
+
//echo "<pre>"; print_r($productCollection->getData()); exit;
|
123 |
+
|
124 |
+
foreach ($productCollection as $product) {
|
125 |
+
$attributesRow = array();
|
126 |
+
foreach ($attributes as $key => $value) {
|
127 |
+
if ($this->_checkAttributeSource($product, $value)) {
|
128 |
+
if (is_array($product->getAttributeText($value))) {
|
129 |
+
$attributesRow[$key] = implode(', ', $product->getAttributeText($value));
|
130 |
+
} else {
|
131 |
+
$attributesRow[$key] = $product->getAttributeText($value);
|
132 |
+
}
|
133 |
+
} else {
|
134 |
+
if($key == 'image' || $key == 'small_image' || $key == 'thumbnail') {
|
135 |
+
$siteUrl = str_replace("/index.php/","",Mage::getBaseUrl());
|
136 |
+
$imageUrl = $siteUrl."/media/catalog/product/";
|
137 |
+
$attributesRow[$key] = $imageUrl.$product->getData($value);
|
138 |
+
} else if($key == 'gallery') {
|
139 |
+
$_product = Mage::getModel('catalog/product')->load($product->getId());
|
140 |
+
$galleryArray = array();
|
141 |
+
$galleryString = "";
|
142 |
+
if($gallery = $_product->getMediaGalleryImages()) {
|
143 |
+
//echo "<pre>"; print_r($gallery);exit;
|
144 |
+
foreach ($gallery as $image) {
|
145 |
+
$exlode = explode("media/catalog/product",$image->getUrl());
|
146 |
+
$galleryPart = $exlode[1];
|
147 |
+
//echo $galleryPart."==".$_product->getImage(); exit;
|
148 |
+
if($galleryPart == $_product->getImage() || $galleryPart == $_product->getSmallImage() || $galleryPart == $_product->getThumbnail()) {
|
149 |
+
continue;
|
150 |
+
}
|
151 |
+
$galleryArray[] = $image->getUrl();
|
152 |
+
}
|
153 |
+
$galleryString = implode(";",$galleryArray);
|
154 |
+
}
|
155 |
+
$attributesRow[$key] = $galleryString;
|
156 |
+
} else {
|
157 |
+
$attributesRow[$key] = $product->getData($value);
|
158 |
+
}
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
//echo "<pre>"; print_r($attributesRow); //exit;
|
163 |
+
|
164 |
+
$file->streamWriteCsv($attributesRow, self::SEPARATOR, self::ENCLOSURE);
|
165 |
+
}
|
166 |
+
unset($productCollection);
|
167 |
+
}
|
168 |
+
//exit;
|
169 |
+
$file->streamUnlock();
|
170 |
+
$file->streamClose();
|
171 |
+
|
172 |
+
if ($file->fileExists($fileName)) {
|
173 |
+
return $fileName;
|
174 |
+
}
|
175 |
+
return false;
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Check attribute source
|
180 |
+
*
|
181 |
+
* @param Mage_Catalog_Model_Product $product
|
182 |
+
* @param string $value
|
183 |
+
* @return bool
|
184 |
+
*/
|
185 |
+
protected function _checkAttributeSource($product, $value)
|
186 |
+
{
|
187 |
+
if (!array_key_exists($value, $this->_attributeSources)) {
|
188 |
+
$this->_attributeSources[$value] = $product->getResource()->getAttribute($value)->usesSource();
|
189 |
+
}
|
190 |
+
return $this->_attributeSources[$value];
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* List import codes (attribute map) model
|
195 |
+
*
|
196 |
+
* @return mixed
|
197 |
+
*/
|
198 |
+
protected function _getImportAttributes()
|
199 |
+
{
|
200 |
+
$attributes = Mage::getResourceModel('jewelerslink_jewelryshare/codes_collection')
|
201 |
+
->getImportAttributes();
|
202 |
+
|
203 |
+
if (!Mage::helper('jewelryshare')->checkRequired($attributes)) {
|
204 |
+
return false;
|
205 |
+
}
|
206 |
+
return $attributes;
|
207 |
+
}
|
208 |
+
|
209 |
+
/**
|
210 |
+
* Send file to remote ftp server
|
211 |
+
*
|
212 |
+
* @param string $fileName
|
213 |
+
*/
|
214 |
+
protected function _sendFile($fileName)
|
215 |
+
{
|
216 |
+
$dir = $this->_getTmpDir();
|
217 |
+
$ftpServer = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_SERVER);
|
218 |
+
$ftpUserName = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_USER);
|
219 |
+
$ftpPass = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_PASSWORD);
|
220 |
+
|
221 |
+
$ftpPath = '/';
|
222 |
+
// set up basic connection
|
223 |
+
$conn_id = ftp_connect($ftpServer);
|
224 |
+
|
225 |
+
// login with username and password
|
226 |
+
$login_result = ftp_login($conn_id, $ftpUserName, $ftpPass);
|
227 |
+
//echo $login_result."==".$conn_id."==".$ftpPath.$fileName."==".$dir.$fileName; exit;
|
228 |
+
ftp_pasv($conn_id, true);
|
229 |
+
|
230 |
+
if(ftp_put($conn_id, $ftpPath.$fileName, $dir.$fileName, FTP_BINARY)) {
|
231 |
+
Mage::getSingleton("adminhtml/session")->addSuccess("csv exported to jewelerslink successfully.");
|
232 |
+
//echo "csv exported to jewelerslink successfully.";
|
233 |
+
} else {
|
234 |
+
Mage::getSingleton("adminhtml/session")->addError("There was a problem exporting csv to jewelerslink.");
|
235 |
+
//echo "There was a problem exporting csv to jewelerslink.";
|
236 |
+
}
|
237 |
+
// close the connection
|
238 |
+
ftp_close($conn_id);
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* Delete all files in current jewelryshare ftp directory
|
243 |
+
*
|
244 |
+
* @return bool
|
245 |
+
*/
|
246 |
+
protected function _deleteFtpFiles()
|
247 |
+
{
|
248 |
+
if (is_callable('ftp_connect')) {
|
249 |
+
|
250 |
+
$ftpServer = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_SERVER);
|
251 |
+
$ftpUserName = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_USER);
|
252 |
+
$ftpPass = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_PASSWORD);
|
253 |
+
|
254 |
+
$ftpPath = '/';
|
255 |
+
|
256 |
+
try {
|
257 |
+
$connId = ftp_connect($ftpServer);
|
258 |
+
|
259 |
+
$loginResult = ftp_login($connId, $ftpUserName, $ftpPass);
|
260 |
+
//echo $loginResult; exit;
|
261 |
+
|
262 |
+
if (!$loginResult) {
|
263 |
+
return false;
|
264 |
+
}
|
265 |
+
ftp_pasv($connId, true);
|
266 |
+
|
267 |
+
$ftpDir = $ftpPath?$ftpPath:'.';
|
268 |
+
$nlist = ftp_nlist($connId, $ftpDir);
|
269 |
+
if ($nlist === false) {
|
270 |
+
return false;
|
271 |
+
}
|
272 |
+
//echo "<pre>"; print_r($nlist); exit;
|
273 |
+
|
274 |
+
foreach ($nlist as $file) {
|
275 |
+
if (!preg_match('/\.[xX][mM][lL]$/', $file)) {
|
276 |
+
|
277 |
+
if($file != '/..' && $file != '/.') {
|
278 |
+
ftp_delete($connId, $file);
|
279 |
+
}
|
280 |
+
|
281 |
+
}
|
282 |
+
}
|
283 |
+
|
284 |
+
ftp_close($connId);
|
285 |
+
} catch (Exception $e) {
|
286 |
+
Mage::log($e->getMessage());
|
287 |
+
return false;
|
288 |
+
}
|
289 |
+
return true;
|
290 |
+
} else {
|
291 |
+
return false;
|
292 |
+
}
|
293 |
+
}
|
294 |
+
|
295 |
+
/**
|
296 |
+
* Current tmp directory
|
297 |
+
*
|
298 |
+
* @return string
|
299 |
+
*/
|
300 |
+
protected function _getTmpDir()
|
301 |
+
{
|
302 |
+
return Mage::getBaseDir('var') . DS . 'export' . DS . 'jewelryshare' . DS;
|
303 |
+
}
|
304 |
+
|
305 |
+
/**
|
306 |
+
* Delete tmp file
|
307 |
+
*
|
308 |
+
* @param string $fileName
|
309 |
+
* @return true
|
310 |
+
*/
|
311 |
+
protected function _deleteFile($fileName)
|
312 |
+
{
|
313 |
+
$dir = $this->_getTmpDir();
|
314 |
+
$file = new Varien_Io_File;
|
315 |
+
if ($file->fileExists($dir . $fileName, true)) {
|
316 |
+
$file->cd($dir);
|
317 |
+
$file->rm($fileName);
|
318 |
+
}
|
319 |
+
return true;
|
320 |
+
}
|
321 |
+
|
322 |
+
public function getJwCustomerId()
|
323 |
+
{
|
324 |
+
try
|
325 |
+
{
|
326 |
+
$username = Mage::getStoreConfig('jewelryshare/user_detail/ideal_username');
|
327 |
+
$password = Mage::getStoreConfig('jewelryshare/user_detail/ideal_password');
|
328 |
+
|
329 |
+
$ch = curl_init();
|
330 |
+
$timeout = 5;
|
331 |
+
curl_setopt($ch,CURLOPT_URL,"http://www.jewelerslink.com/jewelry/index/getjwId");
|
332 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
|
333 |
+
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
|
334 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>$username,"password"=>$password));
|
335 |
+
$data = curl_exec($ch);
|
336 |
+
curl_close($ch);
|
337 |
+
//echo $data;
|
338 |
+
if($data == "Invalid Login") {
|
339 |
+
//echo "Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail";
|
340 |
+
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("adminhtml")->__("Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail"));
|
341 |
+
return;
|
342 |
+
} else {
|
343 |
+
//echo $data; exit;
|
344 |
+
return $data;
|
345 |
+
}
|
346 |
+
}
|
347 |
+
catch (Exception $e) {
|
348 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
349 |
+
return;
|
350 |
+
}
|
351 |
+
}
|
352 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Importcron.php
ADDED
@@ -0,0 +1,359 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jewelryshare import model
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Importcron extends Mage_Core_Model_Abstract
|
34 |
+
{
|
35 |
+
//const SEPARATOR = "\t";
|
36 |
+
const LINE_END = "\r\n";
|
37 |
+
const ENCLOSURE = '"';
|
38 |
+
const SEPARATOR = ',';
|
39 |
+
const COLLECTION_PAGE_SIZE = 5000;
|
40 |
+
|
41 |
+
const XML_PATH_SETTINGS_FTP_SERVER = 'jewelryshare/settings/ftp_server';
|
42 |
+
const XML_PATH_SETTINGS_FTP_USER = 'jewelryshare/settings/ftp_user';
|
43 |
+
const XML_PATH_SETTINGS_FTP_PASSWORD = 'jewelryshare/settings/ftp_password';
|
44 |
+
//const XML_PATH_SETTINGS_FTP_PATH = 'jewelryshare/settings/ftp_path';
|
45 |
+
//const XML_PATH_SETTINGS_FINDFEED_FILENAME = 'jewelryshare/settings/jewelerslinkjewelryshare_filename';
|
46 |
+
const XML_NODE_FIND_FEED_ATTRIBUTES = 'jewelryshare_attributes';
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Attribute sources
|
50 |
+
*
|
51 |
+
* @var array
|
52 |
+
*/
|
53 |
+
protected $_attributeSources = array();
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Cron action
|
57 |
+
*/
|
58 |
+
public function dispatch()
|
59 |
+
{
|
60 |
+
$this->processImport();
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* TheJewelerslink jewelryshare process import
|
65 |
+
*/
|
66 |
+
public function processImport()
|
67 |
+
{
|
68 |
+
$file = $this->_createFile();
|
69 |
+
if ($file) {
|
70 |
+
$this->_deleteFtpFiles();
|
71 |
+
$this->_sendFile($file);
|
72 |
+
if (!$this->_deleteFile($file)) {
|
73 |
+
Mage::throwException(Mage::helper('jewelryshare')->__("FTP: Can't delete files"));
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Create temp csv file and write export
|
80 |
+
*
|
81 |
+
* @return mixed
|
82 |
+
*/
|
83 |
+
protected function _createFile()
|
84 |
+
{
|
85 |
+
$dir = $this->_getTmpDir();
|
86 |
+
//$fileName = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FINDFEED_FILENAME);
|
87 |
+
$customerId = $this->getJwCustomerId();
|
88 |
+
|
89 |
+
$fileName = $customerId.".csv";
|
90 |
+
|
91 |
+
if (!$dir || !$customerId) {
|
92 |
+
return false;
|
93 |
+
}
|
94 |
+
//echo count($this->_getImportAttributes());exit;
|
95 |
+
|
96 |
+
if (!($attributes = $this->_getImportAttributes()) || count($attributes) <= 0) {
|
97 |
+
return false;
|
98 |
+
}
|
99 |
+
$headers = array_keys($attributes);
|
100 |
+
|
101 |
+
$file = new Varien_Io_File;
|
102 |
+
$file->checkAndCreateFolder($dir);
|
103 |
+
$file->cd($dir);
|
104 |
+
$file->streamOpen($fileName, 'w+');
|
105 |
+
$file->streamLock();
|
106 |
+
|
107 |
+
//echo "<pre>"; print_r($headers); exit;
|
108 |
+
$file->streamWriteCsv($headers, self::SEPARATOR, self::ENCLOSURE);
|
109 |
+
|
110 |
+
$productCollectionPrototype = Mage::getResourceModel('catalog/product_collection');
|
111 |
+
$productCollectionPrototype->setPageSize(self::COLLECTION_PAGE_SIZE);
|
112 |
+
$pageNumbers = $productCollectionPrototype->getLastPageNumber();
|
113 |
+
unset($productCollectionPrototype);
|
114 |
+
|
115 |
+
for ($i = 1; $i <= $pageNumbers; $i++) {
|
116 |
+
$productCollection = Mage::getResourceModel('catalog/product_collection');
|
117 |
+
$productCollection->addAttributeToSelect($attributes);
|
118 |
+
$productCollection->addAttributeToFilter('is_imported', 1);
|
119 |
+
$productCollection->setPageSize(self::COLLECTION_PAGE_SIZE);
|
120 |
+
$productCollection->setCurPage($i)->load();
|
121 |
+
//echo "<pre>"; print_r($productCollection->getData()); exit;
|
122 |
+
|
123 |
+
foreach ($productCollection as $product) {
|
124 |
+
$attributesRow = array();
|
125 |
+
foreach ($attributes as $key => $value) {
|
126 |
+
if ($this->_checkAttributeSource($product, $value)) {
|
127 |
+
if (is_array($product->getAttributeText($value))) {
|
128 |
+
$attributesRow[$key] = implode(', ', $product->getAttributeText($value));
|
129 |
+
} else {
|
130 |
+
$attributesRow[$key] = $product->getAttributeText($value);
|
131 |
+
}
|
132 |
+
} else {
|
133 |
+
if($key == 'image' || $key == 'small_image' || $key == 'thumbnail') {
|
134 |
+
$siteUrl = str_replace("/index.php/","",Mage::getBaseUrl());
|
135 |
+
$imageUrl = $siteUrl."/media/catalog/product/";
|
136 |
+
$attributesRow[$key] = $imageUrl.$product->getData($value);
|
137 |
+
} else if($key == 'gallery') {
|
138 |
+
$_product = Mage::getModel('catalog/product')->load($product->getId());
|
139 |
+
$galleryArray = array();
|
140 |
+
$galleryString = "";
|
141 |
+
if($gallery = $_product->getMediaGalleryImages()) {
|
142 |
+
//echo "<pre>"; print_r($gallery);exit;
|
143 |
+
foreach ($gallery as $image) {
|
144 |
+
$exlode = explode("media/catalog/product",$image->getUrl());
|
145 |
+
$galleryPart = $exlode[1];
|
146 |
+
//echo $galleryPart."==".$_product->getImage(); exit;
|
147 |
+
if($galleryPart == $_product->getImage() || $galleryPart == $_product->getSmallImage() || $galleryPart == $_product->getThumbnail()) {
|
148 |
+
continue;
|
149 |
+
}
|
150 |
+
$galleryArray[] = $image->getUrl();
|
151 |
+
}
|
152 |
+
$galleryString = implode(";",$galleryArray);
|
153 |
+
}
|
154 |
+
$attributesRow[$key] = $galleryString;
|
155 |
+
} else {
|
156 |
+
$attributesRow[$key] = $product->getData($value);
|
157 |
+
}
|
158 |
+
}
|
159 |
+
}
|
160 |
+
|
161 |
+
//echo "<pre>"; print_r($attributesRow); //exit;
|
162 |
+
|
163 |
+
$file->streamWriteCsv($attributesRow, self::SEPARATOR, self::ENCLOSURE);
|
164 |
+
}
|
165 |
+
unset($productCollection);
|
166 |
+
}
|
167 |
+
//exit;
|
168 |
+
$file->streamUnlock();
|
169 |
+
$file->streamClose();
|
170 |
+
|
171 |
+
if ($file->fileExists($fileName)) {
|
172 |
+
return $fileName;
|
173 |
+
}
|
174 |
+
return false;
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Check attribute source
|
179 |
+
*
|
180 |
+
* @param Mage_Catalog_Model_Product $product
|
181 |
+
* @param string $value
|
182 |
+
* @return bool
|
183 |
+
*/
|
184 |
+
protected function _checkAttributeSource($product, $value)
|
185 |
+
{
|
186 |
+
if (!array_key_exists($value, $this->_attributeSources)) {
|
187 |
+
$this->_attributeSources[$value] = $product->getResource()->getAttribute($value)->usesSource();
|
188 |
+
}
|
189 |
+
return $this->_attributeSources[$value];
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* List import codes (attribute map) model
|
194 |
+
*
|
195 |
+
* @return mixed
|
196 |
+
*/
|
197 |
+
protected function _getImportAttributes()
|
198 |
+
{
|
199 |
+
$attributes = Mage::getResourceModel('jewelryshare/codes_collection')
|
200 |
+
->getImportAttributes();
|
201 |
+
|
202 |
+
if (!Mage::helper('jewelryshare')->checkRequired($attributes)) {
|
203 |
+
return false;
|
204 |
+
}
|
205 |
+
return $attributes;
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Send file to remote ftp server
|
210 |
+
*
|
211 |
+
* @param string $fileName
|
212 |
+
*/
|
213 |
+
protected function _sendFile($fileName)
|
214 |
+
{
|
215 |
+
$dir = $this->_getTmpDir();
|
216 |
+
$ftpServer = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_SERVER);
|
217 |
+
$ftpUserName = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_USER);
|
218 |
+
$ftpPass = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_PASSWORD);
|
219 |
+
|
220 |
+
$ftpPath = '/';
|
221 |
+
// set up basic connection
|
222 |
+
$conn_id = ftp_connect($ftpServer);
|
223 |
+
|
224 |
+
// login with username and password
|
225 |
+
$login_result = ftp_login($conn_id, $ftpUserName, $ftpPass);
|
226 |
+
//echo $login_result."==".$conn_id."==".$ftpPath.$fileName."==".$dir.$fileName; exit;
|
227 |
+
ftp_pasv($conn_id, true);
|
228 |
+
|
229 |
+
if(ftp_put($conn_id, $ftpPath.$fileName, $dir.$fileName, FTP_BINARY)) {
|
230 |
+
Mage::getSingleton("adminhtml/session")->addSuccess("csv exported to jewelerslink successfully.");
|
231 |
+
//echo "csv exported to jewelerslink successfully.";
|
232 |
+
} else {
|
233 |
+
Mage::getSingleton("adminhtml/session")->addError("There was a problem exporting csv to jewelerslink.");
|
234 |
+
//echo "There was a problem exporting csv to jewelerslink.";
|
235 |
+
}
|
236 |
+
// close the connection
|
237 |
+
ftp_close($conn_id);
|
238 |
+
|
239 |
+
/* $ch = curl_init();
|
240 |
+
curl_setopt($ch, CURLOPT_URL, 'ftp://'.$ftpUserName.':'.$ftpPass.'@'.$ftpServer.'/'.$ftpPath.$fileName);
|
241 |
+
curl_setopt($ch, CURLOPT_UPLOAD, 1);
|
242 |
+
curl_setopt($ch, CURLOPT_INFILE, fopen($dir.$fileName, 'r'));
|
243 |
+
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($dir.$fileName));
|
244 |
+
curl_exec($ch);
|
245 |
+
curl_close($ch); */
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Delete all files in current jewelryshare ftp directory
|
250 |
+
*
|
251 |
+
* @return bool
|
252 |
+
*/
|
253 |
+
protected function _deleteFtpFiles()
|
254 |
+
{
|
255 |
+
if (is_callable('ftp_connect')) {
|
256 |
+
|
257 |
+
$ftpServer = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_SERVER);
|
258 |
+
$ftpUserName = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_USER);
|
259 |
+
$ftpPass = Mage::getStoreConfig(self::XML_PATH_SETTINGS_FTP_PASSWORD);
|
260 |
+
|
261 |
+
$ftpPath = '/';
|
262 |
+
|
263 |
+
try {
|
264 |
+
$connId = ftp_connect($ftpServer);
|
265 |
+
|
266 |
+
$loginResult = ftp_login($connId, $ftpUserName, $ftpPass);
|
267 |
+
//echo $loginResult; exit;
|
268 |
+
|
269 |
+
if (!$loginResult) {
|
270 |
+
return false;
|
271 |
+
}
|
272 |
+
ftp_pasv($connId, true);
|
273 |
+
|
274 |
+
$ftpDir = $ftpPath?$ftpPath:'.';
|
275 |
+
$nlist = ftp_nlist($connId, $ftpDir);
|
276 |
+
if ($nlist === false) {
|
277 |
+
return false;
|
278 |
+
}
|
279 |
+
//echo "<pre>"; print_r($nlist); exit;
|
280 |
+
|
281 |
+
foreach ($nlist as $file) {
|
282 |
+
if (!preg_match('/\.[xX][mM][lL]$/', $file)) {
|
283 |
+
|
284 |
+
if($file != '/..' && $file != '/.') {
|
285 |
+
ftp_delete($connId, $file);
|
286 |
+
}
|
287 |
+
|
288 |
+
}
|
289 |
+
}
|
290 |
+
|
291 |
+
ftp_close($connId);
|
292 |
+
} catch (Exception $e) {
|
293 |
+
Mage::log($e->getMessage());
|
294 |
+
return false;
|
295 |
+
}
|
296 |
+
return true;
|
297 |
+
} else {
|
298 |
+
return false;
|
299 |
+
}
|
300 |
+
}
|
301 |
+
|
302 |
+
/**
|
303 |
+
* Current tmp directory
|
304 |
+
*
|
305 |
+
* @return string
|
306 |
+
*/
|
307 |
+
protected function _getTmpDir()
|
308 |
+
{
|
309 |
+
return Mage::getBaseDir('var') . DS . 'export' . DS . 'jewelryshare' . DS;
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Delete tmp file
|
314 |
+
*
|
315 |
+
* @param string $fileName
|
316 |
+
* @return true
|
317 |
+
*/
|
318 |
+
protected function _deleteFile($fileName)
|
319 |
+
{
|
320 |
+
$dir = $this->_getTmpDir();
|
321 |
+
$file = new Varien_Io_File;
|
322 |
+
if ($file->fileExists($dir . $fileName, true)) {
|
323 |
+
$file->cd($dir);
|
324 |
+
$file->rm($fileName);
|
325 |
+
}
|
326 |
+
return true;
|
327 |
+
}
|
328 |
+
|
329 |
+
public function getJwCustomerId()
|
330 |
+
{
|
331 |
+
try
|
332 |
+
{
|
333 |
+
$username = Mage::getStoreConfig('jewelryshare/user_detail/ideal_username');
|
334 |
+
$password = Mage::getStoreConfig('jewelryshare/user_detail/ideal_password');
|
335 |
+
|
336 |
+
$ch = curl_init();
|
337 |
+
$timeout = 5;
|
338 |
+
curl_setopt($ch,CURLOPT_URL,"http://www.jewelerslink.com/jewelry/index/getjwId");
|
339 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
|
340 |
+
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
|
341 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>$username,"password"=>$password));
|
342 |
+
$data = curl_exec($ch);
|
343 |
+
curl_close($ch);
|
344 |
+
//echo $data;
|
345 |
+
if($data == "Invalid Login") {
|
346 |
+
//echo "Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail";
|
347 |
+
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("adminhtml")->__("Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail"));
|
348 |
+
return;
|
349 |
+
} else {
|
350 |
+
//echo $data; exit;
|
351 |
+
return $data;
|
352 |
+
}
|
353 |
+
}
|
354 |
+
catch (Exception $e) {
|
355 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
356 |
+
return;
|
357 |
+
}
|
358 |
+
}
|
359 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Jewelryshare.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Model_Jewelryshare extends Mage_Core_Model_Abstract
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->_init('jewelryshare/jewelryshare');
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Codes.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Thejewelerslink jwshare codes (attribute map) model
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Mysql4_Codes extends Jewelerslink_Jewelryshare_Model_Resource_Codes
|
34 |
+
{
|
35 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Codes/Collection.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jwshare codes (attribute map) collection
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Mysql4_Codes_Collection extends Jewelerslink_Jewelryshare_Model_Resource_Codes_Collection
|
34 |
+
{
|
35 |
+
|
36 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Jewelryshare.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Model_Mysql4_Jewelryshare extends Mage_Core_Model_Mysql4_Abstract
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
// Note that the jewelryshare_id refers to the key field in your database table.
|
8 |
+
$this->_init('jewelryshare/jewelryshare', 'code_id');
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Jewelryshare/Collection.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Model_Mysql4_Jewelryshare_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->_init('jewelryshare/jewelryshare');
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Mysql4/Setup.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Thejewelerslink jwshare module setup
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Mysql4_Setup extends Mage_Catalog_Model_Resource_Eav_Mysql4_Setup
|
34 |
+
{
|
35 |
+
}
|
36 |
+
|
app/code/community/Jewelerslink/Jewelryshare/Model/Observer.php
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jwshare main observer
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Observer
|
34 |
+
{
|
35 |
+
/**
|
36 |
+
* Save system config event
|
37 |
+
*
|
38 |
+
* @param Varien_Object $observer
|
39 |
+
*/
|
40 |
+
public function saveSystemConfig($observer)
|
41 |
+
{
|
42 |
+
$store = $observer->getStore();
|
43 |
+
$website = $observer->getWebsite();
|
44 |
+
$groups['settings']['fields']['cron_schedule']['value'] = $this->_getSchedule();
|
45 |
+
|
46 |
+
Mage::getModel('adminhtml/config_data')
|
47 |
+
->setSection('jwshare')
|
48 |
+
->setWebsite($website)
|
49 |
+
->setStore($store)
|
50 |
+
->setGroups($groups)
|
51 |
+
->save();
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Transform system settings option to cron schedule string
|
56 |
+
*
|
57 |
+
* @return string
|
58 |
+
*/
|
59 |
+
protected function _getSchedule()
|
60 |
+
{
|
61 |
+
$data = Mage::app()->getRequest()->getPost('groups');
|
62 |
+
|
63 |
+
$frequency = !empty($data['settings']['fields']['cron_frequency']['value'])?
|
64 |
+
$data['settings']['fields']['cron_frequency']['value']:
|
65 |
+
0;
|
66 |
+
$hours = !empty($data['settings']['fields']['cron_hours']['value'])?
|
67 |
+
$data['settings']['fields']['cron_hours']['value']:
|
68 |
+
0;
|
69 |
+
|
70 |
+
$schedule = "0 $hours ";
|
71 |
+
|
72 |
+
switch ($frequency) {
|
73 |
+
case Jewelerslink_Jewelryshare_Model_Adminhtml_System_Source_Cron_Frequency::DAILY:
|
74 |
+
$schedule .= "* * *";
|
75 |
+
break;
|
76 |
+
case Jewelerslink_Jewelryshare_Model_Adminhtml_System_Source_Cron_Frequency::WEEKLY:
|
77 |
+
$schedule .= "* * 1";
|
78 |
+
break;
|
79 |
+
case Jewelerslink_Jewelryshare_Model_Adminhtml_System_Source_Cron_Frequency::MONTHLY:
|
80 |
+
$schedule .= "1 * *";
|
81 |
+
break;
|
82 |
+
case Jewelerslink_Jewelryshare_Model_Adminhtml_System_Source_Cron_Frequency::EVERY_MINUTE:
|
83 |
+
$schedule = "0-59 * * * *";
|
84 |
+
break;
|
85 |
+
default:
|
86 |
+
$schedule .= "* */1 *";
|
87 |
+
break;
|
88 |
+
}
|
89 |
+
|
90 |
+
return $schedule;
|
91 |
+
}
|
92 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Resource/Codes.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Thejewelerslink jwshare codes (attribute map) model
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Resource_Codes extends Mage_Core_Model_Resource_Db_Abstract
|
34 |
+
{
|
35 |
+
/**
|
36 |
+
* Class local constructor
|
37 |
+
*/
|
38 |
+
protected function _construct()
|
39 |
+
{
|
40 |
+
return $this->_init('jewelerslink_jewelryshare/jewelryshare_import_codes', 'code_id');
|
41 |
+
}
|
42 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Resource/Codes/Collection.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jewelryshare codes (attribute map) collection
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Resource_Codes_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
|
34 |
+
{
|
35 |
+
/**
|
36 |
+
* Local constructor
|
37 |
+
*
|
38 |
+
*/
|
39 |
+
protected function _construct()
|
40 |
+
{
|
41 |
+
$this->_init('jewelerslink_jewelryshare/codes');
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Fetch attributes to import
|
46 |
+
*
|
47 |
+
* @return array
|
48 |
+
*/
|
49 |
+
public function getImportAttributes()
|
50 |
+
{
|
51 |
+
$this->addFieldToFilter('jewelry_imported', array('eq' => '1'));
|
52 |
+
return $this->_toOptionHash('import_code', 'eav_code');
|
53 |
+
}
|
54 |
+
|
55 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/Model/Resource/Setup.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Thejewelerslink jwshare module setup
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Model_Resource_Setup extends Mage_Catalog_Model_Resource_Setup
|
34 |
+
{
|
35 |
+
}
|
36 |
+
|
app/code/community/Jewelerslink/Jewelryshare/Model/Status.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Model_Status extends Varien_Object
|
4 |
+
{
|
5 |
+
const STATUS_ENABLED = 1;
|
6 |
+
const STATUS_DISABLED = 2;
|
7 |
+
|
8 |
+
static public function getOptionArray()
|
9 |
+
{
|
10 |
+
return array(
|
11 |
+
self::STATUS_ENABLED => Mage::helper('jewelryshare')->__('Enabled'),
|
12 |
+
self::STATUS_DISABLED => Mage::helper('jewelryshare')->__('Disabled')
|
13 |
+
);
|
14 |
+
}
|
15 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/controllers/Adminhtml/Jewelryshare/Codes/GridController.php
ADDED
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jewelryshare attribute map grid controller
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Adminhtml_Jewelryshare_Codes_GridController extends Mage_Adminhtml_Controller_Action
|
34 |
+
{
|
35 |
+
/**
|
36 |
+
* Main index action
|
37 |
+
*
|
38 |
+
*/
|
39 |
+
public function indexAction()
|
40 |
+
{
|
41 |
+
$this->loadLayout();
|
42 |
+
$this->renderLayout();
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Grid action
|
47 |
+
*
|
48 |
+
*/
|
49 |
+
public function gridAction()
|
50 |
+
{
|
51 |
+
$this->loadLayout();
|
52 |
+
$this->getResponse()->setBody($this->getLayout()->createBlock('jewelryshare/adminhtml_list_codes_grid')->toHtml());
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Grid edit form action
|
57 |
+
*
|
58 |
+
*/
|
59 |
+
public function editFormAction()
|
60 |
+
{
|
61 |
+
$this->loadLayout();
|
62 |
+
$this->getResponse()->setBody($this->getLayout()->createBlock('jewelryshare/adminhtml_edit_codes')->toHtml());
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Save grid edit form action
|
67 |
+
*
|
68 |
+
*/
|
69 |
+
public function saveFormAction()
|
70 |
+
{
|
71 |
+
$codeId = $this->getRequest()->getParam('code_id');
|
72 |
+
$response = new Varien_Object();
|
73 |
+
try {
|
74 |
+
$model = Mage::getModel('jewelerslink_jewelryshare/codes');
|
75 |
+
if ($codeId) {
|
76 |
+
$model->load($codeId);
|
77 |
+
}
|
78 |
+
$model->setImportCode($this->getRequest()->getParam('import_code'));
|
79 |
+
$model->setEavCode($this->getRequest()->getParam('eav_code'));
|
80 |
+
$model->setJewelryImported(intval($this->getRequest()->getParam('jewelry_imported')));
|
81 |
+
$model->save();
|
82 |
+
$response->setError(0);
|
83 |
+
} catch(Exception $e) {
|
84 |
+
$response->setError(1);
|
85 |
+
$response->setMessage('Save error');
|
86 |
+
}
|
87 |
+
$this->getResponse()->setBody($response->toJson());
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Codes (attribute map) list for mass action
|
92 |
+
*
|
93 |
+
* @return array
|
94 |
+
*/
|
95 |
+
protected function _getMassActionCodes()
|
96 |
+
{
|
97 |
+
$idList = $this->getRequest()->getParam('code_id');
|
98 |
+
if (!empty($idList)) {
|
99 |
+
$codes = array();
|
100 |
+
foreach ($idList as $id) {
|
101 |
+
$model = Mage::getModel('jewelerslink_jewelryshare/codes');
|
102 |
+
if ($model->load($id)) {
|
103 |
+
array_push($codes, $model);
|
104 |
+
}
|
105 |
+
}
|
106 |
+
return $codes;
|
107 |
+
} else {
|
108 |
+
return array();
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Set imported codes (attribute map) mass action
|
114 |
+
*/
|
115 |
+
public function massEnableAction()
|
116 |
+
{
|
117 |
+
$updatedCodes = 0;
|
118 |
+
foreach ($this->_getMassActionCodes() as $code) {
|
119 |
+
$code->setJewelryImported(1);
|
120 |
+
$code->save();
|
121 |
+
$updatedCodes++;
|
122 |
+
}
|
123 |
+
if ($updatedCodes > 0) {
|
124 |
+
$this->_getSession()->addSuccess(Mage::helper('jewelryshare')->__("%s codes imported", $updatedCodes));
|
125 |
+
}
|
126 |
+
$this->_redirect('*/*/index');
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Set not imported codes (attribute map) mass action
|
131 |
+
*/
|
132 |
+
public function massDisableAction()
|
133 |
+
{
|
134 |
+
$updatedCodes = 0;
|
135 |
+
foreach ($this->_getMassActionCodes() as $code) {
|
136 |
+
$code->setJewelryImported(0);
|
137 |
+
$code->save();
|
138 |
+
$updatedCodes++;
|
139 |
+
}
|
140 |
+
if ($updatedCodes > 0) {
|
141 |
+
$this->_getSession()->addSuccess(Mage::helper('jewelryshare')->__("%s codes not imported", $updatedCodes));
|
142 |
+
}
|
143 |
+
$this->_redirect('*/*/index');
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Delete codes (attribute map) mass action
|
148 |
+
*/
|
149 |
+
public function deleteAction()
|
150 |
+
{
|
151 |
+
$updatedCodes = 0;
|
152 |
+
foreach ($this->_getMassActionCodes() as $code) {
|
153 |
+
$code->delete();
|
154 |
+
$updatedCodes++;
|
155 |
+
}
|
156 |
+
if ($updatedCodes > 0) {
|
157 |
+
$this->_getSession()->addSuccess(Mage::helper('jewelryshare')->__("%s codes deleted", $updatedCodes));
|
158 |
+
}
|
159 |
+
$this->_redirect('*/*/index');
|
160 |
+
}
|
161 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/controllers/Adminhtml/Jewelryshare/Items/GridController.php
ADDED
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category
|
22 |
+
* @package _storage
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* TheJewelerslink jewelryshare product grid controller
|
29 |
+
*
|
30 |
+
* @category Jewelerslink
|
31 |
+
* @package Jewelerslink_Jewelryshare
|
32 |
+
*/
|
33 |
+
class Jewelerslink_Jewelryshare_Adminhtml_Jewelryshare_Items_GridController extends Mage_Adminhtml_Controller_Action
|
34 |
+
{
|
35 |
+
/**
|
36 |
+
* Main index action
|
37 |
+
*/
|
38 |
+
public function indexAction()
|
39 |
+
{
|
40 |
+
$this->loadLayout();
|
41 |
+
$this->renderLayout();
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Grid action
|
46 |
+
*/
|
47 |
+
public function gridAction()
|
48 |
+
{
|
49 |
+
$this->loadLayout();
|
50 |
+
$this->getResponse()->setBody($this->getLayout()->createBlock('jewelryshare/adminhtml_list_items_grid')->toHtml());
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Product list for mass action
|
55 |
+
*
|
56 |
+
* @return array
|
57 |
+
*/
|
58 |
+
protected function _getMassActionProducts()
|
59 |
+
{
|
60 |
+
$idList = $this->getRequest()->getParam('item_id');
|
61 |
+
if (!empty($idList)) {
|
62 |
+
$products = array();
|
63 |
+
foreach ($idList as $id) {
|
64 |
+
$model = Mage::getModel('catalog/product');
|
65 |
+
if ($model->load($id)) {
|
66 |
+
array_push($products, $model);
|
67 |
+
}
|
68 |
+
}
|
69 |
+
return $products;
|
70 |
+
} else {
|
71 |
+
return array();
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Add product to jewelryshare mass action
|
77 |
+
*/
|
78 |
+
public function massEnableAction()
|
79 |
+
{
|
80 |
+
$idList = $this->getRequest()->getParam('item_id');
|
81 |
+
$updateAction = Mage::getModel('catalog/product_action');
|
82 |
+
$attrData = array(
|
83 |
+
'jewelry_imported' => 1
|
84 |
+
);
|
85 |
+
$updatedProducts = count($idList);
|
86 |
+
if ($updatedProducts) {
|
87 |
+
try {
|
88 |
+
$updateAction->updateAttributes($idList, $attrData, Mage::app()->getStore()->getId());
|
89 |
+
//Mage::getModel('jewelerslink_jewelryshare/import')->processImport();
|
90 |
+
$this->_getSession()->addSuccess(Mage::helper('jewelryshare')->__("%s product will be exported in jewelerslink.", $updatedProducts));
|
91 |
+
} catch (Exception $e) {
|
92 |
+
$this->_getSession()->addError(Mage::helper('jewelryshare')->__("Unable to process an export. ") . $e->getMessage());
|
93 |
+
}
|
94 |
+
}
|
95 |
+
$this->_redirect('*/*/index');
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Not add product to jewelryshare mass action
|
100 |
+
*/
|
101 |
+
public function massDisableAction()
|
102 |
+
{
|
103 |
+
/*$updatedProducts = 0;
|
104 |
+
foreach ($this->_getMassActionProducts() as $product) {
|
105 |
+
$product->setIsImported(0);
|
106 |
+
$product->save();
|
107 |
+
$updatedProducts++;
|
108 |
+
}*/
|
109 |
+
$idList = $this->getRequest()->getParam('item_id');
|
110 |
+
$updateAction = Mage::getModel('catalog/product_action');
|
111 |
+
$attrData = array(
|
112 |
+
'jewelry_imported' => 0
|
113 |
+
);
|
114 |
+
$updatedProducts = count($idList);
|
115 |
+
|
116 |
+
if ($updatedProducts) {
|
117 |
+
|
118 |
+
try {
|
119 |
+
$updateAction->updateAttributes($idList, $attrData, Mage::app()->getStore()->getId());
|
120 |
+
//Mage::getModel('jewelerslink_jewelryshare/import')->processImport();
|
121 |
+
$this->_getSession()->addSuccess(Mage::helper('jewelryshare')->__("%s product(s) will not be exported in jewelerslink.", $updatedProducts));
|
122 |
+
} catch (Exception $e) {
|
123 |
+
$this->_getSession()->addError(Mage::helper('jewelryshare')->__("Unable to process an export. ") . $e->getMessage());
|
124 |
+
}
|
125 |
+
|
126 |
+
}
|
127 |
+
$this->_redirect('*/*/index');
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Export products to jewelerslink mass action
|
132 |
+
*/
|
133 |
+
public function massJwExportAction()
|
134 |
+
{
|
135 |
+
$idList = $this->getRequest()->getParam('item_id');
|
136 |
+
$updateAction = Mage::getModel('catalog/product_action');
|
137 |
+
$attrData = array(
|
138 |
+
'jewelry_imported' => 1
|
139 |
+
);
|
140 |
+
$updatedProducts = count($idList);
|
141 |
+
|
142 |
+
if ($updatedProducts) {
|
143 |
+
try {
|
144 |
+
$updateAction->updateAttributes($idList, $attrData, Mage::app()->getStore()->getId());
|
145 |
+
Mage::getModel('jewelerslink_jewelryshare/import')->processImport();
|
146 |
+
$this->_getSession()->addSuccess(Mage::helper('jewelryshare')->__("%s product in jewelerslink.", $updatedProducts));
|
147 |
+
} catch (Exception $e) {
|
148 |
+
$this->_getSession()->addError(Mage::helper('jewelryshare')->__("Unable to process an import. ") . $e->getMessage());
|
149 |
+
}
|
150 |
+
}
|
151 |
+
$this->_redirect('*/*/index');
|
152 |
+
}
|
153 |
+
|
154 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/controllers/Adminhtml/JewelryshareController.php
ADDED
@@ -0,0 +1,1179 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Jewelerslink_Jewelryshare_Adminhtml_JewelryshareController extends Mage_Adminhtml_Controller_action
|
4 |
+
{
|
5 |
+
|
6 |
+
protected function _initAction() {
|
7 |
+
$this->loadLayout()
|
8 |
+
->_setActiveMenu('jewelryshare/items')
|
9 |
+
->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
|
10 |
+
|
11 |
+
return $this;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function indexAction() {
|
15 |
+
$this->_initAction()
|
16 |
+
->renderLayout();
|
17 |
+
}
|
18 |
+
|
19 |
+
public function editAction() {
|
20 |
+
$id = $this->getRequest()->getParam('id');
|
21 |
+
$model = Mage::getModel('jewelryshare/jewelryshare')->load($id);
|
22 |
+
|
23 |
+
if ($model->getId() || $id == 0) {
|
24 |
+
$data = Mage::getSingleton('adminhtml/session')->getFormData(true);
|
25 |
+
if (!empty($data)) {
|
26 |
+
$model->setData($data);
|
27 |
+
}
|
28 |
+
|
29 |
+
Mage::register('jewelryshare_data', $model);
|
30 |
+
|
31 |
+
$this->loadLayout();
|
32 |
+
$this->_setActiveMenu('jewelryshare/items');
|
33 |
+
|
34 |
+
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
|
35 |
+
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
|
36 |
+
|
37 |
+
$this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
|
38 |
+
|
39 |
+
$this->_addContent($this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit'))
|
40 |
+
->_addLeft($this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit_tabs'));
|
41 |
+
|
42 |
+
$this->renderLayout();
|
43 |
+
} else {
|
44 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('jewelryshare')->__('Item does not exist'));
|
45 |
+
$this->_redirect('*/*/');
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
|
50 |
+
public function importFormAction() {
|
51 |
+
|
52 |
+
$data = Mage::getSingleton('adminhtml/session')->getFormData(true);
|
53 |
+
if (!empty($data)) {
|
54 |
+
$model->setData($data);
|
55 |
+
}
|
56 |
+
|
57 |
+
Mage::register('jewelryshare_data', $model);
|
58 |
+
|
59 |
+
$this->loadLayout();
|
60 |
+
$this->_setActiveMenu('jewelryshare/items');
|
61 |
+
|
62 |
+
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
|
63 |
+
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
|
64 |
+
|
65 |
+
$this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
|
66 |
+
|
67 |
+
$this->_addContent($this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit'))
|
68 |
+
->_addLeft($this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_edit_tabs'));
|
69 |
+
|
70 |
+
$this->renderLayout();
|
71 |
+
|
72 |
+
}
|
73 |
+
|
74 |
+
public function newAction() {
|
75 |
+
$this->_forward('edit');
|
76 |
+
}
|
77 |
+
|
78 |
+
public function saveAction() {
|
79 |
+
try
|
80 |
+
{
|
81 |
+
$resource = Mage::getConfig()->getNode('global/resources')->asArray();
|
82 |
+
$magento_db = $resource['default_setup']['connection']['host'];
|
83 |
+
$mdb_user = $resource['default_setup']['connection']['username'];
|
84 |
+
$mdb_passwd = $resource['default_setup']['connection']['password'];
|
85 |
+
$mdb_name = $resource['default_setup']['connection']['dbname'];
|
86 |
+
$magento_connection = @mysql_connect($magento_db, $mdb_user, $mdb_passwd);
|
87 |
+
|
88 |
+
if (!$magento_connection)
|
89 |
+
{
|
90 |
+
die('Unable to connect to the database');
|
91 |
+
}
|
92 |
+
@mysql_select_db($mdb_name, $magento_connection) or die ("Database not found.");
|
93 |
+
|
94 |
+
$priceTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_priceincrease');
|
95 |
+
mysql_query("TRUNCATE TABLE $priceTable");
|
96 |
+
|
97 |
+
for($i = 1; $i<1000; $i++)
|
98 |
+
{
|
99 |
+
if(isset($_REQUEST['multiline_0-'.$i]) && ($_REQUEST['multiline_0-'.$i] != '')) {
|
100 |
+
$price_from_0 = $_REQUEST['multiline_0-'.$i];
|
101 |
+
$price_to_1 = $_REQUEST['multiline_1-'.$i];
|
102 |
+
$price_increase_percent = $_REQUEST['multiline_2-'.$i];
|
103 |
+
$price_increase_2 = $_REQUEST['multiline_2-'.$i]/100;
|
104 |
+
$price_to_increase_3 = 1 + $price_increase_2;
|
105 |
+
|
106 |
+
$query_insert_1 = "INSERT INTO $priceTable SET price_from = ".$price_from_0.", price_to = ".$price_to_1.", price_increase = ".$price_increase_percent;
|
107 |
+
mysql_query($query_insert_1) or die(mysql_error());
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
$vendorTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_vendor');
|
112 |
+
mysql_query("TRUNCATE TABLE $vendorTable");
|
113 |
+
|
114 |
+
for($j = 0; $j<1000; $j++)
|
115 |
+
{
|
116 |
+
if(isset($_REQUEST['vendor_1-'.$j]) && ($_REQUEST['vendor_1-'.$j] != '')) {
|
117 |
+
$vendor_name = $_REQUEST['vendor_1-'.$j];
|
118 |
+
$vendor_id = $_REQUEST['vendor_2-'.$j];
|
119 |
+
$query_insert = "INSERT INTO $vendorTable SET vendor_name = '".$vendor_name."', vendor_id = '".$vendor_id."'";
|
120 |
+
mysql_query($query_insert) or die(mysql_error());
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
Mage::getSingleton("adminhtml/session")->addSuccess("Rules Saved.");
|
125 |
+
$this->_redirect("*/*/importForm");
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
catch (Exception $e) {
|
129 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
130 |
+
$this->_redirect("*/*/importForm");
|
131 |
+
return;
|
132 |
+
}
|
133 |
+
|
134 |
+
}
|
135 |
+
|
136 |
+
public function deleteDir($dirPath) {
|
137 |
+
|
138 |
+
if (! is_dir($dirPath)) {
|
139 |
+
throw new InvalidArgumentException("$dirPath must be a directory");
|
140 |
+
}
|
141 |
+
if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
|
142 |
+
$dirPath .= '/';
|
143 |
+
}
|
144 |
+
$files = glob($dirPath . '*', GLOB_MARK);
|
145 |
+
foreach ($files as $file) {
|
146 |
+
if (is_dir($file)) {
|
147 |
+
self::deleteDir($file);
|
148 |
+
} else {
|
149 |
+
unlink($file);
|
150 |
+
}
|
151 |
+
}
|
152 |
+
rmdir($dirPath);
|
153 |
+
}
|
154 |
+
|
155 |
+
public function getJwCustomerId() {
|
156 |
+
try
|
157 |
+
{
|
158 |
+
$username = Mage::getStoreConfig('jewelryshare/user_detail/ideal_username');
|
159 |
+
$password = Mage::getStoreConfig('jewelryshare/user_detail/ideal_password');
|
160 |
+
|
161 |
+
$ch = curl_init();
|
162 |
+
$timeout = 5;
|
163 |
+
curl_setopt($ch,CURLOPT_URL,"http://www.jewelerslink.com/jewelry/index/getjwId");
|
164 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
|
165 |
+
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
|
166 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>$username,"password"=>$password));
|
167 |
+
$data = curl_exec($ch);
|
168 |
+
curl_close($ch);
|
169 |
+
//echo $data;
|
170 |
+
|
171 |
+
if($data == "Invalid Login") {
|
172 |
+
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("adminhtml")->__("Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail"));
|
173 |
+
$this->_redirect("*/*/importForm");
|
174 |
+
return;
|
175 |
+
|
176 |
+
} else {
|
177 |
+
//echo $data; exit;
|
178 |
+
return $data;
|
179 |
+
}
|
180 |
+
|
181 |
+
}
|
182 |
+
catch (Exception $e) {
|
183 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
184 |
+
$this->_redirect("*/*/importForm");
|
185 |
+
return;
|
186 |
+
}
|
187 |
+
}
|
188 |
+
|
189 |
+
/**
|
190 |
+
* List import codes (attribute map) model
|
191 |
+
*
|
192 |
+
* @return mixed
|
193 |
+
*/
|
194 |
+
protected function _getImportAttributes()
|
195 |
+
{
|
196 |
+
$attributes = Mage::getResourceModel('jewelerslink_jewelryshare/codes_collection')->getImportAttributes();
|
197 |
+
return $attributes;
|
198 |
+
}
|
199 |
+
|
200 |
+
public function getImportCSVAction() {
|
201 |
+
try
|
202 |
+
{
|
203 |
+
$resource = Mage::getConfig()->getNode('global/resources')->asArray();
|
204 |
+
$magento_db = $resource['default_setup']['connection']['host'];
|
205 |
+
$mdb_user = $resource['default_setup']['connection']['username'];
|
206 |
+
$mdb_passwd = $resource['default_setup']['connection']['password'];
|
207 |
+
$mdb_name = $resource['default_setup']['connection']['dbname'];
|
208 |
+
$magento_connection = @mysql_connect($magento_db, $mdb_user, $mdb_passwd);
|
209 |
+
|
210 |
+
if (!$magento_connection)
|
211 |
+
{
|
212 |
+
die('Unable to connect to the database');
|
213 |
+
}
|
214 |
+
@mysql_select_db($mdb_name, $magento_connection) or die ("Database not found.");
|
215 |
+
|
216 |
+
$vendorTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_vendor');
|
217 |
+
$select_vendor = 'select * from `'.$vendorTable.'`';
|
218 |
+
$result = mysql_query($select_vendor);
|
219 |
+
while($row = mysql_fetch_array($result))
|
220 |
+
{
|
221 |
+
$vendorArray[] = $row['vendor_name'];
|
222 |
+
}
|
223 |
+
|
224 |
+
$attributes = $this->_getImportAttributes();
|
225 |
+
$mapped_attributes = array_keys($attributes);
|
226 |
+
//echo "<pre>";print_r($mapped_attributes); exit;
|
227 |
+
$mapped_string = json_encode($mapped_attributes);
|
228 |
+
|
229 |
+
$username = Mage::getStoreConfig('jewelryshare/user_detail/ideal_username');
|
230 |
+
$password = Mage::getStoreConfig('jewelryshare/user_detail/ideal_password');
|
231 |
+
|
232 |
+
$data_string = json_encode($vendorArray);
|
233 |
+
|
234 |
+
$ch = curl_init();
|
235 |
+
$timeout = 5;
|
236 |
+
curl_setopt($ch,CURLOPT_URL,"http://www.jewelerslink.com/jewelry/index/getjson");
|
237 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
|
238 |
+
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
|
239 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>$username,"password"=>$password,"vendors"=>$data_string,"attributes"=>$mapped_string));
|
240 |
+
$data = curl_exec($ch);
|
241 |
+
curl_close($ch);
|
242 |
+
//echo $data; exit;
|
243 |
+
|
244 |
+
if($data == "Invalid Login") {
|
245 |
+
|
246 |
+
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("adminhtml")->__("Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail"));
|
247 |
+
$this->_redirect("*/*/importForm");
|
248 |
+
return;
|
249 |
+
|
250 |
+
} else {
|
251 |
+
//echo $data;
|
252 |
+
|
253 |
+
$existingProducts = Mage::getModel('catalog/product')->getCollection();
|
254 |
+
$existingProducts->addAttributeToSelect('sku');
|
255 |
+
|
256 |
+
$existSkus = array();
|
257 |
+
foreach($existingProducts as $exists) {
|
258 |
+
$existSkus[] = $exists->getSku();
|
259 |
+
}
|
260 |
+
//echo "<pre>"; print_r($existSkus); exit;
|
261 |
+
$jsonData = json_decode($data, true);
|
262 |
+
|
263 |
+
$mappedHeader = array();
|
264 |
+
foreach($jsonData[0] as $key => $header){
|
265 |
+
|
266 |
+
if($header == 'sku') {
|
267 |
+
$skuKey = $key;
|
268 |
+
}
|
269 |
+
if(isset($attributes[$header]) && $attributes[$header] != "") {
|
270 |
+
$mappedHeader[] = $attributes[$header];
|
271 |
+
} else {
|
272 |
+
$mappedHeader[] = $header;
|
273 |
+
}
|
274 |
+
}
|
275 |
+
$jsonData[0] = $mappedHeader;
|
276 |
+
//echo "<pre>"; print_r($jsonData);exit;
|
277 |
+
|
278 |
+
$csvData = array();
|
279 |
+
foreach($jsonData as $csvRow) {
|
280 |
+
if(!in_array($csvRow[$skuKey], $existSkus)) {
|
281 |
+
$csvData[] = $csvRow;
|
282 |
+
}
|
283 |
+
}
|
284 |
+
|
285 |
+
//echo "<pre>"; print_r($csvData);exit;
|
286 |
+
|
287 |
+
$priceTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_priceincrease');
|
288 |
+
$query = "SELECT * FROM $priceTable";
|
289 |
+
$result= mysql_query($query);
|
290 |
+
while($row = mysql_fetch_array($result)) {
|
291 |
+
$price_from[] = $row['price_from'];
|
292 |
+
$price_to[] = $row['price_to'];
|
293 |
+
$price_increase_per = $row['price_increase']/100 ;
|
294 |
+
$price_increase_final[] = 1 + $price_increase_per ;
|
295 |
+
}
|
296 |
+
|
297 |
+
|
298 |
+
// Apply Price Increase before saving csv because we are not storing jewelry to database like diamonds.
|
299 |
+
$row=0;
|
300 |
+
$csvRowCnt = 1;
|
301 |
+
foreach($csvData as $column) {
|
302 |
+
|
303 |
+
if($row==0){
|
304 |
+
|
305 |
+
foreach($column as $key => $field) {
|
306 |
+
//$priceFields = array('price','special_price','tier_price','msrp','g14_price','g18_price','plat_price','pall_price');
|
307 |
+
if($field == 'price') {
|
308 |
+
$priceKey = $key;
|
309 |
+
}
|
310 |
+
if($field == 'special_price') {
|
311 |
+
$special_priceKey = $key;
|
312 |
+
}
|
313 |
+
if($field == 'tier_price') {
|
314 |
+
$tier_priceKey = $key;
|
315 |
+
}
|
316 |
+
if($field == 'msrp') {
|
317 |
+
$msrpKey = $key;
|
318 |
+
}
|
319 |
+
if($field == 'g14_price') {
|
320 |
+
$g14_priceKey = $key;
|
321 |
+
}
|
322 |
+
if($field == 'g18_price') {
|
323 |
+
$g18_priceKey = $key;
|
324 |
+
}
|
325 |
+
if($field == 'plat_price') {
|
326 |
+
$plat_priceKey = $key;
|
327 |
+
}
|
328 |
+
if($field == 'pall_price') {
|
329 |
+
$pall_priceKey = $key;
|
330 |
+
}
|
331 |
+
}
|
332 |
+
|
333 |
+
$row++;
|
334 |
+
continue;
|
335 |
+
}
|
336 |
+
|
337 |
+
if(isset($priceKey) && $priceKey != "") {
|
338 |
+
$price = $column[$priceKey];
|
339 |
+
if($price == 0) $price = "";
|
340 |
+
$csvData[$csvRowCnt][$priceKey] = $price;
|
341 |
+
}
|
342 |
+
|
343 |
+
if(isset($special_priceKey) && $special_priceKey != "") {
|
344 |
+
$special_price = $column[$special_priceKey];
|
345 |
+
if($special_price == 0) $special_price = "";
|
346 |
+
$csvData[$csvRowCnt][$special_priceKey] = $special_price;
|
347 |
+
}
|
348 |
+
|
349 |
+
if(isset($tier_priceKey) && $tier_priceKey != "") {
|
350 |
+
$tier_price = $column[$tier_priceKey];
|
351 |
+
if($tier_price == 0) $tier_price = "";
|
352 |
+
$csvData[$csvRowCnt][$tier_priceKey] = $tier_price;
|
353 |
+
}
|
354 |
+
|
355 |
+
if(isset($msrpKey) && $msrpKey != "") {
|
356 |
+
$msrp = $column[$msrpKey];
|
357 |
+
if($msrp == 0) $msrp = "";
|
358 |
+
$csvData[$csvRowCnt][$msrpKey] = $msrp;
|
359 |
+
}
|
360 |
+
|
361 |
+
if(isset($g14_priceKey) && $g14_priceKey != "") {
|
362 |
+
$g14_price = $column[$g14_priceKey];
|
363 |
+
if($g14_price == 0) $g14_price = "";
|
364 |
+
$csvData[$csvRowCnt][$g14_priceKey] = $g14_price;
|
365 |
+
}
|
366 |
+
|
367 |
+
if(isset($g18_priceKey) && $g18_priceKey != "") {
|
368 |
+
$g18_price = $column[$g18_priceKey];
|
369 |
+
if($g18_price == 0) $g18_price = "";
|
370 |
+
$csvData[$csvRowCnt][$g18_priceKey] = $g18_price;
|
371 |
+
}
|
372 |
+
|
373 |
+
if(isset($plat_priceKey) && $plat_priceKey != "") {
|
374 |
+
$plat_price = $column[$plat_priceKey];
|
375 |
+
if($plat_price == 0) $plat_price = "";
|
376 |
+
$csvData[$csvRowCnt][$plat_priceKey] = $plat_price;
|
377 |
+
}
|
378 |
+
|
379 |
+
if(isset($pall_priceKey) && $pall_priceKey != "") {
|
380 |
+
$pall_price = $column[$pall_priceKey];
|
381 |
+
if($pall_price == 0) $pall_price = "";
|
382 |
+
$csvData[$csvRowCnt][$pall_priceKey] = $pall_price;
|
383 |
+
}
|
384 |
+
|
385 |
+
for($i=0; $i < count($price_increase_final); $i++) {
|
386 |
+
|
387 |
+
if($price_increase_final[$i] != '') {
|
388 |
+
|
389 |
+
if(isset($priceKey) && $priceKey != "") {
|
390 |
+
if(($price >= $price_from[$i]) && ($price <= $price_to[$i]) && ($price != 0) && ($price != '')) {
|
391 |
+
$incPrice = $price*$price_increase_final[$i];
|
392 |
+
//echo $incPrice."==".$csvRowCnt."<br>";
|
393 |
+
$csvData[$csvRowCnt][$priceKey] = $incPrice;
|
394 |
+
}
|
395 |
+
}
|
396 |
+
|
397 |
+
if(isset($special_priceKey) && $special_priceKey != "") {
|
398 |
+
if(($special_price >= $price_from[$i]) && ($special_price <= $price_to[$i]) && ($special_price != 0) && ($special_price != '')) {
|
399 |
+
|
400 |
+
$incSpPrice = $special_price*$price_increase_final[$i];
|
401 |
+
//echo $incSpPrice."==".$csvRowCnt."<br>";
|
402 |
+
$csvData[$csvRowCnt][$special_priceKey] = $incSpPrice;
|
403 |
+
}
|
404 |
+
}
|
405 |
+
|
406 |
+
if(isset($tier_priceKey) && $tier_priceKey != "") {
|
407 |
+
if(($tier_price >= $price_from[$i]) && ($tier_price <= $price_to[$i]) && ($tier_price != 0) && ($tier_price != '')) {
|
408 |
+
|
409 |
+
$incTrPrice = $tier_price*$price_increase_final[$i];
|
410 |
+
//echo $incTrPrice."==".$csvRowCnt."<br>";
|
411 |
+
$csvData[$csvRowCnt][$tier_priceKey] = $incTrPrice;
|
412 |
+
}
|
413 |
+
}
|
414 |
+
|
415 |
+
if(isset($msrpKey) && $msrpKey != "") {
|
416 |
+
if(($msrp >= $price_from[$i]) && ($msrp <= $price_to[$i]) && ($msrp != 0) && ($msrp != '')) {
|
417 |
+
|
418 |
+
$incMSPrice = $msrp*$price_increase_final[$i];
|
419 |
+
//echo $incMSPrice."==".$csvRowCnt."<br>";
|
420 |
+
$csvData[$csvRowCnt][$msrpKey] = $incMSPrice;
|
421 |
+
}
|
422 |
+
}
|
423 |
+
|
424 |
+
if(isset($g14_priceKey) && $g14_priceKey != "") {
|
425 |
+
if(($g14_price >= $price_from[$i]) && ($g14_price <= $price_to[$i]) && ($g14_price != 0) && ($g14_price != '')) {
|
426 |
+
|
427 |
+
$incG14Price = $g14_price*$price_increase_final[$i];
|
428 |
+
//echo $incG14Price."==".$csvRowCnt."<br>";
|
429 |
+
$csvData[$csvRowCnt][$g14_priceKey] = $incG14Price;
|
430 |
+
}
|
431 |
+
}
|
432 |
+
|
433 |
+
if(isset($g18_priceKey) && $g18_priceKey != "") {
|
434 |
+
if(($g18_price >= $price_from[$i]) && ($g18_price <= $price_to[$i]) && ($g18_price != 0) && ($g18_price != '')) {
|
435 |
+
|
436 |
+
$incG18Price = $g18_price*$price_increase_final[$i];
|
437 |
+
//echo $incG18Price."==".$csvRowCnt."<br>";
|
438 |
+
$csvData[$csvRowCnt][$g18_priceKey] = $incG18Price;
|
439 |
+
}
|
440 |
+
}
|
441 |
+
|
442 |
+
if(isset($plat_priceKey) && $plat_priceKey != "") {
|
443 |
+
if(($plat_price >= $price_from[$i]) && ($plat_price <= $price_to[$i]) && ($plat_price != 0) && ($plat_price != '')) {
|
444 |
+
|
445 |
+
$incPtPrice = $plat_price*$price_increase_final[$i];
|
446 |
+
//echo $incPtPrice."==".$csvRowCnt."<br>";
|
447 |
+
$csvData[$csvRowCnt][$plat_priceKey] = $incPtPrice;
|
448 |
+
}
|
449 |
+
}
|
450 |
+
|
451 |
+
if(isset($pall_priceKey) && $pall_priceKey != "") {
|
452 |
+
if(($pall_price >= $price_from[$i]) && ($pall_price <= $price_to[$i]) && ($pall_price != 0) && ($pall_price != '')) {
|
453 |
+
|
454 |
+
$incPlPrice = $pall_price*$price_increase_final[$i];
|
455 |
+
//echo $incPlPrice."==".$csvRowCnt."<br>";
|
456 |
+
$csvData[$csvRowCnt][$pall_priceKey] = $incPlPrice;
|
457 |
+
}
|
458 |
+
}
|
459 |
+
|
460 |
+
}
|
461 |
+
}
|
462 |
+
|
463 |
+
$csvRowCnt++;
|
464 |
+
}
|
465 |
+
//echo "<pre>"; print_r($csvData);exit;
|
466 |
+
|
467 |
+
$path = Mage::getBaseDir("var") . DS ."import" . DS;
|
468 |
+
$fp = fopen($path."jewelerslink_import.csv", "w") or die("can't open file");
|
469 |
+
foreach ($csvData as $fields) {
|
470 |
+
fputcsv($fp, $fields);
|
471 |
+
}
|
472 |
+
fclose($fp);
|
473 |
+
|
474 |
+
//$this->getImagesAction();
|
475 |
+
|
476 |
+
Mage::getSingleton("adminhtml/session")->addSuccess(count($csvData)." New Products CSV Created from Jewelerslink Inventory.");
|
477 |
+
$this->_redirect("*/*/importForm");
|
478 |
+
}
|
479 |
+
|
480 |
+
}
|
481 |
+
catch (Exception $e) {
|
482 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
483 |
+
$this->_redirect("*/*/importForm");
|
484 |
+
return;
|
485 |
+
}
|
486 |
+
}
|
487 |
+
|
488 |
+
public function getUpdateCSVAction() {
|
489 |
+
try
|
490 |
+
{
|
491 |
+
$resource = Mage::getConfig()->getNode('global/resources')->asArray();
|
492 |
+
$magento_db = $resource['default_setup']['connection']['host'];
|
493 |
+
$mdb_user = $resource['default_setup']['connection']['username'];
|
494 |
+
$mdb_passwd = $resource['default_setup']['connection']['password'];
|
495 |
+
$mdb_name = $resource['default_setup']['connection']['dbname'];
|
496 |
+
$magento_connection = @mysql_connect($magento_db, $mdb_user, $mdb_passwd);
|
497 |
+
|
498 |
+
if (!$magento_connection)
|
499 |
+
{
|
500 |
+
die('Unable to connect to the database');
|
501 |
+
}
|
502 |
+
@mysql_select_db($mdb_name, $magento_connection) or die ("Database not found.");
|
503 |
+
|
504 |
+
$vendorTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_vendor');
|
505 |
+
$select_vendor = 'select * from `'.$vendorTable.'`';
|
506 |
+
$result = mysql_query($select_vendor);
|
507 |
+
while($row = mysql_fetch_array($result))
|
508 |
+
{
|
509 |
+
$vendorArray[] = $row['vendor_name'];
|
510 |
+
}
|
511 |
+
$username = Mage::getStoreConfig('jewelryshare/user_detail/ideal_username');
|
512 |
+
$password = Mage::getStoreConfig('jewelryshare/user_detail/ideal_password');
|
513 |
+
|
514 |
+
$data_string = json_encode($vendorArray);
|
515 |
+
|
516 |
+
$ch = curl_init();
|
517 |
+
$timeout = 5;
|
518 |
+
curl_setopt($ch,CURLOPT_URL,"http://www.jewelerslink.com/jewelry/index/getUpdateJson");
|
519 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
|
520 |
+
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
|
521 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>$username,"password"=>$password,"vendors"=>$data_string));
|
522 |
+
$data = curl_exec($ch);
|
523 |
+
curl_close($ch);
|
524 |
+
//echo $data; exit;
|
525 |
+
|
526 |
+
if($data == "Invalid Login") {
|
527 |
+
|
528 |
+
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("adminhtml")->__("Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail"));
|
529 |
+
$this->_redirect("*/*/importForm");
|
530 |
+
return;
|
531 |
+
|
532 |
+
} else {
|
533 |
+
//echo $data;
|
534 |
+
|
535 |
+
$existingProducts = Mage::getModel('catalog/product')->getCollection();
|
536 |
+
$existingProducts->addAttributeToSelect('sku');
|
537 |
+
|
538 |
+
$existSkus = array();
|
539 |
+
foreach($existingProducts as $exists) {
|
540 |
+
$existSkus[] = $exists->getSku();
|
541 |
+
}
|
542 |
+
//echo "<pre>"; print_r($existSkus); exit;
|
543 |
+
$jsonData = json_decode($data, true);
|
544 |
+
//echo "<pre>"; print_r($jsonData);exit;
|
545 |
+
|
546 |
+
$csvData = array();
|
547 |
+
$rowCnt = 0;
|
548 |
+
foreach($jsonData as $csvRow) {
|
549 |
+
if($rowCnt==0) {
|
550 |
+
$csvData[] = $csvRow;
|
551 |
+
} else {
|
552 |
+
if(in_array($csvRow[2], $existSkus)) {
|
553 |
+
$csvData[] = $csvRow;
|
554 |
+
}
|
555 |
+
}
|
556 |
+
$rowCnt++;
|
557 |
+
}
|
558 |
+
|
559 |
+
//echo "<pre>"; print_r($csvData);exit;
|
560 |
+
|
561 |
+
$attributes = Mage::getResourceModel('jewelerslink_jewelryshare/codes_collection')->getImportAttributes();
|
562 |
+
$attributesKey = array_keys($attributes);
|
563 |
+
$attributesValue = array_values($attributes);
|
564 |
+
//echo "<pre>"; print_r($attributesKey); print_r($attributesValue);print_r($csvData[0]);
|
565 |
+
|
566 |
+
// Below Loop == to map header with attribute & update csv title $csvData[0] (header array)
|
567 |
+
for($i=0; $i<count($csvData[0]); $i++) {
|
568 |
+
|
569 |
+
for($j=0; $j<count($attributesKey); $j++) {
|
570 |
+
|
571 |
+
if(trim($attributesKey[$j]) == trim($csvData[0][$i])) {
|
572 |
+
//echo $attributesKey[$j]." ".$attributesValue[$j]."<br>";
|
573 |
+
$csvData[0][$i] = $attributesValue[$j];
|
574 |
+
break;
|
575 |
+
}
|
576 |
+
}
|
577 |
+
|
578 |
+
}
|
579 |
+
//echo "<pre>"; print_r($csvData);exit;
|
580 |
+
$priceTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_priceincrease');
|
581 |
+
$query = "SELECT * FROM $priceTable";
|
582 |
+
$result= mysql_query($query);
|
583 |
+
while($row = mysql_fetch_array($result)) {
|
584 |
+
$price_from[] = $row['price_from'];
|
585 |
+
$price_to[] = $row['price_to'];
|
586 |
+
$price_increase_per = $row['price_increase']/100 ;
|
587 |
+
$price_increase_final[] = 1 + $price_increase_per ;
|
588 |
+
}
|
589 |
+
|
590 |
+
|
591 |
+
// Apply Price Increase before saving csv because we are not storing jewelry to database like diamonds.
|
592 |
+
$row=0;
|
593 |
+
$csvRowCnt = 1;
|
594 |
+
foreach($csvData as $column) {
|
595 |
+
|
596 |
+
if($row==0){
|
597 |
+
$row++;
|
598 |
+
continue;
|
599 |
+
}
|
600 |
+
|
601 |
+
$price = $column[4];
|
602 |
+
if($price == 0) $price = "";
|
603 |
+
$csvData[$csvRowCnt][4] = $price;
|
604 |
+
|
605 |
+
$special_price = $column[5];
|
606 |
+
if($special_price == 0) $special_price = "";
|
607 |
+
$csvData[$csvRowCnt][5] = $special_price;
|
608 |
+
|
609 |
+
$tier_price = $column[6];
|
610 |
+
if($tier_price == 0) $tier_price = "";
|
611 |
+
$csvData[$csvRowCnt][6] = $tier_price;
|
612 |
+
|
613 |
+
$msrp = $column[7];
|
614 |
+
if($msrp == 0) $msrp = "";
|
615 |
+
$csvData[$csvRowCnt][7] = $msrp;
|
616 |
+
|
617 |
+
$g14_price = $column[8];
|
618 |
+
if($g14_price == 0) $g14_price = "";
|
619 |
+
$csvData[$csvRowCnt][8] = $g14_price;
|
620 |
+
|
621 |
+
$g18_price = $column[9];
|
622 |
+
if($g18_price == 0) $g18_price = "";
|
623 |
+
$csvData[$csvRowCnt][9] = $g18_price;
|
624 |
+
|
625 |
+
$plat_price = $column[10];
|
626 |
+
if($plat_price == 0) $plat_price = "";
|
627 |
+
$csvData[$csvRowCnt][10] = $plat_price;
|
628 |
+
|
629 |
+
$pall_price = $column[11];
|
630 |
+
if($pall_price == 0) $pall_price = "";
|
631 |
+
$csvData[$csvRowCnt][11] = $pall_price;
|
632 |
+
|
633 |
+
for($i=0; $i < count($price_increase_final); $i++) {
|
634 |
+
if($price_increase_final[$i] != '') {
|
635 |
+
//$query_update = "UPDATE diamonds_inventory SET totalprice = totalprice*".$price_increase_final[$i]." where cost between ".$price_from[$i]." AND ".$price_to[$i];
|
636 |
+
if(($price >= $price_from[$i]) && ($price <= $price_to[$i]) && ($price != 0) && ($price != '')) {
|
637 |
+
|
638 |
+
$incPrice = $price*$price_increase_final[$i];
|
639 |
+
//echo $incPrice."==".$csvRowCnt."<br>";
|
640 |
+
$csvData[$csvRowCnt][4] = $incPrice;
|
641 |
+
}
|
642 |
+
|
643 |
+
if(($special_price >= $price_from[$i]) && ($special_price <= $price_to[$i]) && ($special_price != 0) && ($special_price != '')) {
|
644 |
+
|
645 |
+
$incSpPrice = $special_price*$price_increase_final[$i];
|
646 |
+
//echo $incSpPrice."==".$csvRowCnt."<br>";
|
647 |
+
$csvData[$csvRowCnt][5] = $incSpPrice;
|
648 |
+
}
|
649 |
+
|
650 |
+
if(($tier_price >= $price_from[$i]) && ($tier_price <= $price_to[$i]) && ($tier_price != 0) && ($tier_price != '')) {
|
651 |
+
|
652 |
+
$incTrPrice = $tier_price*$price_increase_final[$i];
|
653 |
+
//echo $incTrPrice."==".$csvRowCnt."<br>";
|
654 |
+
$csvData[$csvRowCnt][6] = $incTrPrice;
|
655 |
+
}
|
656 |
+
|
657 |
+
if(($msrp >= $price_from[$i]) && ($msrp <= $price_to[$i]) && ($msrp != 0) && ($msrp != '')) {
|
658 |
+
|
659 |
+
$incMSPrice = $msrp*$price_increase_final[$i];
|
660 |
+
//echo $incMSPrice."==".$csvRowCnt."<br>";
|
661 |
+
$csvData[$csvRowCnt][7] = $incMSPrice;
|
662 |
+
}
|
663 |
+
|
664 |
+
if(($g14_price >= $price_from[$i]) && ($g14_price <= $price_to[$i]) && ($g14_price != 0) && ($g14_price != '')) {
|
665 |
+
|
666 |
+
$incG14Price = $g14_price*$price_increase_final[$i];
|
667 |
+
//echo $incG14Price."==".$csvRowCnt."<br>";
|
668 |
+
$csvData[$csvRowCnt][8] = $incG14Price;
|
669 |
+
}
|
670 |
+
|
671 |
+
if(($g18_price >= $price_from[$i]) && ($g18_price <= $price_to[$i]) && ($g18_price != 0) && ($g18_price != '')) {
|
672 |
+
|
673 |
+
$incG18Price = $g18_price*$price_increase_final[$i];
|
674 |
+
//echo $incG18Price."==".$csvRowCnt."<br>";
|
675 |
+
$csvData[$csvRowCnt][9] = $incG18Price;
|
676 |
+
}
|
677 |
+
|
678 |
+
if(($plat_price >= $price_from[$i]) && ($plat_price <= $price_to[$i]) && ($plat_price != 0) && ($plat_price != '')) {
|
679 |
+
|
680 |
+
$incPtPrice = $plat_price*$price_increase_final[$i];
|
681 |
+
//echo $incPtPrice."==".$csvRowCnt."<br>";
|
682 |
+
$csvData[$csvRowCnt][10] = $incPtPrice;
|
683 |
+
}
|
684 |
+
|
685 |
+
if(($pall_price >= $price_from[$i]) && ($pall_price <= $price_to[$i]) && ($pall_price != 0) && ($pall_price != '')) {
|
686 |
+
|
687 |
+
$incPlPrice = $pall_price*$price_increase_final[$i];
|
688 |
+
//echo $incPlPrice."==".$csvRowCnt."<br>";
|
689 |
+
$csvData[$csvRowCnt][11] = $incPlPrice;
|
690 |
+
}
|
691 |
+
|
692 |
+
}
|
693 |
+
}
|
694 |
+
|
695 |
+
$csvRowCnt++;
|
696 |
+
}
|
697 |
+
//echo "<pre>"; print_r($csvData);exit;
|
698 |
+
|
699 |
+
$path = Mage::getBaseDir("var") . DS ."import" . DS;
|
700 |
+
$fp = fopen($path."jewelerslink_update.csv", "w") or die("can't open file");
|
701 |
+
foreach ($csvData as $fields) {
|
702 |
+
fputcsv($fp, $fields);
|
703 |
+
}
|
704 |
+
fclose($fp);
|
705 |
+
|
706 |
+
//$this->getImagesAction();
|
707 |
+
|
708 |
+
Mage::getSingleton("adminhtml/session")->addSuccess(count($csvData)." Update Products CSV Created from Jewelerslink Inventory.");
|
709 |
+
$this->_redirect("*/*/importForm");
|
710 |
+
}
|
711 |
+
|
712 |
+
}
|
713 |
+
catch (Exception $e) {
|
714 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
715 |
+
$this->_redirect("*/*/importForm");
|
716 |
+
return;
|
717 |
+
}
|
718 |
+
}
|
719 |
+
|
720 |
+
public function getImagesAction() {
|
721 |
+
|
722 |
+
try {
|
723 |
+
$path = Mage::getBaseDir("var") . DS ."import" . DS;
|
724 |
+
$fp = fopen($path."jewelerslink_import.csv",'r') or die("can't open file");
|
725 |
+
$row=0;
|
726 |
+
$count = 1;
|
727 |
+
while($csv_line = fgetcsv($fp,1024))
|
728 |
+
{
|
729 |
+
//echo "<pre>";print_r($csv_line);
|
730 |
+
if($row==0){
|
731 |
+
|
732 |
+
foreach($csv_line as $key => $field) {
|
733 |
+
|
734 |
+
if($field == 'image') {
|
735 |
+
$imageKey = $key;
|
736 |
+
}
|
737 |
+
if($field == 'small_image') {
|
738 |
+
$small_imageKey = $key;
|
739 |
+
}
|
740 |
+
if($field == 'thumbnail') {
|
741 |
+
$thumbnailKey = $key;
|
742 |
+
}
|
743 |
+
if($field == 'gallery') {
|
744 |
+
$galleryKey = $key;
|
745 |
+
}
|
746 |
+
|
747 |
+
}
|
748 |
+
|
749 |
+
$row++;
|
750 |
+
continue;
|
751 |
+
}
|
752 |
+
|
753 |
+
if(isset($imageKey) && $imageKey != "") {
|
754 |
+
// Main Image Save
|
755 |
+
$imagePath = str_replace("/jewelerslink","",$csv_line[$imageKey]);
|
756 |
+
$httpUrl = "http://images.jewelerslink.com/jewelry/".$imagePath;
|
757 |
+
$imageName = basename($imagePath);
|
758 |
+
$localpath = getcwd()."/media/import/jewelerslink/".str_replace($imageName,"",$imagePath)."/";
|
759 |
+
if(!is_dir($localpath)) mkdir($localpath,0777,true);
|
760 |
+
if(!file_exists($localpath.$imageName))
|
761 |
+
copy($httpUrl, $localpath.$imageName);
|
762 |
+
}
|
763 |
+
|
764 |
+
if(isset($small_imageKey) && $small_imageKey != "") {
|
765 |
+
// Small Image Save
|
766 |
+
$simagePath = str_replace("/jewelerslink","",$csv_line[$small_imageKey]);
|
767 |
+
$shttpUrl = "http://images.jewelerslink.com/jewelry/".$simagePath;
|
768 |
+
$simageName = basename($simagePath);
|
769 |
+
$slocalpath = getcwd()."/media/import/jewelerslink/".str_replace($simageName,"",$simagePath)."/";
|
770 |
+
if(!is_dir($slocalpath)) mkdir($slocalpath,0777,true);
|
771 |
+
if(!file_exists($slocalpath.$simageName))
|
772 |
+
copy($shttpUrl, $slocalpath.$simageName);
|
773 |
+
}
|
774 |
+
|
775 |
+
if(isset($thumbnailKey) && $thumbnailKey != "") {
|
776 |
+
// Thumbnail Image Save
|
777 |
+
$timagePath = str_replace("/jewelerslink","",$csv_line[$thumbnailKey]);
|
778 |
+
$thttpUrl = "http://images.jewelerslink.com/jewelry/".$timagePath;
|
779 |
+
$timageName = basename($timagePath);
|
780 |
+
$tlocalpath = getcwd()."/media/import/jewelerslink/".str_replace($timageName,"",$timagePath)."/";
|
781 |
+
if(!is_dir($tlocalpath)) mkdir($tlocalpath,0777,true);
|
782 |
+
if(!file_exists($tlocalpath.$timageName))
|
783 |
+
copy($thttpUrl, $tlocalpath.$timageName);
|
784 |
+
}
|
785 |
+
|
786 |
+
if(isset($galleryKey) && $galleryKey != "") {
|
787 |
+
// Galley Images Save
|
788 |
+
$galleryArray = explode(";",$csv_line[$galleryKey]);
|
789 |
+
|
790 |
+
foreach($galleryArray as $galleryImg) {
|
791 |
+
$gimagePath = str_replace("/jewelerslink","",$galleryImg);
|
792 |
+
$ghttpUrl = "http://images.jewelerslink.com/jewelry/".$gimagePath;
|
793 |
+
$gimageName = basename($gimagePath);
|
794 |
+
$glocalpath = getcwd()."/media/import/jewelerslink/".str_replace($gimageName,"",$gimagePath)."/";
|
795 |
+
if(!is_dir($glocalpath)) mkdir($glocalpath,0777,true);
|
796 |
+
if(!file_exists($glocalpath.$gimageName))
|
797 |
+
copy($ghttpUrl, $glocalpath.$gimageName);
|
798 |
+
}
|
799 |
+
}
|
800 |
+
|
801 |
+
}
|
802 |
+
|
803 |
+
Mage::getSingleton("adminhtml/session")->addSuccess("Images written successfully.");
|
804 |
+
$this->_redirect("*/*/importForm");
|
805 |
+
return;
|
806 |
+
|
807 |
+
}
|
808 |
+
catch (Exception $e) {
|
809 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
810 |
+
$this->_redirect("*/*/importForm");
|
811 |
+
return;
|
812 |
+
}
|
813 |
+
}
|
814 |
+
|
815 |
+
public function importJewelryAction() {
|
816 |
+
|
817 |
+
$url = $this->getUrl("*idealAdmin/system_convert_gui/run/", array("id" => 3, "files" => "jewelerslink_import.csv"));
|
818 |
+
$url = str_replace("*idealAdmin","idealAdmin", $url);
|
819 |
+
?>
|
820 |
+
<script type="text/javascript">
|
821 |
+
window.location = "<?php echo $url ?>";
|
822 |
+
</script>
|
823 |
+
<?php
|
824 |
+
}
|
825 |
+
|
826 |
+
public function updateJewelryAction() {
|
827 |
+
|
828 |
+
$url = $this->getUrl("*idealAdmin/system_convert_gui/run/", array("id" => 3, "files" => "jewelerslink_update.csv"));
|
829 |
+
$url = str_replace("*idealAdmin","idealAdmin", $url);
|
830 |
+
?>
|
831 |
+
<script type="text/javascript">
|
832 |
+
window.location = "<?php echo $url ?>";
|
833 |
+
</script>
|
834 |
+
<?php
|
835 |
+
}
|
836 |
+
|
837 |
+
public function disableOlderAction() {
|
838 |
+
try
|
839 |
+
{
|
840 |
+
$resource = Mage::getConfig()->getNode('global/resources')->asArray();
|
841 |
+
$magento_db = $resource['default_setup']['connection']['host'];
|
842 |
+
$mdb_user = $resource['default_setup']['connection']['username'];
|
843 |
+
$mdb_passwd = $resource['default_setup']['connection']['password'];
|
844 |
+
$mdb_name = $resource['default_setup']['connection']['dbname'];
|
845 |
+
$magento_connection = @mysql_connect($magento_db, $mdb_user, $mdb_passwd);
|
846 |
+
|
847 |
+
if (!$magento_connection)
|
848 |
+
{
|
849 |
+
die('Unable to connect to the database');
|
850 |
+
}
|
851 |
+
@mysql_select_db($mdb_name, $magento_connection) or die ("Database not found.");
|
852 |
+
|
853 |
+
$vendorTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_vendor');
|
854 |
+
$select_vendor = 'select * from `'.$vendorTable.'`';
|
855 |
+
$result = mysql_query($select_vendor);
|
856 |
+
while($row = mysql_fetch_array($result))
|
857 |
+
{
|
858 |
+
$vendorArray[] = $row['vendor_name'];
|
859 |
+
}
|
860 |
+
$username = Mage::getStoreConfig('jewelryshare/user_detail/ideal_username');
|
861 |
+
$password = Mage::getStoreConfig('jewelryshare/user_detail/ideal_password');
|
862 |
+
|
863 |
+
$data_string = json_encode($vendorArray);
|
864 |
+
|
865 |
+
$ch = curl_init();
|
866 |
+
$timeout = 5;
|
867 |
+
curl_setopt($ch,CURLOPT_URL,"http://www.jewelerslink.com/jewelry/index/getUpdateJson");
|
868 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
|
869 |
+
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
|
870 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>$username,"password"=>$password,"vendors"=>$data_string));
|
871 |
+
$data = curl_exec($ch);
|
872 |
+
curl_close($ch);
|
873 |
+
//echo $data; exit;
|
874 |
+
|
875 |
+
if($data == "Invalid Login") {
|
876 |
+
|
877 |
+
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("adminhtml")->__("Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail"));
|
878 |
+
$this->_redirect("*/*/importForm");
|
879 |
+
return;
|
880 |
+
|
881 |
+
} else {
|
882 |
+
//echo $data;
|
883 |
+
$jsonData = json_decode($data, true);
|
884 |
+
$jwlProducts = array();
|
885 |
+
foreach($jsonData as $data) {
|
886 |
+
if($data[2] != 'sku')
|
887 |
+
$jwlProducts[] = $data[2];
|
888 |
+
}
|
889 |
+
//echo "<pre>"; print_r($jwlProducts);exit;
|
890 |
+
|
891 |
+
$existingProducts = Mage::getModel('catalog/product')->getCollection();
|
892 |
+
//$existingProducts->addAttributeToSelect('sku');
|
893 |
+
|
894 |
+
$disable = 0;
|
895 |
+
foreach($existingProducts as $exists) {
|
896 |
+
|
897 |
+
$sku = $exists->getSku();
|
898 |
+
if(!in_array($sku, $jwlProducts)) {
|
899 |
+
|
900 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
|
901 |
+
if($product) {
|
902 |
+
$status = $product->getStatus();
|
903 |
+
if($status != 2) {
|
904 |
+
$product->setStatus(2);
|
905 |
+
$product->save();
|
906 |
+
}
|
907 |
+
}
|
908 |
+
$disable++;
|
909 |
+
}
|
910 |
+
}
|
911 |
+
//echo $disable; exit;
|
912 |
+
|
913 |
+
Mage::getSingleton("adminhtml/session")->addSuccess($disable." Products not in jewelrslink has been disabled.");
|
914 |
+
$this->_redirect("*/*/importForm");
|
915 |
+
}
|
916 |
+
|
917 |
+
}
|
918 |
+
catch (Exception $e) {
|
919 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
920 |
+
$this->_redirect("*/*/importForm");
|
921 |
+
return;
|
922 |
+
}
|
923 |
+
}
|
924 |
+
|
925 |
+
public function restorePriceIncreaseAction() {
|
926 |
+
|
927 |
+
try
|
928 |
+
{
|
929 |
+
$resource = Mage::getConfig()->getNode('global/resources')->asArray();
|
930 |
+
$magento_db = $resource['default_setup']['connection']['host'];
|
931 |
+
$mdb_user = $resource['default_setup']['connection']['username'];
|
932 |
+
$mdb_passwd = $resource['default_setup']['connection']['password'];
|
933 |
+
$mdb_name = $resource['default_setup']['connection']['dbname'];
|
934 |
+
$magento_connection = @mysql_connect($magento_db, $mdb_user, $mdb_passwd);
|
935 |
+
|
936 |
+
if (!$magento_connection)
|
937 |
+
{
|
938 |
+
die('Unable to connect to the database');
|
939 |
+
}
|
940 |
+
@mysql_select_db($mdb_name, $magento_connection) or die ("Database not found.");
|
941 |
+
|
942 |
+
$priceTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_priceincrease');
|
943 |
+
mysql_query("TRUNCATE TABLE $priceTable");
|
944 |
+
|
945 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 100000.01, price_to = 10000000, price_increase = 0")or die(mysql_error());
|
946 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 50000.01, price_to = 100000, price_increase = 0")or die(mysql_error());
|
947 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 30000.01, price_to = 50000, price_increase = 0")or die(mysql_error());
|
948 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 25000.01, price_to = 30000, price_increase = 0")or die(mysql_error());
|
949 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 20000.01, price_to = 25000, price_increase = 0")or die(mysql_error());
|
950 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 15000.01, price_to = 20000, price_increase = 0")or die(mysql_error());
|
951 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 10000.01, price_to = 15000, price_increase = 0")or die(mysql_error());
|
952 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 5000.01, price_to = 10000, price_increase = 0")or die(mysql_error());
|
953 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 3500.01, price_to = 5000, price_increase = 0")or die(mysql_error());
|
954 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 2000.01, price_to = 3500, price_increase = 0")or die(mysql_error());
|
955 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 1000.01, price_to = 2000, price_increase = 0")or die(mysql_error());
|
956 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 500.01, price_to = 1000, price_increase = 0")or die(mysql_error());
|
957 |
+
mysql_query("INSERT INTO $priceTable SET price_from = 1, price_to = 500, price_increase = 0")or die(mysql_error());
|
958 |
+
|
959 |
+
Mage::getSingleton("adminhtml/session")->addSuccess("Price Increase Restored to default values.");
|
960 |
+
$this->_redirect("*/*/importForm");
|
961 |
+
|
962 |
+
}
|
963 |
+
catch (Exception $e) {
|
964 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
965 |
+
$this->_redirect("*/*/importForm");
|
966 |
+
return;
|
967 |
+
}
|
968 |
+
}
|
969 |
+
|
970 |
+
public function getImagesActionOld() { // Not Using this
|
971 |
+
|
972 |
+
$vendors = $this->getvendorIdsAction();
|
973 |
+
|
974 |
+
if(count($vendors)>0) {
|
975 |
+
|
976 |
+
foreach($vendors as $vendorId) {
|
977 |
+
|
978 |
+
//echo $vendorId; exit;
|
979 |
+
|
980 |
+
$ftp_host = "images.jewelerslink.com";
|
981 |
+
$ftp_username = "images@jewelerslink.com";
|
982 |
+
$ftp_password = "jewelerslink123";
|
983 |
+
|
984 |
+
// path to remote file
|
985 |
+
$server_file = "/jewelry/".$vendorId."/".$vendorId.".zip";
|
986 |
+
|
987 |
+
$localDir = getcwd()."/media/import/jewelerslink/".$vendorId."/";
|
988 |
+
$local_file = $localDir.$vendorId.".zip";
|
989 |
+
|
990 |
+
if (is_dir($localDir)) $this->deleteDir($localDir);
|
991 |
+
if (!is_dir($localDir)) mkdir($localDir);
|
992 |
+
|
993 |
+
// set up basic connection
|
994 |
+
$conn_id = ftp_connect($ftp_host);
|
995 |
+
// login with username and password
|
996 |
+
$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
|
997 |
+
|
998 |
+
// try to download $server_file and save to $local_file
|
999 |
+
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
|
1000 |
+
|
1001 |
+
$zip = new ZipArchive();
|
1002 |
+
$x = $zip->open($local_file);
|
1003 |
+
if ($x === true) {
|
1004 |
+
$zip->extractTo($localDir); // change this to the correct site path
|
1005 |
+
$zip->close();
|
1006 |
+
unlink($local_file);
|
1007 |
+
}
|
1008 |
+
Mage::getSingleton("adminhtml/session")->addSuccess("Images written successfully.");
|
1009 |
+
} else {
|
1010 |
+
Mage::getSingleton("adminhtml/session")->addError("There was a problem getting images.");
|
1011 |
+
}
|
1012 |
+
// close the connection
|
1013 |
+
ftp_close($conn_id);
|
1014 |
+
}
|
1015 |
+
|
1016 |
+
} else {
|
1017 |
+
Mage::getSingleton("adminhtml/session")->addError("No Vendors found.");
|
1018 |
+
}
|
1019 |
+
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
public function getvendorIdsAction() { // Not Using this
|
1023 |
+
|
1024 |
+
try
|
1025 |
+
{
|
1026 |
+
$resource = Mage::getConfig()->getNode('global/resources')->asArray();
|
1027 |
+
$magento_db = $resource['default_setup']['connection']['host'];
|
1028 |
+
$mdb_user = $resource['default_setup']['connection']['username'];
|
1029 |
+
$mdb_passwd = $resource['default_setup']['connection']['password'];
|
1030 |
+
$mdb_name = $resource['default_setup']['connection']['dbname'];
|
1031 |
+
$magento_connection = @mysql_connect($magento_db, $mdb_user, $mdb_passwd);
|
1032 |
+
|
1033 |
+
if (!$magento_connection)
|
1034 |
+
{
|
1035 |
+
die('Unable to connect to the database');
|
1036 |
+
}
|
1037 |
+
@mysql_select_db($mdb_name, $magento_connection) or die ("Database not found.");
|
1038 |
+
|
1039 |
+
$vendorTable = Mage::getSingleton('core/resource')->getTableName('jewelryshare_vendor');
|
1040 |
+
$select_vendor = 'select * from `'.$vendorTable.'`';
|
1041 |
+
$result = mysql_query($select_vendor);
|
1042 |
+
while($row = mysql_fetch_array($result))
|
1043 |
+
{
|
1044 |
+
$vendorArray[] = $row['vendor_name'];
|
1045 |
+
}
|
1046 |
+
$username = Mage::getStoreConfig('jewelryshare/user_detail/ideal_username');
|
1047 |
+
$password = Mage::getStoreConfig('jewelryshare/user_detail/ideal_password');
|
1048 |
+
|
1049 |
+
$data_string = json_encode($vendorArray);
|
1050 |
+
|
1051 |
+
$ch = curl_init();
|
1052 |
+
$timeout = 5;
|
1053 |
+
curl_setopt($ch,CURLOPT_URL,"http://www.jewelerslink.com/jewelry/index/getvendorIdsjson");
|
1054 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
|
1055 |
+
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
|
1056 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>$username,"password"=>$password,"vendors"=>$data_string));
|
1057 |
+
$data = curl_exec($ch);
|
1058 |
+
curl_close($ch);
|
1059 |
+
//echo $data;
|
1060 |
+
|
1061 |
+
if($data == "Invalid Login") {
|
1062 |
+
|
1063 |
+
Mage::getSingleton("adminhtml/session")->addError(Mage::helper("adminhtml")->__("Unauthenticate Login, Go to ( System > Configuration > Jewelry Config ) and enter Jewelerslink Login Detail"));
|
1064 |
+
$this->_redirect("*/*/importForm");
|
1065 |
+
return;
|
1066 |
+
|
1067 |
+
} else {
|
1068 |
+
|
1069 |
+
$vendorData = json_decode($data, true);
|
1070 |
+
//echo "<pre>"; print_r($vendorData);exit;
|
1071 |
+
return $vendorData;
|
1072 |
+
}
|
1073 |
+
|
1074 |
+
}
|
1075 |
+
catch (Exception $e) {
|
1076 |
+
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
|
1077 |
+
$this->_redirect("*/*/importForm");
|
1078 |
+
return;
|
1079 |
+
}
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
public function deleteAction() {
|
1083 |
+
if( $this->getRequest()->getParam('id') > 0 ) {
|
1084 |
+
try {
|
1085 |
+
$model = Mage::getModel('jewelryshare/jewelryshare');
|
1086 |
+
|
1087 |
+
$model->setId($this->getRequest()->getParam('id'))
|
1088 |
+
->delete();
|
1089 |
+
|
1090 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
|
1091 |
+
$this->_redirect('*/*/');
|
1092 |
+
} catch (Exception $e) {
|
1093 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
1094 |
+
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
|
1095 |
+
}
|
1096 |
+
}
|
1097 |
+
$this->_redirect('*/*/');
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
public function massDeleteAction() {
|
1101 |
+
$jewelryshareIds = $this->getRequest()->getParam('jewelryshare');
|
1102 |
+
if(!is_array($jewelryshareIds)) {
|
1103 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
|
1104 |
+
} else {
|
1105 |
+
try {
|
1106 |
+
foreach ($jewelryshareIds as $jewelryshareId) {
|
1107 |
+
$jewelryshare = Mage::getModel('jewelryshare/jewelryshare')->load($jewelryshareId);
|
1108 |
+
$jewelryshare->delete();
|
1109 |
+
}
|
1110 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(
|
1111 |
+
Mage::helper('adminhtml')->__(
|
1112 |
+
'Total of %d record(s) were successfully deleted', count($jewelryshareIds)
|
1113 |
+
)
|
1114 |
+
);
|
1115 |
+
} catch (Exception $e) {
|
1116 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
1117 |
+
}
|
1118 |
+
}
|
1119 |
+
$this->_redirect('*/*/index');
|
1120 |
+
}
|
1121 |
+
|
1122 |
+
public function massStatusAction()
|
1123 |
+
{
|
1124 |
+
$jewelryshareIds = $this->getRequest()->getParam('jewelryshare');
|
1125 |
+
if(!is_array($jewelryshareIds)) {
|
1126 |
+
Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
|
1127 |
+
} else {
|
1128 |
+
try {
|
1129 |
+
foreach ($jewelryshareIds as $jewelryshareId) {
|
1130 |
+
$jewelryshare = Mage::getSingleton('jewelryshare/jewelryshare')
|
1131 |
+
->load($jewelryshareId)
|
1132 |
+
->setStatus($this->getRequest()->getParam('status'))
|
1133 |
+
->setIsMassupdate(true)
|
1134 |
+
->save();
|
1135 |
+
}
|
1136 |
+
$this->_getSession()->addSuccess(
|
1137 |
+
$this->__('Total of %d record(s) were successfully updated', count($jewelryshareIds))
|
1138 |
+
);
|
1139 |
+
} catch (Exception $e) {
|
1140 |
+
$this->_getSession()->addError($e->getMessage());
|
1141 |
+
}
|
1142 |
+
}
|
1143 |
+
$this->_redirect('*/*/index');
|
1144 |
+
}
|
1145 |
+
|
1146 |
+
public function exportCsvAction()
|
1147 |
+
{
|
1148 |
+
$fileName = 'jewelryshare.csv';
|
1149 |
+
$content = $this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_grid')
|
1150 |
+
->getCsv();
|
1151 |
+
|
1152 |
+
$this->_sendUploadResponse($fileName, $content);
|
1153 |
+
}
|
1154 |
+
|
1155 |
+
public function exportXmlAction()
|
1156 |
+
{
|
1157 |
+
$fileName = 'jewelryshare.xml';
|
1158 |
+
$content = $this->getLayout()->createBlock('jewelryshare/adminhtml_jewelryshare_grid')
|
1159 |
+
->getXml();
|
1160 |
+
|
1161 |
+
$this->_sendUploadResponse($fileName, $content);
|
1162 |
+
}
|
1163 |
+
|
1164 |
+
protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream')
|
1165 |
+
{
|
1166 |
+
$response = $this->getResponse();
|
1167 |
+
$response->setHeader('HTTP/1.1 200 OK','');
|
1168 |
+
$response->setHeader('Pragma', 'public', true);
|
1169 |
+
$response->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true);
|
1170 |
+
$response->setHeader('Content-Disposition', 'attachment; filename='.$fileName);
|
1171 |
+
$response->setHeader('Last-Modified', date('r'));
|
1172 |
+
$response->setHeader('Accept-Ranges', 'bytes');
|
1173 |
+
$response->setHeader('Content-Length', strlen($content));
|
1174 |
+
$response->setHeader('Content-type', $contentType);
|
1175 |
+
$response->setBody($content);
|
1176 |
+
$response->sendResponse();
|
1177 |
+
die;
|
1178 |
+
}
|
1179 |
+
}
|
app/code/community/Jewelerslink/Jewelryshare/etc/config.xml
ADDED
@@ -0,0 +1,372 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Jewelerslink_Jewelryshare>
|
5 |
+
<version>0.1.0</version>
|
6 |
+
</Jewelerslink_Jewelryshare>
|
7 |
+
</modules>
|
8 |
+
<frontend>
|
9 |
+
<routers>
|
10 |
+
<jewelryshare>
|
11 |
+
<use>standard</use>
|
12 |
+
<args>
|
13 |
+
<module>Jewelerslink_Jewelryshare</module>
|
14 |
+
<frontName>jewelryshare</frontName>
|
15 |
+
</args>
|
16 |
+
</jewelryshare>
|
17 |
+
</routers>
|
18 |
+
<layout>
|
19 |
+
<updates>
|
20 |
+
<jewelryshare>
|
21 |
+
<file>jewelryshare.xml</file>
|
22 |
+
</jewelryshare>
|
23 |
+
</updates>
|
24 |
+
</layout>
|
25 |
+
</frontend>
|
26 |
+
<admin>
|
27 |
+
<routers>
|
28 |
+
<jewelryshare>
|
29 |
+
<use>admin</use>
|
30 |
+
<args>
|
31 |
+
<module>Jewelerslink_Jewelryshare</module>
|
32 |
+
<frontName>jewelryshare</frontName>
|
33 |
+
</args>
|
34 |
+
</jewelryshare>
|
35 |
+
</routers>
|
36 |
+
</admin>
|
37 |
+
<stores>
|
38 |
+
<admin>
|
39 |
+
<design>
|
40 |
+
<theme>
|
41 |
+
<default>jewelerslink</default>
|
42 |
+
</theme>
|
43 |
+
</design>
|
44 |
+
</admin>
|
45 |
+
</stores>
|
46 |
+
<adminhtml>
|
47 |
+
<menu>
|
48 |
+
<jewelryshare module="jewelryshare">
|
49 |
+
<title>Jewelerslink</title>
|
50 |
+
<sort_order>200</sort_order>
|
51 |
+
<children>
|
52 |
+
<jewelery module="jewelryshare">
|
53 |
+
<title>Jewelery</title>
|
54 |
+
<sort_order>1</sort_order>
|
55 |
+
<children>
|
56 |
+
<jewelryshare_attributes module="jewelryshare">
|
57 |
+
<title>Jewelery Attributes</title>
|
58 |
+
<sort_order>0</sort_order>
|
59 |
+
<action>jewelryshare/adminhtml_jewelryshare_codes_grid/index</action>
|
60 |
+
</jewelryshare_attributes>
|
61 |
+
<jewelryshare_export module="jewelryshare">
|
62 |
+
<title>Export Jewelery</title>
|
63 |
+
<sort_order>1</sort_order>
|
64 |
+
<action>jewelryshare/adminhtml_jewelryshare_items_grid/index</action>
|
65 |
+
</jewelryshare_export>
|
66 |
+
<jewelryshare_import module="jewelryshare">
|
67 |
+
<title>Import Jewelery</title>
|
68 |
+
<sort_order>2</sort_order>
|
69 |
+
<action>jewelryshare/adminhtml_jewelryshare/importForm/</action>
|
70 |
+
</jewelryshare_import>
|
71 |
+
<jewelryshare_settings module="jewelryshare">
|
72 |
+
<title>Settings</title>
|
73 |
+
<sort_order>3</sort_order>
|
74 |
+
<action>adminhtml/system_config/edit/section/jewelryshare/</action>
|
75 |
+
</jewelryshare_settings>
|
76 |
+
</children>
|
77 |
+
</jewelery>
|
78 |
+
</children>
|
79 |
+
</jewelryshare>
|
80 |
+
</menu>
|
81 |
+
<acl>
|
82 |
+
<resources>
|
83 |
+
<all>
|
84 |
+
<title>Allow Everything</title>
|
85 |
+
</all>
|
86 |
+
<admin>
|
87 |
+
<children>
|
88 |
+
<Jewelerslink_Jewelryshare>
|
89 |
+
<title>Jewelryshare Module</title>
|
90 |
+
<sort_order>10</sort_order>
|
91 |
+
</Jewelerslink_Jewelryshare>
|
92 |
+
<system>
|
93 |
+
<children>
|
94 |
+
<config>
|
95 |
+
<children>
|
96 |
+
<jewelryshare translate="title" module="jewelryshare">
|
97 |
+
<title>Jewelryshare Section</title>
|
98 |
+
</jewelryshare>
|
99 |
+
</children>
|
100 |
+
</config>
|
101 |
+
</children>
|
102 |
+
</system>
|
103 |
+
</children>
|
104 |
+
|
105 |
+
</admin>
|
106 |
+
</resources>
|
107 |
+
</acl>
|
108 |
+
<layout>
|
109 |
+
<updates>
|
110 |
+
<jewelryshare>
|
111 |
+
<file>jewelryshare.xml</file>
|
112 |
+
</jewelryshare>
|
113 |
+
</updates>
|
114 |
+
</layout>
|
115 |
+
</adminhtml>
|
116 |
+
<global>
|
117 |
+
<models>
|
118 |
+
|
119 |
+
<jewelerslink_jewelryshare>
|
120 |
+
<class>Jewelerslink_Jewelryshare_Model</class>
|
121 |
+
<resourceModel>jewelerslink_jewelryshare_resource</resourceModel>
|
122 |
+
</jewelerslink_jewelryshare>
|
123 |
+
<jewelerslink_jewelryshare_resource>
|
124 |
+
<class>Jewelerslink_Jewelryshare_Model_Resource</class>
|
125 |
+
<deprecatedNode>jewelerslink_jewelryshare_mysql4</deprecatedNode>
|
126 |
+
<entities>
|
127 |
+
<jewelryshare_import_codes>
|
128 |
+
<table>jewelryshare_import_codes</table>
|
129 |
+
</jewelryshare_import_codes>
|
130 |
+
</entities>
|
131 |
+
</jewelerslink_jewelryshare_resource>
|
132 |
+
</models>
|
133 |
+
<resources>
|
134 |
+
<jewelryshare_setup>
|
135 |
+
<setup>
|
136 |
+
<module>Jewelerslink_Jewelryshare</module>
|
137 |
+
<class>Jewelerslink_Jewelryshare_Model_Resource_Setup</class>
|
138 |
+
</setup>
|
139 |
+
<connection>
|
140 |
+
<use>core_setup</use>
|
141 |
+
</connection>
|
142 |
+
</jewelryshare_setup>
|
143 |
+
<jewelryshare_write>
|
144 |
+
<connection>
|
145 |
+
<use>core_write</use>
|
146 |
+
</connection>
|
147 |
+
</jewelryshare_write>
|
148 |
+
<jewelryshare_read>
|
149 |
+
<connection>
|
150 |
+
<use>core_read</use>
|
151 |
+
</connection>
|
152 |
+
</jewelryshare_read>
|
153 |
+
</resources>
|
154 |
+
<blocks>
|
155 |
+
<jewelryshare>
|
156 |
+
<class>Jewelerslink_Jewelryshare_Block</class>
|
157 |
+
</jewelryshare>
|
158 |
+
</blocks>
|
159 |
+
<helpers>
|
160 |
+
<jewelryshare>
|
161 |
+
<class>Jewelerslink_Jewelryshare_Helper</class>
|
162 |
+
</jewelryshare>
|
163 |
+
</helpers>
|
164 |
+
</global>
|
165 |
+
|
166 |
+
<jewelerslink_jewelryshare_attributes>
|
167 |
+
<sku>
|
168 |
+
<required>1</required>
|
169 |
+
<label>sku</label>
|
170 |
+
</sku>
|
171 |
+
<name>
|
172 |
+
<required>1</required>
|
173 |
+
<label>name</label>
|
174 |
+
</name>
|
175 |
+
<description>
|
176 |
+
<required>1</required>
|
177 |
+
<label>description</label>
|
178 |
+
</description>
|
179 |
+
<short_description>
|
180 |
+
<required>1</required>
|
181 |
+
<label>short_description</label>
|
182 |
+
</short_description>
|
183 |
+
<price>
|
184 |
+
<required>0</required>
|
185 |
+
<label>price</label>
|
186 |
+
</price>
|
187 |
+
<special_price>
|
188 |
+
<required>0</required>
|
189 |
+
<label>special_price</label>
|
190 |
+
</special_price>
|
191 |
+
<tier_price>
|
192 |
+
<required>0</required>
|
193 |
+
<label>tier_price</label>
|
194 |
+
</tier_price>
|
195 |
+
<msrp>
|
196 |
+
<required>0</required>
|
197 |
+
<label>msrp</label>
|
198 |
+
</msrp>
|
199 |
+
<g14_price>
|
200 |
+
<required>0</required>
|
201 |
+
<label>g14_price</label>
|
202 |
+
</g14_price>
|
203 |
+
<g18_price>
|
204 |
+
<required>0</required>
|
205 |
+
<label>g18_price</label>
|
206 |
+
</g18_price>
|
207 |
+
<plat_price>
|
208 |
+
<required>0</required>
|
209 |
+
<label>plat_price</label>
|
210 |
+
</plat_price>
|
211 |
+
<pall_price>
|
212 |
+
<required>0</required>
|
213 |
+
<label>pall_price</label>
|
214 |
+
</pall_price>
|
215 |
+
<notes>
|
216 |
+
<required>0</required>
|
217 |
+
<label>notes</label>
|
218 |
+
</notes>
|
219 |
+
<image>
|
220 |
+
<required>0</required>
|
221 |
+
<label>image</label>
|
222 |
+
</image>
|
223 |
+
<small_image>
|
224 |
+
<required>0</required>
|
225 |
+
<label>small_image</label>
|
226 |
+
</small_image>
|
227 |
+
<thumbnail>
|
228 |
+
<required>0</required>
|
229 |
+
<label>thumbnail</label>
|
230 |
+
</thumbnail>
|
231 |
+
<gallery>
|
232 |
+
<required>0</required>
|
233 |
+
<label>gallery</label>
|
234 |
+
</gallery>
|
235 |
+
<video>
|
236 |
+
<required>0</required>
|
237 |
+
<label>video</label>
|
238 |
+
</video>
|
239 |
+
<meta_keyword>
|
240 |
+
<required>0</required>
|
241 |
+
<label>meta_keyword</label>
|
242 |
+
</meta_keyword>
|
243 |
+
<meta_title>
|
244 |
+
<required>0</required>
|
245 |
+
<label>meta_title</label>
|
246 |
+
</meta_title>
|
247 |
+
<meta_description>
|
248 |
+
<required>0</required>
|
249 |
+
<label>meta_description</label>
|
250 |
+
</meta_description>
|
251 |
+
<country_of_manufacture>
|
252 |
+
<required>0</required>
|
253 |
+
<label>country_of_manufacture</label>
|
254 |
+
</country_of_manufacture>
|
255 |
+
<bandwidth>
|
256 |
+
<required>0</required>
|
257 |
+
<label>bandwidth</label>
|
258 |
+
</bandwidth>
|
259 |
+
<ring_height>
|
260 |
+
<required>0</required>
|
261 |
+
<label>ring_height</label>
|
262 |
+
</ring_height>
|
263 |
+
<dimension>
|
264 |
+
<required>0</required>
|
265 |
+
<label>dimension</label>
|
266 |
+
</dimension>
|
267 |
+
<dimension_height>
|
268 |
+
<required>0</required>
|
269 |
+
<label>dimension_height</label>
|
270 |
+
</dimension_height>
|
271 |
+
<dimension_length>
|
272 |
+
<required>0</required>
|
273 |
+
<label>dimension_length</label>
|
274 |
+
</dimension_length>
|
275 |
+
<dimension_width>
|
276 |
+
<required>0</required>
|
277 |
+
<label>dimension_width</label>
|
278 |
+
</dimension_width>
|
279 |
+
<total_diam_weight>
|
280 |
+
<required>0</required>
|
281 |
+
<label>total_diam_weight</label>
|
282 |
+
</total_diam_weight>
|
283 |
+
<total_diam_pcs>
|
284 |
+
<required>0</required>
|
285 |
+
<label>total_diam_pcs</label>
|
286 |
+
</total_diam_pcs>
|
287 |
+
<center_stone_sizes>
|
288 |
+
<required>0</required>
|
289 |
+
<label>center_stone_sizes</label>
|
290 |
+
</center_stone_sizes>
|
291 |
+
<center_size_availability>
|
292 |
+
<required>0</required>
|
293 |
+
<label>center_size_availability</label>
|
294 |
+
</center_size_availability>
|
295 |
+
<center_shape_availability>
|
296 |
+
<required>0</required>
|
297 |
+
<label>center_shape_availability</label>
|
298 |
+
</center_shape_availability>
|
299 |
+
<style>
|
300 |
+
<required>0</required>
|
301 |
+
<label>style</label>
|
302 |
+
</style>
|
303 |
+
<setting>
|
304 |
+
<required>0</required>
|
305 |
+
<label>setting</label>
|
306 |
+
</setting>
|
307 |
+
<manufacturer>
|
308 |
+
<required>0</required>
|
309 |
+
<label>manufacturer</label>
|
310 |
+
</manufacturer>
|
311 |
+
<collections>
|
312 |
+
<required>0</required>
|
313 |
+
<label>collections</label>
|
314 |
+
</collections>
|
315 |
+
<gender>
|
316 |
+
<required>0</required>
|
317 |
+
<label>gender</label>
|
318 |
+
</gender>
|
319 |
+
<center_stone_shapes>
|
320 |
+
<required>0</required>
|
321 |
+
<label>center_stone_shapes</label>
|
322 |
+
</center_stone_shapes>
|
323 |
+
<type>
|
324 |
+
<required>0</required>
|
325 |
+
<label>type</label>
|
326 |
+
</type>
|
327 |
+
<metal_type>
|
328 |
+
<reuired>0</reuired>
|
329 |
+
<label>metal_type</label>
|
330 |
+
</metal_type>
|
331 |
+
<jewelry_type>
|
332 |
+
<reuired>0</reuired>
|
333 |
+
<label>jewelry_type</label>
|
334 |
+
</jewelry_type>
|
335 |
+
<primary_stone>
|
336 |
+
<reuired>0</reuired>
|
337 |
+
<label>primary_stone</label>
|
338 |
+
</primary_stone>
|
339 |
+
<gemstone>
|
340 |
+
<required>0</required>
|
341 |
+
<label>gemstone</label>
|
342 |
+
</gemstone>
|
343 |
+
<average_color>
|
344 |
+
<required>0</required>
|
345 |
+
<label>average_color</label>
|
346 |
+
</average_color>
|
347 |
+
<average_clarity>
|
348 |
+
<required>0</required>
|
349 |
+
<label>average_clarity</label>
|
350 |
+
</average_clarity>
|
351 |
+
<diamond_carat>
|
352 |
+
<required>0</required>
|
353 |
+
<label>diamond_carat</label>
|
354 |
+
</diamond_carat>
|
355 |
+
<weight>
|
356 |
+
<required>0</required>
|
357 |
+
<label>weight</label>
|
358 |
+
</weight>
|
359 |
+
</jewelerslink_jewelryshare_attributes>
|
360 |
+
|
361 |
+
<default>
|
362 |
+
<jewelryshare>
|
363 |
+
<settings>
|
364 |
+
<ftp_server>jewelerslink.com</ftp_server>
|
365 |
+
<ftp_user>csv@jewelerslink.com</ftp_user>
|
366 |
+
<ftp_password>jewelerslink123</ftp_password>
|
367 |
+
<jewelerslinkjwshare_update>1</jewelerslinkjwshare_update>
|
368 |
+
</settings>
|
369 |
+
</jewelryshare>
|
370 |
+
</default>
|
371 |
+
|
372 |
+
</config>
|
app/code/community/Jewelerslink/Jewelryshare/etc/system.xml
ADDED
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category
|
23 |
+
* @package _storage
|
24 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
26 |
+
*/
|
27 |
+
-->
|
28 |
+
<config>
|
29 |
+
<tabs>
|
30 |
+
<jewelerslink translate="label" module="jewelryshare">
|
31 |
+
<label>The Jewelerslink</label>
|
32 |
+
<sort_order>100</sort_order>
|
33 |
+
</jewelerslink>
|
34 |
+
</tabs>
|
35 |
+
<sections>
|
36 |
+
|
37 |
+
<jewelryshare translate="label" module="jewelryshare">
|
38 |
+
<label>Jewelryshare Configuration</label>
|
39 |
+
<tab>jewelerslink</tab>
|
40 |
+
<sort_order>100</sort_order>
|
41 |
+
<show_in_default>1</show_in_default>
|
42 |
+
<show_in_website>1</show_in_website>
|
43 |
+
<show_in_store>1</show_in_store>
|
44 |
+
<groups>
|
45 |
+
<user_detail translate="label">
|
46 |
+
<label>Jewelerslink Login Detail</label>
|
47 |
+
<sort_order>2</sort_order>
|
48 |
+
<show_in_default>1</show_in_default>
|
49 |
+
<show_in_website>1</show_in_website>
|
50 |
+
<fields>
|
51 |
+
<ideal_username translate="label">
|
52 |
+
<label>Jewelerslink Username(Email)</label>
|
53 |
+
<frontend_type>text</frontend_type>
|
54 |
+
<sort_order>1</sort_order>
|
55 |
+
<show_in_default>1</show_in_default>
|
56 |
+
<show_in_website>1</show_in_website>
|
57 |
+
<show_in_store>1</show_in_store>
|
58 |
+
</ideal_username>
|
59 |
+
<ideal_password translate="label">
|
60 |
+
<label>Jewelerslink Password</label>
|
61 |
+
<frontend_type>password</frontend_type>
|
62 |
+
<sort_order>2</sort_order>
|
63 |
+
<show_in_default>1</show_in_default>
|
64 |
+
<show_in_website>1</show_in_website>
|
65 |
+
<show_in_store>1</show_in_store>
|
66 |
+
</ideal_password>
|
67 |
+
</fields>
|
68 |
+
</user_detail>
|
69 |
+
|
70 |
+
<settings translate="label">
|
71 |
+
<label>Export Settings</label>
|
72 |
+
<frontend_type>text</frontend_type>
|
73 |
+
<sort_order>200</sort_order>
|
74 |
+
<show_in_default>1</show_in_default>
|
75 |
+
<show_in_website>1</show_in_website>
|
76 |
+
<show_in_store>1</show_in_store>
|
77 |
+
<fields>
|
78 |
+
<name translate="label">
|
79 |
+
<label>FTP Settings</label>
|
80 |
+
</name>
|
81 |
+
<ftp_server translate="label">
|
82 |
+
<label>FTP Server</label>
|
83 |
+
<frontend_type>text</frontend_type>
|
84 |
+
<sort_order>10</sort_order>
|
85 |
+
<show_in_default>1</show_in_default>
|
86 |
+
<show_in_website>1</show_in_website>
|
87 |
+
<show_in_store>1</show_in_store>
|
88 |
+
</ftp_server>
|
89 |
+
|
90 |
+
<ftp_user translate="label comment">
|
91 |
+
<label>FTP User</label>
|
92 |
+
<frontend_type>text</frontend_type>
|
93 |
+
<sort_order>20</sort_order>
|
94 |
+
<show_in_default>1</show_in_default>
|
95 |
+
<show_in_website>1</show_in_website>
|
96 |
+
<show_in_store>1</show_in_store>
|
97 |
+
<!-- <comment><![CDATA[In order to access your FTP account information, you must first register and verify your store in TheJewelerslink Merchant Center. Click <a href="https://merchant.thefind.com/mc/claim.fhtml">here</a> to get started.]]></comment> -->
|
98 |
+
</ftp_user>
|
99 |
+
<ftp_password translate="label">
|
100 |
+
<label>FTP Password</label>
|
101 |
+
<frontend_type>password</frontend_type>
|
102 |
+
<sort_order>30</sort_order>
|
103 |
+
<show_in_default>1</show_in_default>
|
104 |
+
<show_in_website>1</show_in_website>
|
105 |
+
<show_in_store>1</show_in_store>
|
106 |
+
</ftp_password>
|
107 |
+
|
108 |
+
</fields>
|
109 |
+
</settings>
|
110 |
+
</groups>
|
111 |
+
</jewelryshare>
|
112 |
+
</sections>
|
113 |
+
</config>
|
app/code/community/Jewelerslink/Jewelryshare/sql/jewelryshare_setup/mysql4-install-0.1.0.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Create table 'jewelryshare_import_codes'
|
9 |
+
*/
|
10 |
+
$table = $installer->getConnection()
|
11 |
+
->newTable($installer->getTable('jewelryshare_import_codes'))
|
12 |
+
->addColumn('code_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
|
13 |
+
'identity' => true,
|
14 |
+
'unsigned' => true,
|
15 |
+
'nullable' => false,
|
16 |
+
'primary' => true,
|
17 |
+
), 'Code id')
|
18 |
+
->addColumn('import_code', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
19 |
+
'nullable' => false,
|
20 |
+
), 'Import type')
|
21 |
+
->addColumn('eav_code', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
22 |
+
'nullable' => false,
|
23 |
+
), 'EAV code')
|
24 |
+
->addColumn('jewelry_imported', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
|
25 |
+
'nullable' => false,
|
26 |
+
), 'Is imported')
|
27 |
+
->setComment('Jewelerslink jewelryshare import codes');
|
28 |
+
$installer->getConnection()->createTable($table);
|
29 |
+
|
30 |
+
$this->addAttribute('catalog_product', 'jewelry_imported', array(
|
31 |
+
'group' => 'General',
|
32 |
+
'type' => 'int',
|
33 |
+
'input' => 'select',
|
34 |
+
'label' => 'Publish Jewelery In Jewelerslink',
|
35 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
36 |
+
'visible' => 1,
|
37 |
+
'required' => 0,
|
38 |
+
'visible_on_front' => 0,
|
39 |
+
'is_html_allowed_on_front' => 0,
|
40 |
+
'is_configurable' => 0,
|
41 |
+
'source' => 'eav/entity_attribute_source_boolean',
|
42 |
+
'searchable' => 0,
|
43 |
+
'filterable' => 0,
|
44 |
+
'comparable' => 0,
|
45 |
+
'unique' => false,
|
46 |
+
'user_defined' => false,
|
47 |
+
'is_user_defined' => false,
|
48 |
+
'used_in_product_listing' => true
|
49 |
+
));
|
50 |
+
|
51 |
+
$installer->run("
|
52 |
+
-- DROP TABLE IF EXISTS {$this->getTable('jewelryshare_priceincrease')};
|
53 |
+
CREATE TABLE {$this->getTable('jewelryshare_priceincrease')} (
|
54 |
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
55 |
+
`price_from` varchar(255) NOT NULL,
|
56 |
+
`price_to` varchar(255) NOT NULL,
|
57 |
+
`price_increase` varchar(255) NOT NULL,
|
58 |
+
PRIMARY KEY (`id`)
|
59 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
60 |
+
");
|
61 |
+
|
62 |
+
$installer->run("
|
63 |
+
-- DROP TABLE IF EXISTS {$this->getTable('jewelryshare_vendor')};
|
64 |
+
CREATE TABLE {$this->getTable('jewelryshare_vendor')} (
|
65 |
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
66 |
+
`vendor_name` varchar(255) NOT NULL,
|
67 |
+
`vendor_id` int(11) NOT NULL,
|
68 |
+
PRIMARY KEY (`id`),
|
69 |
+
UNIQUE KEY `id` (`id`)
|
70 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
71 |
+
");
|
72 |
+
|
73 |
+
$installer->endSetup();
|
app/design/adminhtml/default/jewelerslink/layout/jewelryshare.xml
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<jewelryshare_adminhtml_jewelryshare_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="jewelryshare/adminhtml_jewelryshare" name="jewelryshare" />
|
6 |
+
</reference>
|
7 |
+
</jewelryshare_adminhtml_jewelryshare_index>
|
8 |
+
|
9 |
+
<jewelryshare_adminhtml_jewelryshare_codes_grid_index>
|
10 |
+
<reference name="head">
|
11 |
+
<action method="addItem"><type>js</type><name>prototype/window.js</name></action>
|
12 |
+
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
13 |
+
<action method="addItem"><type>js_css</type><name>jewelerslink/jewelerslink.css</name></action>
|
14 |
+
</reference>
|
15 |
+
<reference name="content">
|
16 |
+
<block type="core/template" template="jewelryshare/head/window.phtml" name="head.window" />
|
17 |
+
<block type="jewelryshare/adminhtml_list_codes" name="adminhtml_list_codes" />
|
18 |
+
</reference>
|
19 |
+
</jewelryshare_adminhtml_jewelryshare_codes_grid_index>
|
20 |
+
|
21 |
+
<jewelryshare_adminhtml_jewelryshare_items_grid_index>
|
22 |
+
<reference name="content">
|
23 |
+
<block type="jewelryshare/adminhtml_list_items" name="adminhtml_list_items_grid" />
|
24 |
+
</reference>
|
25 |
+
</jewelryshare_adminhtml_jewelryshare_items_grid_index>
|
26 |
+
|
27 |
+
<jewelryshare_adminhtml_jewelryshare_importForm>
|
28 |
+
<reference name="content">
|
29 |
+
<block type="jewelryshare/adminhtml_jewelryshare" name="jewelryshare" />
|
30 |
+
</reference>
|
31 |
+
</jewelryshare_adminhtml_jewelryshare_importForm>
|
32 |
+
|
33 |
+
</layout>
|
app/etc/modules/Jewelerslink_Jewelryshare.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Jewelerslink_Jewelryshare>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
</Jewelerslink_Jewelryshare>
|
8 |
+
</modules>
|
9 |
+
</config>
|
js/jewelerslink/btn_bg.gif
ADDED
Binary file
|
js/jewelerslink/content_bg.gif
ADDED
Binary file
|
js/jewelerslink/jewelerslink.css
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.dialog { border:1px solid #555; }
|
2 |
+
.dialog .bot { display:none !important; }
|
3 |
+
.overlay_magento { background-color:#000; filter:alpha(opacity=60); -moz-opacity:.6; opacity:.6; -webkit-opacity:.6; }
|
4 |
+
.top.table_window { border-bottom:1px solid #e6e6e6; background:#6a838b url(top_bg.gif) 0 100% repeat-x; }
|
5 |
+
|
6 |
+
.magento_nw { width:6px; height:28px; }
|
7 |
+
.magento_n { height:28px; }
|
8 |
+
.magento_ne { width:6px; height:28px; }
|
9 |
+
|
10 |
+
.magento_w { width:6px; }
|
11 |
+
.magento_e { width:6px; }
|
12 |
+
.magento_w,
|
13 |
+
.magento_e,
|
14 |
+
.magento_content { background: #fafafa url(content_bg.gif) 0 0 repeat-x; }
|
15 |
+
|
16 |
+
.magento_sw { background:#deebf0; width:5px; height:3px; }
|
17 |
+
.magento_s { background:#deebf0; height:3px; }
|
18 |
+
.magento_se,
|
19 |
+
|
20 |
+
.magento_sizer { background:#deebf0; width:5px; height:3px; }
|
21 |
+
.magento_sizer { cursor:se-resize; }
|
22 |
+
|
23 |
+
.magento_close { width:16px; height:16px; background:url(window_close.png) no-repeat 0 0; position:absolute; top:5px; right:7px; cursor:pointer; z-index:1000; }
|
24 |
+
.magento_minimize { width:16px; height:16px; background:url(window_minimize.png) 0 0 no-repeat; position:absolute; top:5px; right:28px; cursor:pointer; z-index:1000; }
|
25 |
+
.magento_maximize { width:16px; height:16px; background:url(window_maximize.png)0 0 no-repeat; position:absolute; top:5px; right:49px; cursor:pointer; z-index:1000; }
|
26 |
+
|
27 |
+
.magento_title { float:left; width:100%; font:bold 12px/28px Arial, Helvetica, sans-serif; color:#fff; text-align:left; }
|
28 |
+
|
29 |
+
.magento_content { overflow:auto; font-size:12px; }
|
30 |
+
.magento_content,
|
31 |
+
.magento_content label { color:#333; font-family:Arial, sans-serif; }
|
32 |
+
|
33 |
+
.magento_buttons { padding:10px; text-align:right; }
|
34 |
+
.magento_buttons input.button { border-width:1px; border-style:solid; border-color:#ed6502 #a04300 #a04300 #ed6502; background:#ffac47 url(btn_bg.gif) 0 100% repeat-x; padding:0 7px 1px 7px; font:bold 12px/18px Arial, Helvetica, sans-serif; color:#fff; cursor:pointer; text-align:center; white-space:nowrap; }
|
35 |
+
|
36 |
+
/* FOR IE */
|
37 |
+
* html .magento_close { background-image:none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/magento/window_maximize.png", sizingMethod="crop"); }
|
38 |
+
* html .magento_minimize { background-image:none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/magento/window_close.png", sizingMethod="crop");}
|
39 |
+
* html .magento_maximize { background-image:none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/magento/window_minimize.png", sizingMethod="crop"); }
|
js/jewelerslink/top_bg.gif
ADDED
Binary file
|
js/jewelerslink/window_close.png
ADDED
Binary file
|
package.xml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>Jewelerslink_Jewelryshare</name>
|
4 |
+
<version>0.1.0</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license>Open Software License (OSL)</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>Share Jewelry Products to Jewelrslink.</summary>
|
10 |
+
<description>Share Jewelry Products to Jewelrslink.
|
11 |
+
Includes importing product from jewerlslink and Exporting products to Jewelerslink with attributes mapping functions.</description>
|
12 |
+
<notes>Share Jewelry Products to Jewelrslink.
|
13 |
+
Includes importing product from jewerlslink and Exporting products to Jewelerslink with attributes mapping functions.</notes>
|
14 |
+
<authors><author><name>John Dorsey</name><user>jewelerslink</user><email>support@idealbrandmarketing.com</email></author></authors>
|
15 |
+
<date>2014-01-30</date>
|
16 |
+
<time>11:36:05</time>
|
17 |
+
<contents><target name="magecommunity"><dir name="Jewelerslink"><dir name="Jewelryshare"><dir name="Block"><dir name="Adminhtml"><dir name="Edit"><dir name="Codes"><dir name="Edit"><file name="Form.php" hash="862f0625803dda26595c8dffea1c00db"/></dir></dir><file name="Codes.php" hash="7622b2901f4fa12ef746d23f5b0f52ef"/></dir><dir name="Jewelryshare"><dir name="Edit"><file name="Form.php" hash="2c1802fc7f6660a99d8fd73ef0bc0c7b"/><dir name="Tab"><file name="Import.php" hash="8846742c307b767b976af6135a71c72a"/><file name="Priceincrease.php" hash="6cd5181396c0bbb62df79cde4ebf1599"/><file name="Update.php" hash="72c7e63d769217d1fd8a86b37970e45b"/><file name="Vendor.php" hash="355e7536bbb62a609e8472ebfebb991e"/></dir><file name="Tabs.php" hash="05912b81eea239ad16b5528104fde50a"/></dir><file name="Edit.php" hash="3878e1bb83b25c789a74e41d35cbab37"/></dir><file name="Jewelryshare.php" hash="ac4e61454f5446c9f71c448e55344b7d"/><dir name="List"><dir name="Codes"><file name="Grid.php" hash="91745a1b7af27c8429ca64d92b9e9a6c"/></dir><file name="Codes.php" hash="b0559a0add7c44382f0c8f0718f5c7d5"/><dir name="Items"><file name="Grid.php" hash="14fac42fe4cfeb73d5d12cd5b5100e95"/></dir><file name="Items.php" hash="01e37c7ee401aa6b80d1ece47bb5c0a8"/></dir></dir><file name="Jewelryshare.php" hash="bbedf7e6b9af83cf30a06ff98847f7f4"/></dir><dir name="Helper"><file name="Data.php" hash="583953d868a0f9e820f642e9316f54a3"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Source"><dir name="Cron"><file name="Frequency.php" hash="157982f145c28e528d9a1baa1474aa9a"/><file name="Hours.php" hash="af3a105daaa3f1b9d12779270e7f7389"/></dir></dir></dir></dir><file name="Codes.php" hash="d3364c4fb3efc5b8c0a9b20e36b19577"/><file name="Import.php" hash="43baefae0ce560c3e86deab89970a066"/><file name="Importcron.php" hash="3e25435df67efa4739943a1ac49b2f4e"/><file name="Jewelryshare.php" hash="1a81cc9320f2862938f3de32b8aef228"/><dir name="Mysql4"><dir name="Codes"><file name="Collection.php" hash="108ffaa4a81851cef0523ad4e69b6a4a"/></dir><file name="Codes.php" hash="369c47bfb299953de7bb589e7c53dfcf"/><dir name="Jewelryshare"><file name="Collection.php" hash="995827e4401121ac018640a0116235c5"/></dir><file name="Jewelryshare.php" hash="c1949083da201ed4c3beb448f6f4a0a1"/><file name="Setup.php" hash="a5e601f2f9bdd74ee4d071f7b44b91d8"/></dir><file name="Observer.php" hash="5aa1d35df5f842dea67ba4f8b5c82913"/><dir name="Resource"><dir name="Codes"><file name="Collection.php" hash="9ae5ee4977f839eae5529430cea149d2"/></dir><file name="Codes.php" hash="d5c4c6d0ea0c53d5c9483e373c46c35d"/><file name="Setup.php" hash="d671e546f292d41e109a0dd05c38f2bb"/></dir><file name="Status.php" hash="0e4ad2aa81885846bea70a33f2742530"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Jewelryshare"><dir name="Codes"><file name="GridController.php" hash="f89b68945ac1593bae82702becb9fe3d"/></dir><dir name="Items"><file name="GridController.php" hash="3b1158d0e36ed1d0a01324bc8b32c1a0"/></dir></dir><file name="JewelryshareController.php" hash="9fa99287f44f697a575b7f2c1bfeb6d1"/></dir></dir><dir name="etc"><file name="config.xml" hash="4f4698ac474ffb0e0ea2e57dabadc4b7"/><file name="system.xml" hash="3fe851581dc7bc721b2a65a1e9de03d7"/></dir><dir name="sql"><dir name="jewelryshare_setup"><file name="mysql4-install-0.1.0.php" hash="cf2b169dc15ab3aacfaef4e6fef5e0f6"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="jewelerslink"><dir name="layout"><file name="jewelryshare.xml" hash="2c882425e9e4d2a1a8b5aea0f7e72aa7"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Jewelerslink_Jewelryshare.xml" hash="90d667cb2838d75a228701dc33f2ec69"/></dir></target><target name="mageweb"><dir><dir name="js"><dir name="jewelerslink"><file name="btn_bg.gif" hash="37c51a4d48a92da9648dcd3ca011039f"/><file name="content_bg.gif" hash="21278ea0da2d4256f4ced96b6080ba2e"/><file name="jewelerslink.css" hash="41a7b0279ce58c53afda35b3c02a0a64"/><file name="top_bg.gif" hash="26f28090de87d64f9b01bf624f89bfe2"/><file name="window_close.png" hash="3af14f053f360bf31f8ba2df73ec7f1e"/></dir></dir></dir></target></contents>
|
18 |
+
<compatible/>
|
19 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
20 |
+
</package>
|