Jump to content
Sign in to follow this  
fantom4uk

Здравствуйте нужна помощь с ограничение вывода товаров дате

Recommended Posts

хочу сделать чтоб товары Которые старше указанной даты не выводилы на сайте ,типа не показывало в категориях и поиску, 

дана функция getProducts($data) находиться в каталоге\модуль\каталог\продукт, вот тут и проблема я не могу разобраться как мне сделать ,я в пхп новичок можете помочь

Share this post


Link to post
Share on other sites

есть 2 варианта: полное отключение (блокировка) и избирательное - товары остаются доступны роботам и по прямой ссылке (для тех пользователей кто их ранее купил или сохранил у себя в закладках).  Если нужна помощь в реализации любого из них - пишите в ЛС

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.

Sign in to follow this  

  • Similar Content

    • By Sabufer
      И так я получил related товары 
      public function getProductRelated($product_id) { $product_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_related pr LEFT JOIN " . DB_PREFIX . "product p ON (pr.related_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pr.product_id = '" . (int)$product_id . "' AND p.status = '1' AND p.date_available <= '" . $this->NOW . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); foreach ($query->rows as $result) { if( $product_id != $result['related_id'] )$product_data[$result['related_id']] = $this->getProduct($result['related_id']); } return $product_data; } теперь полученные id related нужно отправить в поиск как это сделать ума не приложу !
    • By Seofisher
      Подскажите как правильно изменить запрос к БД добавив одно условие
      Есть вот что:
       
      public function getProducts($data = array()) { $sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special"; Нужно добавить условие, отбирать те ID у которых isbn = 1
      Проверил такой запрос напрямую в mysql, он дает нужный мне результат:
      SELECT product_id FROM oc_product WHERE isbn = '1' Пробовал заменить строчку существующего кода на свой: 
      SELECT p.product_id,  заменил на SELECT product_id FROM " . DB_PREFIX . "product WHERE isbn = '1',

      Еще вот так подставлял. Общем разные варианты пробовал.....
      "SELECT p.product_id FROM " . DB_PREFIX . "product p WHERE isbn = '1',  
      И у меня ничего хорошего с этого не вышло. Понимаю что знаний не хватает, прошу помощи.
       
       
    • By DmitriySun
      ранее доставались только имеющиеся товары
      $products = $this->model_catalog_product->getProducts(array('start' => 0, 'available' => 1, 'limit' => 1000000));
      и выводились на екран 
      if ($product['quantity']) {
                              $output .= '<stock>' . $this->language->get('text_in_stock') . '</stock>';
                          } else {
                              $output .= '<stock>' . $this->language->get('text_out_of_stock') . '</stock>';
                          }
      я хочу изменить на то, чтобы доставать все товары и в зависимости от того нет ли есть выводить в прайс нужное мне сообщение. сделал так
      $products = $this->model_catalog_product->getProducts();
      вывожу так
      // if ($product ['status'] != 1 ) {
                  //            $output .= '<stock>' . $this->language->get('text_in_stock') . '</stock>';
                  //        } else {
                  //            $output .= '<stock days="10" >' . $this->language->get('text_out_of_stock') . '</stock>';
                  //        }
           
           if ($product ['stock_status'] !='Нет в наличии') {
                              $output .= '<stock>' . $this->language->get('text_in_stock') . '</stock>';
                          } else {
                              $output .= '<stock days="10" >' . $this->language->get('text_out_of_stock') . '</stock>';
                          }
      при обоих вариантах выдает ошибку
      This page contains the following errors:
      error on line 6209 at column 80109: StartTag: invalid element name Below is a rendering of the page up to the first error.
    • By DmitriySun
      ранее доставались только имеющиеся товары
      $products = $this->model_catalog_product->getProducts(array('start' => 0, 'available' => 1, 'limit' => 1000000));
      и выводились на екран 
      if ($product['quantity']) {
                              $output .= '<stock>' . $this->language->get('text_in_stock') . '</stock>';
                          } else {
                              $output .= '<stock>' . $this->language->get('text_out_of_stock') . '</stock>';
                          }
      я хочу изменить на то, чтобы доставать все товары и в зависимости от того нет ли есть выводить в прайс нужное мне сообщение. сделал так
      $products = $this->model_catalog_product->getProducts();
      вывожу так
      // if ($product ['status'] != 1 ) {
                  //            $output .= '<stock>' . $this->language->get('text_in_stock') . '</stock>';
                  //        } else {
                  //            $output .= '<stock days="10" >' . $this->language->get('text_out_of_stock') . '</stock>';
                  //        }
           
           if ($product ['stock_status'] !='Нет в наличии') {
                              $output .= '<stock>' . $this->language->get('text_in_stock') . '</stock>';
                          } else {
                              $output .= '<stock days="10" >' . $this->language->get('text_out_of_stock') . '</stock>';
                          }
      при обоих вариантах выдает ошибку
      This page contains the following errors:
      error on line 6209 at column 80109: StartTag: invalid element name Below is a rendering of the page up to the first error.
  • 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.