Добавление товара в корзину при добавлении другого товара

Главные вкладки

Аватар пользователя Кришпер Кришпер 10 апреля 2018 в 18:37

Мне нужно при добавлении товара добавлять в корзину ещё другой товар

Использую препроцессор
<?phpuc_cart_add_item?>

В нём код

<?php $item_entity entity_create('uc_cart_item', array(
      
'cart_id' => $cid
      
'nid' => 1200
      
'qty' => 1
      
//'data' => $data,
    
));?>

Работает, однако каждый раз добавляемый сверху товар создаётся как отдельная запись в таблице, то бишь вместо +1 к кол-ву товара в корзине появляется такой же с количеством 1 и даже нажатие на кнопку удаления не помогает. Фатальный малось вышел эксперимент.

Комментарии

Аватар пользователя Кришпер Кришпер 17 апреля 2018 в 19:07

Запоздало, но вот рабочее решение. us_add_cart даже с параметров отключения редиректа почему-то срабатывало дважды, а такой вариант всегда норм работает.

<?php
                $dataNode 
= Array( 'attributes' => Array (), 'shippable' => 0,  'type' => 'product',  'module' => 'uc_product' );
                
//$dataNode = Array( 'attributes' => Array ( '8' => 17 ), 'shippable' => 0,  'type' => 'product',  'module' => 'uc_product' );
                
$qtyNode $qty;
                      
                  
$efq = new EntityFieldQuery();
                  
$result $efq->entityCondition('entity_type''uc_cart_item')
                    ->
propertyCondition('cart_id'$cid)
                    ->
propertyCondition('nid'$nidNode)
                    ->
propertyCondition('data'serialize($dataNode))
                    ->
execute();

                  

// If the item isn't in the cart yet, add it.
                  
if (empty($result['uc_cart_item'])) {
                    
$item_entity entity_create('uc_cart_item', array(
                      
'cart_id' => $cid,
                      
'nid' => $nidNode,
                      
'qty' => $qtyNode,
                      
'data' => $dataNode,
                    ));
                    
entity_save('uc_cart_item'$item_entity);
                        echo 
666
                  }
                  else 
                  {
                    
$item_entity entity_load_single('uc_cart_item'current(array_keys($result['uc_cart_item'])));
                    
$qtyNode $item_entity->qty $qtyX;
                    
module_invoke($data['module'], 'uc_update_cart_item'$nidNode$dataNodemin($qtyNode999999), $cid);
                        echo 
55
                  };
?>