🇧đŸ‡ĒBelgium @vyaenes

Nazareth-De Pinte
Account created on 16 December 2024, about 2 months ago
  • Frontend Developer at iO 
#

Recent comments

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

Ah, nevermind. The issue isn't linked to my duplicate order/payment issue.

I have multiple handlers in my form for some different fields.
But 2 fields are only visible/important with some specific conditions.
I also had to add these conditions to the handlers so that handler doesn't execute if the field isn't visible.

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

I think that I've the same issue.
Can you check the details error log?

In Drupal I've something like:

Drupal\commerce_payment\Exception\PaymentGatewayException: The selected stripe payment method type(stripe_bancontact) is not currently supported. in Drupal\commerce_stripe\Plugin\Commerce\PaymentGateway\StripePaymentElement->createPaymentMethodFromStripePaymentMethod() (regel 560 van /***/web/modules/contrib/commerce_stripe/src/Plugin/Commerce/PaymentGateway/StripePaymentElement.php).

And when I check my logs in Stripe, I've the same error:

HTTP status code
500 (Internal Server Error)
The selected stripe payment method type(stripe_bancontact) is not currently support

But when I scroll down in the json request I see:

"payment_method_types": [
        "card",
        "bancontact",
        "eps",
        "giropay",
        "ideal",
        "sepa_debit",
        "sofort",
        "paypal"
      ],

So I think that something went wrong with the payment_method?
stripe_bancontact <> bancontact

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

Hi,

We found the issue: The commerce registration module
Check h https://www.drupal.org/project/webform_product/issues/3497402 đŸ’Ŧ Product is no longer available for registration Active .

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

- I'll sent you a private message with some details. -

I just created a normal test product, and there I got a normal checkout flow. And that's working.

But with the webform, I do get always get that error...
I tried already to create a normal commerce product or purchasable entity that has te same id as the value in my form. Maybe that should working? But not...

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

Hi, I just watched the video again, and yes, everything is like in the video.

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

Hm, I think I missed something in the configuration.

What I did:

Yes, I created a kind of event registration form with webform.
But there are 2 important fields: Type (intern or extern), for the fee AND logement, for intern people, where they can choose an accomodation.

The price depends on what option the user select.

Then I created 2 commerce webform order handlers. 1 for the Type field and an other for the logement field.
I already removed again the order handler for the logement field so I have only one order handler. The order handler that should linked with the type field.

So, then I expected that after submitting the form I should go to a basket or payment page.
But I always got a permission error.

Then I read in the module documentation "purchasable entities". So I tried now to create 2 purchasable entities. The key of the entities is the same as the key of the 2 options in the Type select field.

I also enabled/disabled the field "Force a new cart to be created with each submission`. But actually this should be disabled, because I want that the user can add multiple submissions to the cart ...

But, then, I'm not forwarded to the checkout, but I'm always getting this error:
"Sorry, Mary Healy - Intern is no longer available for registration. It has been removed from your cart."

So, I think I missed something with linking products?
Should I create a purchasable entity? Or should I just create a commerce product (variant)?

Then I tried to install the demo, but I am getting there also some errors...
What the best way to install the demo?
If I try with `php core/scripts/drupal recipe ../recipe/cwo_demo`, then I get this error:

The configuration 'core.entity_form_mode.commerce_order_item.add_to_cart' exists already and does not match the recipe's configuration.

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

I think it's not really necessary anymore, but that's an export of my webform:

uuid: a8bb389d-174e-4089-921d-c7bb33926e31
langcode: nl
status: open
dependencies:
  module:
    - commerce_webform_order
    - webform_entity_print
    - webform_options_limit
    - webform_product
third_party_settings:
  webform_entity_print:
    template:
      header: ''
      footer: ''
      css: ''
    export_types:
      pdf:
        enabled: true
        link_text: ''
        link_attributes: {  }
  webform_product:
    type:
      top: ''
      options:
        maryhealy_intern: '75.0'
        maryhealy_extern: '75.0'
    status:
      options:
        Volwassene: ''
        Kind: ''
    met_kinderen:
      options:
        Ja: ''
        Nee: ''
    met_voorzieningen_wc_douce:
      options:
        1b-equipped: '220.00'
        1b-non-equipped: '190.00'
        2b-equipped: '175.00'
        3b-equipped: '130.00'
        2b-non-equipped: '165.00'
        4b-equipped: '130.00'
        5b-equipped: '130.00'
        3b-non-equippped: '100.00'
        14b-non-equipped: '100.00'
        4b-non-equipped: '100.00'
        5b-non-equipped: '100.00'
    logement:
      options:
        accomodation_equiped_b1: '220.00'
        accomodation_equiped_b2: '175.00'
        accomodation_equiped_b3: '130.00'
        accomodation_equipped_b4: '130.00'
        accomodation_equiped_b5: '130.00'
        accomodation_non_equipped_b1: '190.00'
        accomodation_non_equipped_b2: '165.00'
        accomodation_non_equipped_b3: '100.00'
        accomodation_non_equipped_b4: '100.00'
        accomodation_non_equipped_b5: '100.00'
        accomodation_non_equipped_b14: '100.00'
    geslacht_kind:
      options:
        Jongen: ''
        Meisje: ''
    accomodation:
      options:
        accomodation_equiped_b1: '220.00'
        accomodation_equiped_b2: '175.00'
        accomodation_equiped_b3: '130.00'
        accomodation_equipped_b4: '130.00'
        accomodation_equiped_b5: '130.00'
        accomodation_non_equipped_b1: '190.00'
        accomodation_non_equipped_b2: '165.00'
        accomodation_non_equipped_b3: '100.00'
        accomodation_non_equipped_b4: '100.00'
        accomodation_non_equipped_b5: '100.00'
        accomodation_non_equipped_b14: '100.00'
    algemeen:
      top: ''
    persoonsgegevens:
      top: ''
    persoonsgegevens_kind:
      top: ''
    adres:
      top: ''
    huisvesting:
      top: ''
    wat_is_je_moedertaal:
      options:
        language_nl: ''
        language_fr: ''
        language_de: ''
        language_en: ''
    bent_u_bereid_te_helpen_met_vertalen:
      options:
        translation_ef: ''
        translation_en: ''
        translation_ed: ''
    wil_u_helpen_bij:
      options:
        help_hospitality: ''
        help_cleaningservice: ''
        help_veiligheid: ''
        help_accescontrol: ''
        help_drinkingbooth: ''
        help_other: ''
    ik_ondersteun_de_inschrijving_van_een_jongere:
      options:
        support_youth_50: '50.0'
        support_youth_100: '100.0'
        support_youth_175: '175.00'
weight: 0
open: null
close: null
uid: 1
template: false
archive: false
id: mary_healy
title: 'Mary Healy'
description: ''
categories: {  }
elements: |-
  algemeen:
    '#type': fieldset
    '#title': Algemeen
    type:
      '#type': select
      '#title': Type
      '#description': '<p>Intern = Logement + maaltijden (vol pension)<br>Extern = U bent zelf verantwoordelijk voor logement en maaltijden</p>'
      '#options':
        maryhealy_intern: Intern
        maryhealy_extern: Extern
      '#required': true
  persoonsgegevens:
    '#type': fieldset
    '#title': Persoonsgegevens
    geslacht:
      '#type': select
      '#title': Geslacht
      '#options':
        Man: Man
        Vrouw: Vrouw
      '#required': true
    voornaam:
      '#type': textfield
      '#title': Voornaam
      '#required': true
    naam:
      '#type': textfield
      '#title': Naam
      '#required': true
    geboortedatum:
      '#type': date
      '#title': Geboortedatum
      '#required': true
    nationaliteit:
      '#type': textfield
      '#title': Nationaliteit
    e_mail:
      '#type': email
      '#title': E-mail
      '#required': true
    telefoon_gsm:
      '#type': tel
      '#title': 'Telefoon/ GSM'
      '#required': true
    dieet:
      '#type': textfield
      '#title': Dieet
      '#description': '<p>Lactose, gluten, ...</p>'
    mobiliteit:
      '#type': textfield
      '#title': Mobiliteit
  adres:
    '#type': fieldset
    '#title': Contactgegevens
    straat:
      '#type': textfield
      '#title': Straat
      '#required': true
    huisnummer_busnummer:
      '#type': textfield
      '#title': 'Huisnummer (+ busnummer)'
      '#required': true
    postcode:
      '#type': textfield
      '#title': Postcode
      '#required': true
    woonplaats:
      '#type': textfield
      '#title': Woonplaats
      '#description': '<p>Stad of gemeente</p>'
      '#required': true
    land:
      '#type': select
      '#title': Land
      '#options': country_names
      '#required': true
    nieuwsbrief:
      '#type': checkbox
      '#title': Nieuwsbrief
      '#description': '<p><span style="-webkit-text-stroke-width:0px;background-color:rgb(255, 255, 255);color:rgb(62, 62, 62);display:inline !important;float:none;font-family:-apple-system, &quot;system-ui&quot;, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, sans-serif;font-size:13px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;">Ik wens in de toekomst op de hoogte gehouden te worden van de activiteiten van Charis Belgium vzw.</span></p>'
      '#prepopulate': true
    privacy:
      '#type': checkbox
      '#title': Privacy
      '#description': '<p><span style="-webkit-text-stroke-width:0px;background-color:rgb(255, 255, 255);color:rgb(62, 62, 62);display:inline !important;float:none;font-family:-apple-system, &quot;system-ui&quot;, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, sans-serif;font-size:13px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;">Door deze inschrijving stem ik in met de algemene voorwaarden, het privacybeleid en de beeldrechten zoals hieronder beschreven.</span></p>'
      '#more_title': 'Bescherming van persoonsgegevens, algemene voorwaarden en beeldrechten'
      '#more': '<p><em><span style="-webkit-text-stroke-width:0px;background-color:rgb(255, 255, 255);color:rgb(34, 34, 34);display:inline !important;float:none;font-family:-apple-system, &quot;system-ui&quot;, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, sans-serif;font-size:13px;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;">Charis Belgium vzw hechten veel belang aan de bescherming van de persoonsgegevens en het respecteren van de privacy van de deelnemers aan haar evenementen. Door in te schrijven, geeft elke deelnemer Charis Belgium vzw de toestemming om zijn/haar persoonsgegevens te registreren en te verwerken voor de goede organisatie van het evenement. Charis Belgium vzw houdt zich aan de Europese verordening 2016/679 betreffende de bescherming van persoonsgegevens, zoals beschreven in haar privacybeleid. Door zich in te schrijven aanvaardt elke deelnemer de algemene voorwaarden voor deelname, met inbegrip van de mogelijkheid om gefilmd of gefotografeerd te worden, en het eventuele gebruik van deze beelden op de media van Charis Belgium vzw.</span></em></p>'
      '#required': true
  huisvesting:
    '#type': fieldset
    '#title': Huisvesting
    '#states':
      visible:
        ':input[name="type"]':
          value: maryhealy_intern
    accomodation:
      '#type': radios
      '#title': Logement
      '#description': '<p>Kamer met voorzieningen = wc en/of douche op de kamer.</p><p>Meerpersoonskamers (3b of meer per kamer) zijn voorbehouden voor jongeren tussen 18 en 30 jaar oud.</p>'
      '#options':
        accomodation_equiped_b1: 'Eenpersoonskamer met voorzieningen (220,- EUR)'
        accomodation_equiped_b2: 'Tweepersoonskamer met voorzieningen (175,- EUR)'
        accomodation_equiped_b3: 'Driepersoonskamer met voorzieningen (130,- EUR)'
        accomodation_equipped_b4: 'Vierpersoonskamer met voorzieningen (130,- EUR)'
        accomodation_equiped_b5: 'Vijfpersoonskamer met voorzieningen (130,- EUR)'
        accomodation_non_equipped_b1: 'Eenpersoonskamer zonder voorzieningen (190,- EUR)'
        accomodation_non_equipped_b2: 'Tweepersoonskamer zonder voorzieningen (165,- EUR)'
        accomodation_non_equipped_b3: 'Driepersoonskamer zonder voorzieningen (100,- EUR)'
        accomodation_non_equipped_b4: 'Vierpersoonskamer zonder voorzieningen (100,- EUR)'
        accomodation_non_equipped_b5: 'Vijfpersoonskamer zonder voorzieningen (100,- EUR)'
        accomodation_non_equipped_b14: 'Meerpersoonskamer zonder voorzieningen (100,- EUR) -- (14 personen per kamer)'
      '#required': true
  bijkomende_info:
    '#type': fieldset
    '#title': 'Bijkomende info'
    wat_is_je_moedertaal:
      '#type': select
      '#title': 'Wat is je moedertaal?'
      '#options':
        language_nl: Nederlands
        language_fr: Frans
        language_de: Duits
        language_en: Engels
    heeft_u_vertaling_nodig:
      '#type': radios
      '#title': 'Heeft u vertaling nodig?'
      '#options': yes_no
    bent_u_bereid_te_helpen_met_vertalen:
      '#type': checkboxes
      '#title': 'Bent u bereid te helpen met vertalen?'
      '#description': '<p>Vink aan welke talen u wil/kan vertalen.</p>'
      '#options':
        translation_ef: 'Engels -> Frans'
        translation_en: 'Engels -> Nederlands'
        translation_ed: 'Engels -> Duits'
    wil_u_helpen_bij:
      '#type': radios
      '#title': 'Wil u helpen bij:'
      '#options':
        help_hospitality: Onthaal
        help_cleaningservice: 'Properheid (zaal, wc, vuilbakken)'
        help_veiligheid: Veiligheid
        help_accescontrol: Toegangscontrole
        help_drinkingbooth: Drankstand
        help_other: Other
      '#options_randomize': true
      '#required': true
    ik_ondersteun_de_inschrijving_van_een_jongere:
      '#type': select
      '#title': 'Ik ondersteun de inschrijving van ÊÊn jongere:'
      '#options':
        support_youth_50: '50,- EUR'
        support_youth_100: '100,- EUR'
        support_youth_175: '175,- EUR'
  admin_fields:
    '#type': fieldset
    '#title': 'Admin fields'
    '#format': details-closed
    '#access_create_roles':
      - administrator
    order_id:
      '#type': textfield
      '#title': Order_id
      '#access_create_roles':
        - administrator
    order_status:
      '#type': textfield
      '#title': Order_status
      '#access_create_roles':
        - administrator
    order_url:
      '#type': url
      '#title': Order_url
      '#access_create_roles':
        - administrator
css: ''
javascript: ''
settings:
  ajax: false
  ajax_scroll_top: form
  ajax_progress_type: ''
  ajax_effect: ''
  ajax_speed: null
  page: true
  page_submit_path: ''
  page_confirm_path: ''
  page_theme_name: ''
  form_title: source_entity_webform
  form_submit_once: false
  form_open_message: ''
  form_close_message: ''
  form_exception_message: ''
  form_previous_submissions: true
  form_confidential: false
  form_confidential_message: ''
  form_disable_remote_addr: false
  form_convert_anonymous: false
  form_prepopulate: false
  form_prepopulate_source_entity: false
  form_prepopulate_source_entity_required: false
  form_prepopulate_source_entity_type: ''
  form_unsaved: true
  form_disable_back: false
  form_submit_back: false
  form_disable_autocomplete: false
  form_novalidate: true
  form_disable_inline_errors: false
  form_required: true
  form_autofocus: false
  form_details_toggle: false
  form_reset: false
  form_access_denied: default
  form_access_denied_title: ''
  form_access_denied_message: ''
  form_access_denied_attributes: {  }
  form_file_limit: ''
  form_attributes: {  }
  form_method: ''
  form_action: ''
  share: false
  share_node: false
  share_theme_name: ''
  share_title: true
  share_page_body_attributes: {  }
  submission_label: ''
  submission_exception_message: ''
  submission_locked_message: ''
  submission_log: false
  submission_excluded_elements: {  }
  submission_exclude_empty: false
  submission_exclude_empty_checkbox: false
  submission_views: {  }
  submission_views_replace: {  }
  submission_user_columns: {  }
  submission_user_duplicate: false
  submission_access_denied: default
  submission_access_denied_title: ''
  submission_access_denied_message: ''
  submission_access_denied_attributes: {  }
  previous_submission_message: ''
  previous_submissions_message: ''
  autofill: false
  autofill_message: ''
  autofill_excluded_elements: {  }
  wizard_progress_bar: true
  wizard_progress_pages: true
  wizard_progress_percentage: false
  wizard_progress_link: false
  wizard_progress_states: false
  wizard_start_label: ''
  wizard_preview_link: false
  wizard_confirmation: true
  wizard_confirmation_label: ''
  wizard_auto_forward: true
  wizard_auto_forward_hide_next_button: false
  wizard_keyboard: true
  wizard_track: name
  wizard_prev_button_label: ''
  wizard_next_button_label: ''
  wizard_toggle: false
  wizard_toggle_show_label: ''
  wizard_toggle_hide_label: ''
  wizard_page_type: container
  wizard_page_title_tag: h2
  preview: 0
  preview_label: ''
  preview_title: ''
  preview_message: ''
  preview_attributes: {  }
  preview_excluded_elements: {  }
  preview_exclude_empty: true
  preview_exclude_empty_checkbox: false
  draft: none
  draft_multiple: false
  draft_auto_save: false
  draft_saved_message: ''
  draft_loaded_message: ''
  draft_pending_single_message: ''
  draft_pending_multiple_message: ''
  confirmation_type: page
  confirmation_url: ''
  confirmation_title: ''
  confirmation_message: ''
  confirmation_attributes: {  }
  confirmation_back: true
  confirmation_back_label: ''
  confirmation_back_attributes: {  }
  confirmation_exclude_query: false
  confirmation_exclude_token: false
  confirmation_update: false
  limit_total: null
  limit_total_interval: null
  limit_total_message: ''
  limit_total_unique: false
  limit_user: null
  limit_user_interval: null
  limit_user_message: ''
  limit_user_unique: false
  entity_limit_total: null
  entity_limit_total_interval: null
  entity_limit_user: null
  entity_limit_user_interval: null
  purge: none
  purge_days: null
  results_disabled: false
  results_disabled_ignore: false
  results_customize: false
  token_view: false
  token_update: false
  token_delete: false
  serial_disabled: false
access:
  create:
    roles:
      - anonymous
      - authenticated
    users: {  }
    permissions: {  }
  view_any:
    roles: {  }
    users: {  }
    permissions: {  }
  update_any:
    roles: {  }
    users: {  }
    permissions: {  }
  delete_any:
    roles: {  }
    users: {  }
    permissions: {  }
  purge_any:
    roles: {  }
    users: {  }
    permissions: {  }
  view_own:
    roles: {  }
    users: {  }
    permissions: {  }
  update_own:
    roles: {  }
    users: {  }
    permissions: {  }
  delete_own:
    roles: {  }
    users: {  }
    permissions: {  }
  administer:
    roles: {  }
    users: {  }
    permissions: {  }
  test:
    roles: {  }
    users: {  }
    permissions: {  }
  configuration:
    roles: {  }
    users: {  }
    permissions: {  }
handlers:
  options_checkbox_limit:
    id: options_limit
    handler_id: options_checkbox_limit
    label: 'Options/Checkbox limit'
    notes: ''
    status: true
    conditions: {  }
    weight: 0
    settings:
      element_key: accomodation
      limit: null
      limits:
        accomodation_equiped_b1: 21
        accomodation_equiped_b2: 178
        accomodation_equiped_b3: 12
        accomodation_equipped_b4: 12
        accomodation_equiped_b5: 5
        accomodation_non_equipped_b1: 15
        accomodation_non_equipped_b2: 124
        accomodation_non_equipped_b3: 15
        accomodation_non_equipped_b4: 4
        accomodation_non_equipped_b5: 10
        accomodation_non_equipped_b14: 14
      limit_reached_message: '@name is volzet'
      limit_source_entity: true
      limit_user: false
      option_none_action: disable
      option_message_display: label
      option_multiple_message: '[@remaining remaining]'
      option_single_message: '[@remaining remaining]'
      option_none_message: '[@remaining remaining]'
      option_unlimited_message: '[Unlimited]'
      option_error_message: '@name: @label is unavailable.'
      tableselect_header: ''
  commerce_webform_order_handler:
    id: commerce_webform_order
    handler_id: commerce_webform_order_handler
    label: Inschrijvingskosten
    notes: ''
    status: true
    conditions: {  }
    weight: 0
    settings:
      store:
        store_entity: 6b9722f8-b12a-4501-adcf-5308aed41a2b
        bypass_access: true
      order_item:
        order_item_id: ':input[name="order_id"]'
        purchasable_entity_type: commerce_purchasable_entity
        purchasable_entity: ':input[name="type"]'
        title: ''
        overwrite_price: false
        amount: ''
        currency: ''
        quantity: '1'
        order_item_bundle: webform
        fields: {  }
      checkout:
        new_cart: false
        empty_cart: false
        combine_cart: false
        owner: ':input[name="e_mail"]'
        owner_id: ''
        billing_profile_id: ''
        billing_profile_bypass_access: true
        payment_gateway_id: ''
        payment_method_id: ''
        cancel_url: ''
        hide_add_to_cart_message: false
        redirect: true
        order_state: 'order_fulfillment_validation:draft'
        order_data: ''
      sync: false
      webform_states:
        - completed
      order_states:
        - _new_order_
        - 'order_fulfillment_validation:draft'
        - 'order_default:draft'
      prevent_update: false
      debug: false
variants: {  }
🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

Oh, sorry... I think maybe I did something wrong in my configuration.
It's my first time (after a long period) I do again a website in Drupal and it all takes some time to figure things out.
When I was reading your comment and saw "purchasable entity", some light goes on in my head.

First I made only my form and in the select I had 2 options:
- maryhealy_intern | Intern | 75.00
- maryhealy_extern | Extern | 75.00

And I thought that the module made from this 2 options a product and would add it to my cart.

But now (after reading your comment) I created in my "commerce purchasable entities" 2 entities with as sku "maryhealy_intern" and "maryhealy_extern". And that seems fixing my error. :-)

Thank you! Your comment already helps me a bit.

But I think I need to find more documentation. There's still something wrong with my configuration.
Now I can submit my form without any errors, but instead of forwarding me to the checkout I get an "access denied" error and the following message "Sorry, Mary Healy - Intern is no longer available for registration. It has been removed from your cart."

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

vyaenes → created an issue.

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte
🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte
🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte
🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

vyaenes → created an issue.

🇧đŸ‡ĒBelgium vyaenes Nazareth-De Pinte

vyaenes → created an issue.

Production build 0.71.5 2024