Version Notes
Any questions or concerns, please email cs@tagalys.com and we will get back to you in less than 24 hours.
Download this release
Release Info
Developer | Palani |
Extension | visual-merchandising-product-listing-campaign-creator |
Version | 1.4.2 |
Comparing to | |
See all releases |
Code changes from version 1.4.1 to 1.4.2
app/code/community/Tagalys/Core/Helper/Service.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
class Tagalys_Core_Helper_Service extends Mage_Core_Helper_Abstract {
|
3 |
protected $_storeId;
|
4 |
|
5 |
-
public function getProductPayload($product_id, $store_id) {
|
6 |
$core_helper = Mage::helper('tagalys_core');
|
7 |
$details_model = Mage::getModel("tagalys_core/productDetails");
|
8 |
|
@@ -12,7 +12,7 @@ class Tagalys_Core_Helper_Service extends Mage_Core_Helper_Abstract {
|
|
12 |
$attr_data = array();
|
13 |
Mage::app()->setCurrentStore($store_id);
|
14 |
$attributes = $details_model->getProductAttributes($product_id, $store_id, array_keys((array) $product_data));
|
15 |
-
$product_data = $details_model->getProductFields($product_id, $store_id);
|
16 |
$product_data->__tags = $attributes;
|
17 |
|
18 |
$product_data->synced_at = $time_now;
|
2 |
class Tagalys_Core_Helper_Service extends Mage_Core_Helper_Abstract {
|
3 |
protected $_storeId;
|
4 |
|
5 |
+
public function getProductPayload($product_id, $store_id, $forceRegenerateThumbnail = false) {
|
6 |
$core_helper = Mage::helper('tagalys_core');
|
7 |
$details_model = Mage::getModel("tagalys_core/productDetails");
|
8 |
|
12 |
$attr_data = array();
|
13 |
Mage::app()->setCurrentStore($store_id);
|
14 |
$attributes = $details_model->getProductAttributes($product_id, $store_id, array_keys((array) $product_data));
|
15 |
+
$product_data = $details_model->getProductFields($product_id, $store_id, $forceRegenerateThumbnail);
|
16 |
$product_data->__tags = $attributes;
|
17 |
|
18 |
$product_data->synced_at = $time_now;
|
app/code/community/Tagalys/Core/Helper/SyncFile.php
CHANGED
@@ -16,8 +16,8 @@ class Tagalys_Core_Helper_SyncFile extends Varien_Io_File {
|
|
16 |
$this->_sync_files_folder_with_path = Mage::getBaseDir('media'). DS .'tagalys';
|
17 |
$this->checkAndCreateFolder($this->_sync_files_folder_with_path);
|
18 |
$this->_sync_files_path = $this->_sync_files_folder_with_path . DS;
|
19 |
-
$this->per_page =
|
20 |
-
$this->cron_instance_max_products =
|
21 |
// parent::__construct();
|
22 |
}
|
23 |
|
@@ -364,7 +364,11 @@ class Tagalys_Core_Helper_SyncFile extends Varien_Io_File {
|
|
364 |
$circuit_breaker += 1;
|
365 |
$products = $select->limit($this->per_page, $sync_file_status['completed_count'])->query();
|
366 |
foreach($products as $product) {
|
367 |
-
$
|
|
|
|
|
|
|
|
|
368 |
$this->streamWrite(json_encode(array("perform" => "index", "payload" => $product_details)) ."\r\n");
|
369 |
$sync_file_status['completed_count'] += 1;
|
370 |
$cron_instance_completed_products += 1;
|
16 |
$this->_sync_files_folder_with_path = Mage::getBaseDir('media'). DS .'tagalys';
|
17 |
$this->checkAndCreateFolder($this->_sync_files_folder_with_path);
|
18 |
$this->_sync_files_path = $this->_sync_files_folder_with_path . DS;
|
19 |
+
$this->per_page = 50;
|
20 |
+
$this->cron_instance_max_products = 500;
|
21 |
// parent::__construct();
|
22 |
}
|
23 |
|
364 |
$circuit_breaker += 1;
|
365 |
$products = $select->limit($this->per_page, $sync_file_status['completed_count'])->query();
|
366 |
foreach($products as $product) {
|
367 |
+
$forceRegenerateThumbnail = false;
|
368 |
+
if ($type == 'updates') {
|
369 |
+
$forceRegenerateThumbnail = true;
|
370 |
+
}
|
371 |
+
$product_details = (array) Mage::helper("tagalys_core/service")->getProductPayload($product['entity_id'], $store_id, $forceRegenerateThumbnail);
|
372 |
$this->streamWrite(json_encode(array("perform" => "index", "payload" => $product_details)) ."\r\n");
|
373 |
$sync_file_status['completed_count'] += 1;
|
374 |
$cron_instance_completed_products += 1;
|
app/code/community/Tagalys/Core/Model/ProductDetails.php
CHANGED
@@ -4,9 +4,9 @@ class Tagalys_Core_Model_ProductDetails extends Mage_Core_Model_Abstract {
|
|
4 |
protected $syncfield;
|
5 |
protected $inventorySyncField;
|
6 |
|
7 |
-
public function getProductFields($productId, $
|
8 |
try {
|
9 |
-
$this->_storeId = $
|
10 |
$core_helper = Mage::helper('tagalys_core');
|
11 |
$product = Mage::getModel('catalog/product')->load($productId);
|
12 |
if (is_null($this->_storeId)) {
|
@@ -46,7 +46,7 @@ class Tagalys_Core_Model_ProductDetails extends Mage_Core_Model_Abstract {
|
|
46 |
$utc_now = new DateTime("now", new DateTimeZone('UTC'));
|
47 |
$time_now = $utc_now->format(DateTime::ATOM);
|
48 |
$product_data->synced_at = $time_now;
|
49 |
-
$productFields->image_url =
|
50 |
$fields = array('created_at');
|
51 |
foreach ($fields as $key => $name) {
|
52 |
$fieldValue = $product->getResource()->getAttribute($name)->getFrontend()->getValue($product);
|
@@ -155,4 +155,40 @@ class Tagalys_Core_Model_ProductDetails extends Mage_Core_Model_Abstract {
|
|
155 |
|
156 |
return ($attributeObj);
|
157 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
}
|
4 |
protected $syncfield;
|
5 |
protected $inventorySyncField;
|
6 |
|
7 |
+
public function getProductFields($productId, $storeId, $forceRegenerateThumbnail) {
|
8 |
try {
|
9 |
+
$this->_storeId = $storeId;
|
10 |
$core_helper = Mage::helper('tagalys_core');
|
11 |
$product = Mage::getModel('catalog/product')->load($productId);
|
12 |
if (is_null($this->_storeId)) {
|
46 |
$utc_now = new DateTime("now", new DateTimeZone('UTC'));
|
47 |
$time_now = $utc_now->format(DateTime::ATOM);
|
48 |
$product_data->synced_at = $time_now;
|
49 |
+
$productFields->image_url = $this->getProductImageUrl($product, $storeId, $forceRegenerateThumbnail);
|
50 |
$fields = array('created_at');
|
51 |
foreach ($fields as $key => $name) {
|
52 |
$fieldValue = $product->getResource()->getAttribute($name)->getFrontend()->getValue($product);
|
155 |
|
156 |
return ($attributeObj);
|
157 |
}
|
158 |
+
public function getProductImageUrl($product, $storeId, $forceRegenerateThumbnail) {
|
159 |
+
try {
|
160 |
+
$productImagePath = $product->getImage();
|
161 |
+
$baseProductImagePath = Mage::getBaseDir('media') . DS . "catalog" . DS . "product" . $productImagePath;
|
162 |
+
if(file_exists($baseProductImagePath)) {
|
163 |
+
$imageDetails = getimagesize($baseProductImagePath);
|
164 |
+
$width = $imageDetails[0];
|
165 |
+
$height = $imageDetails[1];
|
166 |
+
if ($width > 1 && $height > 1) {
|
167 |
+
$resizedProductImagePath = Mage::getBaseDir('media') . DS . 'tagalys' . DS . 'product_thumbnails' . $productImagePath;
|
168 |
+
if ($forceRegenerateThumbnail || !file_exists($resizedProductImagePath)) {
|
169 |
+
if (file_exists($resizedProductImagePath)) {
|
170 |
+
unlink($resizedProductImagePath);
|
171 |
+
}
|
172 |
+
$imageObj = new Varien_Image($baseProductImagePath);
|
173 |
+
$imageObj->constrainOnly(TRUE);
|
174 |
+
$imageObj->keepAspectRatio(TRUE);
|
175 |
+
$imageObj->keepFrame(FALSE);
|
176 |
+
$imageObj->resize(300, 300);
|
177 |
+
$imageObj->save($resizedProductImagePath);
|
178 |
+
}
|
179 |
+
if (file_exists($resizedProductImagePath)) {
|
180 |
+
return str_replace('http:', '', Mage::app()->getStore()->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'tagalys' . DS . 'product_thumbnails' . $productImagePath);
|
181 |
+
} else {
|
182 |
+
// placeholder
|
183 |
+
$placeholder_image = Mage::getStoreConfig("catalog/placeholder/small_image_placeholder");
|
184 |
+
$media_base_url = Mage::app()->getStore()->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
|
185 |
+
$media_url = $media_base_url . Mage::getModel('catalog/product_media_config')->getBaseMediaUrlAddition();
|
186 |
+
return str_replace('http:', '', $media_url . DS . 'placeholder' . DS . $placeholder_image);
|
187 |
+
}
|
188 |
+
}
|
189 |
+
}
|
190 |
+
} catch(Exception $e) {
|
191 |
+
|
192 |
+
}
|
193 |
+
}
|
194 |
}
|
app/code/community/Tagalys/Core/etc/config.xml
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
<tagalys>
|
7 |
<package>
|
8 |
<name>Mpages</name>
|
9 |
-
<version>1.4.
|
10 |
</package>
|
11 |
</tagalys>
|
12 |
</default>
|
6 |
<tagalys>
|
7 |
<package>
|
8 |
<name>Mpages</name>
|
9 |
+
<version>1.4.2</version>
|
10 |
</package>
|
11 |
</tagalys>
|
12 |
</default>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>visual-merchandising-product-listing-campaign-creator</name>
|
4 |
-
<version>1.4.
|
5 |
<stability>stable</stability>
|
6 |
<license>Tagalys</license>
|
7 |
<channel>community</channel>
|
@@ -12,9 +12,9 @@
|
|
12 |
Visual Merchandising allows you to to create, modify or delete product listing pages that can be used from campaigns in SEO, SEM, Social Media and show collections at your online store. Visual Merchandisers do not require any assistance from IT or Tech teams allowing them to focus on managing the platform.</description>
|
13 |
<notes>Any questions or concerns, please email cs@tagalys.com and we will get back to you in less than 24 hours. </notes>
|
14 |
<authors><author><name>Palani</name><user>Palani</user><email>pc@tagalys.com</email></author></authors>
|
15 |
-
<date>2017-05-
|
16 |
-
<time>
|
17 |
-
<contents><target name="mageetc"><dir><dir name="modules"><file name="Tagalys_Core.xml" hash="7576ed5aa125c580f0b791018f24a0e9"/><file name="Tagalys_SearchSuggestions.xml" hash="dbf6f4ff1859ef2df72560c9282af435"/><file name="Tagalys_Search.xml" hash="820b96f53d2f0e86cb49906a4dda7f41"/><file name="Tagalys_Mpages.xml" hash="6ccb4f45669c98fd746c6abd92ab32ca"/><file name="Tagalys_Analytics.xml" hash="59ce2628610a4624235a5c820beac2d2"/></dir></dir></target><target name="magecommunity"><dir><dir name="Tagalys"><dir name="Core"><dir name="Block"><dir name="Adminhtml"><dir name="Tagalys"><dir name="Edit"><file name="Form.php" hash="31cae34d1e9bd5cb0c881ae5a6fc03c0"/><dir name="Tab"><file name="Apicredentials.php" hash="9005c30790a51ad077cb4be46a07b766"/><file name="Mpages.php" hash="ba526eb77efd4000ae96404bd04aa638"/><file name="Search.php" hash="fef14680d0feb63bb4e928296c3b9032"/><file name="Searchsuggestions.php" hash="1fa634f35204a06d06fa4c7f762c3259"/><file name="Similarproducts.php" hash="390c3a93c5851a6d784e82650be20ae5"/><file name="Support.php" hash="c68547cfe57cbccdcbcf7c3eb35ed6b3"/><file name="Sync.php" hash="849f7bb77ff568e7f29cf63d54e7faa8"/><file name="Syncsettings.php" hash="77ecb1594c7b409e2055ff8394b85aa8"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Tabs.php" hash="6868651b592381ff8081c8247ebf5214"/><file name=".DS_Store" hash="711f187349473a2c6e6d564d4a2faeb9"/></dir><file name="Edit.php" hash="9da04e9a4aec76ce5f5bd88c453390cd"/><file name=".DS_Store" hash="2f95379345a665b8fd261ff7c2f5a7af"/></dir><file name=".DS_Store" hash="96cf5cac0d87be80da73c36e96971923"/></dir><file name=".DS_Store" hash="8c5a4cb1f6f8e10ade87d78ff4d0bfe4"/></dir><dir name="Helper"><file name="Data.php" hash="d50fec78e8a30b7f4d019fd6d0e5c7ed"/><file name="Service.php" hash="
|
18 |
<compatible/>
|
19 |
<dependencies><required><php><min>5.3.0</min><max>7.0.10</max></php></required></dependencies>
|
20 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>visual-merchandising-product-listing-campaign-creator</name>
|
4 |
+
<version>1.4.2</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>Tagalys</license>
|
7 |
<channel>community</channel>
|
12 |
Visual Merchandising allows you to to create, modify or delete product listing pages that can be used from campaigns in SEO, SEM, Social Media and show collections at your online store. Visual Merchandisers do not require any assistance from IT or Tech teams allowing them to focus on managing the platform.</description>
|
13 |
<notes>Any questions or concerns, please email cs@tagalys.com and we will get back to you in less than 24 hours. </notes>
|
14 |
<authors><author><name>Palani</name><user>Palani</user><email>pc@tagalys.com</email></author></authors>
|
15 |
+
<date>2017-05-16</date>
|
16 |
+
<time>05:48:49</time>
|
17 |
+
<contents><target name="mageetc"><dir><dir name="modules"><file name="Tagalys_Core.xml" hash="7576ed5aa125c580f0b791018f24a0e9"/><file name="Tagalys_SearchSuggestions.xml" hash="dbf6f4ff1859ef2df72560c9282af435"/><file name="Tagalys_Search.xml" hash="820b96f53d2f0e86cb49906a4dda7f41"/><file name="Tagalys_Mpages.xml" hash="6ccb4f45669c98fd746c6abd92ab32ca"/><file name="Tagalys_Analytics.xml" hash="59ce2628610a4624235a5c820beac2d2"/></dir></dir></target><target name="magecommunity"><dir><dir name="Tagalys"><dir name="Core"><dir name="Block"><dir name="Adminhtml"><dir name="Tagalys"><dir name="Edit"><file name="Form.php" hash="31cae34d1e9bd5cb0c881ae5a6fc03c0"/><dir name="Tab"><file name="Apicredentials.php" hash="9005c30790a51ad077cb4be46a07b766"/><file name="Mpages.php" hash="ba526eb77efd4000ae96404bd04aa638"/><file name="Search.php" hash="fef14680d0feb63bb4e928296c3b9032"/><file name="Searchsuggestions.php" hash="1fa634f35204a06d06fa4c7f762c3259"/><file name="Similarproducts.php" hash="390c3a93c5851a6d784e82650be20ae5"/><file name="Support.php" hash="c68547cfe57cbccdcbcf7c3eb35ed6b3"/><file name="Sync.php" hash="849f7bb77ff568e7f29cf63d54e7faa8"/><file name="Syncsettings.php" hash="77ecb1594c7b409e2055ff8394b85aa8"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Tabs.php" hash="6868651b592381ff8081c8247ebf5214"/><file name=".DS_Store" hash="711f187349473a2c6e6d564d4a2faeb9"/></dir><file name="Edit.php" hash="9da04e9a4aec76ce5f5bd88c453390cd"/><file name=".DS_Store" hash="2f95379345a665b8fd261ff7c2f5a7af"/></dir><file name=".DS_Store" hash="96cf5cac0d87be80da73c36e96971923"/></dir><file name=".DS_Store" hash="8c5a4cb1f6f8e10ade87d78ff4d0bfe4"/></dir><dir name="Helper"><file name="Data.php" hash="d50fec78e8a30b7f4d019fd6d0e5c7ed"/><file name="Service.php" hash="c633adf3d5bd356a04b24a791854130c"/><file name="SyncFile.php" hash="5373a774fe2452d068be0ae2806dd01a"/></dir><dir name="Model"><file name="Client.php" hash="962269bc508298338b86b48601a7854c"/><file name="Config.php" hash="135012904392f8d26f5c5eaedd3d9c71"/><dir name="Mysql4"><dir name="Config"><file name="Collection.php" hash="0967ac6ac1a049d9e09288641d2b4a58"/></dir><file name="Config.php" hash="3562b9ffdf260e34945f9e7830facc1b"/><dir name="Queue"><file name="Collection.php" hash="db01d5b412ca3f8cbc1cbbe8b1ed3d0d"/></dir><file name="Queue.php" hash="50fd814880c6adf02dcb9babe5874811"/><file name=".DS_Store" hash="d3dec31675796dca442be9f6076210df"/></dir><file name="Observer.php" hash="9197f6fb573484db244c141607872b95"/><file name="ProductDetails.php" hash="885c41230182aafb4157ea28262a3230"/><file name="Queue.php" hash="459a74e66f2a7ccd146f480701574464"/><file name=".DS_Store" hash="3db11e65f616ba2524ebf71cf1300fa5"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="TagalysController.php" hash="67e746a969ad1b43dcc2268c15ce8f26"/></dir><file name="SyncfilesController.php" hash="1b8476cbb4d02ec87b7742e4dc9fff4b"/><file name=".DS_Store" hash="db462bf5da1a15c73197a0fefd3f5b51"/></dir><dir name="etc"><file name="config.xml" hash="e1124ae35dc5d649413144419249e68b"/></dir><dir name="sql"><dir name="tagalys_core_setup"><file name="mysql4-install-0.3.0.php" hash="fca9f934db6850d950dfdcd71dba7dcd"/><file name="mysql4-upgrade-0.1.0-0.3.0.php" hash="1eb2da3bdf0753b6f4904f1fd62af32f"/><file name="mysql4-upgrade-0.2.0-0.3.0.php" hash="1eb2da3bdf0753b6f4904f1fd62af32f"/></dir><file name=".DS_Store" hash="d87f0e93ae82377a5ceeda9bd58740e8"/></dir><file name=".DS_Store" hash="d1024e81b6252a3d102a906452f53021"/></dir><dir name="SearchSuggestions"><dir name="Helper"><file name="Data.php" hash="a88adfc9f92bb01b4fdb851ea4f265d3"/></dir><dir name="Model"><file name="Observer.php" hash="73e90449054eac498e3b4dfd55db33f1"/></dir><dir name="etc"><file name="config.xml" hash="1e1ee26e326c03473e5854f5dae06c59"/></dir></dir><dir name="Search"><dir name="controllers"><file name="IndexController.php" hash="baaeb347db3b8d32d09a83d3369388a8"/></dir><dir name="etc"><file name="config.xml" hash="5e5a0a2d2de927241c1e97f435a382f7"/></dir><file name=".DS_Store" hash="822777d708619165d544d3256174adc2"/></dir><dir name="Mpages"><dir name="controllers"><file name="IndexController.php" hash="1d80e73a3e3d2a51cff12ebbe1b1364e"/></dir><dir name="etc"><file name="config.xml" hash="80d1b3c82d4da93c271376881f663db5"/></dir><file name=".DS_Store" hash="822777d708619165d544d3256174adc2"/></dir><dir name="Analytics"><dir name="Block"><file name="Productview.php" hash="117109f50c13a14efc4d5740d9e1eace"/></dir><dir name="Model"><file name="Observer.php" hash="650e1c3bacab113e25958af98195de51"/></dir><dir name="controllers"><file name="IndexController.php" hash="3eee2034348dc00d06d91f0f849b7796"/></dir><dir name="etc"><file name="config.xml" hash="ad31a8918cafb214865a7e55fad09383"/></dir></dir></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="tagalys_core.xml" hash="a0875951441399a46dfb5cb3d346b7d8"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="tagalys_search_suggestions.xml" hash="3d3e59b076a4e39c924e122810555b72"/><file name="tagalys_analytics.xml" hash="3d669cedf80245f91745b9e4de5d6012"/></dir><dir name="template"><dir name="tagalys_search_suggestions"><file name="search_suggestions.phtml" hash="d453c441c48c930bea5e2861e4179b3b"/></dir><dir name="tagalys_search"><file name="index.phtml" hash="0b22a6ca318a194c77e945e937dc11cd"/></dir><dir name="tagalys_mpages"><file name="index.phtml" hash="95a99380caaf01e9190517371d5dc225"/></dir><dir name="tagalys_analytics"><file name="product_view.phtml" hash="08d97d2aaafb09b868bde334b9a5942d"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="tagalys"><file name="tagalys-configuration.css" hash="fa3b8f3a4d1bebbbcef261f10e4652b7"/></dir></dir><dir name="images"><dir name="tagalys"><file name="tagalys-logo.png" hash="b26278b173e29b21edc16ddd06ca0192"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir><dir name="js"><file name="tagalys-configuration.js" hash="e32466267eb8e54a32119ac8e49c6589"/></dir></dir></target></contents>
|
18 |
<compatible/>
|
19 |
<dependencies><required><php><min>5.3.0</min><max>7.0.10</max></php></required></dependencies>
|
20 |
</package>
|