Jump to content
Sign in to follow this  
DAN

[Решено] В корзине при нехватке товара писать доступное количество?

Recommended Posts

Как можно сделать, при оформлении заказа, в корзине, если количества товара не хватает (отмечен ***), рядом писать доступное количество этого товара?

Share this post


Link to post
Share on other sites

Сам сделал icon_e_surprised.gif , оказалось все просто:
1. в /catalog/controller/checkout/cart.php
после

$option_data[] = array(
вставить
'stock_qty' => $option['quantity'],
там же после
$this->data['products'][] = array(
вставить
'stock_qty' => $product['stock_qty'],
2. в /catalog/view/theme/ВАША_ТЕМА/template/checkout/cart.tpl
после
<?php foreach ($product['option'] as $option) { ?>
- <small><?php echo $option['name']; ?>: <?php echo $option['value']; ?></small><br />
<?php } ?>
вставить
<?php if (!$product['stock']) { ?>
<?php if ($product['option']) { ?>
<span class="stock">Доступно на складе: <?php echo $option['stock_qty']; ?> шт.</span>
<?php } else { ?>
<span class="stock">Доступно на складе: <?php echo $product['stock_qty']; ?> шт.</span>
<?php } ?>
<?php } ?>
3. в /system/library/cart.php
после
$this->data[$key] = array(
вставить
'stock_qty' => $product_query->row['quantity'],
Вот и все. icon_e_smile.gif Edited by DAN
  • +1 3

Share this post


Link to post
Share on other sites

Большое Вам человеческое спасибо! :eek:  Проблему решило, хоть и немного не так как задумывал  :-) .  Еще небольшой вопрос, можно ли придать стиль span class="stock" через css? Или же данный класс еще где-то есть? Возможно и в php можно прописать стиль, тапками не кидайте, я только учусь )

Share this post


Link to post
Share on other sites

 Еще небольшой вопрос, можно ли придать стиль span class="stock" через css? Или же данный класс еще где-то есть? Возможно и в php можно прописать стиль, тапками не кидайте, я только учусь )

Конечно можно через css. Я не помню уже. Посмотрите через отладчик и в файле стилей пропишите правило для .stock

Share this post


Link to post
Share on other sites

Большое спасибо! Пока вписал во внутрь  <span class="stock" style="color: red"></span> , как дойдут руки, буду придавать вид .stock . 

 

Сам сделал icon_e_surprised.gif , оказалось все просто:
1. в /catalog/controller/checkout/cart.php
после

$option_data[] = array(
вставить
	  'stock_qty' => $option['quantity'];

 

Единственное в конце $option['quantity']; у меня стоит запятая (,) . Еще раз спасибо за решение проблемы )

Share this post


Link to post
Share on other sites

там и должна быть запятая, а не точка с запятой, ибо это элемент внутри массива.

Share this post


Link to post
Share on other sites

Единственное в конце $option['quantity']; у меня стоит запятая (,) . Еще раз спасибо за решение проблемы )

Спасибо. Поправил, в запарке наверно ошибся.

Share this post


Link to post
Share on other sites

А кто знает, как такое же вывести в письмо нового заказа?

Текст: "Доступно на складе: шт." есть, но цифра не выводится. 

Share this post


Link to post
Share on other sites

Хороший метод, совместим з модулем Симплой проверено, кому надо подскажу

Share this post


Link to post
Share on other sites
34 минуты назад, kalyaba27 сказал:

Хороший метод, совместим з модулем Симплой проверено, кому надо подскажу

Кому надо поишит и найдет если вы сразу выложите этот метод сюда

Share this post


Link to post
Share on other sites

Для симплы проверено работает на остор15512 симпла 4,8

1 в /catalog/controller/checkout/simplecheckout_cart.php
после

$option_data[] = array(

вставить

'stock_qty' => $option['quantity'],

там же после

$this->_templateData['products'][] = array(

вставить

'stock_qty' => $product['stock_qty'],

2 даже если тема не стандартная путь такой  /catalog/view/theme/default/template/checkout/simplecheckout_cart.tpl 
после

<?php foreach ($product['option'] as $option) { ?>
- <small><?php echo $option['name']; ?>: <?php echo $option['value']; ?></small><br />
<?php } ?>

вставить

<?php if (!$product['stock']) { ?>
<?php if ($product['option']) { ?>
<span class="stock">Доступно на складе: <?php echo $option['stock_qty']; ?> шт.</span>
<?php } else { ?>
<span class="stock">Доступно на складе: <?php echo $product['stock_qty']; ?> шт.</span>
<?php } ?>
<?php } ?>

3 в /system/library/cart.php
после

$this->data[$key] = array(

вставить

'stock_qty' => $product_query->row['quantity'],

Если нет желания пользоватся штатной корзиной, в настройках модуля есть обход ссылками напрямую в оформления заказа, тогда не нужно делать коретивы кода для штатной корзины, но лучше чтоб козина работала. и правки внести.

 

чтоб коректно работал подсчет нужно чтоб в товаров небыло опций, или в опциях нужно вычитание со склада

 

Не програмист, не судите строго) 

 

Share this post


Link to post
Share on other sites

У кого есть решение для simple и ocstore 2.0.1?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.