在哪里可以设置购买失败的目标步数?
Where can I set target step for failed purchase?
我正在使用不包含步骤 "payment" 的自定义结帐场景。但是,当购买步骤失败时,它会尝试重定向到付款。我在哪里可以改变这种行为?
谢谢
更新:
ChceckoutProcessScenario.php
class CheckoutProcessScenario implements ProcessScenarioInterface
{
public function build(ProcessBuilderInterface $builder)
{
$cart = $this->getCurrentCart();
$builder
->add('security', 'sylius_checkout_security')
->add('delivery', new Step\DeliveryStep())
->add('finalize', 'sylius_checkout_finalize')
->add('purchase', 'sylius_checkout_purchase')
;
$builder
->setDisplayRoute('sylius_checkout_display')
->setForwardRoute('sylius_checkout_forward')
->setRedirect('sylius_homepage')
->validate(function () use ($cart) {
return !$cart->isEmpty();
})
;
}
...
}
app/config/config.yml:
sylius.checkout.step.delivery.template: '@CoreBundle/Resources/views/Frontend/Checkout/Step/delivery.html.twig'
sylius.checkout_scenario.class: ZDG\CoreBundle\Checkout\CheckoutProcessScenario
然后是 checkoutStep,但这些只是更改的文件。
我查看了 state-machine.yml
,但它只定义了订单和付款状态,我不想修改。
如果您实现自定义 class 实现 ProcessScenarioInterface
还有可能影响重定向的状态机配置。
您将必须配置,每次订单状态更改后要执行的操作。
看看Sylius\CoreBundle\Resources\config\state-machine.yml
你也可以检查这个以便更好地理解https://github.com/Sylius/Sylius/wiki/Status
因此,解决方案不如预期:在购买步骤中触发了一个事件 (sylius.checkout.purchase.complete),其中有一个监听器根据付款状态返回响应。如果状态未完成,它会从容器中获取一个参数并重定向到提供的 url。此 url 在 sylius/sylius/src/Sylius/Bundle/CoreBundle/Resources/config/services.xml:324
中被硬编码
我正在使用不包含步骤 "payment" 的自定义结帐场景。但是,当购买步骤失败时,它会尝试重定向到付款。我在哪里可以改变这种行为? 谢谢
更新:
ChceckoutProcessScenario.php
class CheckoutProcessScenario implements ProcessScenarioInterface
{
public function build(ProcessBuilderInterface $builder)
{
$cart = $this->getCurrentCart();
$builder
->add('security', 'sylius_checkout_security')
->add('delivery', new Step\DeliveryStep())
->add('finalize', 'sylius_checkout_finalize')
->add('purchase', 'sylius_checkout_purchase')
;
$builder
->setDisplayRoute('sylius_checkout_display')
->setForwardRoute('sylius_checkout_forward')
->setRedirect('sylius_homepage')
->validate(function () use ($cart) {
return !$cart->isEmpty();
})
;
}
...
}
app/config/config.yml:
sylius.checkout.step.delivery.template: '@CoreBundle/Resources/views/Frontend/Checkout/Step/delivery.html.twig'
sylius.checkout_scenario.class: ZDG\CoreBundle\Checkout\CheckoutProcessScenario
然后是 checkoutStep,但这些只是更改的文件。
我查看了 state-machine.yml
,但它只定义了订单和付款状态,我不想修改。
如果您实现自定义 class 实现 ProcessScenarioInterface
还有可能影响重定向的状态机配置。 您将必须配置,每次订单状态更改后要执行的操作。
看看Sylius\CoreBundle\Resources\config\state-machine.yml
你也可以检查这个以便更好地理解https://github.com/Sylius/Sylius/wiki/Status
因此,解决方案不如预期:在购买步骤中触发了一个事件 (sylius.checkout.purchase.complete),其中有一个监听器根据付款状态返回响应。如果状态未完成,它会从容器中获取一个参数并重定向到提供的 url。此 url 在 sylius/sylius/src/Sylius/Bundle/CoreBundle/Resources/config/services.xml:324