2015-08-19 3 views
0

Я создал новое поле в ps_cart_product с именем obs. Когда клиент добавляет продукт в корзину, и если продукт соответствует некоторым заранее определенным критериям, поле obs из ps_cart_product будет обновляться с дополнительной информацией.Получить значение базы данных из деталей заказа в Prestashop backoffice

В этот момент все работает отлично.

Теперь я пытаюсь получить значение поля obs из деталей заказа в backoffice без необходимости. Я напечатал файл smarty array $, но я не могу найти поле obs. Где я могу найти правильный запрос db, чтобы добавить пользовательское поле?

Спасибо за ваше время и сотрудничество.

ответ

1

Чтобы получить столбец «obs» из продуктов тележки, вам нужно будет отредактировать (или переопределить) метод Cart-> getProducts() в /classes/Cart.php.

Этот метод содержит SQL-запрос:

$sql->select('cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, cp.id_shop, pl.`name`, p.`is_virtual`, [...] 

Просто добавляющие "cp.obs" должен делать эту работу.

Вы также можете проверить getProducts() и getProductsDetail() в классе Order (/classes/order/Order.php).

+0

Отлично! Благодарю. Я редактировал /classes/Cart.php и добавил 'LEFT JOIN '._DB_PREFIX _.' Cart_product cp ON (cp.id_product = p.id_product AND ps.id_shop = od.id_shop)' для getProductsDetail. Теперь я могу использовать массив smarty с данными obs. Еще один вопрос. Вы знаете, где prestashop вставляет данные в таблицу ps_order_detail? Я хочу также добавить в эту таблицу настраиваемое поле. Большое спасибо за вашу помощь –

+1

Да, в /classes/PaymentModule.php, найдите «// Вставьте новый список подробных заказов с помощью корзины для текущего порядка» в метод validateOrder(). –

+0

Спасибо, Бруно. Ваша помощь была очень полезной. К сожалению, я до сих пор не могу найти часть запроса. –

Смежные вопросы