Add model details
This commit is contained in:
@@ -5,7 +5,7 @@ import LineItemSchema from "./schemas/line-item"
|
|||||||
import PaymentMethodSchema from "./schemas/payment-method"
|
import PaymentMethodSchema from "./schemas/payment-method"
|
||||||
import ShippingMethodSchema from "./schemas/shipping-method"
|
import ShippingMethodSchema from "./schemas/shipping-method"
|
||||||
import AddressSchema from "./schemas/address"
|
import AddressSchema from "./schemas/address"
|
||||||
import DiscountModel from "./discount"
|
import DiscountSchema from "./schemas/discount"
|
||||||
|
|
||||||
class OrderModel extends BaseModel {
|
class OrderModel extends BaseModel {
|
||||||
static modelName = "Order"
|
static modelName = "Order"
|
||||||
@@ -23,8 +23,8 @@ class OrderModel extends BaseModel {
|
|||||||
shipping_address: { type: AddressSchema, required: true },
|
shipping_address: { type: AddressSchema, required: true },
|
||||||
items: { type: [LineItemSchema], required: true },
|
items: { type: [LineItemSchema], required: true },
|
||||||
region_id: { type: String, required: true },
|
region_id: { type: String, required: true },
|
||||||
discounts: { type: [DiscountModel.schema], default: [] },
|
discounts: { type: [DiscountSchema], default: [] },
|
||||||
customer_id: { type: String, required: true },
|
customer_id: { type: String },
|
||||||
payment_method: { type: PaymentMethodSchema, required: true },
|
payment_method: { type: PaymentMethodSchema, required: true },
|
||||||
shipping_methods: { type: [ShippingMethodSchema], required: true },
|
shipping_methods: { type: [ShippingMethodSchema], required: true },
|
||||||
metadata: { type: mongoose.Schema.Types.Mixed, default: {} },
|
metadata: { type: mongoose.Schema.Types.Mixed, default: {} },
|
||||||
|
|||||||
@@ -188,8 +188,20 @@ class OrderService extends BaseService {
|
|||||||
* @return {Promise} resolves to the creation result.
|
* @return {Promise} resolves to the creation result.
|
||||||
*/
|
*/
|
||||||
async createFromCart(cart) {
|
async createFromCart(cart) {
|
||||||
|
const o = {
|
||||||
|
payment_method: cart.payment_method,
|
||||||
|
shipping_methods: cart.shipping_methods,
|
||||||
|
items: cart.items,
|
||||||
|
shipping_address: cart.shipping_address,
|
||||||
|
billing_address: cart.shipping_address,
|
||||||
|
region_id: cart.region_id,
|
||||||
|
email: cart.email,
|
||||||
|
customer_id: cart.customer_id,
|
||||||
|
cart_id: cart._id,
|
||||||
|
}
|
||||||
|
|
||||||
return this.orderModel_
|
return this.orderModel_
|
||||||
.create({ ...cart, metadata: { cart_id: cart._id } })
|
.create(o)
|
||||||
.then(result => {
|
.then(result => {
|
||||||
// Notify subscribers
|
// Notify subscribers
|
||||||
this.eventBus_.emit(OrderService.Events.PLACED, result)
|
this.eventBus_.emit(OrderService.Events.PLACED, result)
|
||||||
|
|||||||
Reference in New Issue
Block a user