View Issue Details

IDProjectCategoryView StatusLast Update
0003066Composrshoppingpublic2017-03-31 19:52
ReporterChris GrahamAssigned ToChris Graham 
SeverityFeature-request 
Status resolvedResolutionfixed 
Product Version 
Fixed in Version 
Summary0003066: 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 0001520 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 0003065. 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.
Time estimation (hours)10
Sponsorship open

Relationships

child of 0003065 non-assigned Shipping costs: Multiple configurable options 

Activities

Chris Graham

2017-02-14 20:35

administrator   ~0004789

Postmen is another API option.

Chris Graham

2017-02-14 21:23

administrator   ~0004790

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 View Revisions
2017-02-03 15:52 Chris Graham Relationship added child of 0003065
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 non-assigned => resolved
2017-03-31 19:52 Chris Graham Resolution open => fixed
2017-03-31 19:52 Chris Graham Assigned To => Chris Graham