Zdravím.
Jelikož mé předchozí řešení má problém s některými moduly přináším opravené řešení přes ajax.
1) V souboru themes/vase_sablona/shoping-cart-product-line.tpl
najděte řádky:
Kód:
{if $PS_STOCK_MANAGEMENT}
<td class="cart_avail"><span class="label{if $product.quantity_available <= 0 && isset($product.allow_oosp) && !$product.allow_oosp} label-danger{elseif $product.quantity_available <= 0} label-warning{else} label-success{/if}">{if $product.quantity_available <= 0}{if isset($product.allow_oosp) && $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}</span>{if !$product.is_virtual}{hook h="displayProductDeliveryTime" product=$product}{/if}</td>
{/if}
a nahraďte jej řádky:
Kód:
{if $PS_STOCK_MANAGEMENT}
<td class="pp_cart_stock">
{if $product.quantity_available-$product.cart_quantity >= 0}
<img src="{$img_dir}skladem.png" alt="{l s='Available'}" title="{l s='Available'}">
{else if $product.quantity_available-$product.cart_quantity < 0 && $product.allow_oosp}
<img src="{$img_dir}naskladneni.png" alt="{l s='On Backorder'}" title="{l s='On Backorder'}">
{else if $product.quantity_available-$product.cart_quantity < 0 && !$product.allow_oosp}
<img src="{$img_dir}neni_skladem.png" alt="{l s='Out Of Stock'}" title="{l s='Out Of Stock'}">
<script type="text/javascript">
// <![CDATA[
var prod_name = "{$product.name}";
{if isset($product.attributes) && $product.attributes}
prod_name += ' - ' + "{$product.attributes|escape:'htmlall':'UTF-8'}"
{/if}
unavailable_products.push(prod_name);
// ]]>
</script>
{/if}
</td> {/if}
2) v souboru themes/vase-sablona/js/cart-summary.js nalezněte funkci function downQuantity(id, qty)
ZA tuto funkci tedy za poslední závoru } funkce vložte následující dvě funkce:
Kód:
function checkAvailability()
{
$.ajax({
type: 'POST',
headers: { "cache-control": "no-cache" },
url: baseUri + '?rand=' + new Date().getTime(),
async: true,
cache: false,
dataType: 'json',
data: 'controller=cart'
+ '&ajax=true'
+ '&getproductprice=true'
+ '&summary=true'
+ '&token=' + static_token
+ '&allow_refresh=1',
success: function(jsonData)
{
if (jsonData.hasError)
{
var errors = '';
for(var error in jsonData.errors)
//IE6 bug fix
if(error !== 'indexOf')
errors += $('<div />').html(jsonData.errors[error]).text() + "\n";
alert(errors);
}
else
{
updateCartAvailability(jsonData.summary);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (textStatus !== 'abort') {
//alert("TECHNICAL ERROR: unable to verify quantity \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
}
});
setTimeout ('checkAvailability()', 500);
}
a
Kód:
function updateCartAvailability(json)
{
var i;
var product_list = new Array();
if (typeof json == 'undefined')
return;
$('div.error').fadeOut();
for (i=0;i<json.products.length;i++)
product_list[json.products[i].id_product + '_' + json.products[i].id_product_attribute + '_' + json.products[i].id_address_delivery] = json.products[i];
for (i in product_list)
{
var key_for_blockcart_nocustom = product_list[i].id_product + '_' + product_list[i].id_product_attribute + '_' + ((product_list[i].quantity_without_customization != product_list[i].quantity)? 'nocustom' : '0') + '_' + product_list[i].id_address_delivery;
if (product_list[i].quantity_available - product_list[i].cart_quantity >= 0) {
$('#product_' + key_for_blockcart_nocustom + ' .pp_cart_stock').html('<img src="'+ img_dir + 'skladem.png" alt="{l s=\'Available\'}" title="{l s=\'Available\'}">');
} else if (product_list[i].quantity_available - product_list[i].cart_quantity < 0 && product_list[i].allow_oosp) {
$('#product_' + key_for_blockcart_nocustom + ' .pp_cart_stock').html('<img src="' + img_dir + 'naskladneni.png" alt="{l s=\'On Backorder\'}" title="{l s=\'On Backorder\'}">');
} else if (product_list[i].quantity_available - product_list[i].cart_quantity < 0 && !product_list[i].allow_oosp) {
$('#product_' + key_for_blockcart_nocustom + ' .pp_cart_stock').html('<img src="' + img_dir + 'neni_skladem.png" alt="{l s=\'Out Of Stock\'}" title="{l s=\'Out Of Stock\'}">');
}
}
}
3) themes/vase_sablona/js/cart-summary.js nalezněte:
Kód:
checkAvailability();
a přídejte přesně za funkci toto:
Kód:
cleanSelectAddressDelivery();
4)nahrajte na ftp do složky theme/vase-sablona/img tři obrázky, které budete chtít. Tyto "tlačítka" si samozřejmě můžete graficky nakreslit jak se vám osobně budou líbit. Pokud chce mohu vám tlačítka nakreslit.
tlačítka se musí jmenovat:
"skladem.png" - Pro zobrazení zboží, které je skladem
"naskladneni.png" - Pro zobrazení zboží, které naskladníte třeba do týdne
"neni_skladem.png" - Pro zboží, které skladem není a dlouho nebude

Nezapomeňte obrázky nahrát v adekvátní velikosti ať nemusíte upravovat velikost ve stylech a tím spomalovat jejich načítání.
Samozřejmě si všechny soubory předem zálohujte.
Pokud si netroufáte na úpravy zdrojových kódů kontaktujte nás na adrese:
info@profi-prestashop.czS přáním hezkého dne Majkis