LKML Ecommerce luxury consign

Orders

Orders model for ecommerce luxury consign.

inferred

Blocks

orders.view.lkml · 184 lines
inferred
view: orders {
  sql_table_name: spree_orders ;;

  dimension: id {
    type: int
    primary_key: yes
    sql: ${TABLE}.id ;;
  }

  dimension: adjustment_amount {
    type: number
    sql: ${TABLE}.adjustment_total ;;
  }

  dimension: auspient_id {
    type: int
    hidden: yes
    sql: ${TABLE}.auspient_id ;;
  }

  dimension: bill_address_id {
    type: int
    hidden: yes
    sql: ${TABLE}.bill_address_id ;;
  }

  dimension: cancel_reason {
    sql: ${TABLE}.cancel_reason ;;
  }

  dimension: is_completed {
    type: yesno
    sql: ${TABLE}.state = 'complete' ;;
  }

  dimension: is_revenue_order {
    type: yesno
    sql: ${TABLE}.state in ('complete','awaiting_return','returned','partially_returned','canceled','resumed') ;;
  }

  dimension: is_to_be_fulfilled_order {
    type: yesno
    sql: ${TABLE}.state in ('complete','awaiting_return','returned','partially_returned','resumed') ;;
  }

  dimension: am_or_pm {
    label: "AM or PM"
    sql: CASE WHEN ${created_hod} < 12 THEN "AM" ELSE "PM" END ;;
  }

  dimension: is_same_dow_as_today {
    type: yesno
    sql: dayofweek(${created_date}) = dayofweek(now()) ;;
  }

  dimension: email {
    sql: ${TABLE}.email ;;
  }

  dimension: is_first_purchase {
    type: yesno
    sql: (SELECT count(*) = 0
FROM spree_orders o
WHERE o.user_id = ${TABLE}.user_id
AND o.created_at < ${TABLE}.created_at) ;;
  }

  dimension: item_total {
    type: number
    sql: ${TABLE}.item_total ;;
  }

  dimension: notes {
    sql: ${TABLE}.notes ;;
  }

  dimension: number {
    sql: ${TABLE}.number ;;
  }

  dimension: other_reason {
    sql: ${TABLE}.other_reason ;;
  }

  dimension: payment_status {
    sql: ${TABLE}.payment_state ;;
  }

  dimension: payment_amount {
    type: number
    sql: ${TABLE}.payment_total ;;
  }

  dimension: reason_for_intervention {
    sql: ${TABLE}.reason_for_intervention ;;
  }

  dimension: ship_address_id {
    type: int
    hidden: yes
    sql: ${TABLE}.ship_address_id ;;
  }

  dimension: shipment_status {
    sql: ${TABLE}.shipment_state ;;
  }

  dimension: status {
    sql: ${TABLE}.state ;;
  }

  dimension: order_amount {
    type: number
    sql: ${TABLE}.total ;;
  }

  dimension: user_id {
    type: int
    sql: ${TABLE}.user_id ;;
  }

  dimension_group: completed {
    type: time
    timeframes: [date]
    sql: ${TABLE}.completed_at ;;
  }

  dimension_group: created {
    type: time
    timeframes: [time, date, week, month, dow, dow_num, hod, hour]
    sql: ${TABLE}.created_at ;;
  }

  measure: total_adjustment_amount {
    type: sum
    sql: ${adjustment_amount} ;;
  }

  measure: first_purchase_count {
    type: count_distinct
    filters: [is_first_purchase: "True"]
    sql: ${id} ;;
  }

  measure: percent_first_purchase {
    type: number
    sql: 100.0 * ${first_purchase_count}/IFNULL(${count},0) ;;
  }

  measure: repeat_purchase_count {
    type: count_distinct
    filters: [is_first_purchase: "False"]
    sql: ${id} ;;
  }

  measure: percent_repeat_purchase {
    type: number
    sql: 100.0 * ${repeat_purchase_count}/IFNULL(${count},0) ;;
  }

  measure: total_payment_amount {
    type: sum
    sql: ${payment_amount} ;;
  }

  measure: total_order_amount {
    type: sum
    sql: ${order_amount} ;;
  }

  measure: total_merchandise_amount {
    type: sum
    sql: ${order_amount} - ${adjustment_amount} ;;
  }

  measure: average_order_amount {
    type: average
    sql: ${order_amount} ;;
  }

  measure: count {
    type: count
  }
}
orders.view.lookml · 123 lines
source-preserved
- view: orders
  sql_table_name: spree_orders
  fields:
  - dimension: id
    type: int
    primary_key: true
    sql: ${TABLE}.id
  - dimension: adjustment_amount
    type: number
    sql: ${TABLE}.adjustment_total
  - dimension: auspient_id
    type: int
    hidden: true
    sql: ${TABLE}.auspient_id
  - dimension: bill_address_id
    type: int
    hidden: true
    sql: ${TABLE}.bill_address_id
  - dimension: cancel_reason
    sql: ${TABLE}.cancel_reason
  - dimension: is_completed
    type: yesno
    sql: ${TABLE}.state = 'complete'
  - dimension: is_revenue_order
    type: yesno
    sql: ${TABLE}.state in ('complete','awaiting_return','returned','partially_returned','canceled','resumed')
  - dimension: is_to_be_fulfilled_order
    type: yesno
    sql: ${TABLE}.state in ('complete','awaiting_return','returned','partially_returned','resumed')
  - dimension: am_or_pm
    label: AM or PM
    sql: CASE WHEN ${created_hod} < 12 THEN "AM" ELSE "PM" END
  - dimension: is_same_dow_as_today
    type: yesno
    sql: dayofweek(${created_date}) = dayofweek(now())
  - dimension: email
    sql: ${TABLE}.email
  - dimension: is_first_purchase
    type: yesno
    sql: (SELECT count(*) = 0
FROM spree_orders o
WHERE o.user_id = ${TABLE}.user_id
AND o.created_at < ${TABLE}.created_at)
  - dimension: item_total
    type: number
    sql: ${TABLE}.item_total
  - dimension: notes
    sql: ${TABLE}.notes
  - dimension: number
    sql: ${TABLE}.number
  - dimension: other_reason
    sql: ${TABLE}.other_reason
  - dimension: payment_status
    sql: ${TABLE}.payment_state
  - dimension: payment_amount
    type: number
    sql: ${TABLE}.payment_total
  - dimension: reason_for_intervention
    sql: ${TABLE}.reason_for_intervention
  - dimension: ship_address_id
    type: int
    hidden: true
    sql: ${TABLE}.ship_address_id
  - dimension: shipment_status
    sql: ${TABLE}.shipment_state
  - dimension: status
    sql: ${TABLE}.state
  - dimension: order_amount
    type: number
    sql: ${TABLE}.total
  - dimension: user_id
    type: int
    sql: ${TABLE}.user_id
  - dimension_group: completed
    type: time
    timeframes:
    - date
    sql: ${TABLE}.completed_at
  - dimension_group: created
    type: time
    timeframes:
    - time
    - date
    - week
    - month
    - dow
    - dow_num
    - hod
    - hour
    sql: ${TABLE}.created_at
  - measure: total_adjustment_amount
    type: sum
    sql: ${adjustment_amount}
  - measure: first_purchase_count
    type: count_distinct
    filters:
    - is_first_purchase: True
    sql: ${id}
  - measure: percent_first_purchase
    type: number
    sql: 100.0 * ${first_purchase_count}/IFNULL(${count},0)
  - measure: repeat_purchase_count
    type: count_distinct
    filters:
    - is_first_purchase: False
    sql: ${id}
  - measure: percent_repeat_purchase
    type: number
    sql: 100.0 * ${repeat_purchase_count}/IFNULL(${count},0)
  - measure: total_payment_amount
    type: sum
    sql: ${payment_amount}
  - measure: total_order_amount
    type: sum
    sql: ${order_amount}
  - measure: total_merchandise_amount
    type: sum
    sql: ${order_amount} - ${adjustment_amount}
  - measure: average_order_amount
    type: average
    sql: ${order_amount}
  - measure: count
    type: count

Contents

  • orders.view.lkml
  • orders.view.lookml