Статусы товаров и их покупка

Тема в разделе "Opencart", создана пользователем zek24, 24 дек 2013.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    776
    Симпатии:
    230
    Привет,
    требуется на ОК1551+ настроить три варианта статусов товаров следующим образом:
    1. В наличии - товар можно купить
    2. Отутствует - товар нельзя купить
    3. Предзаказ - товар можно купить
    Первые два пункта работают как нужно, но проблема с третьим.
    Если кол-во товара со статусом предзаказ в БД = 0, то в карточке товара пишется "предзаказ", но купить его нельзя. Если установить кол-во товара > 0, то в карточке статус меняется на "В наличии", а нужно чтобы оставался "предзаказ" при любом кол-ве товара и была возможность купить (оформить заказ).
     
  2. roman7210

    roman7210 Создатель

    Регистр.:
    18 ноя 2013
    Сообщения:
    24
    Симпатии:
    8
    В админке в system/settings/options установить Stock Checkout в yes, Out of Stock Status установить в Pre-Order.
    Тогда при кол-во товара > 0 товар в наличии и его можно купить, а при кол-во товара = 0 товар в предзаказе и его можно купить.
     
  3. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    776
    Симпатии:
    230
    Пробовал нечто подобное.
    Но тогда товары, которых нет в наличии, так же можно купить.
     
  4. alenru

    alenru Создатель

    Регистр.:
    12 ноя 2006
    Сообщения:
    19
    Симпатии:
    0
    Тоже попал на это. Сейчас как раз товар в пути, второго товара до весны не будет. Как на первый товар сделать предзаказ без возможности покупки второго ?
     
  5. roman7210

    roman7210 Создатель

    Регистр.:
    18 ноя 2013
    Сообщения:
    24
    Симпатии:
    8
    В opencart со статусами товаров такая логика:
    1. При добавлении товара можно указать его статус, этот статус затем хранится в БД в таблице product, в столбце stock_status_id.
    2. Если товар есть в наличии, а точнее если в БД его количество больше 0, то ему присваивается статус "в наличии"

    Чтобы вывести определённому товару определённый статус можно: во-первых назначить этому товару нужный статус (через админку например), во вторых в файле \catalog\controller\product\product.php заменить
    Код:
            if ($product_info['quantity'] <= 0) {
                    $this->data['stock'] = $product_info['stock_status'];
                } elseif ($this->config->get('config_stock_display')) {
                    $this->data['stock'] = $product_info['quantity'];
                } else {
                    $this->data['stock'] = $this->language->get('text_instock');
                }
    на
    Код:
            if ($product_info['quantity'] <= 999) {
                    $this->data['stock'] = $product_info['stock_status'];
                } elseif ($this->config->get('config_stock_display')) {
                    $this->data['stock'] = $product_info['quantity'];
                } else {
                    $this->data['stock'] = $this->language->get('text_instock');
                }
    После этого когда количество товара в наличии <999, то будет выдаваться статус товара из БД (указаный через админку), при количестве товара >998 будет выдаваться что товар в наличии.

    P.S. Проверял на версии OcStore 1.5.4
     
    Последнее редактирование: 10 янв 2014
    Lery нравится это.