Version Notes
0.0.5
* Product set can be configured from Admin. This also solves a problem when Magento's default attribute set was deleted.
* The warehouse that will track the stock can be selected from admin configuration.
* Images on Unicenta are tranfered to Magento when the Magento Product does not have any images.
0.0.4
Advanced log to identify database connection issues
0.0.3
First official public release
Download this release
Release Info
Developer | asulpunto |
Extension | Asulpunto_Unicentaopos |
Version | 0.0.5 |
Comparing to | |
See all releases |
Code changes from version 0.0.4 to 0.0.5
- app/code/community/Asulpunto/Unicentaopos/Helper/Data.php +9 -0
- app/code/community/Asulpunto/Unicentaopos/Model/Source/Location.php +20 -0
- app/code/community/Asulpunto/Unicentaopos/Model/Source/Producttypelist.php +19 -0
- app/code/community/Asulpunto/Unicentaopos/Model/Unicentaoposapi.php +60 -7
- app/code/community/Asulpunto/Unicentaopos/Model/Unicentaoposproductapi.php +58 -0
- app/code/community/Asulpunto/Unicentaopos/etc/config.xml +2 -1
- app/code/community/Asulpunto/Unicentaopos/etc/system.xml +22 -0
- app/code/community/Asulpunto/Unicentaopos/sql/unicentaopos_setup/mysql4-upgrade-0.0.4-0.0.5.php +26 -0
- package.xml +10 -5
app/code/community/Asulpunto/Unicentaopos/Helper/Data.php
CHANGED
@@ -50,4 +50,13 @@ class Asulpunto_Unicentaopos_Helper_Data extends Mage_Core_Helper_Abstract
|
|
50 |
return $rows;
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
50 |
return $rows;
|
51 |
}
|
52 |
|
53 |
+
public function doExecute($sql){
|
54 |
+
$db=$this->getUnicentaOposConnection();
|
55 |
+
if (is_null($db)) return null;
|
56 |
+
$res=$db->exec($sql);
|
57 |
+
return $res;
|
58 |
+
}
|
59 |
+
|
60 |
+
|
61 |
+
|
62 |
}
|
app/code/community/Asulpunto/Unicentaopos/Model/Source/Location.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Asulpunto_Unicentaopos_Model_Source_Location
|
3 |
+
{
|
4 |
+
protected $_options;
|
5 |
+
|
6 |
+
public function toOptionArray()
|
7 |
+
{
|
8 |
+
$locations=Mage::getModel('unicentaopos/unicentaoposapi')->getLocations();
|
9 |
+
if (count($locations)==0){
|
10 |
+
return array(
|
11 |
+
array('value' => '0', 'label' => 'Connection down.'),
|
12 |
+
);
|
13 |
+
}else{
|
14 |
+
$list= array();
|
15 |
+
foreach ( $locations as $key => $value)
|
16 |
+
$list[]=array('value' => $key, 'label' =>$value );
|
17 |
+
}
|
18 |
+
return $list;
|
19 |
+
}
|
20 |
+
}
|
app/code/community/Asulpunto/Unicentaopos/Model/Source/Producttypelist.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Asulpunto_Unicentaopos_Model_Source_Producttypelist
|
3 |
+
{
|
4 |
+
protected $_options;
|
5 |
+
|
6 |
+
public function toOptionArray()
|
7 |
+
{
|
8 |
+
$prodType = Mage::getModel('eav/entity_type')->loadByCode('catalog_product');
|
9 |
+
$prodAttributeSet = Mage::getModel('eav/entity_attribute_set')->getCollection()->addFilter('entity_type_id',$prodType->getId());
|
10 |
+
|
11 |
+
$list= array(
|
12 |
+
array('value' => '', 'label' => ''),
|
13 |
+
);
|
14 |
+
foreach ( $prodAttributeSet as $set)
|
15 |
+
$list[]=array('value' => $set->getId(), 'label' =>$set->getAttributeSetName() );
|
16 |
+
|
17 |
+
return $list;
|
18 |
+
}
|
19 |
+
}
|
app/code/community/Asulpunto/Unicentaopos/Model/Unicentaoposapi.php
CHANGED
@@ -24,6 +24,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
24 |
{
|
25 |
private $_UPPHash=array();
|
26 |
private $_UPS=array();
|
|
|
27 |
|
28 |
public function checkActivate(){
|
29 |
try{
|
@@ -47,6 +48,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
47 |
public function cronProducts(){
|
48 |
try{
|
49 |
$this->_loadProductHash();//load a hash of history
|
|
|
50 |
|
51 |
$db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
|
52 |
$sql="select * from `PRODUCTS`";
|
@@ -54,6 +56,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
54 |
|
55 |
foreach ($rows as $row){
|
56 |
$this->_getUnicentaProducts($row);
|
|
|
57 |
}
|
58 |
$this->updateMagentoProducts();
|
59 |
}catch(Exception $e){
|
@@ -64,8 +67,9 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
64 |
public function cronStock(){
|
65 |
try{
|
66 |
$this->_loadStock();
|
|
|
67 |
$db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
|
68 |
-
$sql="select b.REFERENCE as REFERENCE,a.UNITS as UNITS from `STOCKCURRENT` a , `PRODUCTS` b where a.PRODUCT=b.ID";
|
69 |
$rows=$db->query($sql);
|
70 |
foreach ($rows as $row){
|
71 |
$this->_getUnicentaStock($row);
|
@@ -76,9 +80,29 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
76 |
}
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
private function _getUnicentaProducts($row){
|
81 |
-
|
|
|
82 |
|
83 |
$md5=md5(
|
84 |
$row['CODE'].'|'.
|
@@ -89,14 +113,18 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
89 |
);
|
90 |
|
91 |
if (array_key_exists($row['REFERENCE'],$this->_UPPHash)){
|
|
|
92 |
if ($this->_UPPHash[$row['REFERENCE']]!=$md5){
|
93 |
$updateNeeded=true;
|
|
|
94 |
$mageRow=$this->_getRowByCode($row['REFERENCE']);
|
95 |
}
|
96 |
}else{
|
97 |
$updateNeeded=true;
|
|
|
98 |
$mageRow=Mage::getModel('unicentaopos/unicentaoposproduct');
|
99 |
}
|
|
|
100 |
if ($updateNeeded){
|
101 |
$mageRow->setName($row['NAME']);
|
102 |
$mageRow->setSku($row['REFERENCE']);
|
@@ -105,7 +133,8 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
105 |
$mageRow->setCost($row['PRICEBUY']);
|
106 |
$mageRow->setPrice($row['PRICESELL']);
|
107 |
$mageRow->setStock($row['STOCKVOLUME']);
|
108 |
-
$mageRow->
|
|
|
109 |
$mageRow->save();
|
110 |
}
|
111 |
}
|
@@ -172,11 +201,13 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
172 |
}
|
173 |
|
174 |
private function _updateUnicentaStock(){
|
|
|
175 |
$col=Mage::getModel('unicentaopos/unicentaoposorderitem')->getCollection()->addFilter('stockupdated',1);
|
|
|
176 |
try{
|
177 |
$db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
|
178 |
foreach($col as $item){
|
179 |
-
$sql="UPDATE `STOCKCURRENT` set UNITS=UNITS-{$item->getQuantity()} where PRODUCT=(SELECT ID FROM PRODUCTS WHERE REFERENCE='{$item->getSku()}')";
|
180 |
$res=$db->query($sql);
|
181 |
$item->setStockupdated(0);
|
182 |
$item->save();
|
@@ -198,7 +229,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
198 |
}
|
199 |
|
200 |
public function updateMagentoProducts(){
|
201 |
-
$col=Mage::getModel('unicentaopos/unicentaoposproduct')->getCollection()->
|
202 |
foreach ($col as $row){
|
203 |
$this->_saveMagentoProduct($row);
|
204 |
}
|
@@ -230,6 +261,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
230 |
private function _saveMagentoProduct($row){
|
231 |
try
|
232 |
{
|
|
|
233 |
$newProduct=false;
|
234 |
$product = Mage::getModel('catalog/product');
|
235 |
if ($row->getMagentoProductId()){
|
@@ -239,7 +271,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
239 |
if (!$product->getId()){
|
240 |
$product->setSku($row->getSku());
|
241 |
$product->setTypeId('simple');
|
242 |
-
$product->setAttributeSetId(
|
243 |
$product->setTaxClassId(1);
|
244 |
$product->setWeight(0.0);
|
245 |
$sData['qty']=$row->getStock();
|
@@ -256,10 +288,11 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
256 |
$sData=$product->getStockData($sData);
|
257 |
$product->setCostPrice($row->getCost());
|
258 |
$product->setPrice($row->getPrice());
|
|
|
259 |
$product->save();
|
260 |
|
261 |
if ($newProduct) Mage::getModel('catalog/product_status')->updateProductStatus($product->getId(), 0, Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
|
262 |
-
|
263 |
$row->setInfoupdated(0);
|
264 |
$row->setMagentoProductId($product->getId());
|
265 |
$row->save();
|
@@ -269,6 +302,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
269 |
{
|
270 |
Mage::log(__METHOD__.$e->getMessage(),null,"asulpunto_unicentaopos.log");
|
271 |
}
|
|
|
272 |
return 0;
|
273 |
}
|
274 |
|
@@ -294,5 +328,24 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
|
|
294 |
unset($cols);
|
295 |
}
|
296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
|
298 |
}
|
24 |
{
|
25 |
private $_UPPHash=array();
|
26 |
private $_UPS=array();
|
27 |
+
private $_NoImageProducts=array();
|
28 |
|
29 |
public function checkActivate(){
|
30 |
try{
|
48 |
public function cronProducts(){
|
49 |
try{
|
50 |
$this->_loadProductHash();//load a hash of history
|
51 |
+
$this->_noImageProducts();//load products without images so that if change is detected we load them.
|
52 |
|
53 |
$db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
|
54 |
$sql="select * from `PRODUCTS`";
|
56 |
|
57 |
foreach ($rows as $row){
|
58 |
$this->_getUnicentaProducts($row);
|
59 |
+
$this->_doImage($row);
|
60 |
}
|
61 |
$this->updateMagentoProducts();
|
62 |
}catch(Exception $e){
|
67 |
public function cronStock(){
|
68 |
try{
|
69 |
$this->_loadStock();
|
70 |
+
$loc=Mage::getStoreConfig('asulpuntounicentaopos/tools/location');
|
71 |
$db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
|
72 |
+
$sql="select b.REFERENCE as REFERENCE,a.UNITS as UNITS from `STOCKCURRENT` a , `PRODUCTS` b where a.PRODUCT=b.ID and location='$loc'";
|
73 |
$rows=$db->query($sql);
|
74 |
foreach ($rows as $row){
|
75 |
$this->_getUnicentaStock($row);
|
80 |
}
|
81 |
}
|
82 |
|
83 |
+
private function _noImageProducts(){
|
84 |
+
$collection=Mage::getModel('unicentaopos/unicentaoposproduct')->getCollection();
|
85 |
+
$collection->addFieldToFilter('image', array('null' => true));
|
86 |
+
foreach ($collection as $item){
|
87 |
+
$this->_NoImageProducts[$item->getSku()]=1;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
private function _doImage($row){
|
92 |
+
if (empty($row['IMAGE'])) return true;
|
93 |
+
if (array_key_exists($row['REFERENCE'],$this->_NoImageProducts)){
|
94 |
+
$mageRow=$this->_getRowByCode($row['REFERENCE']);
|
95 |
+
$mageRow->setImage($row['IMAGE']);
|
96 |
+
$mageRow->setInfoupdated(2);
|
97 |
+
$mageRow->save();
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
|
102 |
|
103 |
private function _getUnicentaProducts($row){
|
104 |
+
$updateNeeded=false;
|
105 |
+
$state=0;
|
106 |
|
107 |
$md5=md5(
|
108 |
$row['CODE'].'|'.
|
113 |
);
|
114 |
|
115 |
if (array_key_exists($row['REFERENCE'],$this->_UPPHash)){
|
116 |
+
//First Check Hashkey
|
117 |
if ($this->_UPPHash[$row['REFERENCE']]!=$md5){
|
118 |
$updateNeeded=true;
|
119 |
+
$state=1; //if 1 do not do image
|
120 |
$mageRow=$this->_getRowByCode($row['REFERENCE']);
|
121 |
}
|
122 |
}else{
|
123 |
$updateNeeded=true;
|
124 |
+
$state=2; //if 2 also create image
|
125 |
$mageRow=Mage::getModel('unicentaopos/unicentaoposproduct');
|
126 |
}
|
127 |
+
|
128 |
if ($updateNeeded){
|
129 |
$mageRow->setName($row['NAME']);
|
130 |
$mageRow->setSku($row['REFERENCE']);
|
133 |
$mageRow->setCost($row['PRICEBUY']);
|
134 |
$mageRow->setPrice($row['PRICESELL']);
|
135 |
$mageRow->setStock($row['STOCKVOLUME']);
|
136 |
+
$mageRow->setImage($row['IMAGE']);
|
137 |
+
$mageRow->setInfoupdated($state);
|
138 |
$mageRow->save();
|
139 |
}
|
140 |
}
|
201 |
}
|
202 |
|
203 |
private function _updateUnicentaStock(){
|
204 |
+
$loc=Mage::getStoreConfig('asulpuntounicentaopos/tools/location');
|
205 |
$col=Mage::getModel('unicentaopos/unicentaoposorderitem')->getCollection()->addFilter('stockupdated',1);
|
206 |
+
|
207 |
try{
|
208 |
$db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
|
209 |
foreach($col as $item){
|
210 |
+
$sql="UPDATE `STOCKCURRENT` set UNITS=UNITS-{$item->getQuantity()} where PRODUCT=(SELECT ID FROM PRODUCTS WHERE REFERENCE='{$item->getSku()}') and location='$loc'";
|
211 |
$res=$db->query($sql);
|
212 |
$item->setStockupdated(0);
|
213 |
$item->save();
|
229 |
}
|
230 |
|
231 |
public function updateMagentoProducts(){
|
232 |
+
$col=Mage::getModel('unicentaopos/unicentaoposproduct')->getCollection()->addFieldToFilter('infoupdated',array('in' => array('1', '2')));
|
233 |
foreach ($col as $row){
|
234 |
$this->_saveMagentoProduct($row);
|
235 |
}
|
261 |
private function _saveMagentoProduct($row){
|
262 |
try
|
263 |
{
|
264 |
+
$ptype=$this->getProductType();
|
265 |
$newProduct=false;
|
266 |
$product = Mage::getModel('catalog/product');
|
267 |
if ($row->getMagentoProductId()){
|
271 |
if (!$product->getId()){
|
272 |
$product->setSku($row->getSku());
|
273 |
$product->setTypeId('simple');
|
274 |
+
$product->setAttributeSetId($ptype);
|
275 |
$product->setTaxClassId(1);
|
276 |
$product->setWeight(0.0);
|
277 |
$sData['qty']=$row->getStock();
|
288 |
$sData=$product->getStockData($sData);
|
289 |
$product->setCostPrice($row->getCost());
|
290 |
$product->setPrice($row->getPrice());
|
291 |
+
if ($row->getInfoupdated()==2) $product=Mage::getModel('unicentaopos/unicentaoposproductapi')->setProductImage($row->getImage(),$product);
|
292 |
$product->save();
|
293 |
|
294 |
if ($newProduct) Mage::getModel('catalog/product_status')->updateProductStatus($product->getId(), 0, Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
|
295 |
+
if ($row->getInfoupdated()==2) Mage::getModel('unicentaopos/unicentaoposproductapi')->setProductImage($row->getImage(),$product);
|
296 |
$row->setInfoupdated(0);
|
297 |
$row->setMagentoProductId($product->getId());
|
298 |
$row->save();
|
302 |
{
|
303 |
Mage::log(__METHOD__.$e->getMessage(),null,"asulpunto_unicentaopos.log");
|
304 |
}
|
305 |
+
unset($row);
|
306 |
return 0;
|
307 |
}
|
308 |
|
328 |
unset($cols);
|
329 |
}
|
330 |
|
331 |
+
private function getProductType(){
|
332 |
+
return Mage::getStoreConfig('asulpuntounicentaopos/tools/product_type');
|
333 |
+
}
|
334 |
+
|
335 |
+
public function getLocations(){
|
336 |
+
try{
|
337 |
+
$ARR=array();
|
338 |
+
$rows=Mage::Helper('unicentaopos')->doQuery("select * from `LOCATIONS`");
|
339 |
+
if (!is_null($rows)){
|
340 |
+
foreach ($rows as $row){
|
341 |
+
$ARR[$row['ID']]=$row['NAME'];
|
342 |
+
}
|
343 |
+
}
|
344 |
+
}catch(Exception $e){
|
345 |
+
Mage::log(__METHOD__.$e->getMessage(),null,"asulpunto_unicentaopos.log");
|
346 |
+
}
|
347 |
+
return $ARR;
|
348 |
+
}
|
349 |
+
|
350 |
|
351 |
}
|
app/code/community/Asulpunto/Unicentaopos/Model/Unicentaoposproductapi.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento - Unicenta Opos Integrator by Asulpunto
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
* This program is free software: you can redistribute it and/or modify
|
7 |
+
* it under the terms of the GNU General Public License as published by
|
8 |
+
* the Free Software Foundation, Version 3 of the License. You can view
|
9 |
+
* the license here http://opensource.org/licenses/GPL-3.0
|
10 |
+
|
11 |
+
* This program is distributed in the hope that it will be useful,
|
12 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
+
* GNU General Public License for more details.
|
15 |
+
*
|
16 |
+
* @category Asulpunto
|
17 |
+
* @package Asulpunto_Unicentaopos
|
18 |
+
* @copyright Copyright (c) 2013 Asulpunto (http://www.asulpunto.com)
|
19 |
+
* @license http://opensource.org/licenses/GPL-3.0 GNU General Public License, version 3 (GPL-3.0)
|
20 |
+
*
|
21 |
+
*/
|
22 |
+
|
23 |
+
class Asulpunto_Unicentaopos_Model_Unicentaoposproductapi extends Mage_Core_Model_Abstract
|
24 |
+
{
|
25 |
+
private $_imageFolder='';
|
26 |
+
|
27 |
+
public function setProductImage($image,$product){
|
28 |
+
if (empty($image)) return $product;
|
29 |
+
|
30 |
+
$col=$product->getMediaGalleryImages();
|
31 |
+
if (!is_null($col) && $col->getSize()>0) return $product; //We do not overwrite images. Never.
|
32 |
+
$name=trim($product->getSku());
|
33 |
+
$imageFolder=$this->getImageFolder();
|
34 |
+
$path=$imageFolder.DIRECTORY_SEPARATOR.$name.'.png';
|
35 |
+
$res=file_put_contents($path,$image);
|
36 |
+
if ($res===false){
|
37 |
+
Mage::log(__METHOD__."Cannot create image for $name in folder: $imageFolder ",null,"asulpunto_unicentaopos.log");
|
38 |
+
}else{
|
39 |
+
$product->addImageToMediaGallery($path, array('thumbnail','small_image','image'),true,false);
|
40 |
+
}
|
41 |
+
unset($image);
|
42 |
+
return $product;
|
43 |
+
}
|
44 |
+
|
45 |
+
private function getImageFolder(){
|
46 |
+
if (empty($this->_imageFolder)){
|
47 |
+
$media=Mage::getBaseDir('media');
|
48 |
+
$unicenta=$media.DIRECTORY_SEPARATOR.'unicenta';
|
49 |
+
if (!file_exists($unicenta)){
|
50 |
+
$res=mkdir($unicenta,0777);
|
51 |
+
if (!$res) $this->_imageFolder=Mage::getBaseDir('media');
|
52 |
+
}
|
53 |
+
$this->_imageFolder=$unicenta;
|
54 |
+
}
|
55 |
+
return $this->_imageFolder;
|
56 |
+
}
|
57 |
+
|
58 |
+
}
|
app/code/community/Asulpunto/Unicentaopos/etc/config.xml
CHANGED
@@ -25,7 +25,7 @@
|
|
25 |
<config>
|
26 |
<modules>
|
27 |
<Asulpunto_Unicentaopos>
|
28 |
-
<version>0.0.
|
29 |
</Asulpunto_Unicentaopos>
|
30 |
</modules>
|
31 |
<global>
|
@@ -119,6 +119,7 @@
|
|
119 |
<asulpuntounicentaopos>
|
120 |
<tools>
|
121 |
<orderstatus>complete</orderstatus>
|
|
|
122 |
</tools>
|
123 |
</asulpuntounicentaopos>
|
124 |
</default>
|
25 |
<config>
|
26 |
<modules>
|
27 |
<Asulpunto_Unicentaopos>
|
28 |
+
<version>0.0.5</version>
|
29 |
</Asulpunto_Unicentaopos>
|
30 |
</modules>
|
31 |
<global>
|
119 |
<asulpuntounicentaopos>
|
120 |
<tools>
|
121 |
<orderstatus>complete</orderstatus>
|
122 |
+
<product_type>9</product_type>
|
123 |
</tools>
|
124 |
</asulpuntounicentaopos>
|
125 |
</default>
|
app/code/community/Asulpunto/Unicentaopos/etc/system.xml
CHANGED
@@ -122,6 +122,26 @@
|
|
122 |
<show_in_website>0</show_in_website>
|
123 |
<show_in_store>0</show_in_store>
|
124 |
</orderstatus>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
</fields>
|
126 |
|
127 |
</tools>
|
@@ -139,7 +159,9 @@
|
|
139 |
<show_in_default>1</show_in_default>
|
140 |
<show_in_website>0</show_in_website>
|
141 |
<show_in_store>0</show_in_store>
|
|
|
142 |
</orderno>
|
|
|
143 |
</fields>
|
144 |
</advanced>
|
145 |
</groups>
|
122 |
<show_in_website>0</show_in_website>
|
123 |
<show_in_store>0</show_in_store>
|
124 |
</orderstatus>
|
125 |
+
<product_type translate="label">
|
126 |
+
<label>Default Product Attribute Set</label>
|
127 |
+
<frontend_type>select</frontend_type>
|
128 |
+
<source_model>unicentaopos/source_producttypelist</source_model>
|
129 |
+
<sort_order>20</sort_order>
|
130 |
+
<show_in_default>1</show_in_default>
|
131 |
+
<show_in_website>0</show_in_website>
|
132 |
+
<show_in_store>0</show_in_store>
|
133 |
+
<comment>New products will be created in this Product Attribute Set when uniCenta oPOS creates them in Magento</comment>
|
134 |
+
</product_type>
|
135 |
+
<location translate="label">
|
136 |
+
<label>Stock location</label>
|
137 |
+
<frontend_type>select</frontend_type>
|
138 |
+
<source_model>unicentaopos/source_location</source_model>
|
139 |
+
<sort_order>20</sort_order>
|
140 |
+
<show_in_default>1</show_in_default>
|
141 |
+
<show_in_website>0</show_in_website>
|
142 |
+
<show_in_store>0</show_in_store>
|
143 |
+
<comment>New products will be created in this Product Attribute Set when uniCenta oPOS creates them in Magento</comment>
|
144 |
+
</location>
|
145 |
</fields>
|
146 |
|
147 |
</tools>
|
159 |
<show_in_default>1</show_in_default>
|
160 |
<show_in_website>0</show_in_website>
|
161 |
<show_in_store>0</show_in_store>
|
162 |
+
<comment>This order and any orders done before it will not update uniCenta oPOS stock diary.</comment>
|
163 |
</orderno>
|
164 |
+
|
165 |
</fields>
|
166 |
</advanced>
|
167 |
</groups>
|
app/code/community/Asulpunto/Unicentaopos/sql/unicentaopos_setup/mysql4-upgrade-0.0.4-0.0.5.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento - Unicenta Opos Integrator by Asulpunto
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
* This program is free software: you can redistribute it and/or modify
|
7 |
+
* it under the terms of the GNU General Public License as published by
|
8 |
+
* the Free Software Foundation, Version 3 of the License. You can view
|
9 |
+
* the license here http://opensource.org/licenses/GPL-3.0
|
10 |
+
|
11 |
+
* This program is distributed in the hope that it will be useful,
|
12 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
+
* GNU General Public License for more details.
|
15 |
+
*
|
16 |
+
* @category Asulpunto
|
17 |
+
* @package Asulpunto_Unicentaopos
|
18 |
+
* @copyright Copyright (c) 2013 Asulpunto (http://www.asulpunto.com)
|
19 |
+
* @license http://opensource.org/licenses/GPL-3.0 GNU General Public License, version 3 (GPL-3.0)
|
20 |
+
*
|
21 |
+
*/
|
22 |
+
|
23 |
+
$installer = $this;
|
24 |
+
$installer->startSetup();
|
25 |
+
$installer->run("ALTER TABLE {$installer->getTable('unicentaopos/unicentaoposproduct')} ADD COLUMN `image` MEDIUMBLOB NULL AFTER `data`");
|
26 |
+
$installer->endSetup();
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Asulpunto_Unicentaopos</name>
|
4 |
-
<version>0.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License 3.0</license>
|
7 |
<channel>community</channel>
|
@@ -19,15 +19,20 @@ Features:
|
|
19 |
To use this extension you have to install uniCenta oPOS's database on a Mysql server accessible by the Magento server.
|
20 |

|
21 |
</description>
|
22 |
-
<notes>0.0.
|
|
|
|
|
|
|
|
|
|
|
23 |
Advanced log to identify database connection issues
|
24 |

|
25 |
0.0.3
|
26 |
First official public release </notes>
|
27 |
<authors><author><name>asulpunto</name><user>asulpunto</user><email>asulpunto@asulpunto.com</email></author></authors>
|
28 |
-
<date>2013-
|
29 |
-
<time>16:
|
30 |
-
<contents><target name="magecommunity"><dir name="Asulpunto"><dir name="Unicentaopos"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><file name="Button.php" hash="ee172a1ea50cd3f75cf819ba40aa2ac3"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="
|
31 |
<compatible/>
|
32 |
<dependencies><required><php><min>5.2.0</min><max>5.5.0</max></php></required></dependencies>
|
33 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Asulpunto_Unicentaopos</name>
|
4 |
+
<version>0.0.5</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License 3.0</license>
|
7 |
<channel>community</channel>
|
19 |
To use this extension you have to install uniCenta oPOS's database on a Mysql server accessible by the Magento server.
|
20 |

|
21 |
</description>
|
22 |
+
<notes>0.0.5
|
23 |
+
* Product set can be configured from Admin. This also solves a problem when Magento's default attribute set was deleted.
|
24 |
+
* The warehouse that will track the stock can be selected from admin configuration.
|
25 |
+
* Images on Unicenta are tranfered to Magento when the Magento Product does not have any images. 
|
26 |
+

|
27 |
+
0.0.4
|
28 |
Advanced log to identify database connection issues
|
29 |

|
30 |
0.0.3
|
31 |
First official public release </notes>
|
32 |
<authors><author><name>asulpunto</name><user>asulpunto</user><email>asulpunto@asulpunto.com</email></author></authors>
|
33 |
+
<date>2013-10-20</date>
|
34 |
+
<time>16:44:01</time>
|
35 |
+
<contents><target name="magecommunity"><dir name="Asulpunto"><dir name="Unicentaopos"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><file name="Button.php" hash="ee172a1ea50cd3f75cf819ba40aa2ac3"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="81fac45bfd866818d44d00cc12d7b657"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Unicentaoposorderitem"><file name="Collection.php" hash="bb9cf8ab48304c34fd7bd575e1002574"/></dir><file name="Unicentaoposorderitem.php" hash="edc7cfecd2b60b0bc372da8c0509cf7d"/><dir name="Unicentaoposproduct"><file name="Collection.php" hash="03f65e284b426d36daa2376e38a813e1"/></dir><file name="Unicentaoposproduct.php" hash="1f849c04da97b863ee88c3b34dc8255b"/></dir><dir name="Source"><file name="Location.php" hash="231c61909cef275342fe746e6b1a3406"/><file name="Producttypelist.php" hash="ee920c29a4c36e5d39503d049729c206"/></dir><file name="Unicentaoposapi.php" hash="913169072b0c0b8a610c526527e044f1"/><file name="Unicentaoposorderitem.php" hash="31b0f22a1fa3af396a01b741fd9d4adf"/><file name="Unicentaoposproduct.php" hash="8754d16acf3372355bf379deb563ab03"/><file name="Unicentaoposproductapi.php" hash="61949d0060a34e3f91c6ddd55d2428ab"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="UnicentaoposController.php" hash="7da0f12f269dfdc16ef1f8881753d5fa"/></dir></dir><dir name="etc"><file name="config.xml" hash="d1e4e03c1ce228cd9af2af12ac985315"/><file name="system.xml" hash="728f6378863496c25f860702a5881ec0"/></dir><dir name="sql"><dir name="unicentaopos_setup"><file name="mysql4-install-0.0.1.php" hash="84ba3c4373b2a1c6b1219e8fbd881b51"/><file name="mysql4-upgrade-0.0.1-0.0.2.php" hash="76ea73b06b500e88db0891df95744b65"/><file name="mysql4-upgrade-0.0.4-0.0.5.php" hash="666324a87a44f9e4f161bbea4f4c8c06"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="asulpunto"><dir name="unicentaopos"><dir name="system"><dir name="config"><file name="button.phtml" hash="023c9f40cee588b3e3ad51728a8b9865"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Asulpunto_Unicentaopos.xml" hash="0b81c393d2739bbabe04eeccadeaf858"/></dir></target></contents>
|
36 |
<compatible/>
|
37 |
<dependencies><required><php><min>5.2.0</min><max>5.5.0</max></php></required></dependencies>
|
38 |
</package>
|