Торговля добавить в корзину форма комбинированные товары: как изменить продукт по умолчанию
Как я могу установить, например, mp3 в качестве первого элемента?
Теперь он берет products (product reference)
из узла отображения продукта и отображает его в порядке создания продукта.
В этом примере "CD" был создан до "MP3", но я хочу, чтобы всегда можно было отображать MP3 перед CD.
Я использую представление с полем "Добавить в корзину" и отмеченной опцией "Attempt to combine like products on the same line item in the cart."
.
Решение в моем случае (спасибо Райану Шраме!):
function mymodule_commerce_product_reference_default_delta_alter(&$delta, $products) {
foreach ($products as $key => $product) {
if ($product->type == 'audio' && $product->field_audio_medium[LANGUAGE_NONE][0]['value'] == 'mp3') {
$delta = $key;
} elseif ($product->type == 'video' && $product->field_video_medium[LANGUAGE_NONE][0]['value'] == 'mp4') {
$delta = $key;
}
}
}
1 answers
Упомянутый вами флажок не имеет значения, если я правильно понял ваш запрос. Форма "Добавить в корзину" предполагает, что любой продукт, на который вы ссылаетесь первым, является продуктом по умолчанию при первом создании формы (т. Е. У него дельта значения поля ссылки на продукт равна 0).