Edit in JSFiddle

let parentRenderCount = 0;
let childRenderCount = 0;

// in-place update, updates the fields in the same object
const mutableUpdate = order => {
  order.customerName = 'Jennifer Smith';
  return order;
}

class Parent extends React.PureComponent {
  constructor(props) {
    super(props);
    this.state = {
      order: {
        orderId: '12345',
        shippingDetails: {
          deliveryDate: '2019-10-10 12:00',
          status: 'IN TRANSIT'
        },
        customerName: 'John Doe'
      }
    }
    setInterval(() => this.setState({
      order: mutableUpdate(this.state.order)
    }), 1000);
  }
  
  render() {
    parentRenderCount++;
    return (
      <div>
        Parent {parentRenderCount}
        <Child />
        CustomerName: {this.state.order.customerName}
      </div>
    )
  }
}

class Child extends React.Component {  
  render() {
    childRenderCount++;
    return (
      <div>
        Child {childRenderCount}
      </div>
    )
  }
}

ReactDOM.render(<Parent />, document.querySelector("#app"))