ecommerce multi currency multi vendor and shipping

More is More - techbrief, in brief :-) for Drupal (at present)

 

March 2008 - simon@metamute.org

 

As part of our MoreisMore.net project for human rights and social issues media distribution we have the following software projects components that we would see extrapolated as resources outside of the Drupal CMS or as services in there own right.

 

*PROJECTS*

 

  • ecommerce multi currency

  • multi vendor

  • shipping - community maintained public postal lookup resource

 

We want to take these issues to a more more refined level, creating a working P2P ecommerce system and model that would be platform agnostic. Including things like Purchasing Power Parity (PPP) so that media good are made fairly priced to people in poorer geographical regions. Also we are not yet tackling Community Couriering (CC) a major part of our system that offers lower cost transport and more, see http://linkme2.net/dp for our speculative writing on this issue

 

PPP -
http://en.wikipedia.org/wiki/Purchasing_power_parity

 

Its our ambition to abstract the moreismore.net systems outside of the Drupal specific context when we have the resources and have proven some of our
approaches to the issues to be working.

 

START PROJECTS

 

*ecommerce multi currency*

+++++++++++++++++++++

Using the geoIP module 'ip location' http://drupal.org/project/ip_locator
we'd like to set the currency for the user based on their country.

 

See also ec-location http://drupal.org/project/ec_location

 

We want the user who is creating a product to input the price in at least 6 currencies (UK, Euro, US, CAN, AUS, YEN) or have their base currency automatically converted to the other currencies based on a live or updated currency exchange rate

 

*ecommerce multi vendor*

++++++++++++++++++++

There is an ecommerce multi vendor module called 'multi vendor gateway' http://drupal.org/project/ec_mvmg this allows for the user to have their own PayPal (with IPN) and COD
account, but doesn't seem to resolve the important issue for us, having multi fulfillment centres.

 

What we need to happen is that a user decides to become a producer then they can become a fulfillment centre, at present ecommerce is
built around a single warehouse model, currently with one fulfillment centre for the whole site

 

- transaction commissions

On top of this we have a complex transaction business we wanna do as we are allowing the following;

 

  • P2P ecommerce

  • Take a commission on sales

  • Sales and returns

  • Some customers have a credit account that needs the balance settling monthly

 

This is what we need the system to facilitate;

 

The purchaser buys good on PayPal or COD, for resale locally

The purchaser can either make sales or returns, the purchaser has to report and make payments on a specific invoice

 

If they've already paid for good via PayPal it'll only be a report of sales and a request for a refund on returns.

 

If they've made the trans action via COD then there will be payments due via PayPal for sales and returns will mean a credit note against a specific invoice.

 

The producer would verify when good had been received as returns.

 

Only when these processed of sales and returns are complete does MisM request its
commission on the final sales.

 

We'd wanna send an invoice to the producer based on a % commission calculation from the final transaction's sales figure

 

- the exception

There is an exception here, outlets would be on the same deal but they have a credit account that needs to be settled at the end of each month. What this
means is that at the end of month two they pay for whatever the balance on their account is at the end of month one.

 

For example if they are holding 100 items in stock, as yet unpaid for, they have to pay for those 100 items.

 

When they make a return in month one or before next payment date they get discounted or refunded.

 

*shipping - community maintained public postal lookup resource*

+++++++++++++++++++++++++++++++++++++++++++++++

There is a module called 'Shipping' and 'Shipcalc' http://drupal.org/node/67308 . This module allow connection to external postal data, getting real time rates based on dimensions and weight.

 

We want to use this module to allow us to add two postal rate feeds.

 

A. From a publicly maintained rate-band look up chart for any region that an admin user wants to maintain

B. From our Community Courier rates look up chart

 

Such a community maintained postal rates lookup chart would accommodate places in the
world where this data isn't available for free or other informal transport or freight systems are in use.

 

We envisage a zoned class based structure of the rates, containing dimensions/weight price bands

 

For example

 

*Class*

Zone 1

Country

a. Region x

 

*Dimensions/weight band*

0-100g - euro 0.20

100-1000g - euro 4

1kg-5kg - euro 10

 

One addition is that the producer needs to be allowed to add a packaging fee per shipment.

 

Lastly the fees calculated here in a local currency would have to be converted in real time to the users currency.

 

We see such a publicly maintained postal rates repository to be freely available to other systems

Multi currency update

Multi-currency

We need it so that the creator of a product can set the value of an item in different currencies, (UK, Euro, US, CAN, AUS, YEN).

We want the user to be able to set their own rate for each of these currencies, individually if they choose too.

If not the user can choose to accept our conversion rates for the different currencies.

Our conversion rates could be set every six months or some other regular cycle.

All orders would be charged at rate when made, changes would take place at GMT 00:00 and system could be closed for transaction at the time of switching for 30 minutes.

We would designate what currencies were user for specific regions. For example; USA – USD, Euro Zone – Euro, Non Euro Zone – Euro. I would suggest we associate our chosen system currencies to be associated to countries.

Questions?

Should the account balances be held in separate currencies (UK, Euro, US, CAN, AUS, YEN) like PayPal. Second does the user set their own base currency or do we set a system wide base currency.

My recommendation would be yes that we hold the currencies in separate account, as users will be trading locally and so currency conversions will not always be needed.

We want the system to be expandable to accommodate other currencies at a later stage.

Setting the users currency, I would suggest we have the users GeoIP or country location set the currency of the system. With the user only being able to set their account default currency once.

END

Beyond the stars