Перейти к содержимому


Фото
- - - - -

Подарок от суммы заказа

подарок акции корзина

  • Чтобы отвечать, сперва войдите на форум
Нет ответов

#1 PALERMO

PALERMO
  • Пользователь
  • 2 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Almaty

Опубликовано 16.11.2017 - 09:42

Добрый день, друзья!

 

У нас реализована система подарков (акции), которые предлагаются клиенту в корзине, при достижении определенной суммы. (Например любой из 3 товаров на выбор, если сумма заказа выше 1000 рублей и подарок предлагается на каждые 1000 рублей). То есть при заказе на сумму, например, 4000 рублей, он сможет выбрать по очереди 4 подарка из 3 возможных товаров.

 

Суть проблемы в следующем: 

Есть аналогичный сайт компании по франшизе в другой стране. Все тоже самое, только другие товары и акции. 

Акция такова: от 1200 один товар в подарок, а от 1400 другой.

Соответственно, если клиент заказал на 1500, то он может выбрать уже из двух товаров по этим акциям, но текущая реализация данной функции выводит на данную сумму только товар от 1400.

 

Вот код из View:

 

public function get_stock_products_plugin($params, &$smarty)
    {
        if(!isset($params['total_price']) or $params['total_price'] == 0) {
            return false;
        }
        
        if(!isset($params['visible']))
        $params['visible'] = 1;
        
        $query = $this->db->placehold("SELECT * FROM __categories WHERE stock = 1 AND visible = 1 AND stock_price <= ".$params['total_price']." ORDER BY stock_price DESC");
        $this->db->query($query);
        $result = $this->db->result();
        $stock_price = $result->stock_price;
        $stock_kol = $result->stock_kol;
        
        $cart = $this->cart->get_cart();
        $price = $cart->total_price + $cart->coupon_discount;
        if($stock_price > 0) {
            $koef = floor($price/$stock_price);    
        }
        
        if($koef > 1) {
            $stock_kol = $stock_kol * $koef;
        }
        
        
        if(isset($result->id) and $result->id > 0 AND $stock_kol > $params['stock_kol']) {
          $params = array('category_id' => $result->id, 'var' => 'stock');
          $this->get_wok_products_plugin($params, $smarty);
        } else return false;
        
    }    

В таблице categories в базе добавлены 3 столбца: stock (акционная категория или нет), stock_kol (кол-во подарков, который можно выбрать при достижении суммы stock_price) и stock_price.

 

В категориях автоматически созданы две категории 1200 и 1400, куда залиты по 1 товару по нулевой цене.

 

Вот выгрузка по запросу из кода выше для суммы 1500.

 

SELECT * FROM __categories WHERE stock = 1 AND visible = 1 AND stock_price <= 1500 ORDER BY stock_price DESC

Прикрепленный файл  Снимок.PNG   54,29К   13 раз скачано

 

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

Надеюсь я все понятно объяснил.

 

Заранее спасибо.


Изменено: PALERMO, 16.11.2017 - 09:52






Также с меткой «подарок акции, корзина»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых