PHP / SQL / AJAX - Обновить параметры в раскрывающемся меню на основе предыдущего выбранного параметра - PullRequest
0 голосов
/ 25 сентября 2018

Я создаю сайт электронной коммерции.

В настоящее время у меня есть таблица с именем 'attribute_titles', например, так:

ID  NAME
1   size
2   colour

Затем у меня есть таблица с именем attribute_values:

ID  ATTRIBUTE_ID    VALUE
1   1               small
2   1               medium
3   1               large
4   2               red
5   2               green
6   2               blue

Тогда моя таблица продуктов будет содержать массив атрибутов, которые относятся к рассматриваемому продукту, поэтому размер и цвет будут ['1','2'].Затем у меня есть таблица цен, в которой есть цена для каждого варианта продукта с многомерным массивом для атрибута.Таким образом, маленький красный продукт будет иметь ['1'=>'1','2'=>'4'] в качестве атрибута.

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

Поэтому, если кто-то выберет зеленый в качестве цвета, я хочу обновить раскрывающийся список, чтобы маленький размер не отображался.

В настоящее время они могутПросто выберите любой цвет или любой размер, и затем я проверяю, существует ли эта комбинация в моей таблице цен, и если нет, у меня просто есть предупреждение, но я не хочу, чтобы они могли выбрать вариант, который не существует.

Буду очень признателен за любые идеи или предложения о том, как мне этого добиться.

1 Ответ

0 голосов
/ 25 сентября 2018

Я работал в электронной коммерции раньше.

Ваше моделирование не завершено.На данный момент вам не хватает сущности SKU (единица учета запасов).Эта сущность моделирует существование концепций, которые вы изложили ранее.Обычно он также управляет наличием товара на складе (отсюда и название) для каждой комбинации продукта.

На сайте электронной коммерции обычно отображаются «Продукты», а не SKU (напрямую).Например, футболка Safari с V-образным вырезом.В бэк-офисе у вас есть несколько SKU для этого продукта.У вас может быть:

create table sku (
  product_id int foreign key product (id),
  color_id int foreign key color (id),
  size_id int foreign key size (id),
  units_left int
);

select * from sku;

color  size  units_left
-----  ----  ----------
Blue   M     10
Blue   L     6
Red    L     7
Red    XL    0 -- no stock of this one today!
Green  S     2

Вам также необходимо решить, покажете ли вы артикулы, которых у вас нет на складе (красный, XL в приведенном выше примере).

Когдабольше запасов доступно, вы просто добавляете эти значения в таблицу SKU.Возможно, вам придется добавить дополнительные строки, если появится новая комбинация (например, Green, M).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...