Я знаю, что на этот расплывчатый вопрос нельзя ответить. Однако я мог столкнуться с подобной проблемой здесь, вот что я узнал:
- ключ формы не должен отличаться в каждом запросе
- ключ form_key согласован на протяжении всей сессии
- другой сеанс должен создать другой ключ form_key (попробуйте другой браузер)
- PAGE КЭШ иногда не мешает с этим
- у меня это привело к тому, что виджет показал одинаковый (кэшированный) ключ формы для всех сессий.
- я не понимаю эту "особенность"
Основываясь на коротком примере, я переопределил действие проверки addtocart, как это в новом модуле:
Приложение / код / местные / Имя / Checkout / Контроллеры / CartController.php
<?php
require_once(Mage::getModuleDir('controllers','Mage_Checkout').DS.'CartController.php');
class Name_Checkout_CartController extends Mage_Checkout_CartController
{
public function addAction()
{
$request = $this->getRequest();
$formKey = Mage::getSingleton('core/session')->getFormKey();
$request->setParam('form_key', $formKey);
return parent::addAction();
}
}
Приложение / код / местные / Имя / Checkout / и т.д. / config.xml
<?xml version="1.0"?>
<config>
<modules>
<Name_Checkout>
<version>0.1.0</version>
</Name_Checkout>
</modules>
<frontend>
<routers>
<checkout>
<args>
<modules>
<name_checkout before="Mage_Checkout">Name_Checkout</name_checkout>
</modules>
</args>
</checkout>>
</routers>
</frontend>
</config>
приложение / и т.д. / модули / Name_Checkout.xml
<?xml version="1.0"?>
<config>
<modules>
<Name_Checkout>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Checkout/>
</depends>
</Name_Checkout>
</modules>
</config>
Я надеюсь, что этого будет достаточно для всех, чтобы воссоздать это