Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Bistore

Recommended Posts

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

 

Змінено користувачем Bistore
Надіслати
Поділитися на інших сайтах


 

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

 

Змінено користувачем 100napb
Надіслати
Поділитися на інших сайтах

Как сделать так что бы эти скидки которые через 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;
                    }
                }
}
Надіслати
Поділитися на інших сайтах


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."' и почувствуйте разницу.

 

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

 

Змінено користувачем 100napb
Надіслати
Поділитися на інших сайтах

39 минут назад, 100napb сказал:

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

 

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

 

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

Надіслати
Поділитися на інших сайтах


2 hours ago, Bistore said:

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

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

Змінено користувачем 100napb
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.