Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Меняем кнопку купить на пред заказ в случае отсутствия товара на складе


Igorewa
 Поделиться

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

Доброго времени суток уважаемые форумчане. opencart 2.0.3.1 Подскажите, что нужно исправить, что бы в случае когда товара нет на складе, в корзине покупателю выводилось сообщение о том что товар можно купить по пред заказу. 

А то в данный момент если товара нету на складе просто нельзя совершить покупку и мы остаемся в корзине с товаром и просто не реагируем на кнопку оформить заказ.

Изменено пользователем Igorewa
Ссылка на комментарий
Поделиться на других сайтах


То что нельзя купить это задается в Система -> Настройки -> Редактировать - вкладка Опции, там в блоке Склад есть галочка "Заказ при нехватке на складе", если там "Нет" то тогда все товары у которых стоит количество 0 нельзя будет купить через корзину. При добавлении их в корзину будет выдаваться сообщение что товар закончился.

Если вам нужно чтобы заказ оформлялся. то ставите в настройках галочку "да", в товаре пишете количество 0 и статус "под заказ" (статус можно создать/изменить в система - локализации - состояния на складе). тогда можно будет оформить заказ. но на странице товара будет указано в графе наличие тот статус который выбран в админке.

Других вариантов не дано: или товар нельзя купить и выводится предупреждение(текст можно изменить) или товар можно купить в не зависимости от статуса и статус будет отображаться на странице товара. Все остальное уже требует доработок в коде или дополнительных модулей.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Для товаров, которых на складе не осталось можно также, кнопку "В корзину" поменять на кнопку "Под заказ"

Изменений в коде не так много, могу скинуть. Покрасивее будет и визуальнее.

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


catalog\language\russian\russian.php или catalog\language\english\english.php
добавить строчку

    $_['button_pre_order']      = 'Под заказ';

catalog\controller\product\product.php или system\modification\catalog\controller\product\product.php
1)
после строки

    $data['button_cart'] = $this->language->get('button_cart');

добавить строку

    $data['button_pre_order'] = $this->language->get('button_pre_order');

2)
после блока

    $data['product_id'] = (int)$this->request->get['product_id'];
    $data['manufacturer'] = $product_info['manufacturer'];
    $data['manufacturers'] = $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $product_info['manufacturer_id']);
    $data['model'] = $product_info['model'];
    $data['upc'] = $product_info['upc'];
    $data['ean'] = $product_info['ean'];
    $data['jan'] = $product_info['jan'];
    $data['isbn'] = $product_info['isbn'];            
    $data['mpn'] = $product_info['mpn'];
    $data['reward'] = $product_info['reward'];
    $data['points'] = $product_info['points'];

добавить строку

    $data['quantity'] = $product_info['quantity'];

    // это количество товара
    
catalog\view\theme\default\template\product\product.tpl или system\modification\catalog\view\theme\default\template\product\product.tpl
в строке

<button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button>

заменяем кусок <?php echo $button_cart; ?>

на 

<?php /* проверка наличия на складе */ if ($quantity <= 0) echo $button_pre_order; else echo $button_cart;?>

 
Здесь на странице товара меняется кнопка В корзину на кнопку Под заказ, если товара нет на складе.
Можно ещё на странице поиска, в категориях, в рекомендуемых товарах аналогично сделать

  • +1 4
Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...

То что нельзя купить это задается в Система -> Настройки -> Редактировать - вкладка Опции, там в блоке Склад есть галочка "Заказ при нехватке на складе", если там "Нет" то тогда все товары у которых стоит количество 0 нельзя будет купить через корзину. При добавлении их в корзину будет выдаваться сообщение что товар закончился.

Если вам нужно чтобы заказ оформлялся. то ставите в настройках галочку "да", в товаре пишете количество 0 и статус "под заказ" (статус можно создать/изменить в система - локализации - состояния на складе). тогда можно будет оформить заказ. но на странице товара будет указано в графе наличие тот статус который выбран в админке.

Других вариантов не дано: или товар нельзя купить и выводится предупреждение(текст можно изменить) или товар можно купить в не зависимости от статуса и статус будет отображаться на странице товара. Все остальное уже требует доработок в коде или дополнительных модулей.

Здравствуйте! подскажите, пожалуйста! 

Как сделать так чтобы , товары ,которых уже нет в наличии отображались в конце списка и их можно было оформить по предзаказу? в локализации я оформил разные варианты состояния на складе и в настройке самого товара, тоже установил ,что если товар закончиться его можно будет оформить по предзаказу. Но к сожалению, после того как товар купили товар исчезает и даже переходя по ссылке на этот товар, выскакивает сообщение ,что товар не найден.

post-706930-0-49497900-1461586301_thumb.png

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


Здравствуйте! подскажите, пожалуйста! 

У меня такого не было ни разу. да и по логике не должно было произойти вообще. при покупке уменьшится количество на складе(если это включено). а при количестве ноль поменяется статус. но как у вас получается что товар не найден... тут нужно только смотреть ваш сайт. Можете написать в приват, посмотрю поверхностно ваш сайт.

Изменено пользователем Leva
Ссылка на комментарий
Поделиться на других сайтах

Такое по логике могли добавить в вывод списка товаров. но при заходе по прямой ссылке на товар добавлять такое бессмысленно. хотя как одни из возможных вариантов вполне может быть и так.

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

Значит в функции getproduct кто то добавил к запросу "AND p.quantity > 0 ", что не правильно

Здравствуйте! Что это за функция и где ее можно изменить?

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


  • 2 недели спустя...
  • 6 месяцев спустя...

Все отлично работает, то что нужно, а как теперь изменить стиль кнопки и цвет шрифта  ?

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


@klimbronin,  Спасибо большое помогло

 

Но может кто то сталкивался, если использовать текст прописанный в ленгидж /рашин  дает ошибку 

 

Notice: Undefined variable: button_pre_order

 

при этом сюда все подключил

сюда catalog\language\russian\russian.php

и  сюда catalog\controller\product\product.php 

как в примере 

Почему то не подтягивает переменную  (( 

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

 

Сделал по похожему аналогу и для категорий - все остальное отлично работает. кроме языковой переменной*( 

Изменено пользователем firesky
Ссылка на комментарий
Поделиться на других сайтах


  • 3 года спустя...

Подскажите, пожалуйста как сделать тоже самое, но на странице категории? (необходимо сделать так, чтобы при нулевом количестве товара на складе, на странице категории в карточке менялась кнопка)

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


  • 8 месяцев спустя...
В 13.04.2016 в 14:29, klimbronin сказал:

$data['button_cart'] = $this->language->get('button_cart');

Все привет)

Где находится вот это в опен карт 3? 

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


В 14.07.2021 в 23:49, Anna_swapdesign сказал:

Где находится вот это в опен карт 3? 

catalog/language/ru-ru/ru-ru.php

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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