Я знаю, что это было через год, поскольку это было затронуто, но поскольку я только что сделал то, что было запрошено, я подумал, что могу опубликовать свое решение, чтобы помочь другим.
Другие ответы будут работать, но только для простых продуктов, где не требуется дополнительный ввод (например, выбор параметров). При использовании getAddToCartUrl()
Magento сначала проверяет, требуется ли для продуктов выбирать какие-либо опции; если это так, то вместо этого он просто укажет URL-адрес страницы продукта.
Чтобы пропустить все эти проверки и напрямую получить URL-адрес для добавления в корзину, используйте вместо этого помощник Magento \ Checkout \ Helper \ Cart. Если вы находитесь в .phtml файл, то это можно использовать просто позвонив по телефону $this->helper
:
$cartHelper = $this->helper('Magento\Checkout\Helper\Cart');
Оттуда вы можете генерировать добавить в корзину URL через getAddUrl()
, гарантируя, что вы передать объект продукта в качестве параметра:
echo $cartHelper->getAddUrl($product)
для того, чтобы полноценно работать, вы должны иметь скрытое поле для ключа формы, как описано в других ответов, и если данный продукт имеет обязательные варианты на выбор (например, конфигурируемый продукт), то убедитесь, что вы также включили эти поля, иначе вы перенаправляетесь на страницу продукта, w с сообщением, информирующим пользователя о том, что параметры необходимы.
Он генерирует URL-адрес, но когда я нажимаю на эту ссылку, он переносит меня в КОРЗИНУ без элемента. (У вас нет товаров в корзине.) –
Я тоже буду искать soltion сейчас –
Вы нашли решение для этого? –