Jump to content
Beck7

[Решено] Меняем в статусе товара кол-во дней ожидания поставки

Recommended Posts

Всем привет!

 

В нашем ИМ есть позиции товара, которые мы не держим в наличии, но хотим продавать под заказ. Поставщик подвозит товар 1 раз в неделю по средам, поэтому сейчас мы ставим статус при отсутствии товара на складе "Ожидание 7-8 дней". Хотелось бы, чтобы это количество изменялось в зависимости от дня недели.

 

Я решил реализовать это через SQL запрос UPDATE, вызываемый при каждой загрузке страницы.

12-15 лет назад я увлекался программированием на php3, но уже мало что помню, да и язык стал объектно-ориентированным. Я пытался вставить такую конструкцию в подвал файла index.php:

//   Обновление срока ожидания товара

$days_to_supply = 7;
$db->query("UPDATE `c1043`.`stock_status` SET `name` = \'Ожидание ".$days_to_supply."-".($days_to_supply+1)." дней\' WHERE `stock_status`.`stock_status_id` = 6 AND `stock_status`.`language_id` = 1");

Но с ней на выходе получается пустая страница, при этом никакой ошибки не появляется в логах.

Стоит отметить, что база правильно обрабатывает этот SQL запрос через phpmyadmin.

Подскажите пожалуйста, как правильно сделать запрос. Или есть другие более простые способы решения этой задачи?

 

З.Ы. Код для правильного присвоения значения переменной $days_to_supply я еще напишу. Но если и это подскажете - с меня пиво! =)

Share this post


Link to post
Share on other sites

Добрый день.

 

Не надо делать лишние апдейты в базе.

 

Лучше сделать это правильным способом.

1) Делам статус заказа например: "Ожидание {s}"

2) В модели товара: catalog/model/catalog/product.php

в функции public function getProduct($product_id) {

перед строкой: return array(

добавляем: $query->row['stock_status'] = str_replace('{s}', '5 дней', $query->row['stock_status']);

Число дней до поступления вытягиваем откуда надо.

Или расчитываем от дня недели, если поставки идут еженедельно.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By fduw
      Как подключить mysql через unix socket?
      В инете не нашел рабочей инфы
       
      Стандартная конфа

       Так не работает
      define('DB_HOSTNAME', 'unix:/tmp/mysql.sock'); define('DB_HOSTNAME', 'localhost/tmp/mysql.sock'); define('DB_HOSTNAME', 'tmp/mysql.sock');  
    • By termotorg
      Интернет магазин синхронизируется с "1С 8.3..." конфигурация "УНФ 1.6..." с помощью модуля "NeoSeo Обмен с 1C 158". В 1С ведется учет номенклатуры физического магазина и посредством модуля, на сайте обновляются цены и остатки. Часто бывают случаи, когда в магазине товар был продан до нулевого остатка, а поступление его планируется через неделю. Еще бывают случаи, когда товар был распродан и нет планов его больше привозить, по разным причинам. В 1С планируется выгрузить все прайсы поставщиков и вести учет их остатков на отдельном заведенном складе в этой же базе (м.б. на нескольких складах под каждого поставщика). В модуле "NeoSeo Обмен с 1C 158" можно задать любое количество соответствующих базе складов и поля для написания в них SQL запросы (SQL до обработки остатков, SQL после обработки остатков).
      Задача заключается в том, если товары отсутствуют на складе физического магазина, чтобы статусы и цены товаров менялись автоматически при прогонке прайса поставщика через базу 1С, к примеру с "есть в наличии" на "предзаказ 1-3".  Если товара нет на сладе магазина и ни у одного из поставщиков, то статус товара меняется к примеру на "нет в наличии". Важно чтобы склад магазина был приоритетным, и при поступлении товара на его склад, статус менялся бы на "есть в наличии" не зависимо от наличия товара у поставщика.  



    • By perebor
      Ребят привет, нужна помощь, прошу не пинаться) я пока не силен в оптимизации БД, но очень интересно было бы разобраться самому.
      На сервере где-то раз в месяц происходят скачки по нагрузке и кол-ву запросов. Последний был 27 числа, админка при этом пару раз отдавала 503 ошибку. Хостинг шлет предупреждения.
      Есть лог запросов, но все, что пока понимаю, так это то, что основную нагрузку подбрасывают запросы из мегафильтра. Собственно вопрос в том, что бы понять что это за запросы и как это дело оптимизировать, или может вообще стоит хостинг сменить. Буду благодарен если направите в правильное русло)

      сайт: nice-office.ru
      хостинг: ihc.ru
      Slow log:
       
       

    • By Otvet
      Скачать/Купить дополнение


      Лог медленных запросов для Opencart 2.x [ocmod]
      Мод позволяет получить лог медленных sql-запросов для последующей отладки скорости загрузки сайта
      лог сохраняется по адресу
      ../system/logs/sql_time.log   для изменения лимита времени записи запросов, нужно подправить строку в xml
      $min_time = 10;//минимальное время исполнения запроса в мс, записываемое в лог   Не забудьте деактивировать мод после окончания работ, иначе лог-файл будет расти месяцами пока не закончится место
      Обратите внимание на другие полезные модули:
      удобный поиск в админке- https://opencartforum.com/files/file/2746-удобный-поиск-в-админке-opencart-2x/
      улучшение индексации - https://opencartforu...сайта-oc-15-2x/
      продвижение главной - https://opencartforu...ое-продвижение/
      настраиваемый h1 - https://opencartforu...cart-20x-ocmod/
      Добавил Otvet Добавлено 04.11.2015 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика  
    • By garrrik91
      Уважаемые гуру опенкарта! есть задача вывести статус Заканчивается в карточке товара, когда на складе осталось менее 3 единиц. В категории получилось сделать, но на странице товара код совершенно другой, что в контроллере, что в шаблоне. Прошу помочь и прикрепляю файлы
      category.php
      category.tpl
      product.php
      product.tpl
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.