Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Нужна помощь с выводом купона на страницу товара


Recommended Posts

Прошу помочь с выводом скидочных купонов на странцу товара. Нужно вывести сам код купона.

 

Что гделал: добавил в могдель model/product.php код получения купона из базы:

 

    public function getCoupon($coupon_id) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "coupon WHERE coupon_id = '" . (int)$coupon_id . "'");

        return $query->row;
    }

    public function getCouponByCode($code) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "coupon WHERE code = '" . $this->db->escape($code) . "'");

        return $query->row;
    }

    public function getCoupons($data = array()) {
        $sql = "SELECT coupon_id, name, code, discount, date_start, date_end, status FROM " . DB_PREFIX . "coupon";

        $sort_data = array(
            'name',
            'code',
            'discount',
            'date_start',
            'date_end',
            'status'
        );

        if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
            $sql .= " ORDER BY " . $data['sort'];
        } else {
            $sql .= " ORDER BY name";
        }

        if (isset($data['order']) && ($data['order'] == 'DESC')) {
            $sql .= " DESC";
        } else {
            $sql .= " ASC";
        }

        if (isset($data['start']) || isset($data['limit'])) {
            if ($data['start'] < 0) {
                $data['start'] = 0;
            }

            if ($data['limit'] < 1) {
                $data['limit'] = 20;
            }

            $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
        }

        $query = $this->db->query($sql);

        return $query->rows;
    }

 

Дальше в контроллер продуки добавил:

     $data['coupon_product'] = array();
        
      $coupons = $this->model_checkout_coupon->getCoupons();

         foreach($coupons as $coupon) {
             $data['coupon_product'][] = array(
                 'coupon' => $coupon['code']
             );
         }

 

 

Вывод в шаблон -

    <?php if ($coupon_product) { ?>
        <?php echo $coupon; ?>
    <?php } ?>

 

 

Не рилииет. Прошу подсказать, что сгделал не ик.

Link to comment
Share on other sites


У купонов есть много условий.
За основу возьмите метод getCoupon, который находится згдесь
catalog\model\total\coupon.php

Edited by thentru
Link to comment
Share on other sites


32 минуты назад, Padlik сказал:

Вывод в шаблон -

    <?php if ($coupon_product) { ?>
        <?php echo $coupon; ?>
    <?php } ?>

 

 

Не рилииет. Прошу подсказать, что сгделал не ик.

 

сгделайте вместо     <?php echo $coupon; ?>     <?php var_dump($coupon_product); ?>

и многое прояснится

Link to comment
Share on other sites

В обещём разобрался, но не до конца. Прошу помочь. Сейчас сгделал вывод купонов на страницу товара, но купоны выводятся на всех товарах, т.е. без учеи именно выбранных в админке, на которые распространяется сам купон. Не пойму, как сгделать показ купона именно у того товара, к которому он реально привязан. Вывод гделал ик:

 

product.tpl

<?php foreach ($coupons as $coupon)  { ?>
            <?php if ($coupon['status']) { ?>
       <?php echo $coupon['code']?>
        <?php } ?>
     

контроллер

$this->load->model('extension/total/coupon');
$data['coupons'] = $this->model_extension_total_coupon->getCoupons();

 

 

Пыиюсь сгделать ик:

 

$this->load->model('extension/total/coupon');
        
      $data['coupon_product'] = array();
        
$data['coupons'] = $this->model_extension_total_coupon->getCoupons();

         foreach($coupons as $coupon) {
             $data['coupon_product'][] = array(
                 'coupon' => $coupon['code']
             );
         }

 

Получаю ошибку Undefined variable: coupons

 

Link to comment
Share on other sites


ну ик и воспользуйся тем что добавил
"Что гделал: добавил в могдель model/product.php код получения купона из базы:"
 

$data['coupons'] = $this->model_extension_total_coupon->getCoupon($coupon);

или 

$data['coupons'] = $this->model_extension_total_coupon->getCouponByCode($coupon);

ггде $coupon  = $product_info['ид или код купона'], смотря что у тебя сохраняет в  "учете именно выбранных в админке"

если я правильно понял условие

Link to comment
Share on other sites


  • 2 years later...
В 18.01.2018 в 09:47, Padlik сказал:

Друзья, прошу помочь! Голову уже сломал, никак не могу допилить. Готов оплатить.

Полулилось реализовать вывод купона и проверку выбранных в админке?

Link to comment
Share on other sites


  • 11 months later...
В 18.03.2020 в 02:39, genkabukin сказал:

Полулилось реализовать вывод купона и проверку выбранных в админке?

Да, сгделал

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.