+
{profileShippingAddress && profileShippingAddress.fullName}
{order.email}
@@ -60,8 +67,8 @@ class OrderSummary extends Component {
{orderRisk &&
@@ -97,28 +104,28 @@ class OrderSummary extends Component {
Processor
- {order.billing[0].paymentMethod.processor}
+ {paymentMethod && paymentMethod.processor}
Payment
- {order.billing[0].paymentMethod.storedCard} ({order.billing[0].invoice.total})
+ {paymentMethod.storedCard} ({invoice.total})
Transaction
- {order.billing[0].paymentMethod.transactionId}
+ {paymentMethod.transactionId}
Carrier
- {order.shipping[0].shipmentMethod.carrier} - {order.shipping[0].shipmentMethod.label}
+ {shipmentMethod.carrier} - {shipmentMethod.label}
@@ -155,9 +162,13 @@ class OrderSummary extends Component {
{profileShippingAddress.fullName}
-
{profileShippingAddress.address1}
+
+ {profileShippingAddress.address1}
{profileShippingAddress.address2 &&
{profileShippingAddress.address2}}
-
{profileShippingAddress.city}, {profileShippingAddress.region}, {profileShippingAddress.country} {profileShippingAddress.postal}
+
+
+ {profileShippingAddress.city}, {profileShippingAddress.region}, {profileShippingAddress.country} {profileShippingAddress.postal}
+
);
diff --git a/imports/plugins/core/orders/client/components/orderTable.js b/imports/plugins/core/orders/client/components/orderTable.js
index a5520b8cc7c..ead147c5d28 100644
--- a/imports/plugins/core/orders/client/components/orderTable.js
+++ b/imports/plugins/core/orders/client/components/orderTable.js
@@ -3,35 +3,35 @@ import PropTypes from "prop-types";
import Avatar from "react-avatar";
import moment from "moment";
import classnames from "classnames/dedupe";
-import { Reaction, i18next } from "/client/api";
+import { i18next } from "/client/api";
import { Orders } from "/lib/collections";
import { Badge, ClickToCopy, Icon, Translation, Checkbox, Loading, SortableTable } from "@reactioncommerce/reaction-ui";
import OrderTableColumn from "./orderTableColumn";
import OrderBulkActionsBar from "./orderBulkActionsBar";
import { formatPriceString } from "/client/api";
import ProductImage from "./productImage";
-import { getOrderRiskBadge, getOrderRiskStatus } from "../helpers";
+import { getOrderRiskBadge, getOrderRiskStatus, getBillingInfo, getShippingInfo } from "../helpers";
const classNames = {
colClassNames: {
- "name": "order-table-column-name",
- "email": "order-table-column-email",
- "date": "order-table-column-date hidden-xs hidden-sm",
- "id": "order-table-column-id hidden-xs hidden-sm",
- "total": "order-table-column-total",
- "shipping": "order-table-column-shipping hidden-xs hidden-sm",
- "status": "order-table-column-status",
- "": "order-table-column-control"
+ name: "order-table-column-name",
+ email: "order-table-column-email",
+ date: "order-table-column-date hidden-xs hidden-sm",
+ id: "order-table-column-id hidden-xs hidden-sm",
+ total: "order-table-column-total",
+ shipping: "order-table-column-shipping hidden-xs hidden-sm",
+ status: "order-table-column-status",
+ control: "order-table-column-control"
},
headerClassNames: {
- "name": "order-table-header-name",
- "email": "order-table-header-email",
- "date": "order-table-header-date hidden-xs hidden-sm",
- "id": "order-table-header-id hidden-xs hidden-sm",
- "total": "order-table-header-total",
- "shipping": "order-table-header-shipping hidden-xs hidden-sm",
- "status": "order-table-header-status",
- "": "order-table-header-control"
+ name: "order-table-header-name",
+ email: "order-table-header-email",
+ date: "order-table-header-date hidden-xs hidden-sm",
+ id: "order-table-header-id hidden-xs hidden-sm",
+ total: "order-table-header-total",
+ shipping: "order-table-header-shipping hidden-xs hidden-sm",
+ status: "order-table-header-status",
+ control: "order-table-header-control"
}
};
@@ -54,13 +54,6 @@ class OrderTable extends Component {
toggleShippingFlowList: PropTypes.func
}
- // helper function to get appropriate billing info
- getBillingInfo(order) {
- return order.billing.find(
- billing => billing.shopId === Reaction.getShopId()
- ) || {};
- }
-
/**
* Fullfilment Badge
* @param {Object} order object containing info for order and coreOrderWorkflow
@@ -100,6 +93,7 @@ class OrderTable extends Component {
renderOrderInfo(order) {
const { displayMedia } = this.props;
+ const invoice = getBillingInfo(order).invoice || {};
return (
@@ -120,7 +114,7 @@ class OrderTable extends Component {
- Total: {formatPriceString(this.getBillingInfo(order).invoice.total)}
+ Total: {formatPriceString(invoice.total)}
@@ -145,7 +139,9 @@ class OrderTable extends Component {
}
renderShipmentInfo(order) {
- const emailAddress = order.email ||
;
+ const emailAddress = order.email ||
+
;
+ const shipping = getShippingInfo(order);
const orderRisk = getOrderRiskStatus(order);
return (
@@ -154,11 +150,11 @@ class OrderTable extends Component {
-
{order.shipping[0].address.fullName} | {emailAddress}
+
{shipping.address && shipping.address.fullName} | {emailAddress}
{orderRisk &&
getShippingInfo(row).address && getShippingInfo(row).address.fullName,
+ id: "shippingFullName"
+ },
+ email: {
+ accessor: "email",
+ id: "email"
+ },
+ date: {
+ accessor: "createdAt",
+ id: "createdAt"
+ },
+ id: {
+ accessor: "_id",
+ id: "_id"
+ },
+ total: {
+ accessor: row => getBillingInfo(row).invoice && getBillingInfo(row).invoice.total,
+ id: "billingTotal"
+ },
+ shipping: {
+ accessor: row => getShippingInfo(row).workflow && getShippingInfo(row).workflow.status,
+ id: "shippingStatus"
+ },
+ status: {
+ accessor: "workflow.status",
+ id: "workflow.status"
+ },
+ control: {
+ accessor: "",
+ id: ""
+ }
};
const columnNames = Object.keys(filteredFields);
@@ -271,16 +291,18 @@ class OrderTable extends Component {
);
- } else if (columnName === "") {
- columnNameLabel = "";
+ } else if (columnName === "control") {
+ colHeader = " ";
resizable = false;
sortable = false;
} else {
columnNameLabel = i18next.t(`admin.table.headers.${columnName}`);
}
+
const columnMeta = {
- accessor: filteredFields[columnName],
+ accessor: filteredFields[columnName].accessor,
+ id: filteredFields[columnName].id,
Header: colHeader ? colHeader : columnNameLabel,
headerClassName: classNames.headerClassNames[columnName],
className: classNames.colClassNames[columnName],
diff --git a/imports/plugins/core/orders/client/components/orderTableColumn.js b/imports/plugins/core/orders/client/components/orderTableColumn.js
index 6e2bb06ff80..2699fb34828 100644
--- a/imports/plugins/core/orders/client/components/orderTableColumn.js
+++ b/imports/plugins/core/orders/client/components/orderTableColumn.js
@@ -5,7 +5,7 @@ import moment from "moment";
import { formatPriceString, i18next } from "/client/api";
import Avatar from "react-avatar";
import { Badge, ClickToCopy, Icon, RolloverCheckbox, Checkbox } from "@reactioncommerce/reaction-ui";
-import { getOrderRiskBadge, getOrderRiskStatus } from "../helpers";
+import { getOrderRiskBadge, getOrderRiskStatus, getBillingInfo } from "../helpers";
class OrderTableColumn extends Component {
static propTypes = {
@@ -49,9 +49,10 @@ class OrderTableColumn extends Component {
render() {
const columnAccessor = this.props.row.column.id;
+ const invoice = getBillingInfo(this.props.row.original).invoice || {};
const orderRisk = getOrderRiskStatus(this.props.row.original);
- if (columnAccessor === "shipping[0].address.fullName") {
+ if (columnAccessor === "shippingFullName") {
return (
{this.renderCheckboxOnSelect(this.props.row)}
@@ -93,14 +94,14 @@ class OrderTableColumn extends Component {
);
}
- if (columnAccessor === "billing[0].invoice.total") {
+ if (columnAccessor === "billingTotal") {
return (
);
}
- if (columnAccessor === "shipping[0].workflow.status") {
+ if (columnAccessor === "shippingStatus") {
return (