You have chosen to sponsor your bid up to a maximum amount of .
I need a script that will check for payments received via PayPal and match these with open orders in our BrickLink.com web storefront. To match similar existing scripts that have already been developed for us, this script created would be written in Python and may or may not (at the coder's option) reuse existing code that has already been developed. I envision this particular script as being something running probably hourly via cron.
About the orders we receive
The number or orders we receive each day is variable from 0-10, but averages probably about 3.
Most orders will have the order number included with the PayPal payment, but some will not. Those that do not include an order number will probably need to be matched against the buyer name, physical address, or email address of the order, but in a minute amount of cases these may not be the same (Grandpa paid for grandson's order or something like that).
The dollar amount of the payment may vary slightly from the invoice as buyer's are allowed to opt out of insurance at the time of payment. Insurance is always in whole dollar amounts.
Buyers are not supposed to add additional batches to an order once they have made payment. The BrickLink website automatically prevents these if the order status is set to "Paid", but it's possible that a buyer could pay and then add an additional batch before the payment is recorded. This probably only happens once a year, but in the event that it does happen, some sort of notification should be triggered.
From a previous unfinished PayPal integration project, we should have an existing PayPal API key set up.
99% of our incoming PayPal payments are associated with BrickLink orders. One or two weekends per year we may use PayPal's virtual terminal to accept payments during a specific event. Virtual Terminal payments will never be associated with BrickLink orders.
About the platform
This script will need to run in a CentOS 5 VM that all of the rest of our current scripts use. A copy of this VM will be provided to the winning bidder.
About the website
BrickLink.com is an aging hobbyist oriented website. We simply use the site as a sales venue and have NO ACCESS whatsoever to the backend or its database, nor will the site administration make any special concessions for us. The BrickLink API itself is also rather limited and there is probably not a way to change order status via the API. You will probably have to change the order status via an HTML post. Our existing scripts should contain code that allows you to identify the list of unpaid orders with minimal changes and changing the order status has also already been accomplished via our existing scripts.
There is no sandbox for the BrickLink.com website and we are not permitted to have multiple accounts. The developer will need to make their own account, but we can assist in creating sample data to populate this account.
We also have some additional more elaborate integration work needed. That work would be offered to the developer successfully completing this project before we post it to the open market.