Перейти к содержанию
letun

[Решено] Наличие на складе

Рекомендуемые сообщения

Всем добрый день!

Нужна помощь.

Возможно ли под название товара и цены в каталоге также отображать состояние склада???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, возможно, я уже делал такое.

Покопаюсь в своих исходниках - отпишусь, как сделать (если кто-нибудь другой не сделает этого раньше).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, возможно, я уже делал такое.

Покопаюсь в своих исходниках - отпишусь, как сделать (если кто-нибудь другой не сделает этого раньше).

Оки...заранее спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для категорий

#1 - открываем

catalog/controller/product/category.php
перед

$this->data['products'][] = array(
						'name'    => $result['name'],
						'model'   => $result['model'],
						'rating'  => $rating,
						'stars'   => sprintf($this->language->get('text_stars'), $rating),
						'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
						'price'   => $price,
вставляем

if ($result['quantity'] <= 0) {
	$wStock = $result['stock'];
} else {
	if ($this->config->get('config_stock_display')) {
		$wStock = $result['quantity'];
	} else {
		$wStock = $this->language->get('text_instock');
	}
}
ниже, после

'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
'add'	  => $add
вставляем

,
'wStock' => $wStock

#2 - открываем

catalog/language/english/product/category.php
добавляем

$_['text_instock']        = 'In Stock';

#3 - открываем

catalog/view/theme/default/template/product/category.tpl
перед

<br />
          <?php if ($products[$j]['rating']) { ?>
или в любое другое понравившееся место, вставляем

<br />
          <span style="color: #999; font-size: 11px;"><?php echo $products[$j]['wStock']; ?></span>

#3 повторить для всех использующихся шаблонов категории

Изменено пользователем afwollis
psan -> span; +
  • +1 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#2 - открываем

catalog/language/english/product/category.php
добавляем

$_['text_instock']        = 'In Stock';

тут у тебя в папке языков - Инглиш, а если рашен - процеура таже???

И мне это надо для товаров, какой пхп файл мне тады воротить (сори в пхп пока только начальный познания, но думаю благодаря опену - прийдется подтягивать)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1.

Да, я просто редко работаю с русским языком в OpenCart :)

2.

На странице товара эта информация и так выводится.

В зависимости от настроек магазина - либо текстовый статус, либо цихверки кол-ва товара.

Поэтому вопрос не понятен :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробывал - не получилось. Вот во вложении два файла: catalog(1) и hotelka(2)

В 1 - вид как есть сейчас. там куда указывает стрелочка я хочу что бы отображался статус склада (в 2 я выделил его красной рамкой - соответственно не весь, а только " В наличии") :rolleyes:

post-4964-0-51142300-1297032201_thumb.png

post-4964-0-37678800-1297032212_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что будет выводиться - зависит от настроек магазина

Показывать остаток на складе:
Показывать остаток товаров на складе на странице товара.
да - цихверки (кол-во товара)
нет - текстовый статус

в остальном - код выше рабочий.

выводит "статус" товара в категориях.

Изменено пользователем afwollis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проверьте третий шаг.

была опечатка в закрывающем тэге.

можете выложить свои файлы ФАЙЛАМИ - завтра посмотрю, если будет время.

а может кто другой посмотрит и расскажет, что к чему :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

*.tpl не дает загружать файлом кидаю тело файла:

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content">
  <div class="top">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center">
      <h1><?php echo $heading_title; ?></h1>
    </div>
  </div>
  <div class="middle">
    <?php if ($description) { ?>
	<div><?php echo $description; ?></div>
	<?php } ?>
	<?php if (!$categories && !$products) { ?>
    <div class="content"><?php echo $text_error; ?></div>
    <?php } ?>
    <?php if ($categories) { ?>
    <table class="list">
      <?php for ($i = 0; $i < sizeof($categories); $i = $i + 4) { ?>
      <tr>
        <?php for ($j = $i; $j < ($i + 4); $j++) { ?>
        <td width="25%"><?php if (isset($categories[$j])) { ?>
          <a href="<?php echo $categories[$j]['href']; ?>"><img src="<?php echo $categories[$j]['thumb']; ?>" title="<?php echo $categories[$j]['name']; ?>" alt="<?php echo $categories[$j]['name']; ?>" style="margin-bottom: 3px;" /></a><br />
          <a href="<?php echo $categories[$j]['href']; ?>"><?php echo $categories[$j]['name']; ?></a>
          <?php } ?></td>
        <?php } ?>
      </tr>
      <?php } ?>
    </table>
    <?php } ?>
    <?php if ($products) { ?>
    <div class="sort">
      <div class="div1">
        <select name="sort" onchange="location = this.value">
          <?php foreach ($sorts as $sorts) { ?>
          <?php if (($sort . '-' . $order) == $sorts['value']) { ?>
          <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
          <?php } else { ?>
          <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
          <?php } ?>
          <?php } ?>
        </select>
      </div>
      <div class="div2"><?php echo $text_sort; ?></div>
    </div>
    <table class="list">
      <?php for ($i = 0; $i < sizeof($products); $i = $i + 4) { ?>
      <tr>
        <?php for ($j = $i; $j < ($i + 4); $j++) { ?>
        <td width="25%"><?php if (isset($products[$j])) { ?>
          <a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a><br />
          <a href="<?php echo $products[$j]['href']; ?>"><?php echo $products[$j]['name']; ?></a><br />
          <span style="color: #999; font-size: 11px;"><?php echo $products[$j]['model']; ?></span><br />
          <?php if ($display_price) { ?>
          <?php if (!$products[$j]['special']) { ?>
          <span style="color: #900; font-weight: bold;"><?php echo $products[$j]['price']; ?></span>
          <?php } else { ?>
          <span style="color: #900; font-weight: bold; text-decoration: line-through;"><?php echo $products[$j]['price']; ?></span> <span style="color: #F00;"><?php echo $products[$j]['special']; ?></span>
          <?php } ?>
          <a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" > </a>
		  <?php } ?>
 <br />
          <span style="color: #999; font-size: 11px;"><?php echo $products[$j]['wStock']; ?></psan>          
<br />
          <?php if ($products[$j]['rating']) { ?>
          <img src="catalog/view/theme/default/image/stars_<?php echo $products[$j]['rating'] . '.png'; ?>" alt="<?php echo $products[$j]['stars']; ?>" />
          <?php } ?>
          <?php } ?></td>
        <?php } ?>
      </tr>
      <?php } ?>
    </table>
    <div class="pagination"><?php echo $pagination; ?></div>
    <?php } ?>
  </div>
  <div class="bottom">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
  </div>
</div>
<?php echo $footer; ?>

language_category.php

product_category.php

Изменено пользователем afwollis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поправьте

</psan>
должно быть

</span>
об этом я написал выше.

возможно проблема уйдет.

отпишитесь.

детально осмотреть файлы смогу завтра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не помогло.

Вот ещё раз вложил файлик, чтобы было понятно какого эффекта я хочу добится. Красным почеркнуто то что должно выводится в соответствии со значением "Состояние на складе" в Настройках товара.

Ксати после внесенного изменения сверху появилась ошибка.

post-4964-0-23754900-1297119037_thumb.png

Изменено пользователем afwollis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

понял.

чуток не правильно указал место в первом шаге.

поправил инструкцию.

вот ваш исправленный файл:

product_category.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

понял.

чуток не правильно указал место в первом шаге.

поправил инструкцию.

вот ваш исправленный файл:

Супер...БЛАГОДАРЮ!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот только один вопрос - все прописывается нормально, а там где есть наличие товара по складу вместо статуса квадратики (статус должен быть "В наличии") Как это исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вместо статуса квадратики (статус должен быть "В наличии") Как это исправить?

https://opencartforum.com/topic/726-кодировка-заездили-тему/page__view__findpost__p__8804

https://opencartforum.com/topic/1144-русские-буквы-в-шаблоне-отображаются/page__view__findpost__p__7361

и еще порядка десятка топиков

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

работает спс.

а вот на главной как еще вывести статусы склада?

последние поступления и др.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по аналогии.

возможно придется подправить запросы (опять же по аналогии с getProductsByCategory в плане stock_status), которыми данные о товарах выбираются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Аф, снова нужна твоя помощь... Версия 0.2 теперь отображается только "В наличии", а статусы складов так и не привязываются...блин не помню что тогда доделал, что все доработало...опробывал заново всю выше описанную процедуру на нулевом им - эффект тотже, только надпись в наличии и все (т.е. не привязывается статус по складу: "Заказ", "Ожидание 3 Дня" и т.п.). Тоже самое и в самом товаре...в коде вижу что присваиваем значение "In Stock", а как вместо присваивания просто делать выборку по статусу склада для товара? Напомни плиз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди как убрать из Последних поступлений товары которых нет в наличии???

Очень надо плиз.

Осторе 0.2.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди как убрать из Последних поступлений товары которых нет в наличии???

Очень надо плиз.

Осторе 0.2.2

дату поступления поменять на более раннюю, наверное

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди как убрать из Последних поступлений товары которых нет в наличии???

Очень надо плиз.

Осторе 0.2.2

Открываете файлик

catalog/model/catalog/product.php
находите

public function getLatestProducts($limit) {
в запрос

$query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);

перед

ORDER BY...
добавляете

AND p.quantity > 0
получаете такой запрос

$query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.quantity > 0 ORDER BY p.date_added DESC LIMIT " . (int)$limit);

радуетесь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как сделать, что-бы кнопка купить в категориях (плюсик) при отсутствии товара поменялась, на нет в наличии? Версия магазина 1,4,9.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.