Version Notes
minor bug fixes
Download this release
Release Info
Developer | Albert Andrejev |
Extension | LinnLiveConnect |
Version | 1.1.41 |
Comparing to | |
See all releases |
Code changes from version 1.1.40 to 1.1.41
app/code/local/LinnSystems/LinnLiveConnect/Model/Api/V2.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
class Settings {
|
3 |
-
static $VERSION =
|
4 |
}
|
5 |
|
6 |
class LinnSystems_LinnLiveConnect_Model_Api_V2{
|
@@ -79,7 +79,7 @@ class Factory{
|
|
79 |
$version = intval($version);
|
80 |
|
81 |
if ($version == 0)
|
82 |
-
throw new Mage_Api_Exception('
|
83 |
if (Settings::$VERSION < $version )
|
84 |
throw new Mage_Api_Exception('wrong_version');
|
85 |
}
|
@@ -390,7 +390,8 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
390 |
$indexer = Mage::getSingleton('index/indexer');
|
391 |
$process = $indexer->getProcessByCode('catalog_product_price');
|
392 |
$process->reindexEverything();
|
393 |
-
}
|
|
|
394 |
throw new Mage_Api_Exception('configurable_creating_error', $e->getMessage());
|
395 |
}
|
396 |
}
|
@@ -532,6 +533,20 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
532 |
return $this->_getStore()->getCode();
|
533 |
}
|
534 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
535 |
private function _getStore($storeCode=null)
|
536 |
{
|
537 |
if (Mage::app()->isSingleStoreMode()) {
|
@@ -695,10 +710,10 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
695 |
|
696 |
|
697 |
/*
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
public function configurableProduct($set, $sku, $reindex, $productData, $productsSet, $attributesSet, $store=null)
|
703 |
{
|
704 |
if (!$set || !$sku) {
|
@@ -737,26 +752,34 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
737 |
|
738 |
public function updateConfigurableProduct($productId, $reindex, $productData, $productsSet, $attributesSet, $store=null, $identifierType='id')
|
739 |
{
|
740 |
-
if ($identifierType == 'id')
|
741 |
-
{
|
742 |
-
$productId = intval($productId);
|
743 |
|
744 |
-
if ($productId < 1) {
|
745 |
-
throw new Mage_Api_Exception('product_not_exists', null);
|
746 |
-
}
|
747 |
-
}
|
748 |
|
749 |
$this->_prepareConfigurableData($store, $productData, $assignedProductsArray,
|
750 |
$attributesSetArray, $productsSet, $attributesSet);
|
751 |
|
752 |
try {
|
753 |
$storeId = Mage::app()->getStore($store)->getId();
|
754 |
-
}
|
|
|
755 |
throw new Mage_Api_Exception('store_not_exists', null);
|
756 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
757 |
|
758 |
$_loadedProduct = Mage::helper('catalog/product')->getProduct($productId, $storeId, $identifierType);
|
759 |
|
|
|
|
|
|
|
|
|
|
|
760 |
$_categoryIds = $_loadedProduct->getCategoryIds();
|
761 |
if (property_exists($productData, 'category_ids'))
|
762 |
{
|
@@ -808,8 +831,8 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
808 |
}
|
809 |
|
810 |
/*
|
811 |
-
|
812 |
-
|
813 |
public function storesList()
|
814 |
{
|
815 |
return ($this->_getCurrentVersion() >= 160);
|
@@ -822,24 +845,23 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
822 |
|
823 |
public function deleteAssigned($productId, $store=null, $identifierType='id')
|
824 |
{
|
825 |
-
if ($identifierType == 'id')
|
826 |
-
{
|
827 |
-
$productId = intval($productId);
|
828 |
-
|
829 |
-
if ($productId < 1) {
|
830 |
-
throw new Mage_Api_Exception('product_not_exists', null);
|
831 |
-
}
|
832 |
-
}
|
833 |
-
|
834 |
$store = $this->_currentStoreCode($store);
|
835 |
|
836 |
try {
|
837 |
$storeId = Mage::app()->getStore($store)->getId();
|
838 |
-
}
|
|
|
839 |
throw new Mage_Api_Exception('store_not_exists', null);
|
840 |
}
|
841 |
|
842 |
$_loadedProduct = Mage::helper('catalog/product')->getProduct($productId, $storeId, $identifierType);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
843 |
$currentWebsites = $_loadedProduct->getWebsiteIds();
|
844 |
$websiteId = $this->_getWebsiteId($store);
|
845 |
$websiteId = $websiteId[0];
|
@@ -925,12 +947,12 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
925 |
}
|
926 |
|
927 |
/*
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
public function productList($page, $perPage, $filters = null, $store = null)
|
935 |
{
|
936 |
$arrayParams = array(
|
@@ -942,7 +964,8 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
942 |
|
943 |
try {
|
944 |
$storeId = Mage::app()->getStore($store)->getId();
|
945 |
-
}
|
|
|
946 |
throw new Mage_Api_Exception('store_not_exists', null);
|
947 |
}
|
948 |
|
@@ -999,7 +1022,8 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
999 |
foreach ($preparedFilters as $field => $value) {
|
1000 |
$collection->addFieldToFilter($field, $value);
|
1001 |
}
|
1002 |
-
}
|
|
|
1003 |
throw new Mage_Api_Exception('filters_invalid', $e->getMessage());
|
1004 |
}
|
1005 |
}
|
@@ -1179,24 +1203,22 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
1179 |
|
1180 |
public function update($productId, $productData, $store = null, $identifierType = 'id')
|
1181 |
{
|
1182 |
-
if ($identifierType == 'id')
|
1183 |
-
{
|
1184 |
-
$productId = intval($productId);
|
1185 |
-
|
1186 |
-
if ($productId < 1) {
|
1187 |
-
throw new Mage_Api_Exception('product_not_exists', null);
|
1188 |
-
}
|
1189 |
-
}
|
1190 |
-
|
1191 |
$store = $this->_currentStoreCode($store);
|
1192 |
try {
|
1193 |
$storeId = Mage::app()->getStore($store)->getId();
|
1194 |
-
}
|
|
|
1195 |
throw new Mage_Api_Exception('store_not_exists', null);
|
1196 |
}
|
1197 |
|
1198 |
$_loadedProduct = Mage::helper('catalog/product')->getProduct($productId, $storeId, $identifierType);
|
1199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1200 |
$_categoryIds = $_loadedProduct->getCategoryIds();
|
1201 |
if (property_exists($productData, 'category_ids'))
|
1202 |
{
|
@@ -1251,6 +1273,11 @@ class LinnLiveMain extends Mage_Core_Model_Abstract{
|
|
1251 |
|
1252 |
public function create($type, $set, $sku, $productData, $store = null)
|
1253 |
{
|
|
|
|
|
|
|
|
|
|
|
1254 |
$store = $this->_currentStoreCode($store);
|
1255 |
|
1256 |
$DefaultStore = $this->_getStore();
|
@@ -1397,7 +1424,7 @@ class LinnLiveEnterprise extends LinnLiveMain{
|
|
1397 |
}
|
1398 |
else
|
1399 |
{
|
1400 |
-
|
1401 |
}
|
1402 |
}
|
1403 |
else
|
@@ -1408,7 +1435,7 @@ class LinnLiveEnterprise extends LinnLiveMain{
|
|
1408 |
}
|
1409 |
else
|
1410 |
{
|
1411 |
-
|
1412 |
}
|
1413 |
}
|
1414 |
$i++;
|
1 |
<?php
|
2 |
class Settings {
|
3 |
+
static $VERSION = 41;
|
4 |
}
|
5 |
|
6 |
class LinnSystems_LinnLiveConnect_Model_Api_V2{
|
79 |
$version = intval($version);
|
80 |
|
81 |
if ($version == 0)
|
82 |
+
throw new Mage_Api_Exception('version_not_specified');
|
83 |
if (Settings::$VERSION < $version )
|
84 |
throw new Mage_Api_Exception('wrong_version');
|
85 |
}
|
390 |
$indexer = Mage::getSingleton('index/indexer');
|
391 |
$process = $indexer->getProcessByCode('catalog_product_price');
|
392 |
$process->reindexEverything();
|
393 |
+
}
|
394 |
+
catch (Mage_Core_Exception $e) {
|
395 |
throw new Mage_Api_Exception('configurable_creating_error', $e->getMessage());
|
396 |
}
|
397 |
}
|
533 |
return $this->_getStore()->getCode();
|
534 |
}
|
535 |
|
536 |
+
private function _getProductBySku($sku)
|
537 |
+
{
|
538 |
+
if($sku){
|
539 |
+
$product = Mage::getModel('catalog/product');
|
540 |
+
$productId = $product->getIdBySku((string)$sku);
|
541 |
+
if($productId){
|
542 |
+
$product->load($productId);
|
543 |
+
if($product->getId()){
|
544 |
+
return $product;
|
545 |
+
}
|
546 |
+
}
|
547 |
+
}
|
548 |
+
}
|
549 |
+
|
550 |
private function _getStore($storeCode=null)
|
551 |
{
|
552 |
if (Mage::app()->isSingleStoreMode()) {
|
710 |
|
711 |
|
712 |
/*
|
713 |
+
*
|
714 |
+
* Public functions(API)
|
715 |
+
*
|
716 |
+
*/
|
717 |
public function configurableProduct($set, $sku, $reindex, $productData, $productsSet, $attributesSet, $store=null)
|
718 |
{
|
719 |
if (!$set || !$sku) {
|
752 |
|
753 |
public function updateConfigurableProduct($productId, $reindex, $productData, $productsSet, $attributesSet, $store=null, $identifierType='id')
|
754 |
{
|
|
|
|
|
|
|
755 |
|
|
|
|
|
|
|
|
|
756 |
|
757 |
$this->_prepareConfigurableData($store, $productData, $assignedProductsArray,
|
758 |
$attributesSetArray, $productsSet, $attributesSet);
|
759 |
|
760 |
try {
|
761 |
$storeId = Mage::app()->getStore($store)->getId();
|
762 |
+
}
|
763 |
+
catch (Mage_Core_Model_Store_Exception $e) {
|
764 |
throw new Mage_Api_Exception('store_not_exists', null);
|
765 |
}
|
766 |
+
/*
|
767 |
+
if ($identifierType == 'id')
|
768 |
+
{
|
769 |
+
$productId = intval($productId);
|
770 |
+
|
771 |
+
if ($productId < 1) {
|
772 |
+
throw new Mage_Api_Exception('product_not_exists', null);
|
773 |
+
}
|
774 |
+
}*/
|
775 |
|
776 |
$_loadedProduct = Mage::helper('catalog/product')->getProduct($productId, $storeId, $identifierType);
|
777 |
|
778 |
+
if (!$_loadedProduct->getId())
|
779 |
+
{
|
780 |
+
throw new Mage_Api_Exception('product_not_exists', null);
|
781 |
+
}
|
782 |
+
|
783 |
$_categoryIds = $_loadedProduct->getCategoryIds();
|
784 |
if (property_exists($productData, 'category_ids'))
|
785 |
{
|
831 |
}
|
832 |
|
833 |
/*
|
834 |
+
* Checks if this Magento server has valid Extension installed
|
835 |
+
*/
|
836 |
public function storesList()
|
837 |
{
|
838 |
return ($this->_getCurrentVersion() >= 160);
|
845 |
|
846 |
public function deleteAssigned($productId, $store=null, $identifierType='id')
|
847 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
848 |
$store = $this->_currentStoreCode($store);
|
849 |
|
850 |
try {
|
851 |
$storeId = Mage::app()->getStore($store)->getId();
|
852 |
+
}
|
853 |
+
catch (Mage_Core_Model_Store_Exception $e) {
|
854 |
throw new Mage_Api_Exception('store_not_exists', null);
|
855 |
}
|
856 |
|
857 |
$_loadedProduct = Mage::helper('catalog/product')->getProduct($productId, $storeId, $identifierType);
|
858 |
+
|
859 |
+
if (!$_loadedProduct->getId())
|
860 |
+
{
|
861 |
+
throw new Mage_Api_Exception('product_not_exists', null);
|
862 |
+
}
|
863 |
+
|
864 |
+
|
865 |
$currentWebsites = $_loadedProduct->getWebsiteIds();
|
866 |
$websiteId = $this->_getWebsiteId($store);
|
867 |
$websiteId = $websiteId[0];
|
947 |
}
|
948 |
|
949 |
/*
|
950 |
+
* Implementation of catalogProductList because of bug in associativeArray.
|
951 |
+
* Extended to filter by category id too.
|
952 |
+
*
|
953 |
+
* Use 'entity_id' for product_id,
|
954 |
+
* 'type_id' instead of product type.
|
955 |
+
*/
|
956 |
public function productList($page, $perPage, $filters = null, $store = null)
|
957 |
{
|
958 |
$arrayParams = array(
|
964 |
|
965 |
try {
|
966 |
$storeId = Mage::app()->getStore($store)->getId();
|
967 |
+
}
|
968 |
+
catch (Mage_Core_Model_Store_Exception $e) {
|
969 |
throw new Mage_Api_Exception('store_not_exists', null);
|
970 |
}
|
971 |
|
1022 |
foreach ($preparedFilters as $field => $value) {
|
1023 |
$collection->addFieldToFilter($field, $value);
|
1024 |
}
|
1025 |
+
}
|
1026 |
+
catch (Mage_Core_Exception $e) {
|
1027 |
throw new Mage_Api_Exception('filters_invalid', $e->getMessage());
|
1028 |
}
|
1029 |
}
|
1203 |
|
1204 |
public function update($productId, $productData, $store = null, $identifierType = 'id')
|
1205 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1206 |
$store = $this->_currentStoreCode($store);
|
1207 |
try {
|
1208 |
$storeId = Mage::app()->getStore($store)->getId();
|
1209 |
+
}
|
1210 |
+
catch (Mage_Core_Model_Store_Exception $e) {
|
1211 |
throw new Mage_Api_Exception('store_not_exists', null);
|
1212 |
}
|
1213 |
|
1214 |
$_loadedProduct = Mage::helper('catalog/product')->getProduct($productId, $storeId, $identifierType);
|
1215 |
|
1216 |
+
if (!$_loadedProduct->getId())
|
1217 |
+
{
|
1218 |
+
throw new Mage_Api_Exception('product_not_exists', null);
|
1219 |
+
}
|
1220 |
+
|
1221 |
+
|
1222 |
$_categoryIds = $_loadedProduct->getCategoryIds();
|
1223 |
if (property_exists($productData, 'category_ids'))
|
1224 |
{
|
1273 |
|
1274 |
public function create($type, $set, $sku, $productData, $store = null)
|
1275 |
{
|
1276 |
+
$product = $this->_getProductBySku($sku);
|
1277 |
+
if($product){
|
1278 |
+
return $product->getId();
|
1279 |
+
}
|
1280 |
+
|
1281 |
$store = $this->_currentStoreCode($store);
|
1282 |
|
1283 |
$DefaultStore = $this->_getStore();
|
1424 |
}
|
1425 |
else
|
1426 |
{
|
1427 |
+
$productData->additional_attributes->single_data[$i]->value = $_availableOptions[$option->attribute_id][strtolower($option->label)];
|
1428 |
}
|
1429 |
}
|
1430 |
else
|
1435 |
}
|
1436 |
else
|
1437 |
{
|
1438 |
+
$productData->additional_attributes->single_data[$i]->value = $option->value;
|
1439 |
}
|
1440 |
}
|
1441 |
$i++;
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>LinnLiveConnect</name>
|
4 |
-
<version>1.1.
|
5 |
<stability>stable</stability>
|
6 |
<license>GPL v2</license>
|
7 |
<channel>community</channel>
|
@@ -12,8 +12,8 @@ Contains some workarounds to avoid bugs in original Magento modules and addition
|
|
12 |
<notes>minor bug fixes</notes>
|
13 |
<authors><author><name>Albert Andrejev</name><user>albert_andrejev</user><email>albert@linnsystems.com</email></author><author><name>Pavel Nikolajev</name><user>Pavel_LL2</user><email>pavel.nokolajev@linnsystems.com</email></author><author><name>Aleksandr Kornev</name><user>alex_LL2</user><email>alex.kornevs@linnsystems.com</email></author></authors>
|
14 |
<date>2014-04-16</date>
|
15 |
-
<time>
|
16 |
-
<contents><target name="magelocal"><dir name="LinnSystems"><dir name="LinnLiveConnect"><dir name="Helper"><file name="Data.php" hash="5fe5216de67d4e69a0f418b0cd7780ee"/></dir><dir name="Model"><dir name="Api"><file name="V2.php" hash="
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
19 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>LinnLiveConnect</name>
|
4 |
+
<version>1.1.41</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>GPL v2</license>
|
7 |
<channel>community</channel>
|
12 |
<notes>minor bug fixes</notes>
|
13 |
<authors><author><name>Albert Andrejev</name><user>albert_andrejev</user><email>albert@linnsystems.com</email></author><author><name>Pavel Nikolajev</name><user>Pavel_LL2</user><email>pavel.nokolajev@linnsystems.com</email></author><author><name>Aleksandr Kornev</name><user>alex_LL2</user><email>alex.kornevs@linnsystems.com</email></author></authors>
|
14 |
<date>2014-04-16</date>
|
15 |
+
<time>13:18:55</time>
|
16 |
+
<contents><target name="magelocal"><dir name="LinnSystems"><dir name="LinnLiveConnect"><dir name="Helper"><file name="Data.php" hash="5fe5216de67d4e69a0f418b0cd7780ee"/></dir><dir name="Model"><dir name="Api"><file name="V2.php" hash="92f252fdbe817193d1cdf7ba4a402191"/></dir></dir><dir name="etc"><file name="api.xml" hash="2d53cb9b318de468f6d2e3d388bb8732"/><file name="config.xml" hash="2d1d6338d93e36b730efde622893b4e6"/><file name="wsdl.xml" hash="fc21f2963c1253f5f40e5e8414312174"/><file name="wsi.xml" hash="ef000d5115f5988664f58df8b9139e5e"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="LinnSystems_LinnLiveConnect.xml" hash="19c48712cd0516815d6784592ada0881"/></dir></target></contents>
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
19 |
</package>
|