View Issue Details

IDProjectCategoryView StatusLast Update
3066Composrshoppingpublic2017-03-31 19:52
ReporterChris Graham Assigned ToChris Graham  
PrioritynormalSeverityfeature 
Status resolvedResolutionfixed 
Summary3066: Shipping costs: Shipping company APIs, and more complex calculations
DescriptionCurrently you can configure a base shipping cost, and a per unit weight cost (or possibly a flat figure if 1520 is implemented).

However, shipping companies will take physical dimensions into account, and we can't abstract how they might do that. Some may charge based on volume, some based on adding the length+width+height, some may charge based on size categories, etc. Definitely distance is a factor for international shipping. The only true way to handle it is to actually use the shipping company's own APIs.

Actually, we'd abstract it by using the https://goshippo.com/ API.

This builds on 3065. The APIs would be tied to configured shipping options, a shipping option would specify what particular shipping company & plan was involved for it. We'd have config options for Shippo, and if configured the shipping option management screen would allow you to add Shippo shipping options rather than just ones certain calculation parameters.

We'd need to add shopping catalogue fields for length, width and depth.

The customer's shipping address would need to be entered before shipping could be calculated. However, this is already done for tax.
Additional InformationIdeally we could directly implement the different shipping options, avoiding goshippo. Open Source is better. However goshippo is free to use (they make money on extra services like label printing), so it is a reasonable compromise.
TagsNo tags attached.
Attach Tags
Time estimation (hours)10
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Relationships

child of 3065 Not AssignedGuest Shipping costs: Multiple configurable options 

Activities

Chris Graham

2017-02-14 20:35

administrator   ~4789

Postmen is another API option.

Chris Graham

2017-02-14 21:23

administrator   ~4790

Shippo appears easier to code for, I'm happy enough with it (although just reported some bugs).

We can do a very very basic implementation initially to solve the problem of Composr not having any way to have shipping cost vary by distance (a major issue I think)...

1) Have a config option specifying the density of items, so we can approximate the dimensions as a cube using the weight
2) Formalise the units -- allow the config option to have either pounds (plus inches) or kilos (plus metres)
3) Have a set of config option for shipping addresses. Must be able to cover the following fields: street1, city, state, zip, country, phone
4) Have a config option for the Shippo API key
5) Document; including suggestion to delete all but one shipping option in the Shippo account as only the first returned will be utilised
6) Error messaging if Shippo fails

Note for my reference - the customs object is not required for getting the rate quotes. We just need to send : object_purpose, address_from, address_to, parcel, async

Issue History

Date Modified Username Field Change
2017-02-03 15:51 Chris Graham New Issue
2017-02-03 15:51 Chris Graham Description Updated
2017-02-03 15:52 Chris Graham Relationship added child of 3065
2017-02-14 20:35 Chris Graham Note Added: 0004789
2017-02-14 21:23 Chris Graham Note Added: 0004790
2017-03-31 19:52 Chris Graham Status Not Assigned => Resolved
2017-03-31 19:52 Chris Graham Resolution open => fixed
2017-03-31 19:52 Chris Graham Assigned To => Chris Graham