Try the following code:
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Sr. No.</th>
<th>Manufacturer</th>
<th>Product Code</th>
<th>Product Name</th>
<th>Product Type</th>
<th>Packaging Type</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{assign var='i' value=1}
{section name=product loop=$all_products}
<tr>
<td>{$i}</td>
<td>{$all_products[product].manufacturer.company_name}</td>
<td>{$all_products[product].code}</td>
<td>{$all_products[product].name}</td>
<td>{$all_products[product].product_type.product_type}</td>
<td>{$all_products[product].packaging_type.packaging_type}</td>
<td align="center"><a href="{$control_url}products.php?op=edit&id={$all_products[product].id}" ><i class="icon-pencil"></i></a> <a href="{$control_url}products.php?op=delete&id={$all_products[product].id}" onClick="return ConfirmDelete()"><i class="icon-trash"></i></a></td>
</tr>
{assign var='i' value=$i+1}
{/section}
</tbody>
</table>
You are parsing the array in wrong way. I've corrected it now. It should work for you. Cheers!!!