Здравствуйте уважаемые друпалеры.
Каким образом можна открыть ноду товара с конкретными атрибутами без использования модуля Commerce Product URLs (так чтобы url не менялся)?
Например с одного места сайта нужно попадать на красную футболку а с другого на синюю.
Схема стандартная, одна нода и несколько продуктов с различными атрибутами.
Комментарии
Если нет get, значит единственный критерий - "одно место сайта" откуда попадаем, в $_GLOBALS есть откуда попали.
Спасибо за идею, вечером попробую.
Одну половину задачи сделал с помощю js скрипта и плагина JQuery Session Plugin , получилось передать ID товара друпалу.
Далее делаю так:
* Implements hook_commerce_product_reference_default_delta_alter().
*/
function my_module_commerce_product_reference_default_delta_alter(&$delta, $products) {
if ($delta) {
if (isset($_REQUEST['new_pid'])) {
$pid = $_REQUEST['new_pid'];
if (isset($products[$pid])) {
$delta = $pid;
}
}
}
}
Но коректно сменить дефолтный товар не получается. Меняется только значение в виджете атрибута "Цвет", все остальные поля остаются из первого товара (цена, картинка ...)
Для полноты информации уточню что указанные поля прикреплены к сущности товара а не ноды.
Возможно я не тот хук использую или не правильно или может еще способ какой есть?
Уже несколько вечеров прогуглил. Буду признателен за любые идеи и советы.
Замотался и забыл написать найденое решение которое оказалось довольно простым.
Итак код в студю.
* Implements hook_commerce_product_reference_default_delta_alter().
*/
function my_module_commerce_product_reference_default_delta_alter(&$delta, &$products) {
if (isset($_REQUEST['new_pid'])) {
foreach ($products as $key => $product) {
if ($product->product_id == $_REQUEST['new_pid']) {
$delta = $key;
}
}
}
}