Commerce: Непонятное поведение, когда выбрана вариация товара со статусом "Inactive"

Главные вкладки

Аватар пользователя mg.bsv mg.bsv 5 апреля 2018 в 9:31

Я даже не понимаю, как правильно озаглавить мою проблему(вопрос). Ситуация следующая (Drupal 8 + Commerce).
Есть товар с атрибутами: цвет, размер, форма. Для каждой комбинации атрибутов сформированы вариации (их много). На странице товара создаются 3 селекта для выбора набора атрибутов. До этого момента все вроде ожидаемо и приемлемо.

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

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

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

Пробовал использовать разные модули в том числе: Commerce Variation Cart Form, Commerce Extended Attributes - но ничего проблему не решает. Отсюда вопрос:
Я что-то делаю неправильно или ожидаемое мною поведение нелогично и исправления не требует? Пожалуйста, помогите, кто чем может. И еще, кто-нибудь собирал магазин на Drupal 8 Commerce, решение уже достаточно отработанное или нет? Спасибо!

Комментарии

Аватар пользователя Olegars Olegars 12 апреля 2018 в 20:54

mg.bsv wrote:

Я что-то делаю неправильно или ожидаемое мною поведение нелогично и исправления не требует? Пожалуйста, помогите, кто чем может. И еще, кто-нибудь собирал магазин на Drupal 8 Commerce, решение уже достаточно отработанное или нет? Спасибо!

Все правильно, не работает и решения нет.
Спустя год еще раз попробовал посягнуть на d8 и опять облом

Аватар пользователя Olegars Olegars 12 апреля 2018 в 21:14

Это стандартный функционал, без которого весь коммерц вообще не имеет смысла. Если на каждый такой чих "заказывать подобную проверку", а этих чихов там еще есть...:).
Так что пока придется на 7 остаться.

Аватар пользователя mg.bsv mg.bsv 13 апреля 2018 в 5:43

Что значит "заказать подобную проверку"?..

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

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

Аватар пользователя Olegars Olegars 13 апреля 2018 в 15:30

Ну вообще то у меня он ничего не подставляет, пишет что "товар добавлен в корзину" на самом деле просто ничего не добавляет. У вас наверное какие-то доп модули свою кривезну вносят. Ну все равно это запутает покупателя.
По поводу хуков в данном случае это примерно так: заклинил подшипник в колесе, а вы вместо того что бы поменять его привязали к колесу доску (хук альтер) и ездите на доске как на лыже. Можно конечно, но это будет уже даже не говнокод...
По хорошему это надо изучать модуль stock и править его. А там столько кода как во всем D7 Smile

Аватар пользователя Olegars Olegars 13 апреля 2018 в 15:53

Хотел было организовать "склад" на rules, но там не оказалось таких событий как "добавление в корзину" , "обновление корзины" и т.п. что само по себе уже косяк. Да и сам rules, как и год назад, без патча не работает. Короче магазин для восьмерки легче написать с нуля, чем исправлять все эти кривые костыли.
По этому "за" D8 пока меньше чем "против".

Аватар пользователя mg.bsv mg.bsv 13 апреля 2018 в 15:58

Честно признаться, я уже несколько дней не занимаюсь проблемой вариантов, описанной здесь, а пытаюсь собрать магазин целиком, чтобы понять общее количество "нюансов" и, надо отметить, почти выдохся... Остановился на доставке (модуль Commerce Shipping), тут тоже масса "вопросов". К рулесам подошел только теперь, думал они не нужны в этом коммерце... Как я понимаю, меня ожидают и еще новые впечатления... Буду оставаться на связи. Спасибо!

Аватар пользователя Olegars Olegars 13 апреля 2018 в 16:05

mg.bsv wrote:

К рулесам подошел только теперь, думал они не нужны в этом коммерце

А они и не нужны, там просто нет событий которые связаны непосредственно с работой магазина. Остается только писать свой модуль который добавить эти события... Ну как сказал выше тогда уж проще маг с нуля...

Аватар пользователя mg.bsv mg.bsv 13 апреля 2018 в 16:50

Olegars wrote:

на странице коммерца сделано именно без "склада"

А что подразумевается под "складом", я что-то упускаю, это учет количества товаров или что?

Аватар пользователя Olegars Olegars 13 апреля 2018 в 16:53

Ну да, о чем мы тут трем, это называется склад (stock). То есть магазин отслеживает наличие товара на "складе", что бы не продать то, чего нету в наличии.

Аватар пользователя mg.bsv mg.bsv 13 апреля 2018 в 17:05

Smile Я тут тру о том, что мелких косяков, которые не пойми как править, много. Но учет наличия товаров, это тоже важная функциональность, согласен.
И раз мы уже от души общаемся, не укажите ссылочку (или что подскажете) как настроить доставку (модуль Commerce Shipping). Я вроде все настроил (почитал, что нашел), но это не работает и выглядит "глючно" (например, селекты выбора способа доставки показываются вместе с продублированной билинговой информацией и стоимость заказа не увеличивается). Я все это кручу впервые, но как-то все неинтуитивно, на мой взгляд... Спасибо!

Аватар пользователя Olegars Olegars 13 апреля 2018 в 17:21

Для коммерца2 д8 не подскажу, я бросил эту затею задолго до подхода к shipping, как только понял что со "складом" пролет. Дальнейшее исследование д8+к2 просто не имеет смыла, так как одного этого уже более чем достаточно что бы не построить вменяемый магазин.

Аватар пользователя mg.bsv mg.bsv 9 августа 2018 в 6:56

Итого. О Drupal 8 в целом хорошие впечатления, но рассчитывать на быструю и комфортную разработку не приходится. Очень много ошибок и нюансов. Коммерц еще более усложняет задачу. В общем, если вы не готовы по ноздри погрузиться в исходный код, то осилить это нет возможности (по моему конечно мнению).

А Яндекс.Кассу не рекомендую вовсе, как и весь Яндекс. Единственная компания, с которой я столкнулся за последние годы, которая может позволить просто игнорировать тикеты. Почти 3 месяца они уклоняются от решения проблем (все приходилось доказывать с большим трудом), а последние недели просто не отвечают на письма...