Created
May 9, 2017 08:48
-
-
Save dnahrebecki/a49e0a46bf29f58cc13406b91f2f182d to your computer and use it in GitHub Desktop.
[OroCommerce] Checkout without shipping
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {% block _checkout_form_fields_widget -%} | |
| {% from 'OroAddressBundle::macros.html.twig' import renderAddress %} | |
| {% if workflowItem.data.get('disallow_billing_address_edit') %} | |
| {% set billingAddress = checkout.billingAddress %} | |
| <fieldset class="grid__row grid__row--offset-none"> | |
| <div class="grid__column grid__column--offset-y grid__column--6"> | |
| {{ renderAddress(checkout.billingAddress) }} | |
| </div> | |
| </fieldset> | |
| {% else %} | |
| {% import 'OroCheckoutBundle:layouts/default/oro_checkout_frontend_checkout/templates:address.html.twig' as address %} | |
| {% set hasCustomAddress = false %} | |
| {% if form.billing_address.id.vars.value %} | |
| {% set hasCustomAddress = not form.billing_address.vars.value.customerUserAddress and not form.billing_address.vars.value.customerAddress %} | |
| {% endif %} | |
| {% set billingAddress = form.billing_address.vars.value %} | |
| <div data-page-component-module="oroui/js/app/components/view-component" | |
| data-page-component-options="{{ { | |
| view: 'orocheckout/js/app/views/address-view', | |
| selectors: { | |
| address: '#' ~ form.billing_address.customerAddress.vars.id, | |
| region: '#' ~ form.billing_address.region.vars.id, | |
| fieldsContainer: '#checkout-address-fields-container' | |
| } | |
| }|json_encode }}"> | |
| <div class="grid"> | |
| <div class="grid__row grid__row--offset-none"> | |
| <div class="grid__column grid__column--6"> | |
| {{ form_row(form.billing_address.customerAddress) }} | |
| </div> | |
| </div> | |
| </div> | |
| {{ address.address_form(form.billing_address, form.save_billing_address, hasCustomAddress) }} | |
| </div> | |
| {% endif %} | |
| {% set hideShipping = false %} | |
| {% if billingAddress %} | |
| {% set typedAddress = billingAddress.customerAddress %} | |
| {% if typedAddress is empty %} | |
| {% set typedAddress = billingAddress.customerUserAddress %} | |
| {% endif %} | |
| {% set hideShipping = typedAddress is not empty and not typedAddress.hasTypeWithName('shipping') %} | |
| {% endif %} | |
| {% if form.state_token is defined %} | |
| {{ form_row(form.state_token) }} | |
| {% endif %} | |
| {%- endblock %} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| workflows: | |
| b2b_flow_no_shipping_checkout: | |
| entity: Oro\Bundle\CheckoutBundle\Entity\Checkout | |
| entity_attribute: checkout | |
| steps_display_ordered: true | |
| defaults: | |
| active: true | |
| exclusive_record_groups: | |
| - b2b_checkout_flow | |
| priority: 150 | |
| applications: ['commerce'] | |
| attributes: | |
| billing_address: | |
| property_path: checkout.billingAddress | |
| save_billing_address: | |
| property_path: checkout.saveBillingAddress | |
| po_number: | |
| property_path: checkout.poNumber | |
| ship_until: | |
| property_path: checkout.shipUntil | |
| customer_notes: | |
| property_path: checkout.customerNotes | |
| payment_method: | |
| property_path: checkout.paymentMethod | |
| billing_address_has_shipping: | |
| type: boolean | |
| allow_manual_source_remove: | |
| type: boolean | |
| disallow_billing_address_edit: | |
| type: boolean | |
| disallow_shipping_address_edit: | |
| type: boolean | |
| disallow_shipping_method_edit: | |
| type: boolean | |
| remove_source: | |
| type: boolean | |
| auto_remove_source: | |
| type: boolean | |
| source_remove_label: | |
| type: string | |
| edit_order_link: | |
| type: string | |
| payment_in_progress: | |
| type: bool | |
| payment_validate: | |
| type: bool | |
| payment_save_for_later: | |
| type: bool | |
| state_token: | |
| type: string | |
| internal_state_token: | |
| type: string | |
| order: | |
| type: entity | |
| options: | |
| class: Oro\Bundle\OrderBundle\Entity\Order | |
| steps: | |
| enter_billing_address: | |
| order: 10 | |
| allowed_transitions: | |
| - continue_to_payment | |
| enter_payment: | |
| order: 40 | |
| allowed_transitions: | |
| - payment_error | |
| - continue_to_order_review | |
| - back_to_billing_address | |
| order_review: | |
| order: 50 | |
| allowed_transitions: | |
| - place_order | |
| - verify_payment | |
| - finish_checkout | |
| - payment_error | |
| - back_to_billing_address | |
| - back_to_payment | |
| order_created: | |
| order: 60 | |
| is_final: true | |
| transitions: | |
| __start__: | |
| is_start: true | |
| is_hidden: true | |
| step_to: enter_billing_address | |
| transition_definition: __start___definition | |
| start_from_shoppinglist: | |
| is_start: true | |
| step_to: enter_billing_address | |
| is_unavailable_hidden: true | |
| transition_definition: start_from_shoppinglist_definition | |
| frontend_options: | |
| icon: fa-briefcase | |
| init_routes: | |
| - oro_shopping_list_frontend_view | |
| acl_resource: [CHECKOUT_CREATE, $.result.shoppingList] | |
| start_from_quickorderform: | |
| is_start: true | |
| step_to: enter_billing_address | |
| is_unavailable_hidden: true | |
| transition_definition: start_from_quickorderform_definition | |
| frontend_options: | |
| icon: fa-briefcase | |
| class: 'btn--action' | |
| data: | |
| component_name: oro_shopping_list_to_checkout_quick_add_processor | |
| page-component-module: oroproduct/js/app/components/quick-add-form-button-component | |
| page-component-options: | |
| component_name: '[name$="[component]"]' | |
| init_routes: | |
| - oro_product_frontend_quick_add | |
| - oro_product_frontend_quick_add_copy_paste | |
| - oro_product_frontend_quick_add_import | |
| acl_resource: [CREATE, entity:commerce@Oro\Bundle\CheckoutBundle\Entity\Checkout] | |
| continue_to_payment: | |
| step_to: enter_payment | |
| transition_definition: continue_to_payment_definition | |
| frontend_options: | |
| is_checkout_continue: true | |
| is_checkout_show_errors: true | |
| page_component_module: 'orocheckout/js/app/components/shipping-transition-button-component' | |
| form_options: | |
| form_init: | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.initCheckoutState | |
| attribute_fields: | |
| billing_address: | |
| form_type: oro_checkout_address | |
| options: | |
| object: $checkout | |
| isEditEnabled: true | |
| addressType: 'billing' | |
| required: true | |
| translation_domain: messages | |
| constraints: | |
| - Valid: ~ | |
| - NotBlank: ~ | |
| - Oro\Bundle\OrderBundle\Validator\Constraints\OrderAddress: | |
| validationGroups: ['Checkout'] | |
| disabled: $disallow_billing_address_edit | |
| save_billing_address: | |
| options: | |
| state_token: | |
| form_type: hidden | |
| options: | |
| data: $internal_state_token | |
| continue_to_order_review: | |
| step_to: order_review | |
| transition_definition: continue_to_order_review_definition | |
| frontend_options: | |
| is_checkout_continue: true | |
| is_checkout_show_errors: true | |
| page_component_module: 'orocheckout/js/app/components/payment-transition-button-component' | |
| form_options: | |
| form_init: | |
| - '@assign_value': [$payment_validate, true] | |
| - '@call_service_method': | |
| service: oro_payment.provider.payment_transaction | |
| method: getActiveValidatePaymentTransaction | |
| method_parameters: [$payment_method] | |
| attribute: $.result.validatePaymentTransaction | |
| - '@assign_value': | |
| conditions: | |
| '@not_empty': [$.result.validatePaymentTransaction] | |
| parameters: [$payment_validate, false] | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.initCheckoutState | |
| attribute_fields: | |
| payment_method: ~ | |
| payment_validate: | |
| form_type: checkbox | |
| payment_save_for_later: | |
| form_type: checkbox | |
| state_token: | |
| form_type: hidden | |
| options: | |
| data: $internal_state_token | |
| back_to_billing_address: | |
| step_to: enter_billing_address | |
| transition_definition: clear_payment_method_and_recalculate_state_definition | |
| is_unavailable_hidden: true | |
| frontend_options: | |
| is_checkout_back: true | |
| back_to_payment: | |
| step_to: enter_payment | |
| transition_definition: recalculate_state_definition | |
| is_unavailable_hidden: true | |
| frontend_options: | |
| is_checkout_back: true | |
| verify_payment: | |
| step_to: enter_payment | |
| transition_definition: verify_payment_definition | |
| is_hidden: true | |
| frontend_options: | |
| is_checkout_verify: true | |
| place_order: | |
| step_to: order_review | |
| transition_definition: place_order_definition | |
| display_type: page | |
| frontend_options: | |
| is_checkout_continue: true | |
| is_checkout_show_errors: true | |
| form_options: | |
| form_init: | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.initCheckoutState | |
| attribute_fields: | |
| remove_source: ~ | |
| po_number: ~ | |
| ship_until: ~ | |
| customer_notes: | |
| form_type: textarea | |
| state_token: | |
| form_type: hidden | |
| options: | |
| data: $internal_state_token | |
| finish_checkout: | |
| step_to: order_created | |
| transition_definition: finish_checkout_definition | |
| is_hidden: true | |
| payment_error: | |
| step_to: enter_payment | |
| transition_definition: unblock_and_recalculate_definition | |
| is_hidden: true | |
| transition_definitions: | |
| start_from_quickorderform_definition: | |
| preactions: | |
| - '@call_service_method': | |
| attribute: $.result.isAllowed | |
| service: oro_shopping_list.processor.quick_add_to_checkout | |
| method: isAllowed | |
| preconditions: | |
| '@and': | |
| - '@not_empty': $init_context | |
| - '@equal': [true, $.result.isAllowed] | |
| start_from_shoppinglist_definition: | |
| preactions: | |
| - '@find_entity': | |
| conditions: | |
| '@not_empty': $init_context | |
| parameters: | |
| class: $init_context.entityClass | |
| identifier: $init_context.entityId | |
| attribute: $.result.shoppingList | |
| preconditions: | |
| '@has_elements': $.result.shoppingList.lineItems | |
| actions: | |
| - '@run_action_group': | |
| action_group: start_shoppinglist_checkout | |
| parameters_mapping: | |
| shoppingList: $.result.shoppingList | |
| showErrors: true | |
| results: | |
| data.checkout: $.checkout | |
| result.redirectUrl: $.redirectUrl | |
| __start___definition: | |
| actions: | |
| - '@assign_value': [$payment_save_for_later, true] | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.startCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.startCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] | |
| back_to_billing_address_definition: | |
| preconditions: | |
| '@equal': [$checkout_finished, false] | |
| actions: | |
| - '@assign_value': [$billing_address_has_shipping, true] | |
| - '@assign_value': [$payment_method, null] | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] | |
| continue_to_payment_definition: | |
| preactions: | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.currentCheckoutState | |
| - '@get_checkout_state': | |
| entity: $checkout | |
| token: $state_token | |
| attribute: $.result.tokenCheckoutState | |
| - '@tree': | |
| conditions: | |
| '@not': | |
| - '@check_checkout_states': | |
| entity: $checkout | |
| state1: $.result.currentCheckoutState | |
| state2: $.result.tokenCheckoutState | |
| actions: | |
| - '@assign_value': [$.result.savedCheckoutState, $.result.tokenCheckoutState] | |
| - '@delete_checkout_state': | |
| entity: $checkout | |
| token: $state_token | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.currentCheckoutState | |
| token: $state_token | |
| - '@call_service_method': | |
| service: oro_checkout.factory.shipping_context_factory | |
| method: create | |
| method_parameters: [$checkout] | |
| attribute: $.result.shippingContext | |
| preconditions: | |
| '@and': | |
| - '@quote_acceptable': [$checkout.sourceEntity, true] | |
| - '@order_line_item_has_count': | |
| message: oro.checkout.workflow.condition.order_line_item_has_count.message | |
| parameters: | |
| entity: $checkout | |
| - '@checkout_has_applicable_shipping_methods': | |
| message: oro.checkout.workflow.condition.shipping_method_is_not_available.message | |
| checkout: $checkout | |
| conditions: | |
| '@and': | |
| - '@or': | |
| - '@empty': $.result.savedCheckoutState | |
| - '@check_checkout_states': | |
| message: oro.checkout.workflow.condition.content_of_order_was_changed.message | |
| parameters: | |
| entity: $checkout | |
| state1: $.result.initCheckoutState | |
| state2: $.result.savedCheckoutState | |
| actions: | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] | |
| continue_to_order_review_definition: | |
| preactions: | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.currentCheckoutState | |
| - '@get_checkout_state': | |
| entity: $checkout | |
| token: $state_token | |
| attribute: $.result.tokenCheckoutState | |
| - '@run_action_group': | |
| action_group: oro_update_shipping_price | |
| parameters_mapping: | |
| checkout: $checkout | |
| - '@tree': | |
| conditions: | |
| '@not': | |
| - '@check_checkout_states': | |
| entity: $checkout | |
| state1: $.result.currentCheckoutState | |
| state2: $.result.tokenCheckoutState | |
| actions: | |
| - '@assign_value': [$.result.savedCheckoutState, $.result.tokenCheckoutState] | |
| - '@delete_checkout_state': | |
| entity: $checkout | |
| token: $state_token | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.currentCheckoutState | |
| token: $state_token | |
| - '@call_service_method': | |
| service: oro_checkout.factory.payment_context_factory | |
| method: create | |
| method_parameters: [$checkout] | |
| attribute: $.result.paymentContext | |
| preconditions: | |
| '@and': | |
| - '@equal': [$checkout_finished, false] | |
| - '@quote_acceptable': [$checkout.sourceEntity, true] | |
| - '@order_line_item_has_count': | |
| message: oro.checkout.workflow.condition.order_line_item_has_count.message | |
| parameters: | |
| entity: $checkout | |
| - '@checkout_has_applicable_shipping_methods': | |
| message: oro.checkout.workflow.condition.shipping_method_is_not_available.message | |
| checkout: $checkout | |
| - '@has_applicable_payment_methods': | |
| message: oro.checkout.workflow.condition.payment_method_is_not_applicable.message | |
| context: $.result.paymentContext | |
| conditions: | |
| '@and': | |
| - '@or': | |
| - '@empty': $.result.savedCheckoutState | |
| - '@check_checkout_states': | |
| message: oro.checkout.workflow.condition.content_of_order_was_changed.message | |
| parameters: | |
| entity: $checkout | |
| state1: $.result.initCheckoutState | |
| state2: $.result.savedCheckoutState | |
| - '@not_empty': | |
| message: Payment method was not selected | |
| parameters: $checkout.paymentMethod | |
| - '@payment_method_applicable': | |
| message: oro.checkout.workflow.condition.payment_method_is_not_applicable.message | |
| payment_method: $checkout.paymentMethod | |
| context: $.result.paymentContext | |
| - '@check_request': | |
| message: Invalid request | |
| parameters: | |
| is_ajax: true | |
| expected_key: _wid | |
| expected_value: ajax_checkout | |
| actions: | |
| - '@tree': | |
| conditions: | |
| '@equal': [$payment_validate, true] | |
| actions: | |
| - '@assign_constant_value': [$.result.validateAction, Oro\Bundle\PaymentBundle\Method\PaymentMethodInterface::VALIDATE] | |
| - '@assign_url': | |
| attribute: $.result.successUrl | |
| route: oro_checkout_frontend_checkout | |
| route_parameters: | |
| id: $checkout.id | |
| - '@assign_url': | |
| attribute: $.result.failureUrl | |
| route: oro_checkout_frontend_checkout | |
| route_parameters: | |
| id: $checkout.id | |
| transition: 'payment_error' | |
| - '@payment_validate': | |
| conditions: | |
| '@payment_method_supports': | |
| payment_method: $checkout.paymentMethod | |
| action: $.result.validateAction | |
| attribute: $.result.responseData | |
| object: $checkout | |
| paymentMethod: $checkout.paymentMethod | |
| transactionOptions: | |
| saveForLaterUse: $payment_save_for_later | |
| successUrl: $.result.successUrl | |
| failureUrl: $.result.failureUrl | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] | |
| verify_payment_definition: | |
| preconditions: | |
| '@and': | |
| - '@equal': [$checkout_finished, false] | |
| - '@order_line_item_has_count': | |
| message: oro.checkout.workflow.condition.order_line_item_has_count.message | |
| parameters: | |
| entity: $checkout | |
| - '@require_payment_redirect': | |
| payment_method: $payment_method | |
| - '@or': | |
| - '@not': | |
| - '@check_request': | |
| is_ajax: true | |
| expected_key: _wid | |
| expected_value: ajax_checkout | |
| - '@not': | |
| - '@check_request': | |
| is_ajax: true | |
| expected_key: transition | |
| expected_value: continue_to_order_review | |
| actions: | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] | |
| place_order_definition: | |
| preactions: | |
| - '@flash_message': | |
| conditions: | |
| '@and': | |
| - '@equal': [$payment_in_progress, true] | |
| - '@equal': [$checkout.completed, false] | |
| message: oro.checkout.workflow.condition.payment_has_not_been_processed.message | |
| type: 'warning' | |
| - '@tree': | |
| conditions: | |
| '@not_empty': [$.id] | |
| actions: | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.currentCheckoutState | |
| - '@get_checkout_state': | |
| entity: $checkout | |
| token: $state_token | |
| attribute: $.result.tokenCheckoutState | |
| - '@tree': | |
| conditions: | |
| '@not': | |
| - '@check_checkout_states': | |
| entity: $checkout | |
| state1: $.result.currentCheckoutState | |
| state2: $.result.tokenCheckoutState | |
| actions: | |
| - '@assign_value': [$.result.savedCheckoutState, $.result.tokenCheckoutState] | |
| - '@delete_checkout_state': | |
| entity: $checkout | |
| token: $state_token | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.currentCheckoutState | |
| token: $state_token | |
| - '@call_service_method': | |
| service: oro_checkout.factory.payment_context_factory | |
| method: create | |
| method_parameters: [$checkout] | |
| attribute: $.result.paymentContext | |
| preconditions: | |
| '@and': | |
| - '@not_empty': $.result.paymentContext | |
| - '@quote_acceptable': [$checkout.sourceEntity, true] | |
| - '@payment_method_applicable': | |
| message: oro.checkout.workflow.condition.payment_method_is_not_applicable.message | |
| payment_method: $checkout.paymentMethod | |
| context: $.result.paymentContext | |
| conditions: | |
| '@and': | |
| - '@extendable': | |
| message: 'oro.checkout.workflow.b2b_flow_checkout.transition.place_order.condition.extendable.message' | |
| events: ['extendable_condition.before_order_create'] | |
| - '@or': | |
| - '@empty': $.result.savedCheckoutState | |
| - '@check_checkout_states': | |
| message: oro.checkout.workflow.condition.content_of_order_was_changed.message | |
| parameters: | |
| entity: $checkout | |
| state1: $.result.initCheckoutState | |
| state2: $.result.savedCheckoutState | |
| actions: | |
| # Place order | |
| - '@get_class_name': | |
| object: $checkout.sourceEntity.sourceDocument | |
| attribute: $.result.sourceDocumentEntityClassName | |
| - '@duplicate': | |
| target: $checkout.billingAddress | |
| attribute: $.result.billingAddress | |
| settings: | |
| - [[setNull], [propertyName, [id]]] | |
| - [[keep], [propertyName, [customerAddress]]] | |
| - [[keep], [propertyName, [customerUserAddress]]] | |
| - [[keep], [propertyName, [city]]] | |
| - [[keep], [propertyName, [country]]] | |
| - [[keep], [propertyName, [region]]] | |
| - [[keep], [propertyName, [organization]]] | |
| - [[shallowCopy], [propertyType, ['\DateTime']]] | |
| - '@flush_entity': $.result.billingAddress | |
| - '@call_service_method': | |
| service: oro_payment_term.provider.payment_term | |
| method: getCurrentPaymentTerm | |
| attribute: $.result.paymentTerm | |
| - '@get_order_line_items': | |
| attribute: $.result.lineItems | |
| checkout: $checkout | |
| - '@create_order': | |
| attribute: $order | |
| checkout: $checkout | |
| data: | |
| billingAddress: $.result.billingAddress | |
| sourceEntityClass: $.result.sourceDocumentEntityClassName | |
| paymentTerm: $.result.paymentTerm | |
| lineItems: $.result.lineItems | |
| - '@call_service_method': | |
| service: oro_order.handler.order_totals_handler | |
| method: fillSubtotals | |
| method_parameters: | |
| - $order | |
| - '@flush_entity': $order | |
| - '@tree': | |
| actions: | |
| - '@assign_url': | |
| attribute: $.result.successUrl | |
| route: oro_checkout_frontend_checkout | |
| route_parameters: | |
| id: $checkout.id | |
| transition: 'finish_checkout' | |
| - '@assign_url': | |
| attribute: $.result.failureUrl | |
| route: oro_checkout_frontend_checkout | |
| route_parameters: | |
| id: $checkout.id | |
| transition: 'payment_error' | |
| - '@assign_url': | |
| attribute: $.result.failedShippingAddressUrl | |
| route: oro_checkout_frontend_checkout | |
| route_parameters: | |
| id: $checkout.id | |
| transition: 'back_to_shipping_address_on_fail_address' | |
| - '@payment_purchase': | |
| attribute: $.result.responseData | |
| object: $order | |
| amount: $order.total | |
| currency: $order.currency | |
| paymentMethod: $payment_method | |
| transactionOptions: | |
| successUrl: $.result.successUrl | |
| failureUrl: $.result.failureUrl | |
| failedShippingAddressUrl: $.result.failedShippingAddressUrl | |
| - '@assign_value': [$payment_in_progress, true] | |
| - '@extendable': | |
| events: [extendable_action.finish_checkout] | |
| - '@redirect': | |
| conditions: | |
| '@and': | |
| - '@equal': ["$.result.responseData[purchaseSuccessful]", true] | |
| - '@payment_method_supports': | |
| payment_method: $payment_method | |
| action: 'validate' | |
| route: oro_checkout_frontend_checkout | |
| route_parameters: | |
| id: $checkout.id | |
| transition: finish_checkout | |
| - '@redirect': | |
| conditions: | |
| '@and': | |
| - '@equal': ["$.result.responseData[purchaseSuccessful]", false] | |
| - '@payment_method_supports': | |
| payment_method: $payment_method | |
| action: 'validate' | |
| route: oro_checkout_frontend_checkout | |
| route_parameters: | |
| id: $checkout.id | |
| transition: payment_error | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| finish_checkout_definition: | |
| conditions: | |
| '@and': | |
| - '@not_empty': [$order] | |
| - '@equal': [$payment_in_progress, true] | |
| actions: | |
| # Save billing address if required | |
| - '@assign_constant_value': [$.result.typeBillingName, Oro\Bundle\AddressBundle\Entity\AddressType::TYPE_BILLING] | |
| - '@tree': | |
| conditions: | |
| '@and': | |
| - '@equal': [$checkout.saveBillingAddress, true] | |
| - '@empty': $order.billingAddress.customerAddress | |
| - '@empty': $order.billingAddress.customerUserAddress | |
| - '@acl_granted': 'oro_order_address_billing_allow_manual' | |
| actions: | |
| - '@find_entity': | |
| class: Oro\Bundle\AddressBundle\Entity\AddressType | |
| attribute: $.result.typeBilling | |
| identifier: $.result.typeBillingName | |
| - '@create_entity': | |
| attribute: $.result.customerBillingAddress | |
| class: Oro\Bundle\CustomerBundle\Entity\CustomerUserAddress | |
| data: | |
| frontendOwner: $checkout.customerUser | |
| owner: $checkout.owner | |
| systemOrganization: $checkout.organization | |
| label: $order.billingAddress.label | |
| organization: $order.billingAddress.organization | |
| street: $order.billingAddress.street | |
| street2: $order.billingAddress.street2 | |
| city: $order.billingAddress.city | |
| postalCode: $order.billingAddress.postalCode | |
| country: $order.billingAddress.country | |
| region: $order.billingAddress.region | |
| regionText: $order.billingAddress.regionText | |
| namePrefix: $order.billingAddress.namePrefix | |
| firstName: $order.billingAddress.firstName | |
| middleName: $order.billingAddress.middleName | |
| lastName: $order.billingAddress.lastName | |
| nameSuffix: $order.billingAddress.nameSuffix | |
| phone: $order.billingAddress.phone | |
| - '@call_method': | |
| object: $.result.customerBillingAddress | |
| method: addType | |
| method_parameters: | |
| - $.result.typeBilling | |
| - '@flush_entity': | |
| conditions: | |
| '@not_empty': $.result.customerBillingAddress | |
| parameters: [$.result.customerBillingAddress] | |
| - '@send_email_template': | |
| parameters: | |
| from: $order.owner.email | |
| to: $order.customerUser.email | |
| template: 'order_confirmation_email' | |
| entity: $order | |
| - '@assign_value': [$checkout.completed, true] | |
| - '@tree': | |
| conditions: | |
| '@not_empty': $order | |
| actions: | |
| - '@count': | |
| value: $order.lineItems | |
| attribute: $checkout.completedData.itemsCount | |
| - '@assign_value': [$.result.orders, []] | |
| - '@get_class_name': | |
| object: $order | |
| attribute: $.result.orderClassName | |
| - '@call_service_method': | |
| service: oro_entity.entity_alias_resolver | |
| method: getAlias | |
| method_parameters: [$.result.orderClassName] | |
| attribute: $.result.orders[0].entityAlias | |
| - '@call_service_method': | |
| service: oro_entity.doctrine_helper | |
| method: getEntityIdentifier | |
| method_parameters: [$order] | |
| attribute: $.result.orders[0].entityId | |
| - '@assign_value': [$checkout.completedData.orders, $.result.orders] | |
| - '@assign_value': [$.result.sourceEntity, $checkout.sourceEntity] | |
| - '@tree': | |
| conditions: | |
| '@not_empty': $.result.sourceEntity | |
| actions: | |
| - '@assign_value': | |
| conditions: | |
| '@instanceof': [$.result.sourceEntity, Oro\Bundle\SaleBundle\Entity\QuoteDemand] | |
| parameters: | |
| attribute: $.result.sourceEntity | |
| value: $.result.sourceEntity.quote | |
| - '@call_service_method': | |
| service: oro_entity.entity_name_resolver | |
| method: getName | |
| method_parameters: [$.result.sourceEntity] | |
| attribute: $checkout.completedData.startedFrom | |
| - '@assign_value': | |
| - [$checkout.completedData.currency, $order.currency] | |
| - [$checkout.completedData.subtotal, $order.subtotalObject.value] | |
| - [$checkout.completedData.total, $order.totalObject.value] | |
| - '@remove_entity': | |
| conditions: | |
| '@or': | |
| - '@equal': [$auto_remove_source, true] | |
| - '@and': | |
| - '@equal': [$allow_manual_source_remove, true] | |
| - '@equal': [$remove_source, true] | |
| parameters: [$checkout.sourceEntity] | |
| recalculate_state_definition: | |
| preconditions: | |
| '@equal': [$checkout_finished, false] | |
| actions: | |
| - '@assign_value': [$payment_in_progress, false] | |
| - '@run_action_group': | |
| action_group: oro_update_shipping_price | |
| parameters_mapping: | |
| checkout: $checkout | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] | |
| clear_payment_method_and_recalculate_state_definition: | |
| preconditions: | |
| '@equal': [$checkout_finished, false] | |
| actions: | |
| - '@assign_value': [$payment_method, null] | |
| - '@assign_value': [$payment_in_progress, false] | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] | |
| unblock_and_recalculate_definition: | |
| actions: | |
| - '@assign_value': [$payment_method, null] | |
| - '@assign_value': [$payment_in_progress, false] | |
| - '@generate_checkout_state_snapshot': | |
| entity: $checkout | |
| attribute: $.result.actualCheckoutState | |
| - '@save_checkout_state': | |
| entity: $checkout | |
| state: $.result.actualCheckoutState | |
| attribute: $state_token | |
| - '@assign_value': [$internal_state_token, $state_token] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment