Nigma is built on top of a powerful XML based API that you can connect to from any application using almost any programming language. The API can not only receive and respond to XML messages; it can also send notifications of important events from within the system. You as developers can plug into this system and extend its already powerful functionality in any way you desire.

WHAT IS AN API?
Developers use Application Programming Interfaces (API) to simplify complex processes. Take for example the act of placing an order.

  1. First a shopping cart is created.
  2. The user data is collected and stored temporarily.
  3. A connection to a payment processor is established, the credit card is attempted to be billed and a response is received.
  4. A number of actions could be taken based on this response, but assuming that it is approved, the cart is converted to an order.
  5. To do this a database connection must be established.
  6. The data is then fed into the database.
  7. Any errors are handled and fixed.
  8. The user data is then inserted and results are returned.

This is obviously a ton of processing and would be unreliable to code from scratch each time you wished to develop this kind of process; not to mention the type of database or payment gateway could change. Imagine adding new requirements ontop of this such as order confirmation emails, sales tracking, affiliate tracking, order fullfillment systems and it can quickly get out of hand. An API dramatically simplifies this process by subtracing as many of the complex and reptitive processes as possible.

In the below diagram, you can see how the Nigma API provides a simple interface for performing and connecting to banks and credit card gateways, databases, email, shipping carriers and third party applications. It also handles data processing such as order processing.

Nigma Remote XML API

Every function that Nigma is capable of performing can be called using the remote API. Each call accepts an XML message as its paramaters. Each message is formatted in the same basic way and it is possible to send multiple messages at once to create more complex search queries.

MESSAGE STRUCTURE
A message consists of a header, paramaters, and navigation options. The header tells Nigma which call you are attempting to make. The paramaters specify the actual instructions of your call. And finally, the navigation section tells Nigma which results you wish to have it return (ie. page 5 given page size is 30) and in what order. Below is an outline of how the message is formatted. Notice that the entire message is encased in a <bbv2> node.

  • <bbv2>
    • <header>
      • <remoteAccessHash>API Password</remoteAccessHash>
      • <command>Type of Command to Execute</command>
    • </header>
    • <params>search xml goes here</params>
    • <navigation>params to aid in navigation of results</navigation>
  • </bbv2>

Click here for an introduction on how to get started.

Below is a growing list of all the current API calls you can make. Click the name to view the details of the function and to see samples.

Name of Command Brief Description
Authenticate Authenticates user logins (both admins and clients).
GetAdmins Returns admin data.
GetArticleCategories Returns article categories.
GetArticles Returns articles.
GetAttributes Returns product attributes and corresponding options (if options are present).
GetCardTypes Returns available credit card types.
GetCarriers Returns supported shipping carriers.
GetCarts Returns shopping carts (including product data).
GetCatalogs Returns product catalog (optionally the products).
GetCategory Returns product categories (one level at a time).
GetClients Returns client data.
GetCommands Returns a list of supported commands (may be more recent than this list)
GetCountries Returns countries and abbreviations.
GetCycle Returns available product cycles.
GetDepartments Returns admin panel departments.
GetFAQCategories Returns categories for FAQs
GetFAQs Returns FAQ data.
GetGatewayInfo Returns data regarding implementations of a payment gateway.
GetGateways Returns available payment gateways.
GetImages Returns product images and related data (ie. file name, date, alt text, etc).
GetInvoices Returns invoice data.
GetMessages Returns messages (currently just email messages).
GetNotes Returns notes regarding clients, invoices or orders.
GetOrders Returns order data.
GetProducts Returns product data.
GetReports Returns a real-time report.
GetReviews Returns review data.
GetSettings Returns admin panel settings data.
GetShipments Returns information about shipments made for invoices.
GetShipping Returns shipping calculations for a cart, order or an invoice.
GetShippingFlags Returns rules used for calculating shipping.
GetTasks Returns task data.
GetTaxes Returns tax rules.
GetTemplates Returns email template data.
GetTickets Returns support ticket data.
ProcessInvoices Processes invoices marked as due (one or many).
ProcessMessages Processes messages (currently email messages). Send/Receive.
ProcessOrders Processes active/pending orders into invoices to be billed.
ResetPassword Resets a clients password.
SetAdmins Saves admin data.
SetArticleCategories Saves article category data.
SetArticles Saves article data.
SetAttributes Saves product attribute data.
SetCarriers Saves shipping carrier data.
SetCarts Saves cart data.
SetCatalogs Saves product catalog data.
SetCategory Saves category data.
SetClients Saves client data.
SetCountries Saves country data.
SetDepartments Saves admin panel department data.
SetFAQCategories Saves FAQ category data.
SetFAQs Saves FAQ data.
SetGatewayInfo Saves implementation of payment gateway data.
SetInvoices Saves invoice data.
SetNotes Saves note data.
SetOrders Saves order data.
SetPermissions Saves admins' permssions data.
SetProducts Saves product data.
SetReviews Saves review data.
SetSettings Saves settings data.
SetShipments Saves shipping slips data.
SetShippingFlags Saves shipping flag rule data.
SetTasks Saves task data.
SetTaxes Saves tax rule data.
SetTemplates Saves email message template data.
SetTickets Saves support ticket data.