Version Notes
Better Support for product collection
Download this release
Release Info
| Developer | Simon Cooper |
| Extension | Swift_Swiftplugin |
| Version | 1.2.2 |
| Comparing to | |
| See all releases | |
Code changes from version 1.2.1 to 1.2.2
app/code/community/Swift/Swiftplugin/Model/XmlProduct.php
CHANGED
|
@@ -15,7 +15,11 @@ class Swift_Swiftplugin_Model_XmlProduct {
|
|
| 15 |
public function generate_xml() {
|
| 16 |
//limit the data parsed
|
| 17 |
$limit = 100;
|
| 18 |
-
$productCollection = Mage::getModel('catalog/product')->getCollection()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
$xmlRow = array();
|
| 20 |
for ($i = 1; $i <= $productCollection->getLastPageNumber(); $i++) {
|
| 21 |
if ($productCollection->isLoaded()) {
|
|
@@ -25,59 +29,70 @@ class Swift_Swiftplugin_Model_XmlProduct {
|
|
| 25 |
}
|
| 26 |
|
| 27 |
foreach ($productCollection as $product) {
|
| 28 |
-
$tempXml = array();
|
| 29 |
-
$method = 'g:id';
|
| 30 |
-
$tempXml[] = xml::$method($product->getId());
|
| 31 |
-
$tempXml[] = xml::title(htmlspecialchars($product->getName(), ENT_QUOTES));
|
| 32 |
-
$tempXml[] = xml::description(htmlspecialchars($product->getDescription(), ENT_QUOTES));
|
| 33 |
-
$tempXml[] = xml::short_description(htmlspecialchars($product->getShortDescription(), ENT_QUOTES));
|
| 34 |
|
| 35 |
-
$
|
| 36 |
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
foreach($parentIds as $parentId) {
|
| 40 |
-
$groupProduct = Mage::getModel('catalog/product')->load($parentId);
|
| 41 |
-
$groupPath = $groupProduct->getProductUrl();
|
| 42 |
-
$tempXml[] = xml::link($groupPath);
|
| 43 |
-
break;
|
| 44 |
-
}
|
| 45 |
-
|
| 46 |
-
}
|
| 47 |
-
else {
|
| 48 |
-
$tempXml[] = xml::link($product->getProductUrl());
|
| 49 |
-
}
|
| 50 |
|
| 51 |
-
$
|
| 52 |
-
$tempXml[] = xml::$method($product->getImage() == 'no_selection' ? '' : Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getImage()));
|
| 53 |
-
$method = 'g:small_image_link';
|
| 54 |
-
$tempXml[] = xml::$method($product->getSmallImage() == 'no_selection' ? '' : Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getSmallImage()));
|
| 55 |
-
$method = 'g:additional_image_link';
|
| 56 |
-
$tempXml[] = xml::$method($product->getThumbnail() == 'no_selection' ? '' : Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail()));
|
| 57 |
-
$method = 'g:price';
|
| 58 |
-
$tempXml[] = xml::$method($product->getPrice());
|
| 59 |
-
$method = 'g:sale_price';
|
| 60 |
|
| 61 |
-
$special_price = '';
|
| 62 |
|
| 63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
|
| 65 |
-
if
|
| 66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
}
|
| 68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
}
|
| 70 |
|
| 71 |
-
$tempXml[] = xml::$method($special_price);
|
| 72 |
-
$categoryId = $product->getCategoryIds();
|
| 73 |
-
$categoryId = array_shift($categoryId);
|
| 74 |
-
$category = Mage::getModel('catalog/category')->load($categoryId);
|
| 75 |
-
$tempXml[] = xml::subcategory(is_null($category->getName()) ? '' : htmlspecialchars($category->getName(), ENT_QUOTES));
|
| 76 |
-
$pCategory = Mage::getModel('catalog/category')->load($category->getParentId());
|
| 77 |
-
$tempXml[] = xml::parentcategory(is_null($pCategory->getName()) ? '' : htmlspecialchars($pCategory->getName(), ENT_QUOTES));
|
| 78 |
-
$tempXml[] = xml::sku(is_null($product->getSku()) ? null : $product->getSku());
|
| 79 |
-
$xmlRow[] = xml::product(implode("",$tempXml));
|
| 80 |
-
|
| 81 |
}
|
| 82 |
}
|
| 83 |
|
| 15 |
public function generate_xml() {
|
| 16 |
//limit the data parsed
|
| 17 |
$limit = 100;
|
| 18 |
+
$productCollection = Mage::getModel('catalog/product')->getCollection()
|
| 19 |
+
->addAttributeToSelect(array('product_id','name','description', 'short_description','price','url_path','image','thumbnail', 'small_image','special_price','sku','special_to_date', 'special_from_date'))
|
| 20 |
+
->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED))
|
| 21 |
+
->setPageSize($limit);
|
| 22 |
+
|
| 23 |
$xmlRow = array();
|
| 24 |
for ($i = 1; $i <= $productCollection->getLastPageNumber(); $i++) {
|
| 25 |
if ($productCollection->isLoaded()) {
|
| 29 |
}
|
| 30 |
|
| 31 |
foreach ($productCollection as $product) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
|
| 33 |
+
$stock_item = Mage::getModel('cataloginventory/stock_item')->loadByProduct( $product->getId() );
|
| 34 |
|
| 35 |
+
$qty = $stock_item->getData('qty');
|
| 36 |
+
$inStock = $stock_item->getData('is_in_stock');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
+
if(!( $qty<1 || $inStock == 0)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
|
|
|
|
| 40 |
|
| 41 |
+
$tempXml = array();
|
| 42 |
+
$method = 'g:id';
|
| 43 |
+
$tempXml[] = xml::$method($product->getId());
|
| 44 |
+
$tempXml[] = xml::title(htmlspecialchars($product->getName(), ENT_QUOTES));
|
| 45 |
+
$tempXml[] = xml::description(htmlspecialchars($product->getDescription(), ENT_QUOTES));
|
| 46 |
+
$tempXml[] = xml::short_description(htmlspecialchars($product->getShortDescription(), ENT_QUOTES));
|
| 47 |
+
|
| 48 |
+
$parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($product->getId());
|
| 49 |
|
| 50 |
+
if (!empty($parentIds)) {
|
| 51 |
+
|
| 52 |
+
foreach($parentIds as $parentId) {
|
| 53 |
+
$groupProduct = Mage::getModel('catalog/product')->load($parentId);
|
| 54 |
+
$groupPath = $groupProduct->getProductUrl();
|
| 55 |
+
$tempXml[] = xml::link($groupPath);
|
| 56 |
+
break;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
}
|
| 60 |
+
else {
|
| 61 |
+
$tempXml[] = xml::link($product->getProductUrl());
|
| 62 |
}
|
| 63 |
|
| 64 |
+
$method = 'g:image_link';
|
| 65 |
+
$tempXml[] = xml::$method($product->getImage() == 'no_selection' ? '' : Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getImage()));
|
| 66 |
+
$method = 'g:small_image_link';
|
| 67 |
+
$tempXml[] = xml::$method($product->getSmallImage() == 'no_selection' ? '' : Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getSmallImage()));
|
| 68 |
+
$method = 'g:additional_image_link';
|
| 69 |
+
$tempXml[] = xml::$method($product->getThumbnail() == 'no_selection' ? '' : Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail()));
|
| 70 |
+
$method = 'g:price';
|
| 71 |
+
$tempXml[] = xml::$method($product->getPrice());
|
| 72 |
+
$method = 'g:sale_price';
|
| 73 |
+
|
| 74 |
+
$special_price = '';
|
| 75 |
+
|
| 76 |
+
if (!is_null($product->getSpecialPrice())) {
|
| 77 |
+
|
| 78 |
+
if($today >= strtotime($product->getSpecialFromDate()) && $today <= strtotime($product->getSpecialToDate()) || $today >= strtotime($product->getSpecialFromDate()) && is_null($product->getSpecialToDate())) {
|
| 79 |
+
$special_price = $product->getSpecialPrice();
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
$tempXml[] = xml::$method($special_price);
|
| 85 |
+
$categoryId = $product->getCategoryIds();
|
| 86 |
+
$categoryId = array_shift($categoryId);
|
| 87 |
+
$category = Mage::getModel('catalog/category')->load($categoryId);
|
| 88 |
+
$tempXml[] = xml::subcategory(is_null($category->getName()) ? '' : htmlspecialchars($category->getName(), ENT_QUOTES));
|
| 89 |
+
$pCategory = Mage::getModel('catalog/category')->load($category->getParentId());
|
| 90 |
+
$tempXml[] = xml::parentcategory(is_null($pCategory->getName()) ? '' : htmlspecialchars($pCategory->getName(), ENT_QUOTES));
|
| 91 |
+
$tempXml[] = xml::sku(is_null($product->getSku()) ? null : $product->getSku());
|
| 92 |
+
$xmlRow[] = xml::product(implode("",$tempXml));
|
| 93 |
+
|
| 94 |
}
|
| 95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
}
|
| 97 |
}
|
| 98 |
|
app/code/community/Swift/Swiftplugin/etc/config.xml
CHANGED
|
@@ -5,7 +5,7 @@
|
|
| 5 |
<modules>
|
| 6 |
<!-- This must exactly match the namespace and module's folder names, with directory separators replaced by underscores -->
|
| 7 |
<Swift_Swiftplugin>
|
| 8 |
-
<version>1.2.
|
| 9 |
</Swift_Swiftplugin>
|
| 10 |
</modules>
|
| 11 |
<!-- Configure our module's behavior in the frontend scope -->
|
| 5 |
<modules>
|
| 6 |
<!-- This must exactly match the namespace and module's folder names, with directory separators replaced by underscores -->
|
| 7 |
<Swift_Swiftplugin>
|
| 8 |
+
<version>1.2.2</version>
|
| 9 |
</Swift_Swiftplugin>
|
| 10 |
</modules>
|
| 11 |
<!-- Configure our module's behavior in the frontend scope -->
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Swift_Swiftplugin</name>
|
| 4 |
-
<version>1.2.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/LGPL-3.0">LGPL</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -18,11 +18,11 @@ The extension uses background JavaScript calls to collect and store the customer
|
|
| 18 |
<p>
|
| 19 |
The extension is easy to set up and uses Magento’s built in features to collect information and send emails to the customers. Visit swiftcrm.net for prices and free trails.
|
| 20 |
</p></description>
|
| 21 |
-
<notes>Better Support for
|
| 22 |
<authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
|
| 23 |
-
<date>2015-12-
|
| 24 |
-
<time>
|
| 25 |
-
<contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="fc4d7c79c7b7ea2ac75f28c008cde8eb"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="1a2b4e86947847e5e524a1c53054f79e"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="da10370a1c8d9c1a8b5d4b1d3840d3b6"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><file name="SwiftAPI_Request_EmailPackage.php" hash="221dd4bd936f022a9e07ad79d33c89a2"/><file name="SwiftAPI_Request_Home.php" hash="9268da121dd10db50d5c2675afd1c65e"/><file name="SwiftAPI_Request_Order.php" hash="cd8ce90614468bd4347df3c541482a4b"/><file name="SwiftAPI_Request_OrderPackage.php" hash="91724705e976182c0bb1d7d7d6fc786f"/><file name="SwiftAPI_Request_PastOrder.php" hash="be620e2e35d6634e6a616431f5312527"/><file name="SwiftAPI_Request_Ping.php" hash="e5e13b71682f8230711d5d2f28f9a534"/><file name="SwiftAPI_Request_Product.php" hash="e5fab27bb2dd45946ed8c143a18fe3c4"/><file name="SwiftAPI_Request_SendMail.php" hash="ba04382a3df6b3e179aed5fe3e809de7"/><file name="SwiftAPI_Request_Subscription.php" hash="5545738b941d8ca4dca69b6059a0cce4"/><file name="SwiftAPI_Request_Unsubscribe.php" hash="78aa37cc0ecb98d501674350a4a409c9"/><file name="SwiftAPI_Request_ViewMail.php" hash="773f0cc695838654b9056269622c217e"/><dir name="doc"><file name="SwiftAPI-Specification.html" hash="3be495e89f1555d138a9314052e2c627"/></dir><file name="index.php" hash="82886bb98883bd5868ea04c7d8c88ba5"/><file name="php.ini" hash="ef29c923925a1d1bbc8879c22297daa4"/></dir></target><target name="magecommunity"><dir name="Swift"><dir name="Swiftplugin"><dir name="Block"><dir name="Adminhtml"><dir name="Swift"><dir name="Edit"><file name="Form.php" hash="bd80ab8170f7f2286f13ac579e5249d9"/><dir name="Tab"><file name="Form.php" hash="3d15c45cb2205acabc20376f41a9bd5b"/><file name="Instruct.php" hash="9f34075cc9cdfa92b7876c33fda514de"/></dir><file name="Tabs.php" hash="993769f682fad7d28df79ff3acea97cc"/></dir><file name="Edit.php" hash="d93f75dbaaa7266d91e828b3208fbf2d"/></dir></dir><file name="Swiftblock.php" hash="ef4796eaf44aa8e4a9b144e5a9365166"/></dir><dir name="Helper"><file name="Data.php" hash="cad7e7ffcde09cdd3c089b42644e9d66"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Swift"><file name="Collection.php" hash="82de0fe56cd875d3e78c8fc690424ee1"/></dir><file name="Swift.php" hash="252d5f2ecb1119804b415758d2db6800"/></dir><file name="Observer.php" hash="139db0541de06e7bed17ad9d40fcd89b"/><file name="Swift.php" hash="1f9e49d4db7f8987cfd8858061fedc6a"/><file name="XmlProduct.php" hash="
|
| 26 |
<compatible/>
|
| 27 |
<dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><extension><name>mcrypt</name><min/><max/></extension></required></dependencies>
|
| 28 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Swift_Swiftplugin</name>
|
| 4 |
+
<version>1.2.2</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/LGPL-3.0">LGPL</license>
|
| 7 |
<channel>community</channel>
|
| 18 |
<p>
|
| 19 |
The extension is easy to set up and uses Magento’s built in features to collect information and send emails to the customers. Visit swiftcrm.net for prices and free trails.
|
| 20 |
</p></description>
|
| 21 |
+
<notes>Better Support for product collection</notes>
|
| 22 |
<authors><author><name>Simon Cooper</name><user>Netready</user><email>simon@netready.biz</email></author></authors>
|
| 23 |
+
<date>2015-12-16</date>
|
| 24 |
+
<time>11:22:54</time>
|
| 25 |
+
<contents><target name="magelib"><dir name="libXML"><file name="xml.php" hash="fc4d7c79c7b7ea2ac75f28c008cde8eb"/></dir><dir name="SwiftAPI"><file name="SwiftAPI.php" hash="1a2b4e86947847e5e524a1c53054f79e"/><file name="SwiftAPI_Exception.php" hash="879b899a7961f4de1212b7296ccafb16"/><file name="SwiftAPI_Product.php" hash="063922cccb485d81c6022de5c4e8e044"/><file name="SwiftAPI_Request.php" hash="da10370a1c8d9c1a8b5d4b1d3840d3b6"/><file name="SwiftAPI_Request_Cart.php" hash="f8955c78200ddb0512adb5214fd64bb2"/><file name="SwiftAPI_Request_EmailPackage.php" hash="221dd4bd936f022a9e07ad79d33c89a2"/><file name="SwiftAPI_Request_Home.php" hash="9268da121dd10db50d5c2675afd1c65e"/><file name="SwiftAPI_Request_Order.php" hash="cd8ce90614468bd4347df3c541482a4b"/><file name="SwiftAPI_Request_OrderPackage.php" hash="91724705e976182c0bb1d7d7d6fc786f"/><file name="SwiftAPI_Request_PastOrder.php" hash="be620e2e35d6634e6a616431f5312527"/><file name="SwiftAPI_Request_Ping.php" hash="e5e13b71682f8230711d5d2f28f9a534"/><file name="SwiftAPI_Request_Product.php" hash="e5fab27bb2dd45946ed8c143a18fe3c4"/><file name="SwiftAPI_Request_SendMail.php" hash="ba04382a3df6b3e179aed5fe3e809de7"/><file name="SwiftAPI_Request_Subscription.php" hash="5545738b941d8ca4dca69b6059a0cce4"/><file name="SwiftAPI_Request_Unsubscribe.php" hash="78aa37cc0ecb98d501674350a4a409c9"/><file name="SwiftAPI_Request_ViewMail.php" hash="773f0cc695838654b9056269622c217e"/><dir name="doc"><file name="SwiftAPI-Specification.html" hash="3be495e89f1555d138a9314052e2c627"/></dir><file name="index.php" hash="82886bb98883bd5868ea04c7d8c88ba5"/><file name="php.ini" hash="ef29c923925a1d1bbc8879c22297daa4"/></dir></target><target name="magecommunity"><dir name="Swift"><dir name="Swiftplugin"><dir name="Block"><dir name="Adminhtml"><dir name="Swift"><dir name="Edit"><file name="Form.php" hash="bd80ab8170f7f2286f13ac579e5249d9"/><dir name="Tab"><file name="Form.php" hash="3d15c45cb2205acabc20376f41a9bd5b"/><file name="Instruct.php" hash="9f34075cc9cdfa92b7876c33fda514de"/></dir><file name="Tabs.php" hash="993769f682fad7d28df79ff3acea97cc"/></dir><file name="Edit.php" hash="d93f75dbaaa7266d91e828b3208fbf2d"/></dir></dir><file name="Swiftblock.php" hash="ef4796eaf44aa8e4a9b144e5a9365166"/></dir><dir name="Helper"><file name="Data.php" hash="cad7e7ffcde09cdd3c089b42644e9d66"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Swift"><file name="Collection.php" hash="82de0fe56cd875d3e78c8fc690424ee1"/></dir><file name="Swift.php" hash="252d5f2ecb1119804b415758d2db6800"/></dir><file name="Observer.php" hash="139db0541de06e7bed17ad9d40fcd89b"/><file name="Swift.php" hash="1f9e49d4db7f8987cfd8858061fedc6a"/><file name="XmlProduct.php" hash="bba40592eb2fdfcf42c0d8b46aee4238"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="0d17d7a4d18d3a77fd1af945d016da74"/></dir><file name="IndexController.php" hash="e3b7ebb44a55187c9085d9f1c4e7d060"/><file name="MailController.php" hash="af10fe5d485b1742ba5095510f2deea4"/><file name="XmlController.php" hash="97b777935db5174501034493dd561099"/></dir><dir name="etc"><file name="config.xml" hash="66211c31012133eb472f523866e53110"/></dir><dir name="sql"><dir name="swift_setup"><file name="install-1.1.13.php" hash="2447b5645fc36738373678473cec88dc"/><file name="install-1.1.2.php" hash="00832a00c34cb4c997a96330cb28cbfb"/><file name="upgrade-1.1.2-1.1.12.php" hash="cbe3c3fa07facb7b720d7dd518acbeca"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="swift.xml" hash="d80a5229e30cf4b76f5a5150ac1c27c3"/></dir><dir name="template"><dir name="swift"><file name="swiftplugin.phtml" hash="d4d25148e09529e457b6436d7655627b"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Swift_all.xml" hash="0ae5a788c805a9fc79b402fe7a02e54d"/></dir></target></contents>
|
| 26 |
<compatible/>
|
| 27 |
<dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><extension><name>mcrypt</name><min/><max/></extension></required></dependencies>
|
| 28 |
</package>
|
