Я даже не понимаю, как правильно озаглавить мою проблему(вопрос). Ситуация следующая (Drupal 8 + Commerce).
Есть товар с атрибутами: цвет, размер, форма. Для каждой комбинации атрибутов сформированы вариации (их много). На странице товара создаются 3 селекта для выбора набора атрибутов. До этого момента все вроде ожидаемо и приемлемо.
Отметим вариацию "красный, малый, треугольный" как "Inactive". Теперь, по моему ожиданию, когда пользователь выбирает комбинацию "красный, малый, треугольный" появляется сообщение, что такого товара нет на складе, а кнопка "В корзину" заблокирована. Ну или пользователь ни при каких обстоятельствах не может выбрать набор атрибутов "красный, малый, треугольный".
В действительности же поведение другое. Пользователь может выбрать комбинацию "красный, малый, треугольный", т.е. в каждом селекте явно выбрано: "красный", "малый", "треугольный", при этом кнопка "В корзину" не заблокирована и пользователь может купить этот товар. Тут нужно отметить, что товар конечно он купит другой, тот который выберется автоматически взамен выбранного, например: "красный, малый, круглый".
Во-первых, такая логика меня не устраивает, потому что она может запутать покупателя. Во-вторых, пользователь может даже не увидеть, что покупает совсем другой товар. Нет никакого сообщения, что выбранный в селектах товар отсутствует на складе и ему уже предложили замену.
Пробовал использовать разные модули в том числе: Commerce Variation Cart Form, Commerce Extended Attributes - но ничего проблему не решает. Отсюда вопрос:
Я что-то делаю неправильно или ожидаемое мною поведение нелогично и исправления не требует? Пожалуйста, помогите, кто чем может. И еще, кто-нибудь собирал магазин на Drupal 8 Commerce, решение уже достаточно отработанное или нет? Спасибо!
Комментарии
Все правильно, не работает и решения нет.
Спустя год еще раз попробовал посягнуть на d8 и опять облом
Что-то мне кажется, что вам проще в таком случае заказать подобную проверку, чем сокрушаться
Это стандартный функционал, без которого весь коммерц вообще не имеет смысла. Если на каждый такой чих "заказывать подобную проверку", а этих чихов там еще есть...:).
Так что пока придется на 7 остаться.
Что значит "заказать подобную проверку"?..
Не буду сейчас углубляться в детали этой задачи, она еще в процессе, только уже по всему магазину, но выскажусь. Я поддерживаю мнение Olegars, вопрос именно в том, что таких мелочей крайне много и остается только один вопрос, имеет ли смысл преодолевать их. И да, это стандартный функционал и, естественно, ожидается, что она будет работать без всяких проблем, но в действительности в точности наоборот...
Все же немного по теме: касательно этой задачи пока рассмотрел только хук форм альтер - не подходит, потому что проблема не в том, что кнопка "в корзину" не блокируется, проблема в том, что коммерц автоматически подставляет один из существующих вариантов и альтер форм срабатывает уже для варианта "active".
И да, спасибо за ваши комментарии, а то совсем грустно было
Ну вообще то у меня он ничего не подставляет, пишет что "товар добавлен в корзину" на самом деле просто ничего не добавляет. У вас наверное какие-то доп модули свою кривезну вносят. Ну все равно это запутает покупателя.
По поводу хуков в данном случае это примерно так: заклинил подшипник в колесе, а вы вместо того что бы поменять его привязали к колесу доску (хук альтер) и ездите на доске как на лыже. Можно конечно, но это будет уже даже не говнокод...
По хорошему это надо изучать модуль stock и править его. А там столько кода как во всем D7
Хотел было организовать "склад" на rules, но там не оказалось таких событий как "добавление в корзину" , "обновление корзины" и т.п. что само по себе уже косяк. Да и сам rules, как и год назад, без патча не работает. Короче магазин для восьмерки легче написать с нуля, чем исправлять все эти кривые костыли.
По этому "за" D8 пока меньше чем "против".
Честно признаться, я уже несколько дней не занимаюсь проблемой вариантов, описанной здесь, а пытаюсь собрать магазин целиком, чтобы понять общее количество "нюансов" и, надо отметить, почти выдохся... Остановился на доставке (модуль Commerce Shipping), тут тоже масса "вопросов". К рулесам подошел только теперь, думал они не нужны в этом коммерце... Как я понимаю, меня ожидают и еще новые впечатления... Буду оставаться на связи. Спасибо!
А они и не нужны, там просто нет событий которые связаны непосредственно с работой магазина. Остается только писать свой модуль который добавить эти события... Ну как сказал выше тогда уж проще маг с нуля...
К стати во всех демо магазинах д8+коммерц выставленных на странице коммерца сделано именно без "склада", не спроста
А что подразумевается под "складом", я что-то упускаю, это учет количества товаров или что?
Ну да, о чем мы тут трем, это называется склад (stock). То есть магазин отслеживает наличие товара на "складе", что бы не продать то, чего нету в наличии.
Я тут тру о том, что мелких косяков, которые не пойми как править, много. Но учет наличия товаров, это тоже важная функциональность, согласен.
И раз мы уже от души общаемся, не укажите ссылочку (или что подскажете) как настроить доставку (модуль Commerce Shipping). Я вроде все настроил (почитал, что нашел), но это не работает и выглядит "глючно" (например, селекты выбора способа доставки показываются вместе с продублированной билинговой информацией и стоимость заказа не увеличивается). Я все это кручу впервые, но как-то все неинтуитивно, на мой взгляд... Спасибо!
Для коммерца2 д8 не подскажу, я бросил эту затею задолго до подхода к shipping, как только понял что со "складом" пролет. Дальнейшее исследование д8+к2 просто не имеет смыла, так как одного этого уже более чем достаточно что бы не построить вменяемый магазин.
Итого. О Drupal 8 в целом хорошие впечатления, но рассчитывать на быструю и комфортную разработку не приходится. Очень много ошибок и нюансов. Коммерц еще более усложняет задачу. В общем, если вы не готовы по ноздри погрузиться в исходный код, то осилить это нет возможности (по моему конечно мнению).
А Яндекс.Кассу не рекомендую вовсе, как и весь Яндекс. Единственная компания, с которой я столкнулся за последние годы, которая может позволить просто игнорировать тикеты. Почти 3 месяца они уклоняются от решения проблем (все приходилось доказывать с большим трудом), а последние недели просто не отвечают на письма...