trailpack-proxy-cart
Version:
eCommerce - Trailpack for Proxy Engine
51 lines (45 loc) • 1.64 kB
JavaScript
const Service = require('trails/service')
/**
* @module ShippingService
* @description Shipping Service
*/
module.exports = class ShippingService extends Service {
calculate(obj, lineItems, shippingAddress, resolver, options){
options = options || {}
let resObj
return resolver.resolve(obj, {transaction: options.transaction || null})
.then(_obj => {
if (!_obj) {
throw new Error('Could not resolve for shipping')
}
resObj = _obj
return this.app.services.ProxyCartService.resolveItemsFromTo(resObj, lineItems.filter(i => i.requires_shipping), shippingAddress)
})
.then(resolvedItemsFromTo => {
if (!resolvedItemsFromTo) {
return resObj
}
return this.getShipping(resObj, lineItems, resolvedItemsFromTo, options)
})
.then(shippingResult => {
return shippingResult
})
}
getShipping(obj, lineItems, resolvedItemsFromTo, options) {
options = options || {}
// const shippingProvider = this.app.config.proxyGenerics[obj.shipping_provider]
// || this.app.config.get('proxyGenerics.shipping_provider')
return Promise.resolve({
line_items: []
})
// console.log('WORKING ON SHIPPING TAX FOR ORDER', obj, lineItems, sendFromTo)
// return this.app.services.TaxGenericService.taxForOrder({
// nexus_addresses: resolvedItemsFromTo.nexus_addresses,
// to_address: resolvedItemsFromTo.to_address,
// line_items: lineItems,
// subtotal_price: obj.subtotal_price,
// total_shipping: obj.total_shipping
// }, taxProvider)
}
}