diff --git a/modules/commerce_shipment_message/commerce_shipment_message.info b/modules/commerce_shipment_message/commerce_shipment_message.info new file mode 100644 index 0000000..7856340 --- /dev/null +++ b/modules/commerce_shipment_message/commerce_shipment_message.info @@ -0,0 +1,8 @@ +name = Commerce Shipment Message +description = Message stack integration for Commerce Shipment. Creates a rule for sending shipping notifications and adds other useful functionality. +package = Commerce (contrib) +core = 7.x + +dependencies[] = commerce_shipment +dependencies[] = message +dependencies[] = commerce_message diff --git a/modules/commerce_shipment_message/commerce_shipment_message.message.inc b/modules/commerce_shipment_message/commerce_shipment_message.message.inc new file mode 100644 index 0000000..822375e --- /dev/null +++ b/modules/commerce_shipment_message/commerce_shipment_message.message.inc @@ -0,0 +1,45 @@ +mid)) { + return; + } + + $message->arguments['!order-tracking-numbers'] = array( + 'callback' => 'commerce_shipment_message_tracking_numbers', + 'pass message' => TRUE, + ); +} + +/** + * Message callback; Show order summary. + * + * @param $message + * The Message entity. + */ +function commerce_shipment_message_tracking_numbers(Message $message) { + $wrapper = entity_metadata_wrapper('message', $message); + $id = $wrapper->message_commerce_order->getIdentifier(); + + if ($id) { + $view = views_get_view('commerce_shipment_message_order_summary'); + $view->set_arguments(array($id)); + $view->hide_admin_links = TRUE; + return $view->preview(); + } + + return ''; +} + +/** + * Implements hook_views_api(). + */ +function commerce_shipment_message_views_api() { + return array( + 'api' => 3, + 'path' => drupal_get_path('module', 'commerce_shipment_message') . '/includes/views', + ); +} diff --git a/modules/commerce_shipment_message/commerce_shipment_message.rules_defaults.inc b/modules/commerce_shipment_message/commerce_shipment_message.rules_defaults.inc new file mode 100644 index 0000000..81cd8de --- /dev/null +++ b/modules/commerce_shipment_message/commerce_shipment_message.rules_defaults.inc @@ -0,0 +1,49 @@ +name = 'commerce_shipment_message_order_summary'; + $view->description = 'Cart line item summary displayed during checkout.'; + $view->tag = 'commerce'; + $view->base_table = 'commerce_order'; + $view->human_name = 'Order shipment info'; + $view->core = 0; + $view->api_version = '3.0'; + $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ + + /* Display: Defaults */ + $handler = $view->new_display('default', 'Defaults', 'default'); + $handler->display->display_options['title'] = 'Shopping cart'; + $handler->display->display_options['use_more_always'] = FALSE; + $handler->display->display_options['access']['type'] = 'none'; + $handler->display->display_options['cache']['type'] = 'none'; + $handler->display->display_options['query']['type'] = 'views_query'; + $handler->display->display_options['query']['options']['query_comment'] = FALSE; + $handler->display->display_options['exposed_form']['type'] = 'basic'; + $handler->display->display_options['pager']['type'] = 'none'; + $handler->display->display_options['style_plugin'] = 'table'; + $handler->display->display_options['style_options']['columns'] = array( + 'line_item_title' => 'line_item_title', + 'commerce_unit_price' => 'commerce_unit_price', + 'quantity' => 'quantity', + 'commerce_total' => 'commerce_total', + 'commerce_shipment_tracking_num' => 'commerce_shipment_tracking_num', + ); + $handler->display->display_options['style_options']['default'] = '-1'; + $handler->display->display_options['style_options']['info'] = array( + 'line_item_title' => array( + 'align' => '', + 'separator' => '', + 'empty_column' => 0, + ), + 'commerce_unit_price' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + 'empty_column' => 0, + ), + 'quantity' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + 'empty_column' => 0, + ), + 'commerce_total' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => 'views-align-right', + 'separator' => '', + 'empty_column' => 0, + ), + 'commerce_shipment_tracking_num' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + 'empty_column' => 0, + ), + ); + /* Relationship: Commerce Order: Referenced line items */ + $handler->display->display_options['relationships']['commerce_line_items_line_item_id']['id'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['relationships']['commerce_line_items_line_item_id']['table'] = 'field_data_commerce_line_items'; + $handler->display->display_options['relationships']['commerce_line_items_line_item_id']['field'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['relationships']['commerce_line_items_line_item_id']['required'] = TRUE; + /* Relationship: Entity Reference: Referencing entity */ + $handler->display->display_options['relationships']['reverse_commerce_shipment_line_items_commerce_shipment']['id'] = 'reverse_commerce_shipment_line_items_commerce_shipment'; + $handler->display->display_options['relationships']['reverse_commerce_shipment_line_items_commerce_shipment']['table'] = 'commerce_line_item'; + $handler->display->display_options['relationships']['reverse_commerce_shipment_line_items_commerce_shipment']['field'] = 'reverse_commerce_shipment_line_items_commerce_shipment'; + $handler->display->display_options['relationships']['reverse_commerce_shipment_line_items_commerce_shipment']['relationship'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['relationships']['reverse_commerce_shipment_line_items_commerce_shipment']['label'] = 'Line Item -> Shipment'; + /* Field: Commerce Line Item: Title */ + $handler->display->display_options['fields']['line_item_title']['id'] = 'line_item_title'; + $handler->display->display_options['fields']['line_item_title']['table'] = 'commerce_line_item'; + $handler->display->display_options['fields']['line_item_title']['field'] = 'line_item_title'; + $handler->display->display_options['fields']['line_item_title']['relationship'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['fields']['line_item_title']['label'] = 'Product'; + /* Field: Commerce Line item: Unit price */ + $handler->display->display_options['fields']['commerce_unit_price']['id'] = 'commerce_unit_price'; + $handler->display->display_options['fields']['commerce_unit_price']['table'] = 'field_data_commerce_unit_price'; + $handler->display->display_options['fields']['commerce_unit_price']['field'] = 'commerce_unit_price'; + $handler->display->display_options['fields']['commerce_unit_price']['relationship'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['fields']['commerce_unit_price']['label'] = 'Price'; + $handler->display->display_options['fields']['commerce_unit_price']['element_class'] = 'price'; + $handler->display->display_options['fields']['commerce_unit_price']['click_sort_column'] = 'amount'; + $handler->display->display_options['fields']['commerce_unit_price']['settings'] = array( + 'calculation' => FALSE, + ); + /* Field: Commerce Line Item: Quantity */ + $handler->display->display_options['fields']['quantity']['id'] = 'quantity'; + $handler->display->display_options['fields']['quantity']['table'] = 'commerce_line_item'; + $handler->display->display_options['fields']['quantity']['field'] = 'quantity'; + $handler->display->display_options['fields']['quantity']['relationship'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['fields']['quantity']['precision'] = '0'; + /* Field: Commerce Line item: Total */ + $handler->display->display_options['fields']['commerce_total']['id'] = 'commerce_total'; + $handler->display->display_options['fields']['commerce_total']['table'] = 'field_data_commerce_total'; + $handler->display->display_options['fields']['commerce_total']['field'] = 'commerce_total'; + $handler->display->display_options['fields']['commerce_total']['relationship'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['fields']['commerce_total']['element_class'] = 'price'; + $handler->display->display_options['fields']['commerce_total']['hide_alter_empty'] = FALSE; + $handler->display->display_options['fields']['commerce_total']['click_sort_column'] = 'amount'; + $handler->display->display_options['fields']['commerce_total']['settings'] = array( + 'calculation' => FALSE, + ); + /* Field: Commerce Shipment: Tracking Number */ + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['id'] = 'commerce_shipment_tracking_num'; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['table'] = 'field_data_commerce_shipment_tracking_num'; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['field'] = 'commerce_shipment_tracking_num'; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['relationship'] = 'reverse_commerce_shipment_line_items_commerce_shipment'; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['label'] = ''; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['element_type'] = '0'; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['element_wrapper_type'] = '0'; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['element_default_classes'] = FALSE; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['field_api_classes'] = TRUE; + $handler->display->display_options['fields']['commerce_shipment_tracking_num']['link_to_carriers'] = array( + 'ups' => 'ups', + ); + /* Sort criterion: Commerce Line Item: Line item ID */ + $handler->display->display_options['sorts']['line_item_id']['id'] = 'line_item_id'; + $handler->display->display_options['sorts']['line_item_id']['table'] = 'commerce_line_item'; + $handler->display->display_options['sorts']['line_item_id']['field'] = 'line_item_id'; + $handler->display->display_options['sorts']['line_item_id']['relationship'] = 'commerce_line_items_line_item_id'; + /* Contextual filter: Commerce Order: Order ID */ + $handler->display->display_options['arguments']['order_id']['id'] = 'order_id'; + $handler->display->display_options['arguments']['order_id']['table'] = 'commerce_order'; + $handler->display->display_options['arguments']['order_id']['field'] = 'order_id'; + $handler->display->display_options['arguments']['order_id']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['order_id']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['order_id']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['order_id']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['order_id']['summary_options']['items_per_page'] = '25'; + /* Filter criterion: Commerce Line Item: Line item is of a product line item type */ + $handler->display->display_options['filters']['product_line_item_type']['id'] = 'product_line_item_type'; + $handler->display->display_options['filters']['product_line_item_type']['table'] = 'commerce_line_item'; + $handler->display->display_options['filters']['product_line_item_type']['field'] = 'product_line_item_type'; + $handler->display->display_options['filters']['product_line_item_type']['relationship'] = 'commerce_line_items_line_item_id'; + $handler->display->display_options['filters']['product_line_item_type']['value'] = '1'; + $handler->display->display_options['filters']['product_line_item_type']['group'] = 0; + + $views['commerce_shipment_message_order_summary'] = $view; + + return $views; +}