Saturday, March 27, 2010

Progress

Here's the progress so far:

-Customers sync/detect changes and update (done)
-Tax rates sync (done)
-Sync orders (done)
-Sku, name, prices, cost, tax assigned for simple products(done)
-Sync stock to checkoutapp (done...by auto create a purchase order like checkoutapp's own products import from file feature)
-Sync variations to checkoutapp (product attributes in magento) (done)
-Sync stock back to Magento (done)
-Automate these actions somehow, like with cron jobs or trigger after event (done...only implemented for auto order push and auto import stock to update magento's)
-Create a kind of log of each process/sync done for revising and error handling/fixing situations (done...only for the automated features, logs errors and success)

I'm planning to release a beta version asap, and a demo video.

Wednesday, March 3, 2010

Where am I - Roadmap

One thing I want to clear:
All my work is goin in the way of "syncing Magento TO Checkout App"...meaning my codes will not be as useful for those who already work on Checkout as for those who work on Magento and just want to add POS like me.

Concept is, sync tax, customers, products, stock and orders.
syncing orders will run the customers sync codes along the process to successfully assign the customer to the synced product with updated shipping addresses.
I already implemented the tax sync, but for me, in Egypt, we have only sales tax of 10%, no tax regions or any other special or compound rates...So I only implemented syncing the tax rate as a tax group in Checkout.

I am currently in the middle of coding the simple products sync.
The plan is to successfully implement :
-Customers sync/detect changes and update (done)
-Tax rates sync (done)
-Sync orders (partially done-without products or amounts)
-Sku, name, prices, cost, tax assigned for simple products(in progress)
-Sync stock to update inventory total costs and ledger
-Use of variations to sync configurable products and their associated simple products
-Sync stock back to Magento
-Automate these actions somehow, like with cron jobs or trigger after event
-Create a kind of log of each process/sync done for revising and error handling/fixing situations

I really am not finding hard time coding, and I really encourage people to start working with me on this module because in 10 days I am 30% done of what I need, so this is promising.
I also want to clear out that since I'm not just developing this for the community but first of all solve my work case. Then, not all features can be implemented in this module by me since I don't have the time, and I don't have the case to work on.

Maybe we can move this project on to bazaar or other similar project management solutions

Tuesday, March 2, 2010

Alpha 0.2.0 Release

New in this version:
-Real Magento Order Number is added to the order as a note. This makes searching for orders with Magento's # really easier from the orders list search bar.
-Sync Tax Rates from Magento to Checkout App. This is for simple tax rates, no tax regions.

Note: Complete Tax sync can be coded easily to implement all Magento's power, but for my project I am satisfied with syncing the simple tax rates. Feel free to improve the tax codings to adapt to your needs

Download Alpha 0.2.0

Monday, March 1, 2010

Alpha 0.1.0-Release

So far what I reached is complete customer sync to Checkout from orders.
You will be able to mass select orders, choose "Sync Orders" from the mass options, customer is then created/updated(update concept tested and is OK). Shipping addresses are checked and if the order's shipping address is not found it is created and assigned to the synced order.

No items, amounts or totals sync codes are written yet.

This release is just for curious people who want to really know if this project is doing fine :)
Comments and suggestions are very welcome.
enjoy :)
Download Alpha 0.1.0

Accessing CheckoutApp Database

At first, be sure you firewall your network to checkout's server or else you might have security risks. It is recommended to only forward TCP port 5505 on which Checkout's Postgres server is accessed and to enable access of WAN to only your Magento's host IP for extra security. In order for this Magento module to work, your Magento host server will have to be able to reach Checkout's server (normally this means to have server set on a static IP)

Locally, if you want to access Checkout's DB, first launch Checkout. The welcome window will show, and a loading wheel on the top right will indicate server is being started. Once server started open your preferred GUI Postgres Admin (like pgAdmin or Navicat).



When you setup a new store in Checkout, a 6 character Database Name is used, and non-related to the name you have set.
Checkout comes with a preset demo store...but let's just try to look at which databases are available on the server first.

Set in pgAdmin host as localhost (or any other adequate IP).
set port: 5505
username: admin
password: admin
set maintenance DB the default postgres

you should now be able to login.



Take note of the required DB name, we will need to input this in the module's configuration in Magento. (note that if you did not setup a new store, you should be able to see a DB already there which is the demo store)

Where to get it


CheckoutApp's crack that was released just resets the demo time period. Every 30 days you will have to overwrite a file to get access back to your store.
http://www.mac-bb.org (a really cool warez forum) has the application as well as the crack...little work for you to do here

This time reset is done with 1 file called: com.madebysofa.Checkout.plist
you have to replace it over at ~YOUR HOME/Library/Preferences
so far, you will be able to login to your store but you will see the count of days left reset to 30 days.
So to override this you replace English.lproj folder over at checkoutApp...to do so, go to your Applications folder, right click on Checkout and click "Show Package Contents" and replace the English.lproj in Contents/Resources/English.lproj

now, you will see that the copy of checkoutApp is licensed.