Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

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

Надіслати
Поділитися на інших сайтах

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

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

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

Надіслати
Поділитися на інших сайтах


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

#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
Надіслати
Поділитися на інших сайтах

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

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

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

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

Надіслати
Поділитися на інших сайтах

*.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

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

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 2 weeks later...

по аналогии.

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

Надіслати
Поділитися на інших сайтах

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

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 3 weeks later...

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

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

Осторе 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);

радуетесь :)

Надіслати
Поділитися на інших сайтах

  • 6 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.