From 53beb7b00ab922974a20a33deac164383dc3462f Mon Sep 17 00:00:00 2001 From: bach Date: Tue, 15 Mar 2022 11:57:04 +0100 Subject: [PATCH] commerce new product type with two diffrent variation type --- commerce-graph.dot | 17 ++++ composer.json | 2 +- composer.lock | 24 +++-- ...heckout.commerce_checkout_flow.default.yml | 56 ++++++++++- ...duct_type.materio_product_license_type.yml | 15 +++ ..._type.materio_product_licence_variatio.yml | 21 ++++ ...on_type.materio_product_variation_type.yml | 2 +- ...t.materio_product_license_type.default.yml | 96 +++++++++++++++++++ ...terio_product_licence_variatio.default.yml | 73 ++++++++++++++ ...t.materio_product_license_type.default.yml | 53 ++++++++++ ...erio_product_license_type.home_summary.yml | 48 ++++++++++ ...rio_product_license_type.order_summary.yml | 40 ++++++++ ...duct.materio_product_license_type.body.yml | 23 +++++ ...t_license_type.field_price_description.yml | 21 ++++ ...ct_licence_variatio.license_expiration.yml | 21 ++++ ..._product_licence_variatio.license_type.yml | 21 ++++ ...e_product.materio_product_license_type.yml | 11 +++ ...ation.materio_product_licence_variatio.yml | 16 ++++ 18 files changed, 540 insertions(+), 20 deletions(-) create mode 100644 commerce-graph.dot create mode 100644 config/sync/commerce_product.commerce_product_type.materio_product_license_type.yml create mode 100644 config/sync/commerce_product.commerce_product_variation_type.materio_product_licence_variatio.yml create mode 100644 config/sync/core.entity_form_display.commerce_product.materio_product_license_type.default.yml create mode 100644 config/sync/core.entity_form_display.commerce_product_variation.materio_product_licence_variatio.default.yml create mode 100644 config/sync/core.entity_view_display.commerce_product.materio_product_license_type.default.yml create mode 100644 config/sync/core.entity_view_display.commerce_product.materio_product_license_type.home_summary.yml create mode 100644 config/sync/core.entity_view_display.commerce_product.materio_product_license_type.order_summary.yml create mode 100644 config/sync/field.field.commerce_product.materio_product_license_type.body.yml create mode 100644 config/sync/field.field.commerce_product.materio_product_license_type.field_price_description.yml create mode 100644 config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_expiration.yml create mode 100644 config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_type.yml create mode 100644 config/sync/language.content_settings.commerce_product.materio_product_license_type.yml create mode 100644 config/sync/language.content_settings.commerce_product_variation.materio_product_licence_variatio.yml diff --git a/commerce-graph.dot b/commerce-graph.dot new file mode 100644 index 0000000..47db6a9 --- /dev/null +++ b/commerce-graph.dot @@ -0,0 +1,17 @@ +digraph commerce { + materio_checkout_flow + materio_order_type + materio_order_item_type + materio_product_licence_variatio[label=no subscription>] + materio_product_variation_type[label=recurring>] + + materio_product_type + materio_product_license_type + + materio_order_type -> materio_checkout_flow + materio_order_item_type -> materio_order_type + materio_product_licence_variatio -> materio_order_item_type + materio_product_variation_type -> materio_order_item_type + materio_product_type -> materio_product_variation_type + materio_product_license_type -> materio_product_licence_variatio +} \ No newline at end of file diff --git a/composer.json b/composer.json index fa1437d..60236eb 100644 --- a/composer.json +++ b/composer.json @@ -74,7 +74,7 @@ "drupal/ckeditor_font": "^1.2", "drupal/ckeditor_uploadimage": "^2.0", "drupal/colorbutton": "^1.3", - "drupal/commerce": "^2.29.0", + "drupal/commerce": "2.x-dev@dev", "drupal/commerce_cart_api": "^1.4", "drupal/commerce_cart_redirection": "^3.0", "drupal/commerce_license": "^2.x-dev@dev", diff --git a/composer.lock b/composer.lock index 3e02155..ee6f79d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d52543a5e9c33de597427a41497c8de2", + "content-hash": "7e5161e71162b953571789b872f90251", "packages": [ { "name": "alchemy/zippy", @@ -4006,17 +4006,11 @@ }, { "name": "drupal/commerce", - "version": "2.29.0", + "version": "dev-2.x", "source": { "type": "git", "url": "https://git.drupalcode.org/project/commerce.git", - "reference": "8.x-2.29" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/commerce-8.x-2.29.zip", - "reference": "8.x-2.29", - "shasum": "189145431fb4e196b3286c96cae8d7764b8fe7bb" + "reference": "48c9dcc538557958f1dcea4bf38e0ba912b8261b" }, "require": { "commerceguys/intl": "^1.0.0", @@ -4050,12 +4044,15 @@ }, "type": "drupal-module", "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + }, "drupal": { - "version": "8.x-2.29", - "datestamp": "1643900314", + "version": "8.x-2.x-dev", + "datestamp": "1647003334", "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" + "status": "not-covered", + "message": "Dev releases are not covered by Drupal security advisories." } } }, @@ -24788,6 +24785,7 @@ "drupal/advagg": 20, "drupal/auto_entitylabel": 20, "drupal/better_messages": 15, + "drupal/commerce": 20, "drupal/commerce_license": 20, "drupal/commerce_pricelist": 20, "drupal/commerce_recurring": 20, diff --git a/config/sync/commerce_checkout.commerce_checkout_flow.default.yml b/config/sync/commerce_checkout.commerce_checkout_flow.default.yml index 8d5fc79..b702382 100644 --- a/config/sync/commerce_checkout.commerce_checkout_flow.default.yml +++ b/config/sync/commerce_checkout.commerce_checkout_flow.default.yml @@ -4,7 +4,10 @@ status: true dependencies: module: - commerce_payment + - commerce_promotion + - commerce_stripe - email_registration + - materio_commerce _core: default_config_hash: wwkDVBiXUqSzRifJbb71ajFBklJdNJ_DgS67IF-_qgY label: Default @@ -12,6 +15,7 @@ id: default plugin: multistep_default configuration: display_checkout_progress: true + display_checkout_progress_breadcrumb_links: false panes: login: step: login @@ -22,16 +26,58 @@ configuration: step: order_information weight: 1 double_entry: true - billing_information: - step: order_information - weight: 2 review: step: review weight: 3 completion_message: step: complete - weight: 4 + weight: 7 + message: + value: "Your order number is [commerce_order:order_number].\r\nYou can view your order on your account page when logged in." + format: plain_text order_summary: step: _sidebar - weight: 5 + weight: 9 view: commerce_checkout_order_summary + completion_register: + step: complete + weight: 8 + payment_information: + step: order_information + weight: 2 + payment_process: + step: payment + weight: 6 + capture: true + coupon_redemption: + step: _sidebar + weight: 10 + allow_multiple: false + stripe_review: + step: review + weight: 4 + button_id: edit-actions-next + setup_future_usage: '' + email_registration_login: + step: _disabled + weight: 12 + allow_guest_checkout: true + allow_registration: false + email_registration_completion_registration: + step: _disabled + weight: 13 + materio_commerce_agree_nominative: + step: _disabled + weight: 11 + path: null + text: null + link_text: null + invalid_text: 'You must agree with the nominative terms before continuing' + materio_commerce_agree_terms: + step: review + weight: 5 + path: null + link_text: 'Terms and Conditions' + prefix_text: 'I agree with the %terms' + invalid_text: 'You must agree with the %terms before continuing' + new_window: 1 diff --git a/config/sync/commerce_product.commerce_product_type.materio_product_license_type.yml b/config/sync/commerce_product.commerce_product_type.materio_product_license_type.yml new file mode 100644 index 0000000..0353758 --- /dev/null +++ b/config/sync/commerce_product.commerce_product_type.materio_product_license_type.yml @@ -0,0 +1,15 @@ +uuid: a3e1f865-2647-437a-8339-95e9049f2375 +langcode: en +status: true +dependencies: { } +id: materio_product_license_type +label: 'materio product license type' +traits: { } +locked: false +description: '' +variationType: materio_product_licence_variatio +variationTypes: + - materio_product_licence_variatio + - materio_product_variation_type +multipleVariations: true +injectVariationFields: true diff --git a/config/sync/commerce_product.commerce_product_variation_type.materio_product_licence_variatio.yml b/config/sync/commerce_product.commerce_product_variation_type.materio_product_licence_variatio.yml new file mode 100644 index 0000000..ca9b7e7 --- /dev/null +++ b/config/sync/commerce_product.commerce_product_variation_type.materio_product_licence_variatio.yml @@ -0,0 +1,21 @@ +uuid: 1e6371d9-c8ab-473c-88b2-a74e6f118d4b +langcode: fr +status: true +dependencies: + module: + - commerce_license +third_party_settings: + commerce_license: + license_types: + role: role + activate_on_place: false + allow_renewal: true + interval: '1' + period: month +id: materio_product_licence_variatio +label: 'materio product licence variation type' +traits: + - commerce_license +locked: false +orderItemType: materio_order_item_type +generateTitle: false diff --git a/config/sync/commerce_product.commerce_product_variation_type.materio_product_variation_type.yml b/config/sync/commerce_product.commerce_product_variation_type.materio_product_variation_type.yml index 3aa3d8d..21c8c9a 100644 --- a/config/sync/commerce_product.commerce_product_variation_type.materio_product_variation_type.yml +++ b/config/sync/commerce_product.commerce_product_variation_type.materio_product_variation_type.yml @@ -13,7 +13,7 @@ third_party_settings: interval: '1' period: month id: materio_product_variation_type -label: 'materio product variation type' +label: 'materio product licence subscription variation type' traits: - commerce_license - purchasable_entity_subscription diff --git a/config/sync/core.entity_form_display.commerce_product.materio_product_license_type.default.yml b/config/sync/core.entity_form_display.commerce_product.materio_product_license_type.default.yml new file mode 100644 index 0000000..2e8baa7 --- /dev/null +++ b/config/sync/core.entity_form_display.commerce_product.materio_product_license_type.default.yml @@ -0,0 +1,96 @@ +uuid: 27dd62b8-f7c5-4397-9f3a-fdb6f136c2f6 +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_type.materio_product_license_type + - field.field.commerce_product.materio_product_license_type.body + - field.field.commerce_product.materio_product_license_type.field_price_description + module: + - commerce + - path + - text +id: commerce_product.materio_product_license_type.default +targetEntityType: commerce_product +bundle: materio_product_license_type +mode: default +content: + body: + type: text_textarea_with_summary + weight: 1 + region: content + settings: + rows: 9 + summary_rows: 3 + placeholder: '' + show_summary: false + third_party_settings: { } + created: + type: datetime_timestamp + weight: 10 + region: content + settings: { } + third_party_settings: { } + field_price_description: + type: text_textarea + weight: 91 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + langcode: + type: language_select + weight: 2 + region: content + settings: + include_locked: true + third_party_settings: { } + path: + type: path + weight: 30 + region: content + settings: { } + third_party_settings: { } + status: + type: boolean_checkbox + weight: 90 + region: content + settings: + display_label: true + third_party_settings: { } + stores: + type: commerce_entity_select + weight: -10 + region: content + settings: + hide_single_entity: true + autocomplete_threshold: 7 + autocomplete_size: 60 + autocomplete_placeholder: '' + third_party_settings: { } + title: + type: string_textfield + weight: -5 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + translation: + weight: 10 + region: content + settings: { } + third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 5 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } +hidden: + variations: true diff --git a/config/sync/core.entity_form_display.commerce_product_variation.materio_product_licence_variatio.default.yml b/config/sync/core.entity_form_display.commerce_product_variation.materio_product_licence_variatio.default.yml new file mode 100644 index 0000000..13cdebb --- /dev/null +++ b/config/sync/core.entity_form_display.commerce_product_variation.materio_product_licence_variatio.default.yml @@ -0,0 +1,73 @@ +uuid: 4e26ae2b-7899-4933-9e6a-08a1718e05c8 +langcode: fr +status: true +dependencies: + config: + - commerce_product.commerce_product_variation_type.materio_product_licence_variatio + - field.field.commerce_product_variation.materio_product_licence_variatio.license_expiration + - field.field.commerce_product_variation.materio_product_licence_variatio.license_type + module: + - commerce + - commerce_price +id: commerce_product_variation.materio_product_licence_variatio.default +targetEntityType: commerce_product_variation +bundle: materio_product_licence_variatio +mode: default +content: + langcode: + type: language_select + weight: 2 + region: content + settings: + include_locked: true + third_party_settings: { } + license_expiration: + type: commerce_plugin_select + weight: 21 + region: content + settings: { } + third_party_settings: { } + license_type: + type: commerce_plugin_select + weight: 20 + region: content + settings: { } + third_party_settings: { } + list_price: + type: commerce_list_price + weight: -1 + region: content + settings: { } + third_party_settings: { } + price: + type: commerce_price_default + weight: 0 + region: content + settings: { } + third_party_settings: { } + sku: + type: string_textfield + weight: -4 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + status: + type: boolean_checkbox + weight: 90 + region: content + settings: + display_label: true + third_party_settings: { } + title: + type: string_textfield + weight: -5 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } +hidden: + created: true + uid: true diff --git a/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.default.yml b/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.default.yml new file mode 100644 index 0000000..07a1c8d --- /dev/null +++ b/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.default.yml @@ -0,0 +1,53 @@ +uuid: 9e6ae8d7-9897-4d97-a6ee-8535463fe08b +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_type.materio_product_license_type + - field.field.commerce_product.materio_product_license_type.body + - field.field.commerce_product.materio_product_license_type.field_price_description + module: + - text +id: commerce_product.materio_product_license_type.default +targetEntityType: commerce_product +bundle: materio_product_license_type +mode: default +content: + body: + type: text_default + label: above + settings: { } + third_party_settings: { } + weight: 1 + region: content + field_price_description: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 2 + region: content + title: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content + variations: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: add_to_cart + link: false + third_party_settings: { } + weight: 3 + region: content +hidden: + created: true + langcode: true + search_api_excerpt: true + stores: true + synonyms: true + uid: true diff --git a/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.home_summary.yml b/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.home_summary.yml new file mode 100644 index 0000000..1d0ffbe --- /dev/null +++ b/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.home_summary.yml @@ -0,0 +1,48 @@ +uuid: 9e1988a2-8dae-4aeb-915d-46805d6f6298 +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_type.materio_product_license_type + - core.entity_view_mode.commerce_product.home_summary + - field.field.commerce_product.materio_product_license_type.body + - field.field.commerce_product.materio_product_license_type.field_price_description + module: + - text +id: commerce_product.materio_product_license_type.home_summary +targetEntityType: commerce_product +bundle: materio_product_license_type +mode: home_summary +content: + body: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + title: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content + variations: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: add_to_cart + link: false + third_party_settings: { } + weight: 2 + region: content +hidden: + created: true + field_price_description: true + langcode: true + search_api_excerpt: true + stores: true + synonyms: true + uid: true diff --git a/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.order_summary.yml b/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.order_summary.yml new file mode 100644 index 0000000..1485335 --- /dev/null +++ b/config/sync/core.entity_view_display.commerce_product.materio_product_license_type.order_summary.yml @@ -0,0 +1,40 @@ +uuid: 6f8bea43-4418-4039-ab29-f1b5803e409f +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_type.materio_product_license_type + - core.entity_view_mode.commerce_product.order_summary + - field.field.commerce_product.materio_product_license_type.body + - field.field.commerce_product.materio_product_license_type.field_price_description + module: + - text +id: commerce_product.materio_product_license_type.order_summary +targetEntityType: commerce_product +bundle: materio_product_license_type +mode: order_summary +content: + body: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + title: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + field_price_description: true + langcode: true + search_api_excerpt: true + stores: true + synonyms: true + uid: true + variations: true diff --git a/config/sync/field.field.commerce_product.materio_product_license_type.body.yml b/config/sync/field.field.commerce_product.materio_product_license_type.body.yml new file mode 100644 index 0000000..8ab9efd --- /dev/null +++ b/config/sync/field.field.commerce_product.materio_product_license_type.body.yml @@ -0,0 +1,23 @@ +uuid: 6be9dad5-a25e-4e00-934d-4147d5a961f3 +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_type.materio_product_license_type + - field.storage.commerce_product.body + module: + - text +id: commerce_product.materio_product_license_type.body +field_name: body +entity_type: commerce_product +bundle: materio_product_license_type +label: Body +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: null +settings: + display_summary: false + required_summary: false +field_type: text_with_summary diff --git a/config/sync/field.field.commerce_product.materio_product_license_type.field_price_description.yml b/config/sync/field.field.commerce_product.materio_product_license_type.field_price_description.yml new file mode 100644 index 0000000..eafde14 --- /dev/null +++ b/config/sync/field.field.commerce_product.materio_product_license_type.field_price_description.yml @@ -0,0 +1,21 @@ +uuid: fef2dd85-4997-4ee0-9dfd-5e443dcd1463 +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_type.materio_product_license_type + - field.storage.commerce_product.field_price_description + module: + - text +id: commerce_product.materio_product_license_type.field_price_description +field_name: field_price_description +entity_type: commerce_product +bundle: materio_product_license_type +label: 'Price description' +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: { } +field_type: text_long diff --git a/config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_expiration.yml b/config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_expiration.yml new file mode 100644 index 0000000..0a589d0 --- /dev/null +++ b/config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_expiration.yml @@ -0,0 +1,21 @@ +uuid: fdf75672-dcdf-43cd-b8f8-5f993986e07e +langcode: fr +status: true +dependencies: + config: + - commerce_product.commerce_product_variation_type.materio_product_licence_variatio + - field.storage.commerce_product_variation.license_expiration + module: + - commerce +id: commerce_product_variation.materio_product_licence_variatio.license_expiration +field_name: license_expiration +entity_type: commerce_product_variation +bundle: materio_product_licence_variatio +label: 'License Expiration' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: null +settings: { } +field_type: 'commerce_plugin_item:recurring_period' diff --git a/config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_type.yml b/config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_type.yml new file mode 100644 index 0000000..bcbb7e1 --- /dev/null +++ b/config/sync/field.field.commerce_product_variation.materio_product_licence_variatio.license_type.yml @@ -0,0 +1,21 @@ +uuid: a2390abb-6a52-4285-b01b-a2e43b59c437 +langcode: fr +status: true +dependencies: + config: + - commerce_product.commerce_product_variation_type.materio_product_licence_variatio + - field.storage.commerce_product_variation.license_type + module: + - commerce +id: commerce_product_variation.materio_product_licence_variatio.license_type +field_name: license_type +entity_type: commerce_product_variation +bundle: materio_product_licence_variatio +label: 'License Type' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: null +settings: { } +field_type: 'commerce_plugin_item:commerce_license_type' diff --git a/config/sync/language.content_settings.commerce_product.materio_product_license_type.yml b/config/sync/language.content_settings.commerce_product.materio_product_license_type.yml new file mode 100644 index 0000000..7991918 --- /dev/null +++ b/config/sync/language.content_settings.commerce_product.materio_product_license_type.yml @@ -0,0 +1,11 @@ +uuid: afb95e91-4166-489a-9a13-fecfedc72938 +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_type.materio_product_license_type +id: commerce_product.materio_product_license_type +target_entity_type_id: commerce_product +target_bundle: materio_product_license_type +default_langcode: site_default +language_alterable: false diff --git a/config/sync/language.content_settings.commerce_product_variation.materio_product_licence_variatio.yml b/config/sync/language.content_settings.commerce_product_variation.materio_product_licence_variatio.yml new file mode 100644 index 0000000..60d1a62 --- /dev/null +++ b/config/sync/language.content_settings.commerce_product_variation.materio_product_licence_variatio.yml @@ -0,0 +1,16 @@ +uuid: d8e42c10-738f-4700-bfcc-4c6d7f1152f1 +langcode: fr +status: true +dependencies: + config: + - commerce_product.commerce_product_variation_type.materio_product_licence_variatio + module: + - content_translation +third_party_settings: + content_translation: + enabled: true +id: commerce_product_variation.materio_product_licence_variatio +target_entity_type_id: commerce_product_variation +target_bundle: materio_product_licence_variatio +default_langcode: site_default +language_alterable: true