Как получить «пустые позиции» в коммерции, похожие на Ubercart?

8

В Ubercart есть небольшая функция для добавления «пустых позиций» в созданный администратором заказ. Это позволило администратору вручную ввести пользовательский заголовок для позиции и пользовательскую сумму. По сути, позволяет добавлять позиции, не проходя сначала процесс создания продукта, а затем прикрепляя его к заказу. Очень полезно для создания счетов для пользовательских услуг. Есть ли способ получить эту функцию в Drupal Commerce?

Вот как это выглядит и работает в Ubercart:

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Найджел Уотерс
источник

Ответы:

5

В Drupal Commerce мы приняли решение добавить зависимые от типа позиции обратные вызовы в API позиций. Позиция продукта будет работать иначе, чем позиция отгрузки ... и т. Д. В качестве побочного эффекта это означает, что не существует такой вещи, как «общая» позиция, точно так же, как не существует такой вещи, как узел без типа ,

Что должно произойти, если оно еще не существует, может быть сделан небольшой модуль contrib, который добавляет базовый тип позиции, чья «форма добавления позиции» на странице редактирования заказа позволяет вам указать всю информацию, необходимую для управления и отобразить эту позицию. Где это сломается - такие вещи, как правила ценообразования - должны ли эти позиции иметь налоги? Должны ли применяться другие скидки? Или отображать правила - они должны отображаться на страницах заказа клиента?

В ядре нет такой функции (как вы можете видеть, это был бы небольшой взнос, но сделать это было бы несложно), но если бы он был протестирован и доказал свою концепцию в contrib, я не вижу почему мы не могли рассмотреть это для включения в Commerce 2.x.

Райан Шрама
источник
Итак, как ваш модуль Commerce Customizable Product позволяет администратору устанавливать любые настраиваемые элементы, необходимые для продукта, когда они добавляют его в заказ, созданный администратором?
Найджел Уотерс
Я только что попытался сделать это, создав собственную позицию с помощью Commerce Customizable Product. Затем установите текстовое поле для пользовательского ввода (теоретически это может быть описание пользовательского сервиса). Затем создали общий пользовательский продукт. Однако представляется, что добавление продукта в созданный администратором заказ ссылается на сущность продукта, а не на отображение узла, поэтому администратор не может вводить текст в это поле. По сути, кажется, что если у вас есть настраиваемый продукт, то вы не можете иметь что-то вроде телефона в порядке и позволить администратору создать его. Это должно быть сделано через процесс добавления в корзину.
Найджел Уотерс
Мне кажется, что поле "Позиции" на объекте заказа должно быть ссылкой на узел, а не ссылкой на позицию с измененной формой добавления в корзину.
Найджел Уотерс
любой ответ на это?
Найджел Уотерс
Я не уверен, что ссылка на узел будет делать здесь - есть сущность позиции, и именно на это ссылаются. Настраиваемые продукты Commerce работают, наследуя обратные вызовы от основного типа элемента линейки продуктов. Это позволяет создавать новые типы позиций линейки продуктов в тех случаях, когда вам нужны разные типы позиций, чтобы содержать разные поля. Сам модуль не определяет ни одного из этих обратных вызовов или компонентов пользовательского интерфейса; он просто использует то, что находится в модуле Product Reference.
Райан Шрама
0

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

Drupal Commerce позволяет вам продавать настраиваемые продукты, которые требуют ввода клиента при добавлении в корзину. Варианты использования для этой функции включают в себя:

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

О чем вы думаете?

Finex
источник
Это то, что я предложил выше в своем комментарии к @Ryan Szrama, однако настраиваемая часть продукта не предоставляется заказу, созданному администратором.
Найджел Уотерс