{"_id":"54cc2149380ecd0d00ca18c9","user":"5436cda4d0ffee0e00f19147","category":{"_id":"54cc2149380ecd0d00ca18ac","pages":["54cc2149380ecd0d00ca18c4","54cc2149380ecd0d00ca18c5","54cc2149380ecd0d00ca18c6","54cc2149380ecd0d00ca18c7","54cc2149380ecd0d00ca18c8","54cc2149380ecd0d00ca18c9","54cc2601380ecd0d00ca18dc","55035fc26cb452370085b3ef","561dbc1defcf8217003adf22","561e6b043e744b2100d21191"],"project":"5436a1e1d0ffee0e00f18f8c","version":"54cc2148380ecd0d00ca18aa","__v":5,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2014-10-09T15:31:21.989Z","from_sync":false,"order":1,"slug":"customer-api","title":"Customer API"},"parentDoc":null,"project":"5436a1e1d0ffee0e00f18f8c","__v":1,"version":{"_id":"54cc2148380ecd0d00ca18aa","__v":2,"forked_from":"5436a1e1d0ffee0e00f18f8f","project":"5436a1e1d0ffee0e00f18f8c","createdAt":"2015-01-31T00:26:48.753Z","releaseDate":"2015-01-31T00:26:48.753Z","categories":["54cc2149380ecd0d00ca18ab","54cc2149380ecd0d00ca18ac","54cc2149380ecd0d00ca18ad","54cc2149380ecd0d00ca18ae","54cc2149380ecd0d00ca18af","54cc2149380ecd0d00ca18b0","54cc2149380ecd0d00ca18b1","54cc2149380ecd0d00ca18b2","54cc2149380ecd0d00ca18b3","552f29ca633a5b0d00e99d09"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.1.0","version":"1.1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2014-10-12T19:28:53.468Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"auth":"never","params":[],"url":""},"isReference":false,"order":10,"body":"Be sure to read the [Quick Start](https://dash.readme.io/project/shippingeasy/v1.0/docs/getting-started-1) section first.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Introduction\"\n}\n[/block]\nShippingEasy provides a cloud-based shipping solution that allows its customers to easily consolidate orders from multiple storefronts (amazon, eBay, Bigcommerce, Shopify, Volusion, WooCommerce, Storenvy, GREAT.LY, Newegg, etc.) in order to create shipping labels from a variety of carriers (USPS, UPS, FedEx, etc.).  Overview here: https://www.youtube.com/watch?v=ERu4VFwZaP8\n\nShippingEasy has invested significant effort in building integrations to a variety of selling platforms, shopping carts, and marketplaces. For platforms/carts/marketplaces that provide an API, we can easily build an integration. For shopping carts that do not provide an API, it is necessary to build a plugin for that specific shopping cart. The plugin uses the Customer API provided by the ShippingEasy server to send data to ShippingEasy.\n\nMost of the shopping carts that do not provide an externally accessible API are implemented in PHP. To facilitate creating PHP plugins that use the ShippingEasy Customer API, we have built a PHP library for our API: https://github.com/ShippingEasy/shipping_easy-php.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Integration\"\n}\n[/block]\nIntegrating an ecommerce shopping cart with ShippingEasy requires handling four primary activities:\n\n1. Sending newly created orders to ShippingEasy automatically, at the end of the order creation process. Typically there are one or more order status “types” that should be sent automatically and all others should not be sent automatically - selection of the types is done via a customer specified option.\n\n2. Sending orders selected by the customer to ShippingEasy.  For orders that were not sent automatically, if a subsequent status change qualifies the order for shipping, the customer needs the ability to select and then send that order to ShippingEasy.\n\n3. Cancelling orders that were previously sent to ShippingEasy. For some carts this can be done automatically based on a status change - for others, a specific user interface control is needed.\n\n4. Processing a callback from the ShippingEasy server that contains shipment information for an order: specific items that were shipped, carrier used, tracking number, and shipment cost. The order is updated in the cart with the information.\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Configuration\"\n}\n[/block]\nAll ShippingEasy ecommerce plugins will require configuration settings for these four values: Customer API key, Customer API secret, ShippingEasy URL, and Store API key.\n\nAdditional configuration options will depend on the specific requirements of the shopping cart. Most will probably need options for controlling the status value an order must have before it is sent automatically at creation to ShippingEasy.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Installation\"\n}\n[/block]\nThe installation and upgrade requirements vary considerably by shopping cart. Some offer plugin marketplaces and have corresponding requirements for being listed on that marketplace (coding standards, packaging formats, etc). Others offer only crude administrative tools for “adding” a plugin to a customer’s installation via the local file system. \n\nUpgrade facilities also vary widely. Some of the carts that provide a plugin marketplace also offer APIs that can be used to alert the customer that a new version is available and even to do an in-place upgrade of the plugin.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Troubleshooting\"\n}\n[/block]\nA key requirement is the logging of activity by the plugin: attempts to send orders, attempts to cancel orders, and attempts to process a callback from the ShippingEasy server. The ecommerce plugin *must* make this information readily available via its user interface to the ShippingEasy support team to facilitate troubleshooting problems with the customer’s environment.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Store Setup\"\n}\n[/block]\nAs described in the the [Quick Start](http://shippingeasy.readme.io/v1.1/docs/getting-started-1), create a ShippingEasy API store.\n\nNote that creating a \"ShippingEasy API\" type store is something that only you will do during initial testing of your ecommerce plugin.  For partners who have contracted with ShippingEasy to deliver a plugin for a specific ecommerce platform, send a high resolution logo to product:::at:::shippingeasy.com and we will create a new entry in our list of store types that has your branding. \n\nBehind the scenes - it will still be a ShippingEasy API store, but it provides a better customer experience to have it branded.  To see an example, take a look at our GREAT.LY store; we will create similar documentation for any store where ShippingEasy has agreed with a third party to support an ecommerce plugin: https://shippingeasy.zendesk.com/entries/65268927-Using-ShippingEasy-with-GREAT-LY\n\nThe key enabling piece is the usage of API key values - there are three.  Two for the customer ShippingEasy account and one for the specific store within the account - the GREAT.LY documentation shows how this works and you will see references to the API key values in our PHP and Ruby docs.","excerpt":"","slug":"ecommerce-plugin-development","type":"basic","title":"Ecommerce Plugin Development"}

Ecommerce Plugin Development


Be sure to read the [Quick Start](https://dash.readme.io/project/shippingeasy/v1.0/docs/getting-started-1) section first. [block:api-header] { "type": "basic", "title": "Introduction" } [/block] ShippingEasy provides a cloud-based shipping solution that allows its customers to easily consolidate orders from multiple storefronts (amazon, eBay, Bigcommerce, Shopify, Volusion, WooCommerce, Storenvy, GREAT.LY, Newegg, etc.) in order to create shipping labels from a variety of carriers (USPS, UPS, FedEx, etc.). Overview here: https://www.youtube.com/watch?v=ERu4VFwZaP8 ShippingEasy has invested significant effort in building integrations to a variety of selling platforms, shopping carts, and marketplaces. For platforms/carts/marketplaces that provide an API, we can easily build an integration. For shopping carts that do not provide an API, it is necessary to build a plugin for that specific shopping cart. The plugin uses the Customer API provided by the ShippingEasy server to send data to ShippingEasy. Most of the shopping carts that do not provide an externally accessible API are implemented in PHP. To facilitate creating PHP plugins that use the ShippingEasy Customer API, we have built a PHP library for our API: https://github.com/ShippingEasy/shipping_easy-php. [block:api-header] { "type": "basic", "title": "Integration" } [/block] Integrating an ecommerce shopping cart with ShippingEasy requires handling four primary activities: 1. Sending newly created orders to ShippingEasy automatically, at the end of the order creation process. Typically there are one or more order status “types” that should be sent automatically and all others should not be sent automatically - selection of the types is done via a customer specified option. 2. Sending orders selected by the customer to ShippingEasy. For orders that were not sent automatically, if a subsequent status change qualifies the order for shipping, the customer needs the ability to select and then send that order to ShippingEasy. 3. Cancelling orders that were previously sent to ShippingEasy. For some carts this can be done automatically based on a status change - for others, a specific user interface control is needed. 4. Processing a callback from the ShippingEasy server that contains shipment information for an order: specific items that were shipped, carrier used, tracking number, and shipment cost. The order is updated in the cart with the information. [block:api-header] { "type": "basic", "title": "Configuration" } [/block] All ShippingEasy ecommerce plugins will require configuration settings for these four values: Customer API key, Customer API secret, ShippingEasy URL, and Store API key. Additional configuration options will depend on the specific requirements of the shopping cart. Most will probably need options for controlling the status value an order must have before it is sent automatically at creation to ShippingEasy. [block:api-header] { "type": "basic", "title": "Installation" } [/block] The installation and upgrade requirements vary considerably by shopping cart. Some offer plugin marketplaces and have corresponding requirements for being listed on that marketplace (coding standards, packaging formats, etc). Others offer only crude administrative tools for “adding” a plugin to a customer’s installation via the local file system. Upgrade facilities also vary widely. Some of the carts that provide a plugin marketplace also offer APIs that can be used to alert the customer that a new version is available and even to do an in-place upgrade of the plugin. [block:api-header] { "type": "basic", "title": "Troubleshooting" } [/block] A key requirement is the logging of activity by the plugin: attempts to send orders, attempts to cancel orders, and attempts to process a callback from the ShippingEasy server. The ecommerce plugin *must* make this information readily available via its user interface to the ShippingEasy support team to facilitate troubleshooting problems with the customer’s environment. [block:api-header] { "type": "basic", "title": "Store Setup" } [/block] As described in the the [Quick Start](http://shippingeasy.readme.io/v1.1/docs/getting-started-1), create a ShippingEasy API store. Note that creating a "ShippingEasy API" type store is something that only you will do during initial testing of your ecommerce plugin. For partners who have contracted with ShippingEasy to deliver a plugin for a specific ecommerce platform, send a high resolution logo to product@shippingeasy.com and we will create a new entry in our list of store types that has your branding. Behind the scenes - it will still be a ShippingEasy API store, but it provides a better customer experience to have it branded. To see an example, take a look at our GREAT.LY store; we will create similar documentation for any store where ShippingEasy has agreed with a third party to support an ecommerce plugin: https://shippingeasy.zendesk.com/entries/65268927-Using-ShippingEasy-with-GREAT-LY The key enabling piece is the usage of API key values - there are three. Two for the customer ShippingEasy account and one for the specific store within the account - the GREAT.LY documentation shows how this works and you will see references to the API key values in our PHP and Ruby docs.