微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OroCommerce:按某些条件禁用订单编辑

如何解决OroCommerce:按某些条件禁用订单编辑

是否可以在满足某些条件(例如订单状态已发货,但可能是 smtl 其他)时禁用订单编辑?

或者禁用 LineItems 编辑但允许编辑订单信息?

尝试将此行添加到我当前的活动订单工作流程中,但一无所获:

        entity_restrictions:
            test:
                attribute: entity
                field: customer_notes

尝试将此添加到工作流程步骤之一,但又没有

            entity_acl:
                update: false
                delete: false

entity_restrictionsentity_acl 没有在 oro 包的任何工作流.yml 中使用,那么该功能真的实现了吗?

解决方法

通过内置功能,您可以使用带有实体限制的工作流引擎,根据条件将某些表单字段设为只读:https://doc.oroinc.com/backend/entities-data-management/workflows/configuration-reference/#entity-restrictions-configuration

或者创建一个访问规则,在满足条件时隐藏编辑按钮并返回编辑页面的403代码:https://doc.oroinc.com/backend/security/access-rules/#backend-security-bundle-access-rules

,

虽然我没有找到如何通过工作流禁用订单编辑,就像之前建议的那样,这里是如何通过操作配置禁用它的工作方式:

#MyBundle/Resources/config/oro/actions.yml
operations:
  my_oro_order_edit
    extends: UPDATE                         # this is for keeping all other properties same as in default
    substitute_operation: UPDATE            # replace UPDATE operation with current one
    entities: ['Oro\Bundle\OrderBundle\Entity\Order'] # replacement will occur only if this operation will be matched by entity
    for_all_entities: false
    replace:
      - preconditions
    preconditions:
      '@equal': [$internalStatus.id,'open']

这将使用 my_oro_order_edit 替换订单的 UPDATE 操作,其中允许 UPDATE 的条件已更改 - 因此订单查看页面和订单网格中的编辑按钮将仅针对“未结”订单出现。然而,这只影响按钮,它仍然可以通过直接链接打开订单编辑,这应该使用访问规则来禁止

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。