I've been searching for quite a while on the forums and haven't found a real clear cut answer to how these two programs integrate and send data back and forth. I see a lot of old posts using the Data Client to do the exchange but these are no longer applicable.
I don't want to use any third party software as I'm sure there must be a way to do this type of integration with AC7. I need to import the orders into Worldship and then Export back to AC7 once they're shipped and have a tracking number. Does anyone have this setup without third party software?
Integrating Worldship 10 with AC7
Re: Integrating Worldship 10 with AC7
I am one of the 3rd party vendors you are avoiding, so I understand this post may appear self-serving. But I was faced with the decision to write directly to the database or not and I chose not. Shipping Agent uses the CommerceBuilder API to both read and write shipment information. Here are the 3 main reasons why:
First, reading and writing directly to and from the AbleCommerce database is not integrating with AbleCommerce. AbleCommerce is not the database. AbleCommerce has a robust layer of code (called CommerceBuilder) on top of the database that contains critical business logic. For example, if you use CommerceBuilder to mark a shipment shipped, the code examines and updates fields in multiple tables. If you write to the tables directly, you will be skipping this logic. This may leave the data in an inconsistent state which could create problems in other areas.
Second, it is hard to update multiple tables directly from WorldShip (or Ship Manager or Galaxy Ship or Shipper for that matter). Even if all you do is store the tracking number and ship date (ignoring the order status fields, etc), you will need to insert a new row into the ac_TrackingNumbers table, and update a field in the ac_OrderShipments table. I don't think you can do that with the exporter from WorldShip. You could create a new table that you export to, and then add a trigger that executes a stored procedure (that you write) to performs the insert and update. In effect, you would be rewriting a portion of CommerceBuilder using triggers and stored procedures.
Third, the database schema may change. AbleCommerce publishes an API (CommerceBuilder), but not the database schema. This means that they may change the schema in the future (e.g. to add features to their API or to improve performance). So there is no guarantee that direct database I/O will work after an update. Though this is probably a low risk.
That is why I chose a different architecture: Shipper (roughly equivalent to UPS WorldShip) talks to a Shipping Agent which is installed on the website. Shipping Agent uses the CommerceBuilder API to read and update information. That way I am certain to create consistent, well formed data in your store.
First, reading and writing directly to and from the AbleCommerce database is not integrating with AbleCommerce. AbleCommerce is not the database. AbleCommerce has a robust layer of code (called CommerceBuilder) on top of the database that contains critical business logic. For example, if you use CommerceBuilder to mark a shipment shipped, the code examines and updates fields in multiple tables. If you write to the tables directly, you will be skipping this logic. This may leave the data in an inconsistent state which could create problems in other areas.
Second, it is hard to update multiple tables directly from WorldShip (or Ship Manager or Galaxy Ship or Shipper for that matter). Even if all you do is store the tracking number and ship date (ignoring the order status fields, etc), you will need to insert a new row into the ac_TrackingNumbers table, and update a field in the ac_OrderShipments table. I don't think you can do that with the exporter from WorldShip. You could create a new table that you export to, and then add a trigger that executes a stored procedure (that you write) to performs the insert and update. In effect, you would be rewriting a portion of CommerceBuilder using triggers and stored procedures.
Third, the database schema may change. AbleCommerce publishes an API (CommerceBuilder), but not the database schema. This means that they may change the schema in the future (e.g. to add features to their API or to improve performance). So there is no guarantee that direct database I/O will work after an update. Though this is probably a low risk.
That is why I chose a different architecture: Shipper (roughly equivalent to UPS WorldShip) talks to a Shipping Agent which is installed on the website. Shipping Agent uses the CommerceBuilder API to read and update information. That way I am certain to create consistent, well formed data in your store.