Как передать содержимое корзины своему php скрипту(в pdf)

Хочу сделать печать корзины.
Надо передать содержимое корзины в свой скрипт.
т.е. меняем количество, удаляем/добавляем, применяем скидки-купоны и т.д. и потом передаем в свой скрипт по кнопке.
не могу выловить как передать если изменилось количество товара, применялся купон и т.д.
ссылка с кнопки “оформить” на /checkout/ не просветляет (((

подкиньте идей…

Не совсем понял задачу.

Вам в js нужно передать содержимое корзины или в php?

в php

Используя в хуке значения переменных в массивах
{$cart_products} и {$cart} можно узнать значения цен, артикулов, количества на момент создания корзины.
НО! если покупатель изменил количество товара и/или применил скидочный купон то эти изменения и не могу выловить :((

Посмотрел две таблицы user_session_products и sessions .
Есть там поля extra и data
тип blob - внутри текст вида
auth|a:15:{s:4:"area";s:1:"A";s:7:"user_id";s:1:"1";s:9:"user_type";s:1:"A";s:10:"tax_exempt";s:1:"N";s:10:"last_login";s:10:"1643557859";s:9:"order_ids";a:0:{}s:25:"password_change_timestamp";s:10:"1643191518";s:7:"is_root";s:1:"Y";s:13:"usergroup_ids";a:3:{i:0;i:0;i:1;i:2;i:2;i:1;}s:11:"act_as_user";b:1;s:10:"this_login";i:1643557859;s:7:"referer";s:70:"http://-----/cscart/admin.php?dispatch=gift_certificates.manage";s:2:"ip";s:12:"192.162.0.11";s:13:"last_activity";i:1643565948;s:6:"points";i:0;}last_status|s:0:"";store_access_key|s:0:"";cart|a:39:{s:8:"products";a:3:{i:1241945380;a:41:{s:7:"user_id";s:1:"1";s:9:"timestamp";s:10:"1643546818";s:4:"type";s:1:"C";s:9:"user_type";s:1:"R";s:7:"item_id";s:10:"1241945380";s:9:"item_type";s:1:"P";s:10:"product_id";i:115;s:6:"amount";i:15;s:5:"price";d:183800;s:10:"session_id";s:36:"9a3e3eb28860577ad522521199b7abb2-1-C";s:10:"ip_address";s:8:"c0a2000b";s:8:"order_id";s:1:"0";s:13:"storefront_id";s:1:"1";s:10:"company_id";s:1:"1";s:12:"product_code";s:10:"N0115R3FDX";s:7:"product";s:39:"Evolve SST.2 X9 Complete Bike 10SPD '12";s:15:"product_options";a:0:{}s:12:"stored_price";s:1:"N";s:9:"main_pair";a:7:{s:7:"pair_id";s:3:"464";s:8:"image_id";s:1:"0";s:11:"detailed_id";s:3:"520";s:8:"position";s:1:"0";s:9:"object_id";s:3:"115";s:11:"object_type";s:7:"product";s:8:"detailed";a:12:{s:9:"object_id";s:3:"115";s:11:"object_type";s:7:"product";s:4:"type";s:1:"M";s:10:"image_path";s:58:"http:/

вроде бы из этих полей можно взять актуальные данные - но как их распарсить правильно…

?
вроде рабочий совет то был :wink:

кстати, спасибо )

unserialize - решает ))

содержимое корзины можно взять из БД
таблицы user_session_products и sessions
поля extra и data преобразовать в массив unserialize()
(на рабочем магазине почему то теряются индексы, хотя они есть. На тестовом всё норм.)

а можно взять содержимое корзины из $cart = Tygh::$app[‘session’][‘cart’]; (спасибо за подсказку доброму человеку :wink:

с генерацией пдф файлов в рамках платформы не получилось разобраться ((
Взял стороннюю библиотеку.
Содержимое корзины в пдф генерится с активными ссылками на страницы товара.

работает)доволен)тестируем)

1 лайк

Добрый день.

Вам именно содержимое корзины нужно передавать?

Насколько мне известно, в cs-cart есть стандартная печать заказа в pdf, ссылки являются кликабельными.
Ниже скриншот с demo.cs-cart.ru

именно содержимое корзины ДО оформления заказа

про эту фичу знаю с неё и начинал )) тут заказ оформленный уже, а нужно порой просто ценовое предложение распечатать…

Спасибо за пояснение)

Подскажите, пожалуйста, предложение печатается по нажатию на кнопку? Разместили ее на странице корзины для всех групп пользователей?
Для менеджеров при отсутствии CRM весьма полезно.

да,

  • по нажатию предлагает сохранить/открыть pdf
  • для всех кто добирается в корзину ))
1 лайк

Хорошее решение.

Но все равно чуток не понял как его реализовать)))

Если не сложно, можете написать как это сделать ?

1 лайк

сделал модуль:
воспользовался хуком checkout/cart_content_bottom_left_buttons.override (добавил кнопку)
написал контроллер frontend/cart_print.php
– в php

  • подключил библиотеку dompdf
  • из массива Tygh::$app[‘session’][‘cart’] получил все данные
  • сформировал html страницу (прям внутри скрипта всё)
  • отдал html в dompdf
  • получил файл
  • отдал файл в броузер через header()
  • удалил файл.

зыЖ более опытные товарщи меня поправят и наставят на путь истинный ))) потому как выглядит всё “на коленночно” …

поскольку файл удаляется, и чтоб была инфа у администратора - отправляется е-мыл на почту админа(благо html корзины уже есть)