AFemaleProdigy Posted October 7, 2012 Share Posted October 7, 2012 (edited) I am creating a custom front office page that will display a modified product list. The goal is to have a page that checks the specific categories I need for stock levels less than "x" (whatever I want to set the value to). So in simple terms the query would be something like this... If any products in category "abc" have a stock/inventory level less than "5", then display each of those products. The idea is to show a list of products with low stock that our suppliers can check at any time to see which products we need. I have tried to figure it out myself, but am stuck. If anyone could help me out, that would be great. I started out with a new page called buylist.php in the root PS directory, which has this code in it: <?php include(dirname(__FILE__).'/config/config.inc.php'); ControllerFactory::getController('ProductController')->run(); include(dirname(__FILE__).'/header.php'); $smarty->display(_PS_THEME_DIR_.'buylist.tpl'); include(dirname(__FILE__).'/footer.php'); ?> I created a new buylist.tpl in the theme directory, which is just a copy of the product-list.tpl. {* * 2007-2011 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 8290 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} <script type="text/javascript"> // <![CDATA[ var quantitiesDisplayAllowed = {if $display_qties == 1}true{else}false{/if}; var quantityAvailable = {if $display_qties == 1 && $product->quantity}{$product->quantity}{else}0{/if}; //]]> </script> {if isset($products)} <!-- Products list --> <ul id="product_list" class="clear"> {foreach from=$products item=product name=products} <li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix"> <div class="center_block"> <a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} /></a> <h3>{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}<a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a></h3> <p class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|truncate:360:'...'|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}">{$product.description_short|truncate:360:'...'|strip_tags:'UTF-8'}</a></p> </div> <div class="right_block"> {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="on_sale">{l s='On sale!'}</span> {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount">{l s='Reduced price!'}</span>{/if} {if isset($product.online_only) && $product.online_only}<span class="online_only">{l s='Online only!'}</span>{/if} {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} <div> {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br />{/if} {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}<span class="availability"> {if ($product.allow_oosp || $product.quantity > 0)} {l s='Available'}{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}{l s='Out of stock'}{/if} </span>{/if} </div> {/if} {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} <a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}" title="{l s='Add to cart'}">{l s='Add to cart'}</a> {else} <span class="exclusive">Unavailable</span> {/if} {/if} <a class="button" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a> {if isset($comparator_max_item) && $comparator_max_item} <p class="compare"><input type="checkbox" class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" {if isset($compareProducts) && in_array($product.id_product, $compareProducts)}checked{/if}/> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p> {/if} </div> </li> {/foreach} </ul> <!-- /Products list --> {/if} I was hoping that would all work. When I try to load buylist.php in a browser, all the components of the page show up, but I get this message: "There is 1 error : Product not found". I am guessing it has something to do with the fact that I am not incorporating the specific category in any way. So this is where I am stuck... no products loading. Then I also will need to know how to limit the products to those with less than 5 in stock. Thanks!! Edited October 7, 2012 by AFemaleProdigy (see edit history) Link to comment Share on other sites More sharing options...
AFemaleProdigy Posted October 7, 2012 Author Share Posted October 7, 2012 (edited) I was thinking this might work to limit the products to show only those with less than 5 available. {if isset($products)} <!-- Products list --> <ul id="product_list" class="clear"> {foreach from=$products item=product name=products} {if ($product.allow_oosp || $product.quantity < 5)} Edited October 7, 2012 by AFemaleProdigy (see edit history) Link to comment Share on other sites More sharing options...
AFemaleProdigy Posted October 7, 2012 Author Share Posted October 7, 2012 (edited) I see that maybe I need to modify some of the category associated files. I just can't figure out how and where to specify the category. When trying to show these in a category list instead of just product list, I get this message... There is 1 error : Missing category ID That is loading it with a url like this http://www.x.com/buylist.php Do I have to pass the category id through the url or write it into the code... perhaps in the CategoryController? Edited October 7, 2012 by AFemaleProdigy (see edit history) Link to comment Share on other sites More sharing options...
AFemaleProdigy Posted October 9, 2012 Author Share Posted October 9, 2012 Can someone please help me with this? Link to comment Share on other sites More sharing options...
AFemaleProdigy Posted October 10, 2012 Author Share Posted October 10, 2012 Hello? Link to comment Share on other sites More sharing options...
AFemaleProdigy Posted October 12, 2012 Author Share Posted October 12, 2012 76 views... no comments. Link to comment Share on other sites More sharing options...
AFemaleProdigy Posted October 16, 2012 Author Share Posted October 16, 2012 (edited) Never mind. I figured it out on my own. Edited October 16, 2012 by AFemaleProdigy (see edit history) 1 Link to comment Share on other sites More sharing options...
adhi arda Posted October 30, 2012 Share Posted October 30, 2012 (edited) can you share the solution?? i get the same problems here thx Edited October 30, 2012 by adhi arda (see edit history) Link to comment Share on other sites More sharing options...
AFemaleProdigy Posted October 31, 2012 Author Share Posted October 31, 2012 can you share the solution?? i get the same problems here thx I got the list to display this way, but am having trouble with the pagination. I had posted asking for help with this new issue in another thread, but no one is helping me... as per usual. Pagination is still counting the excluded items as if they were still displayed. I can't figure out how to stop that or remove pagination from the list. Do you still want to know my method for getting this far? Link to comment Share on other sites More sharing options...
sidneysutapa Posted March 9, 2014 Share Posted March 9, 2014 Hi Jessica I am stuck with a similar issue. I want to show all the products in my custom page. Can you help me with your above solution? Thanks in advance Sutapa Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now