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

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


Recommended Posts

Доброго времени суток уважаемые форумчане. 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 weeks later...

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

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

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

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

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

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

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


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

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

Змінено користувачем Leva
Надіслати
Поділитися на інших сайтах

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

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

  • 2 weeks later...
  • 6 months later...

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

 

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

 

Notice: Undefined variable: button_pre_order

 

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

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

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

как в примере 

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

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

 

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

Змінено користувачем firesky
Надіслати
Поділитися на інших сайтах


  • 3 years later...

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

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


  • 8 months later...
В 14.07.2021 в 23:49, Anna_swapdesign сказал:

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

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

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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