Version Notes
Magento 1.5 version.
Download this release
Release Info
Developer | Antonio Martinez |
Extension | AMartinez_CustomImportExport |
Version | 1.5.010 |
Comparing to | |
See all releases |
Code changes from version 1.5.009 to 1.5.010
- app/code/community/AMartinez/CustomImportExport/Model/Import/Adapter.php +1 -1
- app/code/community/AMartinez/CustomImportExport/Model/Import/Adapter/Csv1.php +41 -17
- app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product.php +25 -21
- app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product/Type/Configurable.php +21 -1
- app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product/Type/Grouped.php +21 -1
- app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product/Type/Simple.php +21 -1
- app/code/community/AMartinez/CustomImportExport/shell/run.php +19 -6
- package.xml +5 -5
- var/customimportexport/test_multiple_stores.csv1 +145 -0
app/code/community/AMartinez/CustomImportExport/Model/Import/Adapter.php
CHANGED
@@ -28,7 +28,7 @@ class AMartinez_CustomImportExport_Model_Import_Adapter extends Mage_ImportExpor
|
|
28 |
Mage::throwException(Mage::helper('importexport')->__('Adapter type must be a non empty string'));
|
29 |
}
|
30 |
$adapterClass = __CLASS__ . '_' . ucfirst(strtolower($type));
|
31 |
-
|
32 |
if (!class_exists($adapterClass, false)) {
|
33 |
$adapterFile = str_replace('_', '/', $adapterClass) . '.php';
|
34 |
if (!@include_once($adapterFile)) {
|
28 |
Mage::throwException(Mage::helper('importexport')->__('Adapter type must be a non empty string'));
|
29 |
}
|
30 |
$adapterClass = __CLASS__ . '_' . ucfirst(strtolower($type));
|
31 |
+
|
32 |
if (!class_exists($adapterClass, false)) {
|
33 |
$adapterFile = str_replace('_', '/', $adapterClass) . '.php';
|
34 |
if (!@include_once($adapterFile)) {
|
app/code/community/AMartinez/CustomImportExport/Model/Import/Adapter/Csv1.php
CHANGED
@@ -36,6 +36,7 @@ class AMartinez_CustomImportExport_Model_Import_Adapter_Csv1 extends Mage_Import
|
|
36 |
*/
|
37 |
protected $_fileHandler;
|
38 |
|
|
|
39 |
protected $_values = array();
|
40 |
protected $_currentOffsetKey = 0;
|
41 |
protected $_maxOffsetKey = 0;
|
@@ -61,6 +62,9 @@ class AMartinez_CustomImportExport_Model_Import_Adapter_Csv1 extends Mage_Import
|
|
61 |
{
|
62 |
$this->_fileHandler = fopen($this->_source, 'r');
|
63 |
$this->rewind();
|
|
|
|
|
|
|
64 |
return $this;
|
65 |
}
|
66 |
|
@@ -73,10 +77,10 @@ class AMartinez_CustomImportExport_Model_Import_Adapter_Csv1 extends Mage_Import
|
|
73 |
{
|
74 |
if ($this->_maxOffsetKey > $this->_currentOffsetKey) {
|
75 |
$this->_currentOffsetKey ++;
|
76 |
-
$this->_setValues(
|
77 |
} else {
|
78 |
$this->_currentRow = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure);
|
79 |
-
$this->_getValues(
|
80 |
}
|
81 |
|
82 |
$this->_currentKey = $this->_currentRow ? $this->_currentKey + 1 : null;
|
@@ -92,8 +96,25 @@ class AMartinez_CustomImportExport_Model_Import_Adapter_Csv1 extends Mage_Import
|
|
92 |
// rewind resource, reset column names, read first row as current
|
93 |
rewind($this->_fileHandler);
|
94 |
$this->_colNames = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
$this->_currentRow = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure);
|
96 |
-
$this->_getValues(
|
97 |
|
98 |
if ($this->_currentRow) {
|
99 |
$this->_currentKey = 0;
|
@@ -117,10 +138,10 @@ class AMartinez_CustomImportExport_Model_Import_Adapter_Csv1 extends Mage_Import
|
|
117 |
$this->rewind();
|
118 |
}
|
119 |
while ($this->_currentRow = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure)) {
|
120 |
-
$this->_getValues(
|
121 |
do {
|
122 |
if (++ $this->_currentKey == $position) {
|
123 |
-
$this->_setValues(
|
124 |
return;
|
125 |
}
|
126 |
} while ($this->_maxOffsetKey > $this->_currentOffsetKey ++);
|
@@ -130,33 +151,36 @@ class AMartinez_CustomImportExport_Model_Import_Adapter_Csv1 extends Mage_Import
|
|
130 |
}
|
131 |
}
|
132 |
|
133 |
-
protected function _getValues(
|
134 |
{
|
135 |
$this->_values = array();
|
136 |
$this->_currentOffsetKey = 0;
|
137 |
$this->_maxOffsetKey = 0;
|
138 |
-
|
139 |
-
foreach ($
|
140 |
{
|
141 |
-
$keyId = array_search($colName, $this->_colNames)
|
142 |
-
|
143 |
-
|
144 |
-
|
|
|
|
|
145 |
}
|
146 |
|
147 |
-
$this->_setValues(
|
148 |
}
|
149 |
|
150 |
-
protected function _setValues(
|
151 |
{
|
152 |
if ($this->_currentOffsetKey > 0) {
|
153 |
-
foreach ($this->_currentRow as $key => $value)
|
|
|
154 |
$this->_currentRow[$key] = "";
|
155 |
}
|
156 |
}
|
157 |
|
158 |
-
foreach ($
|
159 |
-
if ($this->_currentOffsetKey < count($this->_values[$colName]) && $this->_values[$colName][$this->_currentOffsetKey]) {
|
160 |
$keyId = array_search($colName, $this->_colNames);
|
161 |
$this->_currentRow[$keyId] = $this->_values[$colName][$this->_currentOffsetKey];
|
162 |
}
|
36 |
*/
|
37 |
protected $_fileHandler;
|
38 |
|
39 |
+
protected $_multiValuedColNames = array('_store', 'visibility', '_category', '_associated_sku');
|
40 |
protected $_values = array();
|
41 |
protected $_currentOffsetKey = 0;
|
42 |
protected $_maxOffsetKey = 0;
|
62 |
{
|
63 |
$this->_fileHandler = fopen($this->_source, 'r');
|
64 |
$this->rewind();
|
65 |
+
|
66 |
+
echo ":::: " . Mage::helper('importexport')->__("Multivalued column names: ") . implode(',', $this->_multiValuedColNames) . " ::::\n";
|
67 |
+
|
68 |
return $this;
|
69 |
}
|
70 |
|
77 |
{
|
78 |
if ($this->_maxOffsetKey > $this->_currentOffsetKey) {
|
79 |
$this->_currentOffsetKey ++;
|
80 |
+
$this->_setValues();
|
81 |
} else {
|
82 |
$this->_currentRow = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure);
|
83 |
+
$this->_getValues();
|
84 |
}
|
85 |
|
86 |
$this->_currentKey = $this->_currentRow ? $this->_currentKey + 1 : null;
|
96 |
// rewind resource, reset column names, read first row as current
|
97 |
rewind($this->_fileHandler);
|
98 |
$this->_colNames = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure);
|
99 |
+
|
100 |
+
$multi = array();
|
101 |
+
$i = 0;
|
102 |
+
while ($i < count($this->_colNames))
|
103 |
+
{
|
104 |
+
if (substr($this->_colNames[$i], 0, 1) == "*")
|
105 |
+
{
|
106 |
+
$this->_colNames[$i] = substr($this->_colNames[$i], 1);
|
107 |
+
$multi[] = $this->_colNames[$i];
|
108 |
+
}
|
109 |
+
$i++;
|
110 |
+
}
|
111 |
+
if (count($multi) > 0)
|
112 |
+
{
|
113 |
+
$this->_multiValuedColNames = $multi;
|
114 |
+
}
|
115 |
+
|
116 |
$this->_currentRow = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure);
|
117 |
+
$this->_getValues();
|
118 |
|
119 |
if ($this->_currentRow) {
|
120 |
$this->_currentKey = 0;
|
138 |
$this->rewind();
|
139 |
}
|
140 |
while ($this->_currentRow = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure)) {
|
141 |
+
$this->_getValues();
|
142 |
do {
|
143 |
if (++ $this->_currentKey == $position) {
|
144 |
+
$this->_setValues();
|
145 |
return;
|
146 |
}
|
147 |
} while ($this->_maxOffsetKey > $this->_currentOffsetKey ++);
|
151 |
}
|
152 |
}
|
153 |
|
154 |
+
protected function _getValues()
|
155 |
{
|
156 |
$this->_values = array();
|
157 |
$this->_currentOffsetKey = 0;
|
158 |
$this->_maxOffsetKey = 0;
|
159 |
+
|
160 |
+
foreach ($this->_multiValuedColNames as $colName)
|
161 |
{
|
162 |
+
if ($keyId = array_search($colName, $this->_colNames))
|
163 |
+
{
|
164 |
+
$values = explode(",", $this->_currentRow[$keyId]);
|
165 |
+
$this->_values[$colName] = $values;
|
166 |
+
$this->_maxOffsetKey = max($this->_maxOffsetKey, count($values) - 1);
|
167 |
+
}
|
168 |
}
|
169 |
|
170 |
+
$this->_setValues();
|
171 |
}
|
172 |
|
173 |
+
protected function _setValues()
|
174 |
{
|
175 |
if ($this->_currentOffsetKey > 0) {
|
176 |
+
foreach ($this->_currentRow as $key => $value)
|
177 |
+
{
|
178 |
$this->_currentRow[$key] = "";
|
179 |
}
|
180 |
}
|
181 |
|
182 |
+
foreach ($this->_multiValuedColNames as $colName) {
|
183 |
+
if (array_key_exists($colName, $this->_values) && $this->_currentOffsetKey < count($this->_values[$colName]) && $this->_values[$colName][$this->_currentOffsetKey]) {
|
184 |
$keyId = array_search($colName, $this->_colNames);
|
185 |
$this->_currentRow[$keyId] = $this->_values[$colName][$this->_currentOffsetKey];
|
186 |
}
|
app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product.php
CHANGED
@@ -53,7 +53,7 @@ class AMartinez_CustomImportExport_Model_Import_Entity_Product extends Mage_Impo
|
|
53 |
echo ":::: " . Mage::helper('importexport')->__("New attribute option added: ") . $attrCode . " - " . $rowData[$attrCode] . " (first ocurrence in line " . ($rowNum+1) . ") ::::\n";
|
54 |
$this->addRowError(Mage::helper('importexport')->__("Attribute option added for '%s'"), $rowNum, $attrCode);
|
55 |
}
|
56 |
-
return false
|
57 |
}
|
58 |
break;
|
59 |
case 'int':
|
@@ -87,7 +87,7 @@ class AMartinez_CustomImportExport_Model_Import_Entity_Product extends Mage_Impo
|
|
87 |
|
88 |
protected $_entity_type_id;
|
89 |
protected $eav_entity_setup;
|
90 |
-
|
91 |
/**
|
92 |
* Add attribute option
|
93 |
*
|
@@ -126,7 +126,7 @@ class AMartinez_CustomImportExport_Model_Import_Entity_Product extends Mage_Impo
|
|
126 |
*/
|
127 |
protected function _isProductCategoryValid(array $rowData, $rowNum)
|
128 |
{
|
129 |
-
if (!empty($rowData[self::COL_CATEGORY]) && !isset($this->_categories[$rowData[self::COL_CATEGORY]])) {
|
130 |
if (!empty($rowData['_custom_option_store']) && isset($this->_storeCodeToId[$rowData['_custom_option_store']])) {
|
131 |
$storeId = $this->_storeCodeToId[$rowData['_custom_option_store']];
|
132 |
} else {
|
@@ -141,7 +141,7 @@ class AMartinez_CustomImportExport_Model_Import_Entity_Product extends Mage_Impo
|
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
-
* Add category
|
145 |
*
|
146 |
* @return true
|
147 |
*/
|
@@ -149,24 +149,28 @@ class AMartinez_CustomImportExport_Model_Import_Entity_Product extends Mage_Impo
|
|
149 |
{
|
150 |
$store = Mage::app()->getStore($storeId);
|
151 |
$rootCategoryId = $store->getGroup()->root_category_id;
|
152 |
-
$rootCategoryPath =
|
153 |
|
154 |
-
$
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
|
168 |
-
|
169 |
-
|
170 |
-
return true;
|
171 |
}
|
172 |
}
|
53 |
echo ":::: " . Mage::helper('importexport')->__("New attribute option added: ") . $attrCode . " - " . $rowData[$attrCode] . " (first ocurrence in line " . ($rowNum+1) . ") ::::\n";
|
54 |
$this->addRowError(Mage::helper('importexport')->__("Attribute option added for '%s'"), $rowNum, $attrCode);
|
55 |
}
|
56 |
+
return true; // no false
|
57 |
}
|
58 |
break;
|
59 |
case 'int':
|
87 |
|
88 |
protected $_entity_type_id;
|
89 |
protected $eav_entity_setup;
|
90 |
+
|
91 |
/**
|
92 |
* Add attribute option
|
93 |
*
|
126 |
*/
|
127 |
protected function _isProductCategoryValid(array $rowData, $rowNum)
|
128 |
{
|
129 |
+
if (!empty($rowData[self::COL_CATEGORY]) && !isset($this->_categories[$rowData[self::COL_CATEGORY]])) {
|
130 |
if (!empty($rowData['_custom_option_store']) && isset($this->_storeCodeToId[$rowData['_custom_option_store']])) {
|
131 |
$storeId = $this->_storeCodeToId[$rowData['_custom_option_store']];
|
132 |
} else {
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
+
* Add category
|
145 |
*
|
146 |
* @return true
|
147 |
*/
|
149 |
{
|
150 |
$store = Mage::app()->getStore($storeId);
|
151 |
$rootCategoryId = $store->getGroup()->root_category_id;
|
152 |
+
$rootCategoryPath = "1/" . $rootCategoryId;
|
153 |
|
154 |
+
$relativePath = $rootCategoryPath;
|
155 |
+
foreach (explode("/", $category) as $child)
|
156 |
+
{
|
157 |
+
$fullCategoryName = isset($fullCategoryName) ? ($fullCategoryName . "/" . $child) : ($child);
|
158 |
+
if (!isset($this->_categories[$fullCategoryName]))
|
159 |
+
{
|
160 |
+
$cat = Mage::getModel('catalog/category');
|
161 |
+
$cat->setStoreId(0)
|
162 |
+
->setName(trim($child))
|
163 |
+
->setDisplayMode(trim($child))
|
164 |
+
->setAttributeSetId($cat->getDefaultAttributeSetId())
|
165 |
+
->setIsActive(1)
|
166 |
+
->setPath($relativePath)
|
167 |
+
->setIsAnchor(true)
|
168 |
+
->save();
|
169 |
+
$this->_categories[$fullCategoryName] = $cat->getId();
|
170 |
+
}
|
171 |
+
$relativePath = $relativePath . "/" . $this->_categories[$fullCategoryName];
|
172 |
+
}
|
173 |
|
174 |
+
return true;
|
|
|
|
|
175 |
}
|
176 |
}
|
app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product/Type/Configurable.php
CHANGED
@@ -15,5 +15,25 @@
|
|
15 |
class AMartinez_CustomImportExport_Model_Import_Entity_Product_Type_Configurable
|
16 |
extends Mage_ImportExport_Model_Import_Entity_Product_Type_Configurable
|
17 |
{
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
15 |
class AMartinez_CustomImportExport_Model_Import_Entity_Product_Type_Configurable
|
16 |
extends Mage_ImportExport_Model_Import_Entity_Product_Type_Configurable
|
17 |
{
|
18 |
+
/**
|
19 |
+
* Validate row attributes. Pass VALID row data ONLY as argument.
|
20 |
+
*
|
21 |
+
* @param array $rowData
|
22 |
+
* @param int $rowNum
|
23 |
+
* @param boolean $checkRequiredAttributes OPTIONAL Flag which can disable validation required values.
|
24 |
+
* @return boolean
|
25 |
+
*/
|
26 |
+
public function isRowValid(array $rowData, $rowNum, $checkRequiredAttributes = true)
|
27 |
+
{
|
28 |
+
// create sub-row's new attribute options
|
29 |
+
if (Mage_ImportExport_Model_Import_Entity_Product::SCOPE_NULL == $this->_entityModel->getRowScope($rowData)) {
|
30 |
+
foreach ($this->_getProductAttributes($rowData) as $attrCode => $attrParams) {
|
31 |
+
if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) {
|
32 |
+
$this->_entityModel->isAttributeValid($attrCode, $attrParams, $rowData, $rowNum);
|
33 |
+
}
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
return Mage_ImportExport_Model_Import_Entity_Product_Type_Abstract::isRowValid($rowData, $rowNum, $checkRequiredAttributes);
|
38 |
+
}
|
39 |
}
|
app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product/Type/Grouped.php
CHANGED
@@ -15,5 +15,25 @@
|
|
15 |
class AMartinez_CustomImportExport_Model_Import_Entity_Product_Type_Grouped
|
16 |
extends Mage_ImportExport_Model_Import_Entity_Product_Type_Grouped
|
17 |
{
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
15 |
class AMartinez_CustomImportExport_Model_Import_Entity_Product_Type_Grouped
|
16 |
extends Mage_ImportExport_Model_Import_Entity_Product_Type_Grouped
|
17 |
{
|
18 |
+
/**
|
19 |
+
* Validate row attributes. Pass VALID row data ONLY as argument.
|
20 |
+
*
|
21 |
+
* @param array $rowData
|
22 |
+
* @param int $rowNum
|
23 |
+
* @param boolean $checkRequiredAttributes OPTIONAL Flag which can disable validation required values.
|
24 |
+
* @return boolean
|
25 |
+
*/
|
26 |
+
public function isRowValid(array $rowData, $rowNum, $checkRequiredAttributes = true)
|
27 |
+
{
|
28 |
+
// create sub-row's new attribute options
|
29 |
+
if (Mage_ImportExport_Model_Import_Entity_Product::SCOPE_NULL == $this->_entityModel->getRowScope($rowData)) {
|
30 |
+
foreach ($this->_getProductAttributes($rowData) as $attrCode => $attrParams) {
|
31 |
+
if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) {
|
32 |
+
$this->_entityModel->isAttributeValid($attrCode, $attrParams, $rowData, $rowNum);
|
33 |
+
}
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
return Mage_ImportExport_Model_Import_Entity_Product_Type_Abstract::isRowValid($rowData, $rowNum, $checkRequiredAttributes);
|
38 |
+
}
|
39 |
}
|
app/code/community/AMartinez/CustomImportExport/Model/Import/Entity/Product/Type/Simple.php
CHANGED
@@ -15,5 +15,25 @@
|
|
15 |
class AMartinez_CustomImportExport_Model_Import_Entity_Product_Type_Simple
|
16 |
extends Mage_ImportExport_Model_Import_Entity_Product_Type_Simple
|
17 |
{
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
15 |
class AMartinez_CustomImportExport_Model_Import_Entity_Product_Type_Simple
|
16 |
extends Mage_ImportExport_Model_Import_Entity_Product_Type_Simple
|
17 |
{
|
18 |
+
/**
|
19 |
+
* Validate row attributes. Pass VALID row data ONLY as argument.
|
20 |
+
*
|
21 |
+
* @param array $rowData
|
22 |
+
* @param int $rowNum
|
23 |
+
* @param boolean $checkRequiredAttributes OPTIONAL Flag which can disable validation required values.
|
24 |
+
* @return boolean
|
25 |
+
*/
|
26 |
+
public function isRowValid(array $rowData, $rowNum, $checkRequiredAttributes = true)
|
27 |
+
{
|
28 |
+
// create sub-row's new attribute options
|
29 |
+
if (Mage_ImportExport_Model_Import_Entity_Product::SCOPE_NULL == $this->_entityModel->getRowScope($rowData)) {
|
30 |
+
foreach ($this->_getProductAttributes($rowData) as $attrCode => $attrParams) {
|
31 |
+
if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) {
|
32 |
+
$this->_entityModel->isAttributeValid($attrCode, $attrParams, $rowData, $rowNum);
|
33 |
+
}
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
return Mage_ImportExport_Model_Import_Entity_Product_Type_Abstract::isRowValid($rowData, $rowNum, $checkRequiredAttributes);
|
38 |
+
}
|
39 |
}
|
app/code/community/AMartinez/CustomImportExport/shell/run.php
CHANGED
@@ -25,6 +25,7 @@ class AMartinez_CustomImportExport extends Mage_Shell_Abstract
|
|
25 |
Mage::setIsDeveloperMode(true);
|
26 |
ini_set('display_errors', 1);
|
27 |
// ini_set("memory_limit","2048M");
|
|
|
28 |
|
29 |
// help
|
30 |
if ($this->getArg('h') || $this->getArg('help') || count($this->_args) == 0)
|
@@ -63,7 +64,7 @@ class AMartinez_CustomImportExport extends Mage_Shell_Abstract
|
|
63 |
$header = fgets($h);
|
64 |
while($line = fgets($h))
|
65 |
{
|
66 |
-
// first iteration
|
67 |
if ($i == 0 || (substr($line, 0 ,1) != ',' && substr($line, 0 ,2) != '""' && substr($line, 0 ,2) != "''" && $i > $linecount && !($linecount === true)))
|
68 |
{
|
69 |
if (defined('t'))
|
@@ -109,7 +110,7 @@ class AMartinez_CustomImportExport extends Mage_Shell_Abstract
|
|
109 |
if ($message) {
|
110 |
Mage::throwException(sprintf("File %s contains %s corrupt records (from a total of %s)", $file, $import->getInvalidRowsCount(), $processedRowsCount) . $message);
|
111 |
}
|
112 |
-
|
113 |
$import = $this->initImportModel();
|
114 |
$validationResult = $import->validateSource($file);
|
115 |
$processedRowsCount = $import->getProcessedRowsCount();
|
@@ -501,7 +502,7 @@ class AMartinez_CustomImportExport extends Mage_Shell_Abstract
|
|
501 |
public function usageHelp()
|
502 |
{
|
503 |
return <<<HELP
|
504 |
-
AMartinez_CustomImportExport script (v. 1.5.
|
505 |
|
506 |
NAME
|
507 |
run.php
|
@@ -511,7 +512,19 @@ SYNOPSIS
|
|
511 |
php -f app/code/community/AMartinez/CustomImportExport/shell/run.php [-- [OPTIONS...]]
|
512 |
|
513 |
DESCRIPTION
|
514 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
|
516 |
OPTIONS
|
517 |
-h
|
@@ -540,7 +553,7 @@ OPTIONS
|
|
540 |
|
541 |
-db [file]
|
542 |
-databasebackup [file]
|
543 |
-
output whole magento database to sql file and try to gzcompress it, if output file not specified uses time generated name
|
544 |
|
545 |
-e [file]
|
546 |
-export [file]
|
@@ -548,7 +561,7 @@ OPTIONS
|
|
548 |
|
549 |
-i [file]
|
550 |
-import [file]
|
551 |
-
import products from csv file, if source file not specified or not found uses defined in config.xml
|
552 |
|
553 |
-f
|
554 |
-flushimages
|
25 |
Mage::setIsDeveloperMode(true);
|
26 |
ini_set('display_errors', 1);
|
27 |
// ini_set("memory_limit","2048M");
|
28 |
+
echo "";
|
29 |
|
30 |
// help
|
31 |
if ($this->getArg('h') || $this->getArg('help') || count($this->_args) == 0)
|
64 |
$header = fgets($h);
|
65 |
while($line = fgets($h))
|
66 |
{
|
67 |
+
// first iteration / no "attr-only" line / line count has been reached
|
68 |
if ($i == 0 || (substr($line, 0 ,1) != ',' && substr($line, 0 ,2) != '""' && substr($line, 0 ,2) != "''" && $i > $linecount && !($linecount === true)))
|
69 |
{
|
70 |
if (defined('t'))
|
110 |
if ($message) {
|
111 |
Mage::throwException(sprintf("File %s contains %s corrupt records (from a total of %s)", $file, $import->getInvalidRowsCount(), $processedRowsCount) . $message);
|
112 |
}
|
113 |
+
|
114 |
$import = $this->initImportModel();
|
115 |
$validationResult = $import->validateSource($file);
|
116 |
$processedRowsCount = $import->getProcessedRowsCount();
|
502 |
public function usageHelp()
|
503 |
{
|
504 |
return <<<HELP
|
505 |
+
AMartinez_CustomImportExport script (v. 1.5.010)
|
506 |
|
507 |
NAME
|
508 |
run.php
|
512 |
php -f app/code/community/AMartinez/CustomImportExport/shell/run.php [-- [OPTIONS...]]
|
513 |
|
514 |
DESCRIPTION
|
515 |
+
This extension can Import/Export products and customers from/to CSV file. Create categories, add attribute options, reindex, refresh cache, images and price rules automatically. In addition you can backup the entire database in SQL format.
|
516 |
+
|
517 |
+
Imports:
|
518 |
+
(products, customers)
|
519 |
+
file.csv: multiple-row csv files
|
520 |
+
(products)
|
521 |
+
file.csv1: single-row csv files, with some multivalued fields ("CAT1/CAT2,CAT3","ASSOCIATED1,ASSOCIATED2"...), you can define your own multivalued column names with * prefix ("sku","name","*_category","*_associated_sku"...)
|
522 |
+
|
523 |
+
Exports:
|
524 |
+
(products, customers)
|
525 |
+
file.csv: multiple-row new csv files
|
526 |
+
(database)
|
527 |
+
backup all tables to SQL gz-compressed file
|
528 |
|
529 |
OPTIONS
|
530 |
-h
|
553 |
|
554 |
-db [file]
|
555 |
-databasebackup [file]
|
556 |
+
output whole magento database to sql file and try to gzcompress it, if output file not specified uses time generated name
|
557 |
|
558 |
-e [file]
|
559 |
-export [file]
|
561 |
|
562 |
-i [file]
|
563 |
-import [file]
|
564 |
+
import products from csv or csv1 file, if source file not specified or not found uses defined in config.xml.
|
565 |
|
566 |
-f
|
567 |
-flushimages
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>AMartinez_CustomImportExport</name>
|
4 |
-
<version>1.5.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
@@ -15,7 +15,7 @@ Imports:
|
|
15 |
(products, customers)
|
16 |
file.csv: multiple-row new csv files
|
17 |
(products)
|
18 |
-
file.csv1:
|
19 |

|
20 |
Exports:
|
21 |
(products, customers)
|
@@ -95,9 +95,9 @@ CREDITS
|
|
95 |
</description>
|
96 |
<notes>Magento 1.5 version.</notes>
|
97 |
<authors><author><name>Antonio Martinez</name><user>amartinez</user><email>toniyecla@gmail.com</email></author></authors>
|
98 |
-
<date>2011-05-
|
99 |
-
<time>
|
100 |
-
<contents><target name="magecommunity"><dir name="AMartinez"><dir name="CustomImportExport"><dir name="Helper"><file name="Data.php" hash="798c6c9b7adc8e5a66c8d00d7d475485"/></dir><dir name="Model"><file name="Backup.php" hash="0e673d6ab8a39f33bd1185b6627fb742"/><file name="Export.php" hash="252ef36d1b5e93e9f38e8d45dd72b030"/><dir name="Import"><dir name="Adapter"><file name="Csv1.php" hash="
|
101 |
<compatible/>
|
102 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
103 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>AMartinez_CustomImportExport</name>
|
4 |
+
<version>1.5.010</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
15 |
(products, customers)
|
16 |
file.csv: multiple-row new csv files
|
17 |
(products)
|
18 |
+
file.csv1: single-row csv files, with some multivalued fields ("CAT1/CAT2,CAT3","ASSOCIATED1,ASSOCIATED2"...), you can define your own multivalued column names with * prefix ("sku","name","*_category","*_associated_sku"...)
|
19 |

|
20 |
Exports:
|
21 |
(products, customers)
|
95 |
</description>
|
96 |
<notes>Magento 1.5 version.</notes>
|
97 |
<authors><author><name>Antonio Martinez</name><user>amartinez</user><email>toniyecla@gmail.com</email></author></authors>
|
98 |
+
<date>2011-05-18</date>
|
99 |
+
<time>11:16:33</time>
|
100 |
+
<contents><target name="magecommunity"><dir name="AMartinez"><dir name="CustomImportExport"><dir name="Helper"><file name="Data.php" hash="798c6c9b7adc8e5a66c8d00d7d475485"/></dir><dir name="Model"><file name="Backup.php" hash="0e673d6ab8a39f33bd1185b6627fb742"/><file name="Export.php" hash="252ef36d1b5e93e9f38e8d45dd72b030"/><dir name="Import"><dir name="Adapter"><file name="Csv1.php" hash="3615d594c083da04af8596b2658ff7a6"/></dir><file name="Adapter.php" hash="b2ddc64699cab599061789ff066faf11"/><dir name="Entity"><dir name="Customer"><file name="Address.php" hash="e06e286e132d4d2ec8548ebc66f257e1"/></dir><file name="Customer.php" hash="555a87242f1a613629c5d14bde5d23b8"/><dir name="Product"><dir name="Type"><file name="Configurable.php" hash="88c4c1db1c38ad8ae5a310ee19c87eee"/><file name="Grouped.php" hash="cfebd1d4520c25776ea02d2f3b980a82"/><file name="Simple.php" hash="a58046af6ab03b3a10f0ae575abf3a27"/></dir></dir><file name="Product.php" hash="4fa62cf9a2206d161f8135cf1908e305"/></dir></dir><file name="Import.php" hash="6d182eb456ea8785d0571f640efbdaac"/></dir><dir name="etc"><file name="config.xml" hash="6a502554a8eeb6e878bfacfc4a339e74"/></dir><dir name="shell"><file name="run.php" hash="3204b4cb9d3f8cbba4652f5791a07e75"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="AMartinez_CustomImportExport.xml" hash="75ba4fbc265d1cf2b6ab61b8f3a3b95e"/></dir></target><target name="mage"><dir name="var"><dir name="customimportexport"><file name="test_configurable.csv" hash="d0447d047ef94f2f65a9fd375348cd39"/><file name="test_grouped.csv" hash="9c76b71b05c8e2b52efae4725f4119a4"/><file name="test_multiple_stores.csv1" hash="72c5977fcac5ce7ae433cf2f4f09c6d2"/><file name="test_single_row_style.csv1" hash="dfcd266cb65ab97e93f9402e4f32bffb"/></dir></dir></target></contents>
|
101 |
<compatible/>
|
102 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
103 |
</package>
|
var/customimportexport/test_multiple_stores.csv1
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"sku","_product_websites","_store","_type","visibility","_attribute_set","tipo_articulo","status","is_in_stock","qty","size","price","weight","tax_class_id","image","small_image","thumbnail","news_from_date","delivery_date","_category","name","short_description","description","_associated_sku"
|
2 |
+
"1443-S2-34","base","","simple","1","Default","Shoes","1","1","50","34","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (34) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
3 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- AVAILABLE ON: 80 days custom made","",,""
|
4 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- DISPONIBLE EN: 80 días por encargo","",,""
|
5 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
6 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
7 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- AVAILABLE ON: 80 days custom made","",,""
|
8 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- DISPONIBLE EN: 80 días por encargo","",,""
|
9 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
10 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (34) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
11 |
+
"1443-S2-35","base","","simple","1","Default","Shoes","1","1","50","35","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (35) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
12 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- AVAILABLE ON: 80 days custom made","",,""
|
13 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- DISPONIBLE EN: 80 días por encargo","",,""
|
14 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
15 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
16 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- AVAILABLE ON: 80 days custom made","",,""
|
17 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- DISPONIBLE EN: 80 días por encargo","",,""
|
18 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
19 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (35) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
20 |
+
"1443-S2-36","base","","simple","1","Default","Shoes","1","1","50","36","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (36) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
21 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- AVAILABLE ON: 80 days custom made","",,""
|
22 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- DISPONIBLE EN: 80 días por encargo","",,""
|
23 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
24 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
25 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- AVAILABLE ON: 80 days custom made","",,""
|
26 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- DISPONIBLE EN: 80 días por encargo","",,""
|
27 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
28 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (36) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
29 |
+
"1443-S2-37","base","","simple","1","Default","Shoes","1","1","50","37","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (37) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
30 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- AVAILABLE ON: 80 days custom made","",,""
|
31 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- DISPONIBLE EN: 80 días por encargo","",,""
|
32 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
33 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
34 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- AVAILABLE ON: 80 days custom made","",,""
|
35 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- DISPONIBLE EN: 80 días por encargo","",,""
|
36 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
37 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (37) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
38 |
+
"1443-S2-38","base","","simple","1","Default","Shoes","1","1","50","38","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (38) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
39 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- AVAILABLE ON: 80 days custom made","",,""
|
40 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- DISPONIBLE EN: 80 días por encargo","",,""
|
41 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
42 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
43 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- AVAILABLE ON: 80 days custom made","",,""
|
44 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- DISPONIBLE EN: 80 días por encargo","",,""
|
45 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
46 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (38) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
47 |
+
"1443-S2-39","base","","simple","1","Default","Shoes","1","1","50","39","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (39) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
48 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- AVAILABLE ON: 80 days custom made","",,""
|
49 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- DISPONIBLE EN: 80 días por encargo","",,""
|
50 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
51 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
52 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- AVAILABLE ON: 80 days custom made","",,""
|
53 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- DISPONIBLE EN: 80 días por encargo","",,""
|
54 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
55 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (39) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
56 |
+
"1443-S2-40","base","","simple","1","Default","Shoes","1","1","50","40","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (40) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
57 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- AVAILABLE ON: 80 days custom made","",,""
|
58 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- DISPONIBLE EN: 80 días por encargo","",,""
|
59 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
60 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
61 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- AVAILABLE ON: 80 days custom made","",,""
|
62 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- DISPONIBLE EN: 80 días por encargo","",,""
|
63 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
64 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (40) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
65 |
+
"1443-S2-41","base","","simple","1","Default","Shoes","1","1","50","41","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (41) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
66 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- AVAILABLE ON: 80 days custom made","",,""
|
67 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- DISPONIBLE EN: 80 días por encargo","",,""
|
68 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
69 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
70 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- AVAILABLE ON: 80 days custom made","",,""
|
71 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- DISPONIBLE EN: 80 días por encargo","",,""
|
72 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
73 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (41) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
74 |
+
"1443-S2-42","base","","simple","1","Default","Shoes","1","1","50","42","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (42) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
75 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- AVAILABLE ON: 80 days custom made","",,""
|
76 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- DISPONIBLE EN: 80 días por encargo","",,""
|
77 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
78 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
79 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- AVAILABLE ON: 80 days custom made","",,""
|
80 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- DISPONIBLE EN: 80 días por encargo","",,""
|
81 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
82 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (42) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
83 |
+
"1443-S2-43","base","","simple","1","Default","Shoes","1","1","50","43","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (43) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
84 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- AVAILABLE ON: 80 days custom made","",,""
|
85 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- DISPONIBLE EN: 80 días por encargo","",,""
|
86 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
87 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
88 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- AVAILABLE ON: 80 days custom made","",,""
|
89 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- DISPONIBLE EN: 80 días por encargo","",,""
|
90 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
91 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (43) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
92 |
+
"1443-S2-44","base","","simple","1","Default","Shoes","1","1","50","44","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (44) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
93 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- AVAILABLE ON: 80 days custom made","",,""
|
94 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- DISPONIBLE EN: 80 días por encargo","",,""
|
95 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
96 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
97 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- AVAILABLE ON: 80 days custom made","",,""
|
98 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- DISPONIBLE EN: 80 días por encargo","",,""
|
99 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
100 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (44) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
101 |
+
"1443-S2-45","base","","simple","1","Default","Shoes","1","1","50","45","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (45) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
102 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- AVAILABLE ON: 80 days custom made","",,""
|
103 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- DISPONIBLE EN: 80 días por encargo","",,""
|
104 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
105 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
106 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- AVAILABLE ON: 80 days custom made","",,""
|
107 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- DISPONIBLE EN: 80 días por encargo","",,""
|
108 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
109 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (45) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
110 |
+
"1443-S2-46","base","","simple","1","Default","Shoes","1","1","50","46","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (46) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
111 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- AVAILABLE ON: 80 days custom made","",,""
|
112 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- DISPONIBLE EN: 80 días por encargo","",,""
|
113 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
114 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
115 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- AVAILABLE ON: 80 days custom made","",,""
|
116 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- DISPONIBLE EN: 80 días por encargo","",,""
|
117 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
118 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (46) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
119 |
+
"1443-S2-47","base","","simple","1","Default","Shoes","1","1","50","47","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (47) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
120 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- AVAILABLE ON: 80 days custom made","",,""
|
121 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- DISPONIBLE EN: 80 días por encargo","",,""
|
122 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
123 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
124 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- AVAILABLE ON: 80 days custom made","",,""
|
125 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- DISPONIBLE EN: 80 días por encargo","",,""
|
126 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
127 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (47) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
128 |
+
"1443-S2-48","base","","simple","1","Default","Shoes","1","1","50","48","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","2011-7-31","COMFORT-LIGHT","1443-S2 (48) -- AVAILABLE ON: 80 days custom made","COMFORT-LIGHT",,""
|
129 |
+
"","","default","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- AVAILABLE ON: 80 days custom made","",,""
|
130 |
+
"","","cas","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- DISPONIBLE EN: 80 días por encargo","",,""
|
131 |
+
"","","fra","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
132 |
+
"","","ale","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
133 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- AVAILABLE ON: 80 days custom made","",,""
|
134 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- DISPONIBLE EN: 80 días por encargo","",,""
|
135 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- DISPONIBLE LE: 80 journées sur mesure","",,""
|
136 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","1443-S2 (48) -- VERFÜGBAR AM: 80 tage Maßarbeit","",,""
|
137 |
+
"1443-S2","base","","grouped","1","Default","Shoes","1","1","750","","46.30","0.00","2","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","/img_articulos/1443-S2.jpg","2011-5-12","1899-12-31","COMFORT-LIGHT","This example merges csv1 features (categories, associated sku's) with csv style (multi-store site)","COMFORT-LIGHT",,"1443-S2-34,1443-S2-35,1443-S2-36,1443-S2-37,1443-S2-38,1443-S2-39,1443-S2-40,1443-S2-41,1443-S2-42,1443-S2-43,1443-S2-44,1443-S2-45,1443-S2-46,1443-S2-47,1443-S2-48"
|
138 |
+
"","","default","","1","","","","","","","","","","","","","","","","confort","",,""
|
139 |
+
"","","cas","","1","","","","","","","","","","","","","","","","confort","",,""
|
140 |
+
"","","fra","","1","","","","","","","","","","","","","","","","confort","",,""
|
141 |
+
"","","ale","","1","","","","","","","","","","","","","","","","confort","",,""
|
142 |
+
"","","default_fo","","1","","","","","","","","","","","","","","","","confort","",,""
|
143 |
+
"","","cas_fo","","1","","","","","","","","","","","","","","","","confort","",,""
|
144 |
+
"","","fra_fo","","1","","","","","","","","","","","","","","","","confort","",,""
|
145 |
+
"","","ale_fo","","1","","","","","","","","","","","","","","","","confort","",,""
|