[Решен] Программное удаление товара из корзины

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

Аватар пользователя sotkom sotkom 1 марта 2016 в 8:22

Drupal 7, Ubercart 3
Делаю заказ одной страницей.
На странице cart/checkout добавил в таблицу товаров заказа cart-review добавил дополнительные колонки к товарам изменения количества и удаления.
Пока разбираюсь с удалением.
Ajax-сом отправляю id товара в заказе, id заказа, nid товара в файл-обработчик php.
Из заказа товар удаляется нормально функцией uc_order_product_delete(order_product_id). Думаю что с изменение количества в заказе тоже проблем не должно быть...
Но вот с удалением этого товара из заказа возникли проблемы!!!
Удаляю функцией uc_cart_remove_item($nid), но товар не удаляется...
В файле-обработчике подключен ... drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
Да, использую ajax корзину uc_ajax_cart.
Но пробовал и через ее class UcAjaxCart::removeItemFromCart( $nid, $data ) - тоже безрезультатно... Она тоже использует стандартную функцию uc_cart_remove_item.
Подскажите, пожалуйста, как удалить товар из корзины?

Комментарии

Аватар пользователя sotkom sotkom 1 марта 2016 в 11:31

там тоже через эти функции... в конечном итоге везде entity_delete_multiple('uc_cart_item', array_keys($result['uc_cart_item']));
видимо она и не работает в моем файле-обработчике... вот только почему?
bootstrap же должен подключить drupal/includes/entity.inc?

Аватар пользователя sotkom sotkom 1 марта 2016 в 12:47

вопрос решился!!!
в файле-обработчике вставил тело функции uc_cart_remove_item немного измененное:
$cart_id = uc_cart_get_id();
$nid = $_POST['nid'];
$efq = new EntityFieldQuery();
$result = $efq->entityCondition('entity_type', 'uc_cart_item')
->propertyCondition('cart_id', $cart_id)
->propertyCondition('nid', $nid)
//->propertyCondition('data', serialize($data))
->execute();
if (!empty($result['uc_cart_item'])) {
entity_delete_multiple('uc_cart_item', array_keys($result['uc_cart_item']));
}

товар удаляется из корзины....