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

Как посчитать количество товаров в опциях SQL запросом


Recommended Posts

Дано: Opencart, один товар штаны.

 

Опция размер:

- M - 5 штук
- XL - 5 штук

 

Опция цвет:

- белый - 3 штук
- чёрный - 7 штук

 

Как sql-запросом посчитать количество штанов белого цвета, размера XL

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


В обычном варианте никак, поскольку опции никоим образом не связанны друг с другом.

То есть, универсального решения не получится сделать.

P.S.

Есть модуль Связанные опции, где этот вопрос решён

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


11 минут назад, krumax сказал:

В обычном варианте никак, поскольку опции никоим образом не связанны друг с другом.

То есть, универсального решения не получится сделать.

 

Как с этим жить? Как на этом можно интеграцию со складом делать?

Про модуль "связные опции" я в курсе. Это как минимум лишняя прослойка.

Интересует живой опыт.

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


Точно не уверен, не проверял!

SELECT count(*) FROM `oc_product_option_value` WHERE product_id = '42' AND option_id = 5 AND option_value_id = ('40,41')

То есть вместо 40 и 41 ставите id цвета и размера.

Повторюсь, не проверял! 

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

38 минут назад, Designer сказал:

Запрос указанный выше можете даже не проверять, он не рабочий.

 

Вы тестовые данные подставили? У вас ответ какой получился?

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


22 минуты назад, Designer сказал:

Как я понял, есть товар 1 - опция: Белый - 5 шт, опция XL - 3 шт, нужно посчитать их общее кол-во, т.е 8 шт должно быть в результате?

Или же есть 5 товарв с такими опциями и нужно посчитать именно, сколько еще товаров есть в базе с такими параметрами? 

 

У меня на складе штаны 2х размеров и 2х цветов, в произвольной комбинации, в общем 10 штук

Из них 5 размера XL и 5 размера M, 3 белого, 7 чёрного

Заношу это в базу опенкарта штатными средствами, одним товаром с опциями, чтобы получить переключатели опций.

Как теперь из базы получить количество штанов белого цвета, размера XL

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


вам выше написали, что никак

у вас должен учитываться остаток по связке опций цвет-размер

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


3 минуты назад, thentru сказал:

вам выше написали, что никак

у вас должен учитываться остаток по связке опций цвет-размер

 

Отлично. Я догадывался, но было подозрение что математику плохо знаю.

Как с этим жить? Как со складом, CRM интеграцию делать? там везде SKU.

Таблица посредник (Связные опции), изменение модели для вариантов.

Прошу поделится опытом.

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


13 часов назад, d0tb0t сказал:

Дано: Opencart, один товар штаны.

 

Опция размер:

- M - 5 штук
- XL - 5 штук

 

Опция цвет:

- белый - 3 штук
- чёрный - 7 штук

 

Как sql-запросом посчитать количество штанов белого цвета, размера XL

в такой задаче может быть несколько вариантов ответа:

1) Штаны белые XL 1шт

    Штаны белые M 2шт

    Штаны чёрные XL 4шт

    Штаны чёрные M 3шт

 

2) Штаны белые XL 2шт

    Штаны белые M 1шт

    Штаны чёрные XL 3шт

    Штаны чёрные M 4шт

и т.д

Поэтому нужно указывать количество конкретно для каждой комбинации

 

Цитата

Интересует живой опыт.

Скрещивали обмен с 1С и модулем Связанные опции (правда, был ещё тот геморой)

 

Как вариант:

Создаёте товар "Штаны белые" и для них уже добавляете опцию "Размер" (такой вариант предпочтителен). Для того, чтобы показать, что у Вас есть товар других цветов, то можно сделать модулем как вот на этом примере

Am3OS7hfTW_VvUSBFiv9Tw.png

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


  • 3 weeks later...

привет. 

Остаток действительно не посчитать(ну или на первый взгляд не посчитать). Но вот посчитать число проданных белых штанов размером XL  возможно. (данные из oc_order_option и oc_order_product). Если такое решение подойдет, то могу собрать запрос ближе к выходным. 

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

@d0tb0t Все поступления есть в Моем Складе. Продажи есть в OpenCart, которые, в общем случае, можно считать списанием. Т.е. можно легко вычислять остатки, но они будут доступны только в Моем складе. И вычислять остатки будет Мой Склад.
 

У моей супруги именно такая связка. OpenCart 1.5 + Мой склад. На стороне сайта не учитываем остатки. Списания в моем складе делаем вручную, т.к. продаж мало через сайт. Если что-то заказывают из того что нет на складе, то клиенту предлагается замена, подождать пока приедет от поставщика. + учитываются продажи в офлайн.

 

В моем варианте вообще нет склада. Поэтому остатки не считаем. 

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

29 минут назад, ArtShatov сказал:

Поэтому остатки не считаем.

Даже при наличии "мой склад" актуальных остатков мы не имеем.

Кроме как по каждому обновлению корзины лазить за остатками удалённо в Мой склад.

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


1 час назад, d0tb0t сказал:

Даже при наличии "мой склад" актуальных остатков мы не имеем.

 

Все верно. На стороне сайта остатков, действительно, не будет. Поэтому

1 час назад, d0tb0t сказал:

Кроме как по каждому обновлению корзины лазить за остатками удалённо в Мой склад.

 

Но чтобы остатки были хотя бы в моем складе нужно их туда заносить. Если продаж мало, то можно и руками кажыдый заказ в мой склад затянут. Если лень руками - можно автоматизировать. 

 

А вообще задача не понятно. Нужно защититься от заказов того что нет в наличии? Или надо с помощью Опенкарта учет наличия наладить?

 

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

3 минуты назад, ArtShatov сказал:

А вообще задача не понятно. Нужно защититься от заказов того что нет в наличии? Или надо с помощью Опенкарта учет наличия наладить?

 

Ну в общем хотелось бы. OpenCart в тройке по популярности как ИМ. А какой магазин без учёта остатков? Без остатков это скорей каталог.

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


  • 4 months later...
7 минут назад, sethtm сказал:

остатки можно синхронизировать с моего склада ) пишите если актуально

  


Поясните, как вы будете это делать? К сожалению, мне не надо, но очень интересно. 
 

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

Я бы лучше создавал штаны разных цветов, связывая их в одну коллекцию, а опциями бы сделал размер штанов.

Хотя, @krumax Вам уже указал - это и точки зрения юзабилити, и с точки зрения СЕО куда лучше, чем сделать один товар с огромной простыней опций и параметров.

 

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


у меня в магазине нет подобного примера, к сожалению: нет товара с двумя опциями.Потому проверить достоверность результатов не могу. Но вроде все решаемо. попробуйте вот так. Возможно, нужно будет ограничить поиск, предварительно сделав выборку ТОЛЬКО белых штанов, а затем из этой выборки уже селектить количество нужного размера. Anyway, ничего невозможного

-- подсмотреть нужные option_id опции размера и цвета в табличке oc_option_description
-- задать значения переменным
SET @size_option_id = 14;
SET @color_option_id = 14;
-- подсмотреть нужные option_value_id в табличке oc_option_value_description для размер = XL и цвет = белый)
-- задать значения переменным
SET @size_id = 52;
SET @color_id = 52;
-- подсмотреть нужный id-шник товара ваших штанов
-- задать значения переменным
SET @product_id = 105;

 -- погнали считать... 
set @product_option_id_size = (SELECT product_option_id FROM oc_product_option_value WHERE product_id = @product_id AND option_id =  @size_option_id AND option_value_id = @size_id LIMIT 1);
set @product_option_id_color = (SELECT product_option_id FROM oc_product_option_value WHERE product_id = @product_id AND option_id =  @size_color_id AND option_value_id = @color_id LIMIT 1);

SELECT
 sum(opov.quantity) 
FROM oc_product_option_value opov
WHERE opov.product_id = @product_id
  AND opov.product_option_id IN (@product_option_id_size, @product_option_id_color)
  AND opov.option_value_id IN (@size_id, @color_id);


 

 

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

если прямо очень надо посчитать именно средствами SQL, то без проблем могу помочь написать верный запрос. Мне не сложно, если есть тестовые данные.

 

Другое дело, что запрос выше написан буквально на коленке, без возможности проверить корректность результата. Я уверен, что выше предложил почти то, что нужно. Возможно, нужно уточнить буквально пару условий. Но т.к. мотивации лично у меня нет что-то городить в своей базе и тратить значимое количество времени для решения Вашей задачки, то... могу дать 100% рабочий результат лишь при условии доступов хотя бы на селект в Вашу базу. В принципе, даже доступа к нескольким таблицам хватило б.... там делов на 5 минут.

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

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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