Hello, I have a marketplace with this module. I am starting to have merchants opening shops. However there is a huge problem, I created a form for the merchants to enter the shipping methods they want to add to their store. So I have to manually enter the shipping method to their place, because the permissions are not suitable for a marketplace.

This is a huge drag on my proget and probably other progets.

France has just entered containment again (COVID-19 requires). The service providers can no longer ensure the deliveries. I want my merchants to be able to add on-site pick-ups to their stores, as well as delivery by them in a defined area.

The Commerce Shipping module allows you to do this by defining a postal code or a city for example.

Problem:

1) The delivery configuration path goes through admin.

2) There is no permission to limit adding or configuring to own store.

I think that mod has a bright future ahead of it. provided it is a minimum usable.

I will be able to sponsor this module, if I can have a minimum stable version and generate a turnover.

It therefore lacks permissions for shipping methods, payment gateways and promotions.

I'm lost and I don't know if the marketplace mode should be a Commerce submodule or a separate module like Commerce Marketplace.

Commerce seems to have integrated some of the functionality of the marketplace. Unfortunately the marketplace, in full expansion, currently seems to be able to be initiated on Drupal.

I imagine that to have a good marketplace module, this one should look like the Group module:

- Manage permissions within the type of store.
- Create only certain type of product in the type of store.
- Manage shipping methods within the store type.
- Manage payment gateways within the type of store.
- Manage promotions within the type of store.

- Manage members (cashier, product sheet writer, stock management, ...), the POS module would be fully functional.

Comments

zenimagine created an issue. See original summary.

drugan’s picture

Thank you for your initiative.

The pick-up shipping method question was also asked in the @drupal_beginner Telegram and #commerce Slack channels.

https://t.me/drupal_beginner/56139
https://drupal.slack.com/archives/C1TLCCF9B/p1602884716069700

I think it requires a standalone module to provide this functionality.

Over the weekend I will be free again and start exploring everything related to the issue. After that I will share my thoughts on how it can be fixed.

zenimagine’s picture

good news

drugan’s picture

I've started work on the commerce_pickup module. The idea is to allow a store owner / admin attach multiple pickup addresses to a store which then will be displayed on the Shipping Information checkout pane's select list when a respective shipping_pickup shipping method is selected.

The additional features under the question:

The phone number field of the store's pickup address to display for a customer.

The phone number field for a customer to enter in the checkout pane instead of the shipping address (which is replaced by the store pickup address).

Validation of the phone numbers entered.

Option to enter a logo image url in the store pickup address' Company field. Could help a customer to find a pickup location counter, for example in a mall or grocery store.

zenimagine’s picture

@drugan Great, is this this module ?

https://www.drupal.org/project/commerce_pickup

Store owners should be able to add a time slot for in-store pickup. Can also be an availability date.

https://www.drupal.org/project/office_hours

This will resolve on-site order retrieval issues with instructions. But basic permissions are missing and the path must not go through admin.

Are you going to improve the "Commerce Shipping" module more generally ?

- Permissions to modify and delete shipping methods in own stores.

- Modification of the path :
Replace /admin/commerce/shipping-methods by /store/ID_STORE/shipping-methods
Replace /admin/commerce/shipping-methods/add by /store/ID_STORE/shipping-methods/add
Replace /admin/commerce/shipping-methods/manage/ID by /store/ID_STORE/shipping-methods/manage/ID_SHIPPING
Replace /admin/commerce/shipping-methods/manage/ID/delete by /store/ID_STORE/shipping-methods/manage/ID_SHIPPING/delete

drugan’s picture

@zenimagine

Yes, I am going to make the 8.x / 9.x port to the commerce_pickup module.

As for the commerce_shipping permissions those also require to make them dynamic and store specific.

The same with other commerce_marketplace permissions which should be revised and possibly improved.

zenimagine’s picture

@drugan Great, thank you. Let me know if you want me to test.

  • drugan committed a8bf018 on 8.x-1.x
    Issue #3179533 by zenimagine: Integrate shipping method management
    
drugan’s picture

Status: Active » Needs review

To test the changes above run your_site.com/update.php script in case if the commerce_marketplace module is already installed.

Then visit /user/ID/stores page and select the Shipping methods action for store.

UPDATE: note that to administer a store shipping methods user must have update own STORE_TYPE commerce_store permission for the store.

drugan’s picture

As for the commerce_pickup port it is basically ready and just requires to look someone at on a testing site.

zenimagine’s picture

@drugan Great ;-) Thank you, the functionality works wonderfully. I will do another test tomorrow.

Would it be possible to rewrite the path? To not use "admin"? #5

zenimagine’s picture

If I add a shipping method, after registration I am redirected to /admin/commerce/shipping-methods

The operation links are missing in the "Modify", "Delete" View.

I don't know if it's possible, but a lot of information is missing in the View. The price, the conditions.

zenimagine’s picture

There is an error in the machine name of the view :

commerce_marketpplace_administer_shipping_methods

should be :

commerce_marketplace_administer_shipping_methods

  • drugan committed f96198a on 8.x-1.x
    Issue #3179533 by zenimagine: Integrate shipping method management (2...
drugan’s picture

Please, install the /commerce_marketplace/config/install/views.view.commerce_marketplace_administer_shipping_methods.yml view and try again.

zenimagine’s picture

StatusFileSize
new271.92 KB

@drugan Great, it's much better. What is missing is more than the path which is not coherent for the merchants.

If you applied the same principle for payment gateways, the module would be usable and you could perhaps publish a BETA version ;-)

Setting up a donation link would be a good idea for this project.

Last question, how to test the pickup module ?

drugan’s picture

@zenimagine

Good to know that the store shipping methods addition works for you.

Last question, how to test the pickup module ?

I need to make a couple of final touches on a testing site and let you know then.

zenimagine’s picture

StatusFileSize
new226.96 KB

@drugan Is it possible to redirect the non-admin user to the View after saving the shipping method ?

drugan’s picture

StatusFileSize
new127.37 KB

@zenimagine

Did you pulled the latest commit?

See MarketplaceShippingMethodForm.php

It actually should redirect a non-superadmin user to the /store/ID/shipping-methods page after saving a new and editing or deleting existing shipping method.

See the screenshot attached.

zenimagine’s picture

@drugan I just updated the module and imported the new view, that's it. What else should I do ?

drugan’s picture

StatusFileSize
new312 KB

@zenimagine

Note that admin permission for a store shipping method is the administer commerce_shipping_method permission.

So, if your non-superadmin user has that permission it will be redirected to the /admin/commerce/shipping-methods page after saving a method.

There is no need for a regular store owner to have this permission because we allow them to administer their store shipping methods based on the update own STORE_TYPE commerce_store permission.

zenimagine’s picture

@drugan No I did not grant these permission, but I am even redirected to admin

zenimagine’s picture

@drugan Ok, so when I modify or delete a shipping method, I am redirected to the correct page.

The problem, when I add a shipping method, I get redirected to admin.

drugan’s picture

@zenimagine

That is quite weird because for me after pulling the latest commit and flushing caches everything works as expected.

If you have devel module installed on your site then you can try dpm([$store, $admin]); in the commerce_marketplace/src/Form/MarketplaceShippingMethodForm.php file (on save a method action).

Like this one:


  public function save(array $form, FormStateInterface $form_state) {
    $this->entity->save();
    $this->messenger()->addMessage($this->t('Saved the %label shipping method.', ['%label' => $this->entity->label()]));
    $store = $form_state->getValue(['stores', 'target_id']);
    $admin = $this->getEntity()->getEntityType()->getAdminPermission();
dpm([$store, $admin]);//CHECK IF THAT LINE OF CODE IS REACHED AT ALL.
    if (is_numeric($store) && !$this->currentUser()->hasPermission($admin)) {
      $form_state->setRedirect('view.commerce_marketplace_administer_shipping_methods.methods_page', [
        'commerce_store' => $store,
      ]);
    }
    else {
     $form_state->setRedirect('entity.commerce_shipping_method.collection');
    }
  }

  • drugan committed fdbb908 on 8.x-1.x
    Issue #3179533 by zenimagine: Integrate shipping method management (3...
drugan’s picture

@zenimagine

I have improved logic when detecting how much stores are selected on a shipping method form (store owner has no multiple stores choice on the form).

I am not sure, may the issue is related to a PHP or Drupal Commerce version so, now it is definitely should work in case if there is no another contrib module installed which overrides the native ShippingMethodForm.php class.

zenimagine’s picture

@drugan Thank you, I confirm, the redirect is working

  • drugan committed e4a0960 on 8.x-1.x
    Issue #3179533 by zenimagine: Integrate shipping method management (4...
drugan’s picture

@zenimagine

Great!

I've made more improvements to the redirection logic because somehow I've missed that regular store owner can have multiple stores.

So, if multiple stores are selected by the owner then, after saving the form, we redirect them to the /user/ID/stores page instead of the /store/ID/shipping-methods form.

Okay, for today I am done so I will let you know later on how to test the commerce_pickup module.

zenimagine’s picture

@drugan Perfect thank you. Is there a way to disable certain conditions and plugins ?

The merchant may be lost among all these parameters and some marketplaces do not need all these conditions and plugins.

If you have the time, can you apply the same logic to payment gateways and promotions. After that, the merchant would be completely autonomous.

zenimagine’s picture

A view for the site administrator is missing :

uuid: 360d72fb-d694-49ea-8016-e8479c3e8ed2
langcode: en
status: true
dependencies:
  config:
    - user.role.administrator
    - user.role.commerce_marketplace_admin
    - user.role.commerce_marketplace_owner
  module:
    - commerce
    - commerce_shipping
    - commerce_store
    - user
id: commerce_marketplace_administer_shipping_methods
label: 'Administer Store Shipping Methods'
module: views
description: 'Administer store shipping methods'
tag: ''
base_table: commerce_shipping_method_field_data
base_field: shipping_method_id
display:
  default:
    display_plugin: default
    id: default
    display_title: Master
    position: 0
    display_options:
      access:
        type: role
        options:
          role:
            commerce_marketplace_owner: commerce_marketplace_owner
            commerce_marketplace_admin: commerce_marketplace_admin
            administrator: administrator
      cache:
        type: none
        options: {  }
      query:
        type: views_query
        options:
          disable_sql_rewrite: false
          distinct: false
          replica: false
          query_comment: ''
          query_tags: {  }
      exposed_form:
        type: basic
        options:
          submit_button: Apply
          reset_button: false
          reset_button_label: Reset
          exposed_sorts_label: 'Sort by'
          expose_sort_order: true
          sort_asc_label: Asc
          sort_desc_label: Desc
      pager:
        type: mini
        options:
          items_per_page: 10
          offset: 0
          id: 0
          total_pages: null
          expose:
            items_per_page: false
            items_per_page_label: 'Items per page'
            items_per_page_options: '5, 10, 25, 50'
            items_per_page_options_all: false
            items_per_page_options_all_label: '- All -'
            offset: false
            offset_label: Offset
          tags:
            previous: ‹‹
            next: ››
      style:
        type: table
        options:
          grouping: {  }
          row_class: ''
          default_row_class: true
          override: true
          sticky: false
          caption: ''
          summary: ''
          description: ''
          columns:
            name_1: name_1
            shipping_method_id: shipping_method_id
            stores_target_id: stores_target_id
            nothing: nothing
            name: name
            status: status
            plugin__target_plugin_id: plugin__target_plugin_id
            conditions_target_plugin_id: conditions_target_plugin_id
          info:
            name_1:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            shipping_method_id:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            stores_target_id:
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            nothing:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            name:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            status:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            plugin__target_plugin_id:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            conditions_target_plugin_id:
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
          default: '-1'
          empty_table: false
      row:
        type: fields
      fields:
        name_1:
          id: name_1
          table: commerce_store_field_data
          field: name
          relationship: stores_target_id
          group_type: group
          admin_label: ''
          label: Name
          exclude: true
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: string
          settings:
            link_to_entity: false
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: commerce_store
          entity_field: name
          plugin_id: field
        shipping_method_id:
          id: shipping_method_id
          table: commerce_shipping_method_field_data
          field: shipping_method_id
          relationship: none
          group_type: group
          admin_label: ''
          label: ID
          exclude: true
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: number_integer
          settings:
            thousand_separator: ''
            prefix_suffix: true
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: commerce_shipping_method
          entity_field: shipping_method_id
          plugin_id: field
        stores_target_id:
          id: stores_target_id
          table: commerce_shipping_method__stores
          field: stores_target_id
          relationship: none
          group_type: group
          admin_label: ''
          label: Stores
          exclude: true
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: target_id
          type: entity_reference_entity_id
          settings: {  }
          group_column: target_id
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: commerce_shipping_method
          entity_field: stores
          plugin_id: field
        name:
          id: name
          table: commerce_shipping_method_field_data
          field: name
          relationship: none
          group_type: group
          admin_label: ''
          label: Nom
          exclude: false
          alter:
            alter_text: true
            text: "{% if stores_target_id == arguments.store_id %}\r\n  <strong><a href=\"/admin/commerce/shipping-methods/manage/{{ shipping_method_id }}/?destination=/store/{{ raw_arguments.store_id }}/shipping-methods\" >{{ name }}</a></strong>\r\n{% else %}\r\n  <strong>{{ name }}</strong>\r\n{% endif %}\r\n"
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: false
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: string
          settings:
            link_to_entity: false
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: null
          entity_field: name
          plugin_id: field
        status:
          id: status
          table: commerce_shipping_method_field_data
          field: status
          relationship: none
          group_type: group
          admin_label: ''
          label: Statut
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: boolean
          settings:
            format: enabled-disabled
            format_custom_true: ''
            format_custom_false: ''
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: commerce_shipping_method
          entity_field: status
          plugin_id: field
        conditions_target_plugin_id:
          id: conditions_target_plugin_id
          table: commerce_shipping_method__conditions
          field: conditions_target_plugin_id
          relationship: none
          group_type: group
          admin_label: ''
          label: Conditions
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: target_plugin_id
          type: commerce_plugin_item_default
          settings: {  }
          group_column: ''
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: commerce_shipping_method
          entity_field: conditions
          plugin_id: field
        operations:
          id: operations
          table: commerce_shipping_method
          field: operations
          relationship: none
          group_type: group
          admin_label: ''
          label: Opérations
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          destination: false
          entity_type: commerce_shipping_method
          plugin_id: entity_operations
      filters: {  }
      sorts:
        status:
          id: status
          table: commerce_shipping_method_field_data
          field: status
          relationship: none
          group_type: group
          admin_label: ''
          order: ASC
          exposed: false
          expose:
            label: ''
          entity_type: commerce_shipping_method
          entity_field: status
          plugin_id: standard
      title: 'Modes d''expédition'
      header:
        area_text_custom:
          id: area_text_custom
          table: views
          field: area_text_custom
          relationship: none
          group_type: group
          admin_label: ''
          empty: false
          tokenize: false
          content: '<a class="btn btn-warning btn-sm" href="/node/124" target="_blank"><i class="fas fa-question-circle fa-lg"></i> Besoin d''aide</a>'
          plugin_id: text_custom
      footer: {  }
      empty:
        area_text_custom:
          id: area_text_custom
          table: views
          field: area_text_custom
          relationship: none
          group_type: group
          admin_label: ''
          empty: true
          tokenize: false
          content: 'Aucune méthode d''expédition disponible.'
          plugin_id: text_custom
      relationships:
        stores_target_id:
          id: stores_target_id
          table: commerce_shipping_method__stores
          field: stores_target_id
          relationship: none
          group_type: group
          admin_label: Store
          required: false
          entity_type: commerce_shipping_method
          entity_field: stores
          plugin_id: standard
      arguments:
        store_id:
          id: store_id
          table: commerce_store_field_data
          field: store_id
          relationship: stores_target_id
          group_type: group
          admin_label: ''
          default_action: 'not found'
          exception:
            value: all
            title_enable: false
            title: All
          title_enable: true
          title: '{{ name_1 }}'
          default_argument_type: fixed
          default_argument_options:
            argument: ''
          default_argument_skip_url: false
          summary_options:
            base_path: ''
            count: true
            items_per_page: 25
            override: false
          summary:
            sort_order: asc
            number_of_records: 0
            format: default_summary
          specify_validation: true
          validate:
            type: 'entity:commerce_store'
            fail: 'access denied'
          validate_options:
            access: true
            operation: update
            multiple: 0
            bundles: {  }
          break_phrase: false
          not: false
          entity_type: commerce_store
          entity_field: store_id
          plugin_id: numeric
      display_extenders: {  }
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - url
        - url.query_args
        - user.roles
      tags: {  }
  methods_page:
    display_plugin: page
    id: methods_page
    display_title: StoreShippingMethods
    position: 1
    display_options:
      display_extenders:
        metatag_display_extender: {  }
      path: store/%commerce_store/shipping-methods
      menu:
        type: tab
        title: 'Modes d''expédition'
        description: ''
        expanded: false
        parent: entity.commerce_store.collection
        weight: 3
        context: '0'
        menu_name: admin
      display_description: ''
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - url
        - url.query_args
        - user.roles
      tags: {  }
  page_1:
    display_plugin: page
    id: page_1
    display_title: AdminShippingMethods
    position: 1
    display_options:
      display_extenders:
        metatag_display_extender: {  }
      path: admin/commerce/shipping-methods
      menu:
        type: none
        title: 'Modes d''expédition'
        description: ''
        expanded: false
        parent: entity.commerce_store.collection
        weight: 3
        context: '0'
        menu_name: admin
      display_description: ''
      arguments: {  }
      defaults:
        arguments: false
        access: false
        style: false
        row: false
        fields: false
        pager: false
        header: false
        relationships: false
        sorts: false
      access:
        type: perm
        options:
          perm: 'access commerce_shipping_method overview'
      style:
        type: table
        options:
          grouping: {  }
          row_class: ''
          default_row_class: true
          override: true
          sticky: false
          caption: ''
          summary: ''
          description: ''
          columns:
            name_1: name_1
            shipping_method_id: shipping_method_id
            stores_target_id: stores_target_id
            nothing: nothing
            name: name
            status: status
            plugin__target_plugin_id: plugin__target_plugin_id
            conditions_target_plugin_id: conditions_target_plugin_id
          info:
            name_1:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            shipping_method_id:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            stores_target_id:
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            nothing:
              sortable: false
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            name:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            status:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            plugin__target_plugin_id:
              sortable: true
              default_sort_order: asc
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
            conditions_target_plugin_id:
              align: ''
              separator: ''
              empty_column: false
              responsive: ''
          default: '-1'
          empty_table: false
      row:
        type: fields
        options: {  }
      fields:
        name:
          id: name
          table: commerce_shipping_method_field_data
          field: name
          relationship: none
          group_type: group
          admin_label: ''
          label: Nom
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: false
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: string
          settings:
            link_to_entity: false
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: null
          entity_field: name
          plugin_id: field
        stores_target_id:
          id: stores_target_id
          table: commerce_shipping_method__stores
          field: stores_target_id
          relationship: none
          group_type: group
          admin_label: ''
          label: Boutiques
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: target_id
          type: entity_reference_label
          settings:
            link: true
          group_column: target_id
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: commerce_shipping_method
          entity_field: stores
          plugin_id: field
        status:
          id: status
          table: commerce_shipping_method_field_data
          field: status
          relationship: none
          group_type: group
          admin_label: ''
          label: Statut
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          click_sort_column: value
          type: boolean
          settings:
            format: enabled-disabled
            format_custom_true: ''
            format_custom_false: ''
          group_column: value
          group_columns: {  }
          group_rows: true
          delta_limit: 0
          delta_offset: 0
          delta_reversed: false
          delta_first_last: false
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: commerce_shipping_method
          entity_field: status
          plugin_id: field
        operations:
          id: operations
          table: commerce_shipping_method
          field: operations
          relationship: none
          group_type: group
          admin_label: ''
          label: Opérations
          exclude: false
          alter:
            alter_text: false
            text: ''
            make_link: false
            path: ''
            absolute: false
            external: false
            replace_spaces: false
            path_case: none
            trim_whitespace: false
            alt: ''
            rel: ''
            link_class: ''
            prefix: ''
            suffix: ''
            target: ''
            nl2br: false
            max_length: 0
            word_boundary: true
            ellipsis: true
            more_link: false
            more_link_text: ''
            more_link_path: ''
            strip_tags: false
            trim: false
            preserve_tags: ''
            html: false
          element_type: ''
          element_class: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: true
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: true
          empty: ''
          hide_empty: false
          empty_zero: false
          hide_alter_empty: true
          destination: false
          entity_type: commerce_shipping_method
          plugin_id: entity_operations
      pager:
        type: full
        options:
          items_per_page: 50
          offset: 0
          id: 0
          total_pages: null
          tags:
            previous: '‹ Previous'
            next: 'Next ›'
            first: '« First'
            last: 'Last »'
          expose:
            items_per_page: false
            items_per_page_label: 'Items per page'
            items_per_page_options: '5, 10, 25, 50'
            items_per_page_options_all: false
            items_per_page_options_all_label: '- All -'
            offset: false
            offset_label: Offset
          quantity: 9
      header: {  }
      relationships: {  }
      sorts:
        stores_target_id:
          id: stores_target_id
          table: commerce_shipping_method__stores
          field: stores_target_id
          relationship: none
          group_type: group
          admin_label: ''
          order: ASC
          exposed: false
          expose:
            label: ''
          entity_type: commerce_shipping_method
          entity_field: stores
          plugin_id: standard
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - url.query_args
        - user.permissions
      tags: {  }
drugan’s picture

@zenimagine

Seems that feature request is more suitable for the Commerce Shipping module:

#3081204: View shipping method information in views

In any case it requires a patch and update hook...

drugan’s picture

Status: Needs review » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.