Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Есть ли у пользователя счетчик по купленым товарам ( по каждому отдельно) ???


Recommended Posts

Есть ли у пользователя счетчик по купленым товарам ( по каждому отдельно) ???
Хочу ограничить количество 
Идет 2 товара со скидкой если уже купил эти товары два раза то скидка изчезает навсегда
Есть поле спец по скидкам сделал и количество товара которое может взять со скидкой, теперь нужно сделать запись по каждому товару купленному что бы больше не мог со скидкой взять!
Объясните логику или вдруг уже есть такое поле сейф по товару купленному?
Как связать customer oc_order oc_order_product? что бы по ним фильтровать и выводить количество купленого товара этим пользователем?

 

Edited by Bistore
Link to post
Share on other sites

 

3 hours ago, Bistore said:

Как связать customer oc_order oc_order_product? что бы по ним фильтровать и выводить количество купленого товара этим пользователем?

Без проблем могу помочь написать запрос, который бы отражал все необходимую логику\информацию. Однако учтите, что связка указанных таблиц возможна только для зарегистрированных клиентов, т.к. в таблице oc_order поле customer_id заполняется только для зарегистрированных и авторизовавшихся перед оформлением заказа клиентов. Без однозначной идентификации клиента вся Ваша идея лишена смысла, т.к. на месте клиента который хочет обойти ограничение, можно либо зарегистрироваться на другую эл.почту или оформить заказ без регистрации.

 

Как черновик, можете использовать вот такой запрос

SELECT
  oo.customer_id,
  CONCAT(oo.firstname, oo.lastname),
  oop.model,
  sum(oop.quantity)
FROM oc_order oo,
     oc_customer oc,
     oc_order_product oop
WHERE oo.customer_id = oc.customer_id
AND oop.order_id = oo.order_id
  GROUP BY oop.product_id, oc.customer_id
 HAVING COUNT(oop.product_id)> 1;

на выходе будет что-то вроде такого: номер клиента --- ФИО --- название продукта --- количество единиц заказанных клиентом

Spoiler

image.png.e0656b97e064650024fc0455111e3b36.png

 

Edited by 100napb
Link to post
Share on other sites

Как сделать так что бы эти скидки которые через isbn(% скидки) и jan(количество скидок) сделанно 
На товар каждый отдельно и получается каждому пользователю дается возможность определенный товар с определенной скидкой купить 2-3 шт по полю jan

и Нужно отслеживать купленный уже товар по товарайди и количество и минусовать его от количество скидок ( по каждому пользователю и товару что бы было)
Как такое осуществить? 

$cid = (int)$this->customer->getId();
$pid = (int)$product_query->row['product_id'];
if($cid>'0') {
$pppo = $this->db->query("SELECT op.product_id, sum(op.quantity) FROM oc_order_product AS op LEFT JOIN oc_order AS o ON o.order_id=op.order_id WHERE o.customer_id='".$cid."' ");
$pppod = array(
    'product_id' => $pppo['product_id'], 
    'quantity' => $pppo['quantity'],
);
if(isset($pppo->row['quantity']) AND !empty($pppo->row['quantity']) AND $pppo->row['quantity']>'0') {
$nqty = $pppo->row['quantity'];
} else {
$nqty = '0';
}
//    print_r($nqty);
                $ppp = $this->db->query("SELECT isbn, jan FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_query->row['product_id'] . "'  LIMIT 1");
                    $iss = $ppp->row['isbn'];
                    $jan = $ppp->row['jan'];

                    $jjan = (int)$jan-(int)$nqty;
//    print_r($nqty);
//    print_r($jan);
if($jjan>'0') {
                if($cart['quantity']<$jjan) {
                $ppp = $this->db->query("SELECT isbn, jan FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_query->row['product_id'] . "'  LIMIT 1");
                    $iss = $ppp->row['isbn'];
                    if($iss>'0') {
                        $price = $price-$price/100*$iss;
                    } else {
                    }
                }
}

} else {
               $ppp = $this->db->query("SELECT isbn, jan FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_query->row['product_id'] . "'  LIMIT 1");
                    $iss = $ppp->row['isbn'];
                    $jan = $ppp->row['jan'];
if($jan>'0') {
                if($cart['quantity']<$jan) {
                //    $pp = $this->model_catalog_product->getProduct($product_query->row['product_id']);
                $ppp = $this->db->query("SELECT isbn, jan FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_query->row['product_id'] . "'  LIMIT 1");
                    $iss = $ppp->row['isbn'];
//    print_r('-');
//    print_r($iss);
                    if($iss>'0') {
                        $price = $price-$price/100*$iss;
                //        $product['price'] = $product['price']/100*40;
                    } else {
                //        $product['price'] = $product['price']/100*40;
                    }
                }
}
Link to post
Share on other sites

2 hours ago, Bistore said:

$pppo = $this->db->query("SELECT op.product_id, sum(op.quantity) FROM oc_order_product AS op LEFT JOIN oc_order AS o ON o.order_id=op.order_id WHERE o.customer_id='".$cid."' ");

этим запросом Вы посчитаете суммарное количество всех товаров, которые заказывал клиент. То есть если в одном заказе клиент указал 2шт товара А, а в другом - 3шт товара Б, а в третьем заказе 1шт товара С, то запрос вернет Вам в результате 6шт неизвестного товара - нельзя точно сказать какого - А, Б или С. Плюсом, в запросе нет учета статуса заказов (даже брошенные корзинки клиента посчитаются). Посему запрос некорректный. Добавьте к тому запросу, что я приводил выше в качестве примера условие customer_id='".$cid."' и почувствуйте разницу.

 

Дальше не вчитывался, т.к. ошибка есть уже на самом старте + лично у меня это займет значимое время, которое есть интерес тратить только на платной основе. Раздел услуг на форуме Вам в помощь, как вариант.

 

Edited by 100napb
Link to post
Share on other sites
39 минут назад, 100napb сказал:

этим запросом Вы посчитаете суммарное количество всех товаров, которые заказывал клиент. То есть если в одном заказе клиент указал 2шт товара А, а в другом - 3шт товара Б, а в третьем заказе 1шт товара С, то запрос вернет Вам в результате 6шт неизвестного товара - нельзя точно сказать какого - А, Б или С. Плюсом, в запросе нет учета статуса заказов (даже брошенные корзинки клиента посчитаются). Посему запрос некорректный. Добавьте к тому запросу, что я приводил выше в качестве примера условие customer_id='".$cid."' и почувствуйте разницу.

 

Дальше не вчитывался, т.к. ошибка есть уже на самом старте + лично у меня это займет значимое время, которое есть интерес тратить только на платной основе. Раздел услуг на форуме Вам в помощь, как вариант.

 

Если смотреть на это дело за сколько бы вы сделали такое?

Link to post
Share on other sites

2 hours ago, Bistore said:

Если смотреть на это дело за сколько бы вы сделали такое? 

Написал в ЛС. К теме топика это уже не относится.

Edited by 100napb
Link to post
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
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.