我在哪里可以设置失败购买的目标步骤?

时间:2015-10-19 09:15:49

标签: sylius

我使用的自定义结帐方案不包含步骤"付款"。但是,当购买步骤失败时,它会尝试重定向到付款。我在哪里可以改变这种行为? 感谢。

更新

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();
        })
    ;
  }
  ...
}

应用程序/配置/ 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,但它只定义了订单和付款状态,我不想修改。

2 个答案:

答案 0 :(得分:1)

因此,解决方案不如预期:在购买步骤期间,触发事件(sylius.checkout.purchase.complete),其中列表器根据付款状态返回响应。如果状态未完成,则从容器中获取参数并重定向到提供的URL。此网址在sylius/sylius/src/Sylius/Bundle/CoreBundle/Resources/config/services.xml:324

中进行了硬编码

答案 1 :(得分:0)

如果您实现了实现ProcessScenarioInterface

的自定义类

还有可能影响重定向的状态机配置。 您必须配置,在每次状态更改订单后要执行的操作。

查看Sylius\CoreBundle\Resources\config\state-machine.yml

您还可以查看此内容,以便更好地了解https://github.com/Sylius/Sylius/wiki/Status