Magento — добавление товара в корзину с помощью строки запроса

Я знаю, что продукт можно добавить через строку запроса в Magento.

Шаблон:

/path/to/app/checkout/cart/add?product=[id]&qty=[qty]

И если у меня есть необходимые пользовательские параметры:

/path/to/magento/checkout/cart/add?product=$id&qty=$qty&options[$id]=$value

Если пользовательская опция, например, «field» или «drop_down», это просто;

Мой вопрос: как добавить продукт через строку запроса, если один из пользовательских параметров является типом файла?

Я хотел бы добавить файл в качестве пользовательского значения параметра, который уже загружен на сервер с помощью AJAX (до добавления продукта в корзину).

Можно ли это сделать? И как?

Спасибо за любое решение.


person enloz    schedule 28.10.2011    source источник


Ответы (2)


Файлы должны загружаться с помощью запросов POST, а не GET (строка запроса). Вы не можете использовать встроенный URL-адрес добавления в корзину таким образом, не изменяя контроллер, что не является хорошей идеей. Вместо этого, возможно, создайте свой собственный контроллер добавления в корзину, скопируйте код из основного действия и настройте его, чтобы он принимал имена файлов в строке запроса.

Однако у меня такое ощущение, что вы просто пытаетесь добавить товары в корзину, не загружая новую страницу. Что вы пытаетесь достичь?

person Max    schedule 30.10.2011
comment
Я просто пытаюсь добавить загрузку изображения ajax. Это все. Думаю, предстоит грязная работа. Я не нашел ярлыка/решения. Спасибо, в любом случае. - person enloz; 06.11.2011

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

person John Watson    schedule 28.10.2011
comment
-1 за решение. Я думал об этом, но это должен быть файл. Если это файл, то я автоматически получаю ссылку для скачивания в корзине, при оформлении заказа, в бэкэнде и т. д. Что мне также нужно. Ваше решение требует дополнительной работы и настройки. - person enloz; 28.10.2011
comment
Возможно, я неправильно понял ваш вопрос, но если у вас есть ссылка на файл, а также фактический файл на вашем сервере, вы можете сделать все эти вещи (скачать, связать и т. д. при оформлении заказа, в корзине и бэкэнд). - person John Watson; 28.10.2011