Торговля добавить в корзину форма комбинированные товары: как изменить продукт по умолчанию


Как я могу установить, например, mp3 в качестве первого элемента? Теперь он берет products (product reference) из узла отображения продукта и отображает его в порядке создания продукта.

В этом примере "CD" был создан до "MP3", но я хочу, чтобы всегда можно было отображать MP3 перед CD.

Я использую представление с полем "Добавить в корзину" и отмеченной опцией "Attempt to combine like products on the same line item in the cart.".

enter image description here

Решение в моем случае (спасибо Райану Шраме!):

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;
    }
}

}

Author: falc0, 2014-02-14

1 answers

Упомянутый вами флажок не имеет значения, если я правильно понял ваш запрос. Форма "Добавить в корзину" предполагает, что любой продукт, на который вы ссылаетесь первым, является продуктом по умолчанию при первом создании формы (т. Е. У него дельта значения поля ссылки на продукт равна 0).

 0
Author: Ryan Szrama, 2014-02-14 17:42:41