Version Notes
No notes
Download this release
Release Info
Developer | Yireo |
Extension | Yireo_Vm2Mage |
Version | 0.10.25 |
Comparing to | |
See all releases |
Code changes from version 0.10.21 to 0.10.25
- app/code/community/Yireo/Vm2Mage/Helper/Data.php +11 -5
- app/code/community/Yireo/Vm2Mage/Helper/Image.php +2 -0
- app/code/community/Yireo/Vm2Mage/Helper/Product.php +4 -0
- app/code/community/Yireo/Vm2Mage/Model/Attribute/Api.php +2 -0
- app/code/community/Yireo/Vm2Mage/Model/Category/Api.php +2 -0
- app/code/community/Yireo/Vm2Mage/Model/Product/Api.php +28 -16
- app/code/community/Yireo/Vm2Mage/Model/User/Api.php +30 -10
- app/code/community/Yireo/Vm2Mage/etc/config.xml +1 -1
- package.xml +1 -1
app/code/community/Yireo/Vm2Mage/Helper/Data.php
CHANGED
@@ -78,12 +78,19 @@ class Yireo_Vm2Mage_Helper_Data extends Mage_Core_Helper_Abstract
|
|
78 |
}
|
79 |
}
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
/*
|
82 |
* Helper-method to initialize debugging
|
83 |
*
|
84 |
-
* @
|
85 |
-
* @param mixed $mixed
|
86 |
-
* @return null
|
87 |
*/
|
88 |
public function initDebug()
|
89 |
{
|
@@ -92,7 +99,6 @@ class Yireo_Vm2Mage_Helper_Data extends Mage_Core_Helper_Abstract
|
|
92 |
return false;
|
93 |
}
|
94 |
|
95 |
-
ini_set('display_errors', 1);
|
96 |
Mage::setIsDeveloperMode(true);
|
97 |
return true;
|
98 |
}
|
@@ -105,7 +111,7 @@ class Yireo_Vm2Mage_Helper_Data extends Mage_Core_Helper_Abstract
|
|
105 |
foreach($array as $name => $value) {
|
106 |
if(is_array($value)) {
|
107 |
$value = Mage::helper('vm2mage')->encode($value);
|
108 |
-
} elseif(!empty($value)) {
|
109 |
$value = base64_encode($value);
|
110 |
}
|
111 |
|
78 |
}
|
79 |
}
|
80 |
|
81 |
+
/*
|
82 |
+
* Helper-method to initialize settings
|
83 |
+
*/
|
84 |
+
public function init()
|
85 |
+
{
|
86 |
+
ini_set('display_errors', 1);
|
87 |
+
error_reporting(E_ALL & ~E_NOTICE);
|
88 |
+
}
|
89 |
+
|
90 |
/*
|
91 |
* Helper-method to initialize debugging
|
92 |
*
|
93 |
+
* @return boolean
|
|
|
|
|
94 |
*/
|
95 |
public function initDebug()
|
96 |
{
|
99 |
return false;
|
100 |
}
|
101 |
|
|
|
102 |
Mage::setIsDeveloperMode(true);
|
103 |
return true;
|
104 |
}
|
111 |
foreach($array as $name => $value) {
|
112 |
if(is_array($value)) {
|
113 |
$value = Mage::helper('vm2mage')->encode($value);
|
114 |
+
} elseif(!empty($value) && !is_numeric($value)) {
|
115 |
$value = base64_encode($value);
|
116 |
}
|
117 |
|
app/code/community/Yireo/Vm2Mage/Helper/Image.php
CHANGED
@@ -78,6 +78,8 @@ class Yireo_Vm2Mage_Helper_Image extends Yireo_Vm2Mage_Helper_Data
|
|
78 |
$hasThumbImage = false;
|
79 |
if(is_array($images) && !empty($images)) {
|
80 |
foreach($images as $image) {
|
|
|
|
|
81 |
if($image['type'] == 'full_image') $hasFullImage = true;
|
82 |
if($image['type'] == 'thumbnail') $hasThumbImage = true;
|
83 |
}
|
78 |
$hasThumbImage = false;
|
79 |
if(is_array($images) && !empty($images)) {
|
80 |
foreach($images as $image) {
|
81 |
+
if(empty($image['type'])) $image['type'] = null;
|
82 |
+
|
83 |
if($image['type'] == 'full_image') $hasFullImage = true;
|
84 |
if($image['type'] == 'thumbnail') $hasThumbImage = true;
|
85 |
}
|
app/code/community/Yireo/Vm2Mage/Helper/Product.php
CHANGED
@@ -176,6 +176,10 @@ class Yireo_Vm2Mage_Helper_Product extends Yireo_Vm2Mage_Helper_Data
|
|
176 |
*/
|
177 |
public function addCustomOptionToProduct($product, $custom_option)
|
178 |
{
|
|
|
|
|
|
|
|
|
179 |
$name = $custom_option['name'];
|
180 |
$values = $custom_option['values'];
|
181 |
$ordering = $custom_option['ordering'];
|
176 |
*/
|
177 |
public function addCustomOptionToProduct($product, $custom_option)
|
178 |
{
|
179 |
+
if (!isset($custom_option['name'])) {
|
180 |
+
return $product;
|
181 |
+
}
|
182 |
+
|
183 |
$name = $custom_option['name'];
|
184 |
$values = $custom_option['values'];
|
185 |
$ordering = $custom_option['ordering'];
|
app/code/community/Yireo/Vm2Mage/Model/Attribute/Api.php
CHANGED
@@ -19,6 +19,8 @@ class Yireo_Vm2Mage_Model_Attribute_Api extends Mage_Api_Model_Resource_Abstract
|
|
19 |
*/
|
20 |
public function initialize($data = null)
|
21 |
{
|
|
|
|
|
22 |
// Check for empty data
|
23 |
if(!is_array($data) || empty($data['name'])) {
|
24 |
return array(0, "Attribute is not an array");
|
19 |
*/
|
20 |
public function initialize($data = null)
|
21 |
{
|
22 |
+
Mage::helper('vm2mage')->init();
|
23 |
+
|
24 |
// Check for empty data
|
25 |
if(!is_array($data) || empty($data['name'])) {
|
26 |
return array(0, "Attribute is not an array");
|
app/code/community/Yireo/Vm2Mage/Model/Category/Api.php
CHANGED
@@ -19,6 +19,8 @@ class Yireo_Vm2Mage_Model_Category_Api extends Mage_Catalog_Model_Category_Api
|
|
19 |
*/
|
20 |
public function migrate($data= null)
|
21 |
{
|
|
|
|
|
22 |
// Check for empty data
|
23 |
if(!is_array($data)) {
|
24 |
return array(0, "Data is not an array");
|
19 |
*/
|
20 |
public function migrate($data= null)
|
21 |
{
|
22 |
+
Mage::helper('vm2mage')->init();
|
23 |
+
|
24 |
// Check for empty data
|
25 |
if(!is_array($data)) {
|
26 |
return array(0, "Data is not an array");
|
app/code/community/Yireo/Vm2Mage/Model/Product/Api.php
CHANGED
@@ -19,6 +19,8 @@ class Yireo_Vm2Mage_Model_Product_Api extends Mage_Catalog_Model_Product_Api
|
|
19 |
*/
|
20 |
public function migrate($data = null)
|
21 |
{
|
|
|
|
|
22 |
// Check for empty data
|
23 |
if(!is_array($data)) {
|
24 |
//Mage::helper('vm2mage')->debug('VirtueMart product', $data);
|
@@ -30,16 +32,16 @@ class Yireo_Vm2Mage_Model_Product_Api extends Mage_Catalog_Model_Product_Api
|
|
30 |
//Mage::helper('vm2mage')->debug('VirtueMart product', $data);
|
31 |
|
32 |
// Determine the product-type
|
33 |
-
if($data['has_children'] > 0 && !empty($data['attributes_sku'])) {
|
34 |
$typeId = Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE;
|
35 |
-
} elseif($data['has_children'] > 0) {
|
36 |
$typeId = Mage_Catalog_Model_Product_Type::TYPE_GROUPED;
|
37 |
} else {
|
38 |
$typeId = Mage_Catalog_Model_Product_Type::TYPE_SIMPLE;
|
39 |
}
|
40 |
|
41 |
// Determine the children of this product already exist
|
42 |
-
if($data['has_children'] > 0) {
|
43 |
foreach($data['children'] as $child) {
|
44 |
$childId = Mage::getModel('catalog/product')->getIdBySku($child['sku']);
|
45 |
if($childId > 0) {
|
@@ -178,6 +180,7 @@ class Yireo_Vm2Mage_Model_Product_Api extends Mage_Catalog_Model_Product_Api
|
|
178 |
$tierPrices = array();
|
179 |
foreach($data['all_prices'] as $price) {
|
180 |
|
|
|
181 |
if($price['price_quantity_start'] < 1) continue;
|
182 |
if($price['price_quantity_end'] < 1) continue;
|
183 |
|
@@ -200,19 +203,8 @@ class Yireo_Vm2Mage_Model_Product_Api extends Mage_Catalog_Model_Product_Api
|
|
200 |
}
|
201 |
|
202 |
// Handle the stock
|
203 |
-
if($typeId == Mage_Catalog_Model_Product_Type::TYPE_GROUPED)
|
204 |
-
|
205 |
-
$stockData = $product->getStockData();
|
206 |
-
//Mage::helper('vm2mage')->debug('VirtueMart product stock-data', $stockData);
|
207 |
-
$stockData['qty'] = $data['in_stock'];
|
208 |
-
$stockData['is_in_stock'] = 1;
|
209 |
-
$stockData['manage_stock'] = 1;
|
210 |
-
$stockData['use_config_manage_stock'] = 0;
|
211 |
-
$product->setStockData($stockData);
|
212 |
-
} else {
|
213 |
-
$stockData = $product->getStockData();
|
214 |
-
$stockData['manage_stock'] = 0;
|
215 |
-
$product->setStockData($stockData);
|
216 |
}
|
217 |
|
218 |
// Convert the category-IDs
|
@@ -257,6 +249,26 @@ class Yireo_Vm2Mage_Model_Product_Api extends Mage_Catalog_Model_Product_Api
|
|
257 |
return array(0, '['.$sku.'] '.$e->getMessage());
|
258 |
}
|
259 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
// Set the Custom Options
|
261 |
if(isset($data['custom_options']) || isset($data['custom_option'])) {
|
262 |
|
19 |
*/
|
20 |
public function migrate($data = null)
|
21 |
{
|
22 |
+
Mage::helper('vm2mage')->init();
|
23 |
+
|
24 |
// Check for empty data
|
25 |
if(!is_array($data)) {
|
26 |
//Mage::helper('vm2mage')->debug('VirtueMart product', $data);
|
32 |
//Mage::helper('vm2mage')->debug('VirtueMart product', $data);
|
33 |
|
34 |
// Determine the product-type
|
35 |
+
if(isset($data['has_children']) && $data['has_children'] > 0 && !empty($data['attributes_sku'])) {
|
36 |
$typeId = Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE;
|
37 |
+
} elseif(isset($data['has_children']) && $data['has_children'] > 0) {
|
38 |
$typeId = Mage_Catalog_Model_Product_Type::TYPE_GROUPED;
|
39 |
} else {
|
40 |
$typeId = Mage_Catalog_Model_Product_Type::TYPE_SIMPLE;
|
41 |
}
|
42 |
|
43 |
// Determine the children of this product already exist
|
44 |
+
if(isset($data['has_children']) && $data['has_children'] > 0) {
|
45 |
foreach($data['children'] as $child) {
|
46 |
$childId = Mage::getModel('catalog/product')->getIdBySku($child['sku']);
|
47 |
if($childId > 0) {
|
180 |
$tierPrices = array();
|
181 |
foreach($data['all_prices'] as $price) {
|
182 |
|
183 |
+
if(!isset($price['price_quantity_start'])) continue;
|
184 |
if($price['price_quantity_start'] < 1) continue;
|
185 |
if($price['price_quantity_end'] < 1) continue;
|
186 |
|
203 |
}
|
204 |
|
205 |
// Handle the stock
|
206 |
+
if($typeId == Mage_Catalog_Model_Product_Type::TYPE_GROUPED) {
|
207 |
+
$data['in_stock'] = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
}
|
209 |
|
210 |
// Convert the category-IDs
|
249 |
return array(0, '['.$sku.'] '.$e->getMessage());
|
250 |
}
|
251 |
|
252 |
+
// Set the stock
|
253 |
+
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
|
254 |
+
if(!empty($data['in_stock']) && $data['in_stock'] > 0) {
|
255 |
+
$stockItem->setData('qty', (int) $data['in_stock']);
|
256 |
+
$stockItem->setData('is_in_stock', 1);
|
257 |
+
$stockItem->setData('manage_stock', 1);
|
258 |
+
$stockItem->setData('use_config_manage_stock', 0);
|
259 |
+
} else {
|
260 |
+
$stockItem->setData('manage_stock', 0);
|
261 |
+
$stockItem->setData('use_config_manage_stock', 0);
|
262 |
+
}
|
263 |
+
|
264 |
+
if(!$stockItem->getId() > 0) {
|
265 |
+
$stockItem->setData('stock_id', 1);
|
266 |
+
$stockItem->setData('product_id', $product->getId());
|
267 |
+
}
|
268 |
+
|
269 |
+
$stockItem->save();
|
270 |
+
$product->save();
|
271 |
+
|
272 |
// Set the Custom Options
|
273 |
if(isset($data['custom_options']) || isset($data['custom_option'])) {
|
274 |
|
app/code/community/Yireo/Vm2Mage/Model/User/Api.php
CHANGED
@@ -19,6 +19,8 @@ class Yireo_Vm2Mage_Model_User_Api extends Mage_Customer_Model_Customer_Api
|
|
19 |
*/
|
20 |
public function migrate($data = null)
|
21 |
{
|
|
|
|
|
22 |
// Option to renew customers or not
|
23 |
$renewCustomers = (bool)Mage::getStoreConfig('vm2mage/settings/renew_customers');
|
24 |
|
@@ -110,11 +112,27 @@ class Yireo_Vm2Mage_Model_User_Api extends Mage_Customer_Model_Customer_Api
|
|
110 |
|
111 |
// Save the address
|
112 |
if(isset($data['addresses']) && !empty($data['addresses'])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
foreach($data['addresses'] as $address) {
|
114 |
-
$rt = $this->saveAddress($customer, $address, $data);
|
115 |
}
|
|
|
|
|
116 |
} else {
|
117 |
-
$rt = $this->saveAddress($customer, $data);
|
118 |
}
|
119 |
|
120 |
if(!empty($rt)) {
|
@@ -146,29 +164,31 @@ class Yireo_Vm2Mage_Model_User_Api extends Mage_Customer_Model_Customer_Api
|
|
146 |
/**
|
147 |
* Save the customer address
|
148 |
*/
|
149 |
-
private function saveAddress($customer, $data, $customerData)
|
150 |
{
|
151 |
// Load both addressses
|
152 |
$shippingAddress = $customer->getPrimaryShippingAddress();
|
153 |
$billingAddress = $customer->getPrimaryBillingAddress();
|
154 |
|
|
|
|
|
|
|
|
|
155 |
// Determine the address-types
|
156 |
if(isset($data['address_type']) && strtolower($data['address_type']) == 'st') {
|
157 |
$address = $shippingAddress;
|
158 |
$is_shipping = true;
|
159 |
|
160 |
-
}
|
161 |
$address = $billingAddress;
|
162 |
$is_billing = true;
|
163 |
}
|
164 |
|
165 |
-
|
|
|
|
|
166 |
|
167 |
-
//
|
168 |
-
$is_shipping = (empty($shippingAddress)) ? true : false;
|
169 |
-
$is_billing = (empty($billingAddress)) ? true : false;
|
170 |
-
$is_billing = true;
|
171 |
-
$is_shipping = true;
|
172 |
|
173 |
// Load the address
|
174 |
if(empty($address)) {
|
19 |
*/
|
20 |
public function migrate($data = null)
|
21 |
{
|
22 |
+
Mage::helper('vm2mage')->init();
|
23 |
+
|
24 |
// Option to renew customers or not
|
25 |
$renewCustomers = (bool)Mage::getStoreConfig('vm2mage/settings/renew_customers');
|
26 |
|
112 |
|
113 |
// Save the address
|
114 |
if(isset($data['addresses']) && !empty($data['addresses'])) {
|
115 |
+
|
116 |
+
// Detect whether there is both a billing-address and a shipping-address
|
117 |
+
$hasBilling = false;
|
118 |
+
$hasShipping = false;
|
119 |
+
foreach($data['addresses'] as $address) {
|
120 |
+
if(isset($address['address_type']) && strtolower($address['address_type']) == 'bt') {
|
121 |
+
$hasBilling = true;
|
122 |
+
}
|
123 |
+
if(isset($address['address_type']) && strtolower($address['address_type']) == 'st') {
|
124 |
+
$hasShipping = true;
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
// Save the addresses
|
129 |
foreach($data['addresses'] as $address) {
|
130 |
+
$rt = $this->saveAddress($customer, $address, $data, $hasBilling, $hasShipping);
|
131 |
}
|
132 |
+
|
133 |
+
// Save this single address
|
134 |
} else {
|
135 |
+
$rt = $this->saveAddress($customer, $data, array(), true, true);
|
136 |
}
|
137 |
|
138 |
if(!empty($rt)) {
|
164 |
/**
|
165 |
* Save the customer address
|
166 |
*/
|
167 |
+
private function saveAddress($customer, $data, $customerData, $hasBilling, $hasShipping)
|
168 |
{
|
169 |
// Load both addressses
|
170 |
$shippingAddress = $customer->getPrimaryShippingAddress();
|
171 |
$billingAddress = $customer->getPrimaryBillingAddress();
|
172 |
|
173 |
+
// Defaults
|
174 |
+
$is_shipping = ($hasShipping) ? false : true;
|
175 |
+
$is_billing = ($hasBilling) ? false : true;
|
176 |
+
|
177 |
// Determine the address-types
|
178 |
if(isset($data['address_type']) && strtolower($data['address_type']) == 'st') {
|
179 |
$address = $shippingAddress;
|
180 |
$is_shipping = true;
|
181 |
|
182 |
+
} elseif(isset($data['address_type']) && strtolower($data['address_type']) == 'bt') {
|
183 |
$address = $billingAddress;
|
184 |
$is_billing = true;
|
185 |
}
|
186 |
|
187 |
+
if(!is_object($address)) {
|
188 |
+
$address = Mage::getModel('customer/address');
|
189 |
+
}
|
190 |
|
191 |
+
//Mage::helper('vm2mage')->debug('Magento address', $address->debug());
|
|
|
|
|
|
|
|
|
192 |
|
193 |
// Load the address
|
194 |
if(empty($address)) {
|
app/code/community/Yireo/Vm2Mage/etc/config.xml
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
|
15 |
<modules>
|
16 |
<Yireo_Vm2Mage>
|
17 |
-
<version>0.10.
|
18 |
</Yireo_Vm2Mage>
|
19 |
</modules>
|
20 |
|
14 |
|
15 |
<modules>
|
16 |
<Yireo_Vm2Mage>
|
17 |
+
<version>0.10.25</version>
|
18 |
</Yireo_Vm2Mage>
|
19 |
</modules>
|
20 |
|
package.xml
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<package><name>Yireo_Vm2Mage</name><version>0.10.
|
1 |
<?xml version="1.0"?>
|
2 |
+
<package><name>Yireo_Vm2Mage</name><version>0.10.25</version><stability>stable</stability><license>Open Source License</license><channel>community</channel><extends></extends><summary>No summary</summary><description>No description</description><notes>No notes</notes><authors><author><name>Yireo</name><user>yireo</user><email>info@yireo.com</email></author></authors><date>2015-07-06</date><time>6:16:34</time><compatible></compatible><dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="vm2mage"><file name="check-error.png" hash="6a3c4bbf7dff2e4db08183b14329ef9c"/><file name="check-ok.png" hash="9fb629c79fc4a487088ac4aeeb23e40b"/><file name="check-warning.png" hash="39ccef05471d39a99a8fa2ddf4471d20"/></dir></dir></dir></dir></dir></dir><dir name="app"><dir name="etc"><dir name="modules"><file name="Yireo_Vm2Mage.xml" hash="bee76713ff8df9db330a8385b2465041"/></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="vm2mage"><file name="check.phtml" hash="953b257a96841c5efadac97f0cf6614e"/></dir></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="Yireo"><dir name="Vm2Mage"><dir name="sql"><dir name="vm2mage_setup"><file name="mysql4-install-0.10.3.php" hash="853a8f5781d1f91356aefbf7ae954d2b"/><file name="mysql4-install-0.5.4.php" hash="af2d480575e32b4f601c0f3d40e49f01"/><file name="mysql4-upgrade-0.10.2-0.10.3.php" hash="39759a5daed7e92bd3aa50c661c2e287"/></dir></dir><dir name="etc"><file name="api.xml" hash="044835e8aef903ec0eaad068d7b428ae"/><file name="config.xml" hash="63ca309e8e328cc916cadd290a9bbf22"/><file name="system.xml" hash="675f2984aa4df1298f753be702171a78"/></dir><dir name="controllers"><file name="IndexController.php" hash="beb4a2afae7c48ab6360ccb0759b96bc"/></dir><dir name="Model"><file name="Observer.php" hash="61fca0f64bc8c994a4cab745a77252e0"/><dir name="Widget"><file name="Api.php" hash="dd313f26b2d2f37ee17f632e9b24b182"/></dir><dir name="User"><file name="Api.php" hash="dd49ff1f49914f8554609c2c79307f47"/></dir><dir name="Rewrite"><dir name="Category"><dir name="Attribute"><dir name="Backend"><file name="Image.php" hash="9880fd05bb4bdbb8fc551ee7cace2e9d"/></dir></dir></dir></dir><dir name="Product"><file name="Api.php" hash="d180733f05ae08045eea2525a6117d7f"/></dir><dir name="Order"><file name="Api.php" hash="0e5c94716fbb347e2fef4b1b0f3d19bc"/></dir><dir name="Category"><file name="Api.php" hash="6b3dfea5f56030e735e74338c64d315c"/></dir><dir name="Attribute"><file name="Api.php" hash="aa0e201a5dc42cc7bf9b3d22c060c307"/></dir></dir><dir name="Helper"><file name="Attribute.php" hash="84734510b3170b65e782db7a90f715f9"/><file name="Category.php" hash="2780d3ce633e1f6b8ea345506d0cc89a"/><file name="Data.php" hash="d741bda70c83be536b976b88b31d9bd5"/><file name="Image.php" hash="446b73ea001c92a4850e7e168e2ee842"/><file name="Price.php" hash="2d7253c4d727935c79f8e4d861329fa5"/><file name="Product.php" hash="ca99ba63309b9add9f5bb1f9be2f88da"/></dir><dir name="Block"><file name="Check.php" hash="1409b8333e818a532fee3aa88c3a1977"/></dir></dir></dir></dir></dir></dir></target></contents></package>
|