Click or drag to resize

EcommerceStandardsDocuments Namespace

The Ecommerce Standards Documents provides a standard for storing different kinds of Ecommerce data, allowing the data be supported and transferred between business systems in a consistent, platform independent, software independent way. Its aims are provide an open, easy, and efficient way of allowing different software providers to allow Ecommerce data to be exchanged, reducing the complexities of integrations, cutting down development costs, and saving time for everybody.

The EcommerceStandardsDocument .NET library provides an implementation of the standards that allows the library to be embedded into any .NET software, and utilised by the software to store and transfer Ecommerce Standards Documents using the classes provided.

The .NET library is an open source project that can be downloaded from GitHub at https://github.com/squizzdotcom/ecommerce-standards-documents-dotnet-library

Additionally the standards library can be downloaded and used natively within Java applications from the GitHub project at https://github.com/squizzdotcom/ecommerce-standards-documents-java-library

The standards library can be downloaded and used natively within PHP applications from the GitHub project at https://github.com/squizzdotcom/ecommerce-standards-documents-php-library

Document Types

The standards define a number of different types of documents. Each document type can store a set of records for a specific type of Ecommerce entity (eg. products, pricing, customer accounts). These documents can be transferred between business systems by serialising them into the JSON (JavaScript Object Notation) data format, which is a human readable data format. Systems reading in the documents can then de-serialise the data, and process the data to their own needs.

In this Ecommerce Standards Documents .NET library any class prefixed with the "ESDocument" text in its class name denotes that the class can be used to store document data.

Record Types

For each Ecommerce Standards Document it contain contain a list of records, that each have a number of properties that store pieces of data. The kinds of properties available are dependent on the type that the record reflects. If a record property is prefixed with the text "key" then it denotes that the property is a unique identifier for the record, or that the record is referencing another record. These key properties can be thought of as "primary keys" or "foreign keys" in database terminology that allow records to be referenced, and linked to one another. Typically a record type will have one key property defined that allows it to be the primary identifier of the record. This allows systems to be able to detect when a document being read contains record data that may already exist within its system.

In this Ecommerce Standards Documents .NET library any class prefixed with the "ESDRecord" text in its class name denotes that the class can be used to store record data.

Document Transfer

Besides the Ecommerce Standards Documents storing data in a standardised way, each document contains a number of properties which can be used to aid in the requesting, and transfer of data between systems. These include properties to notify if the data for the document could be successfully obtained or not, and the reason why any data could not be obtained. Additionally properties can be set within both the document and the records, so that only a partial set of records needs to be transferred between systems, as opposed to the full set of records. This can help reduce the size of length of time required to transfer documents. The "drop" property can be set for each record to notify the system that the records being transferred to may need to have operations performed such as insertion, deletion, updating or ignoring records when they are retrieved.

Web Services

One of the primary objectives of using Ecommerce Standards Documents is to have the ability to request and retrieve the documents via the use of web services. Web services can allow the documents to be requested in real time over an internal computer network (also known as a Local Area Network LAN), or over the internet (also known as the Wide Area Network WAN) between systems. Though implementation of web services is not explicitly covered in the standards, a number of recommendations and guidelines are presented here to aid in inter-operability of systems using the documents.

Systems providing Ecommerce Standards Documents via a web service in their software will need to implement webservice "endpoints", that each allow the document data to be requested and returned for given document types. Each of the endpoints needs to return the document data in the JSON data format. Ideally the endpoints are provided as RESTful endpoints, which allow methods in the HTTP protocol to be used to control if data is being obtained to pushed between systems.

It is highly recommended that if webservices are used that any document data is sent over a secure HTTPS connection to protect the data from outsiders, especially if the data is being transferred over the public internet. Additionally document data should be compressed using the GZIP algorithm, or any other widely supported HTTP compression algorthms since each document could contain a very large amount of data. It has not been uncommon to see documents with over 300MB of data being transferred. It is also highly recommended to stream the data to allow large sized documents to be read in small chunks, rather than being stored in full in memory before processing occurs on the system retreiving the data.

It is up to software providers to name their web service endpoints however they wish, but it is recommended that authentication measures are built into each endpoint to stop unauthorised access to document data. One way to do this is through the use of placing username-password authorisation data in the header of a HTTP request to the endpoint. It is recommended that the credential data is hashed so that any web hosting servers are not logging credentials insecurely with request data, or that the raw credentials can be read by other software transferring the requests.

The ordering of the properties in a serialised JSON document is important so that the properties that describe the document's record data can be read before the records themselves. When streamed this can allow systems to report information about the document before the records are being processed, such as the amount of records being imported, as well as reading information about how to parse the record data.

Ecommerce Standards Documents Web Service Template Project

An open source project has been added to GitHub that provides an example webservice application built in the .NET that returns and reads Ecommerce Standards Documents data. The project's source code can be found at Ecommerce Standards Documents Webservice Template. Using the project it can help build a standards based webservice into existing business systems built in the .NET platform.

Web Service End Points

Below are the following recommended end points for software providers to implement in the web service component of their systems for handling Ecommerce Standards Documents. Note that not all systems will require all endpoints to exist, but it would be useful to return empty documents if the supporting system has no data for the endpoint.

Endpoint NameReturned DocumentInput ArgumentsDescription
getCategoriesESDocumentCategory-Returns a list of categories records, as well as products, labour, and downloads mappings associated to each category.
getCustomerAccountsESDocumentCustomerAccount-Returns a list of customer account records.
getCustomerAccountStatusESDocumentCustomerAccountkeyCustomerAccountID, checkOnHold, checkBalance, checkTermsReturns a single customer account record that contains information about the account's status. This endpoint typically allows a real time request to see the status of the account. Optionally checks can be done to see if it is on hold, outside its balance limit, and that it is within its terms.
getCustomerAccountAddressesESDocumentCustomerAccountAddress-Returns a list of customer account address records.
getCustomerAccountContactESDocumentCustomerAccountContact-Returns a list of customer account contract records.
getCustomerAccountEnquiryRecordsESDocumentCustomerAccountEnquirykeyCustomerAccountID, recordType, beginDate, endDate, pageNumber, numberOfRecords, outstandingRecords, searchType, searchString, keyRecordIDsReturns a list of customer account enquiry records for a single customer account based on a given record type (either transactions, invoices, sales orders, back orders, payments, or credits). It can allow searching based on the account type, over a given date range. Each record does not need to contain any line data.
getCustomerAccountEnquiryRecordESDocumentCustomerAccountEnquirykeyCustomerAccountID, recordType, keyRecordIDReturns a list of customer account enquiry records that contains only one record for a customer account based on a given record type (either a transaction, invoice, sales order, back order, payment, or credit). The record contains all possible data for it, including all lines set in it.
getCustomerAccountProductPriceESDocumentCustomerAccountProductPrice-keyCustomerAccountID, keyProductID, quantityReturns the price of a single product for a given customer account. This allows for live quering of product pricing. However it is not recommended to be used between systems over a long, slow connection.
getDownloadsESDocumentDownload-Returns a list of download records.
getItemGroupsESDocumentItemGroups-Returns a list of item group records.
getItemRelationsESDocumentItemRelations-Returns a list of item relations records.
getLocationsESDocumentLocation-Returns a list of location records.
getPaymentTypesESDocumentPaymentType-Returns a list of payment type records.
getPriceLevelsESDocumentPriceLevel-Returns a list of price-level records.
getProductsESDocumentProduct-Returns a list of product records.
getProductAlternateCodesESDocumentAlternateCode-Returns a list of alternate code records associated to products.
getProductAttachmentsESDocumentAttachment-Returns a list of attachment records associated to products. This can be used to locate files associated with the products.
getProductAttributesESDocumentAttribute-Returns a list of attribute profile records, as well as attribute value records assigned to products.
getProductCombinationESDocumentProductCombination-Returns a list of product combination profile records, as well as mappings of field-value combinations between parent and child products.
getProductFlagsESDocumentFlag-Returns a list of records that assign flags to products.
getProductImagesESDocumentProductImage-Returns a list of image records associated to products. These records can be used to locate image files associated to products.
getProductKitsESDocumentKit-Returns a list of kit records which associate component products to kit products.
getProductPriceLevelPricingESDocumentProductPrice-Returns a list of single unit pricing records for each price-level for all products.
getProductPriceLevelQuantityPricingESDocumentPrice-Returns a list of quantity break pricing records for each price-level for all products.
getProductCustomerAccountPricingESDocumentPrice-Returns a list of product price records that are specifically related to customer accounts, or to pricing groups that customer accounts are assigned to. This endpoint is typically used to obtain contract/special/promotional pricing related to specific accounts. It is highly recommended to use pricing groups if the same pricing rules have been applied to customer accounts.
getProductStockQuantitiesESDocumentStockQuantity-Returns a list of stock quantity records. These records containg the quantity of stock available to the products. Sometimes this endpoint can be called very frequently to ensure that stock data is up to date in other systems in "near real time".
getPurchasersESDocumentPurchaser-Returns a list of purchaser records.
getSalesRepsESDocumentSalesRep-Returns a list of sales representative records.
getSellUnitsESDocumentSellUnit-Returns a list of sell unit records.
getSupplierAccountsESDocumentSupplierAccount-Returns a list of supplier account records.
getSupplierAccountAddressesESDocumentSupplierAccountAddress-Returns a list of supplier account address records.
getSupplierAccountEnquiryRecordsESDocumentSupplierAccountEnquirykeySupplierAccountID, recordType, beginDate, endDate, pageNumber, numberOfRecords, outstandingRecords, searchType, searchString, keyRecordIDsReturns a list of supplier account enquiry records for a single supplier account based on a given record type (either transactions, purchase orders, payments, or credits). It can allow searching based on the account type, over a given date range. Each record does not need to contain any line data.
getSupplierAccountEnquiryRecordESDocumentSupplierAccountEnquirykeySupplierAccountID, recordType, keyRecordIDReturns a list of supplier account enquiry records that contains only one record for a supplier account based on a given record type (either a transaction, purchase order, payment, or credit). The record contains all possible data for it, including all lines set in it.
getSurchargesESDocumentSurcharge-Returns a list of surcharge records.
getTaxcodesESDocumentTaxcode-Returns a list of taxcode records.
getStatusESDocument-Returns a the status of the system.
postSaleOrdersESDocumentESDocumentOrderSalePushes a list of sales order records, allowing the records to be saved to the system. The ESDocumentOrderSale data should be placed in the body of the http request, with the returned ESDocument reporting if all sales order records were successfully processed or not. It is recommended to only place one sales order into the document if transactions are not supported when creating multiple sales orders through one request.
postPurchaseOrdersESDocumentESDocumentOrderPurchasePushes a list of purchaser order records, allowing the records to be saved to the system. This could cause new product, download, labour, pricing, alternate code, supplier account, and supplier account address records to get created in the system. The ESDocumentOrderPurchase data should be placed in the body of the http request, with the returned ESDocument reporting if all purchase order records were successfully processed or not. It is recommended to only place one purchase order into the document if transactions are not supported when creating multiple purchase orders through one request.
postCustomerAccountsESDocumentESDocumentCustomerAccountPushes a list of customer account records, allowing the records to be saved to the system. This could cause new customer account records to get created in the system. The ESDocumentCustomerAccount data should be placed in the body of the http request, with the returned ESDocument reporting if all customer account records were successfully processed or not. It is recommended to only place one customer account into the document if transactions are not supported when creating multiple customer accounts through one request.
postCustomerAccountPaymentsESDocumentESDocumentCustomerAccountPamentPushes a list of customer account payment records, allowing the records to be saved to the system. This allows payments to be applied against orders and invoice records for a given customer account. The ESDocumentCustomerAccountPayment data should be placed in the body of the http request, with the returned ESDocument reporting if all customer account payment records were successfully processed or not. It is recommended to only place one customer account payment into the document if transactions are not supported when creating multiple customer account payments through one request.

Version Control

Each document contains a property that defines the version of the Ecommerce Standards Documents that it implements. It is very important for systems to check the version of the document retrieved and be able to parse it correctly for its version. Over time the document standards will change and its up to each software provider that ensure that their systems keep up with the changes to the standards. Major version changes may indicate that significant changes have been made and maybe entirely incompatible with earlier versions. For example parsing version 2 of one type of document, may not be compatible with parsing version 1 of the same document type. It is important for software providers when writing parsers for documents that they are fault tolarant. For example if a product record contains the property "product_title", that if the property does not exist in the standards then to just ignore the property. By doing so it may allow systems not keeping up with the minor version changes to the standards to still have the ability to understand a document. This also also allows software providers to add non-standards properties to documents and records, however it should not be presumed that any other system will be able to understand these properties.

The current version of the Ecommerce Standards Documents is

1.3



Currently any changes to the standards must be requested to the Standards maintainer, this is currently Rowan Drew at Squizz Pty Ltd. In the future a board may be organised to oversee changes to the standards, ensuring independence, and industry wide agreement.

History

The Ecommerce Standards Documents was first created by Rowan Drew working for TOTECS Pty Ltd to allow its Connector software to integrate into several accounting and Enterprise Resources Planning (ERP) systems. Between 2006-2016 he saw consistent design patterns that each of these systems implemented when storing and using Ecommerce data, and developed the standards so that the data from each system could be imported into the TOTECS platform in the same way, as well as be exported back. This greatly simplified the development of integrations into new systems, and reduced the development time from 6-12 months, down to 4-8 weeks.

By opening up the standards to the software providers in the wider industry, the aims are to further reduce the integration times so that each software provider only needs to translate their systems data into the standards, and then any other software provider in the industry can talk directly to the other system. This has many benefits since a software provider knows their own system the best, so they can be make the best judgement on which pieces of data need to placed into the correct document. The standards also allow a software provider to make major changes to their systems internal data structures between versions. but still allow third party software to obtain the data in the same consistent document standards.

Over time the document standards have evolved as more functionality has been requested and expected by the wider community using Ecommerce websites and systems. As this evolution is expected to continue these Ecommerce Standards Documents will continue to expand, helping out the wider Ecommerce industry.

Ecommerce Standards Document Library For .NET

This Library has been created to the allow the Ecommerce Standards Documents to be created and manipulated easily in .NET software applications. It allows documents and records to be represented as .NET classes and have data stored in memory as objects, free to be filled with data, passed around, and serialised into the standards JSON form.

Getting Started Using The .NET Library

To get started using the Ecommerce Standards Documents library obtain the DLL file from your contact person. Save the DLL file in a location of choice. Within the Visual Studio application open up your chosen .NET project, then add a reference to the project's dll. Once the reference has been added, then for each class add the EcommerceStandardsDocuments namespace to be able to stand creating the document objects.

Examples
Example code usage of the Product Ecommerce Standards Document to obtain 2 product records.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using EcommerceStandardsDocuments;

namespace MyApp{
    public class MyClass
    {
        /// <summary> Obtains a list of products records contained within an a products Ecommerce Standards Document</summary>
        public ESDocumentProduct getProducts()
        {
            List<ESDRecordProduct> products = new List<ESDRecord>();
            Dictionary<string, string> docConfigs = new Dictionary<string, string>();

            //create a new product Ecomerce Standards Document
            ESDocumentProduct productsDoc = new ESDocumentProduct(ESDocumentConstants.RESULT_ERROR_UNKNOWN, "Unable to get product data.", null, null);

            //create a record for a tea towel product
            ESDRecordProduct product1 = new ESDRecordProduct();
            product1.keyProductID = "1";
            product1.productCode = "PROD-1";
            product1.name = "Tea Towels";
            product1.description1 = "An assorted bundle of different coloured tea towels";
            products.add(product1);

            //create another record for a kettle product
           ESDRecordProduct product2 = new ESDRecordProduct();
            product2.keyProductID = "2";
            product2.productCode = "PROD-2";
            product2.name = "Kettle";
            products.add(product2);

            //in the document configs list all the properties of the product records that are being set, any properties not in the list can be ignored by the system when processing the product records
            docConfigs.Add("dataFields","keyProductID,productCode,name,description1");

            //assign the product records to the document and update document meta data
            productsDoc.configs = docConfigs;
            productsDoc.totalDataRecords = products.Count;
            productsDoc.dataRecords = products.ToArray();
            productsDoc.resultStatus = ESDocumentConstants.RESULT_SUCCESS;
            productsDoc.message = "Product data has been successfully obtained.";

            return productsDoc;
         }

         /// <summary>
         ///  Serializes a product Ecommerce Standards Document into a stream of JSON data. That JSON data is returned in a WCF (Windows Communication Library) message object, which would typically be set in the HTTP response to a web service endpoint GET request.
         ///  In this example the document is being serialized using the JSON.net open source library, which is included in the Ecommerce Standards Library.
         /// </summary>
         /// <param name="productsDoc">Ecommerce Standards Document containing product record data.</param>
         /// <returns>WCF message containing the serialised JSON data.</returns>
         public System.ServiceModel.Channels.Message serializeESProductDocument(ESDocumentProduct productsDoc)
         {
            //Set HTTP response header to denote that the data will be GZipped. Note that the actual compression would occur outside this method.
            WebOperationContext.Current.OutgoingResponse.Headers[HttpResponseHeader.ContentEncoding] = "gzip";

            //Create JSON.NET serializer that will ignore including JSON properties that contain empty values
            JsonSerializer serializer = new JsonSerializer();
            serializer.NullValueHandling = NullValueHandling.Ignore;
            serializer.MissingMemberHandling = MissingMemberHandling.Ignore;

            //serialise the products Ecommerce Standards Document
            string jsonSerialized = JsonConvert.SerializeObject(productsDoc);

            //Place the serialised JSON data into a memory stream
            MemoryStream resultBody = new MemoryStream(new UTF8Encoding().GetBytes(jsonSerialized));
            resultBody.Position = 0;

            //Resurn the serialised JSON data into WCF's response message, which can allow it to be included in the body of a HTTP response from a web service RESTful endpoint request
            return WebOperationContext.Current.CreateStreamResponse(resultBody, "application/json");
         }
    }
}
An example of the Product Ecommerce Standards Document in its JSON serialised form for data transfer.
{
    "version": 1.3,
    "resultStatus": 1,
    "message":"Product data has been successfully obtained.",
    "totalDataRecords": 2,
    "dataTransferMode": "COMPLETE",
    "configs": {"dataFields":"keyProductID,productCode,name,description1"},
    "dataRecords":
    [
            {
                "keyProductID":"1",
                "productCode":"PROD-1",
                "name":"Tea Towels",
                "description1":"An assorted bundle of different coloured tea towels."
            },
            {
                "keyProductID":"2",
                "productCode":"PROD-2",
                "name":"Kettle"
            }
    ]
}
Note that the new line characters would be normally not be included when the document is serialised. These have just been included for demonstration purposes.

Getting Started With Non .NET Programming Languages

To get started using the Ecommerce Standards Documents in a programming language other than .NET, Java or PHP, you will need to create your own classes to represent the document and records types containing the same properties as is speciified in the .NET library. You may wish to use a JSON library to directly represent the serialised form of the documents. Over time we look to provide libraries of the documents to more programming languages. If you wish to help this process please contact the document maintainer.
Classes
  ClassDescription
Public classESDocument
Ecommerce Standards Document that contains the base set of properties for all documents
Public classCode exampleESDocumentAlternateCode
Ecommerce standards document that contains a list of alternate code records associated with products, downloads, or labour
Public classCode exampleESDocumentAttachment
Ecommerce standards document that contains a list of attachment file records associated with products, downloads or labour
Public classCode exampleESDocumentAttribute
Ecommerce standards document that contains a list of attribute records associated with products, download, and labour, as well as a list of attribute profile records
Public classCode exampleESDocumentCategory
Ecommerce standards document that contains a list of category records
Public classESDocumentConstants
Contains a list of variable constants that can be used in Ecommerce Standards Documents and records
Public classCode exampleESDocumentCurrencyExchangeRate
Ecommerce standards document that holds a list of currency exchange rate records
Public classCode exampleESDocumentCustomerAccount
Ecommerce standards document that holds a list of customer account records
Public classCode exampleESDocumentCustomerAccountAddress
Ecommerce standards document that holds a list of address records for customer accounts
Public classCode exampleESDocumentCustomerAccountContract
Ecommerce standards document that holds a list of contract records for customer accounts
Public classCode exampleESDocumentCustomerAccountEnquiry
Ecommerce standards document that holds lists of invoices, transactions, sales orders, back orders, credits and payment records for customer accounts. This document can by used in many ways for enquiring about different data associated to a customer account's finances.
Public classESDocumentCustomerAccountEnquiryLine
Public classESDocumentCustomerAccountEnquiryProductPrice
Ecommerce standards document that contains a list of pricing records applicable to a customer account for a number of products
Public classCode exampleESDocumentCustomerAccountPayment
Ecommerce standards document that holds a list of customer account payment records
Public classCode exampleESDocumentCustomerInvoice
Ecommerce standards document that contains a list of customer invoice records
Public classCode exampleESDocumentDeliveryNotice
Ecommerce standards document that contains a list of delivery notice records
Public classCode exampleESDocumentDownload
Ecommerce standards document that contains a list of download records.
Public classCode exampleESDocumentFlag
Ecommerce standards document that contains a list of flag records and products, dowloads, or labour assigned to flags
Public classCode exampleESDocumentGeneralLedgerAccount
Ecommerce standards document that holds a list of general ledger account records
Public classCode exampleESDocumentImage
Ecommerce standards document that contains a list of image file records associated with products, downloads, or labour
Public classCode exampleESDocumentItemGroup
Ecommerce standards document that contains a list of item group records
Public classCode exampleESDocumentItemRelation
Ecommerce standards document that contains a list of item relation records
Public classCode exampleESDocumentKit
Ecommerce standards document that contains a list of kit records
Public classCode exampleESDocumentLabour
Ecommerce standards document that contains a list of labour records.
Public classCode exampleESDocumentLocation
Ecommerce standards document that contains a list of location records
Public classCode exampleESDocumentMaker
Ecommerce standards document that contains a list of maker/manufacturer records
Public classCode exampleESDocumentMakerModel
Ecommerce standards document that contains a list of model records associated to makers/manufacturers
Public classCode exampleESDocumentMakerModelMapping
Ecommerce standards document that contains a list of maker model mappings records that associate product, download, or labour records to categories within models manufactured or assembled by makers/manufacturers
Public classCode exampleESDocumentOrderPurchase
Ecommerce standards document that contains a list of purchase order records
Public classCode exampleESDocumentOrderSale
Ecommerce standards document that contains a list of sales order records
Public classCode exampleESDocumentPaymentType
Ecommerce standards document that contains a list of payment type records
Public classCode exampleESDocumentPrice
Ecommerce standards document that contains a list of pricing records for either products, downloads, or labour
Public classCode exampleESDocumentPriceLevel
Ecommerce standards document that contains a list of price level records
Public classCode exampleESDocumentProduct
Ecommerce standards document that contains a list of product records
Public classCode exampleESDocumentProductCombination
Ecommerce standards document that contains a list of product combination records, and a list of product combination profile records
Public classCode exampleESDocumentPurchaser
Ecommerce standards document that contains a list of purchaser records
Public classCode exampleESDocumentSalesRep
Ecommerce standards document that contains a list of sales representative records
Public classCode exampleESDocumentSellUnit
Ecommerce standards document that contains a list of sell unit records
Public classCode exampleESDocumentStockQuantity
Ecommerce standards document that contains a list of stock quantity records
Public classCode exampleESDocumentSupplierAccount
Ecommerce standards document that holds a list of supplier account records
Public classCode exampleESDocumentSupplierAccountAddress
Ecommerce standards document that holds a list of address records for supplier accounts
Public classCode exampleESDocumentSupplierAccountEnquiry
Ecommerce standards document that holds lists of purchase orders for supplier accounts. This document can by used in many ways for enquiring about different data associated to a supplier account's finances.
Public classCode exampleESDocumentSupplierInvoice
Ecommerce standards document that contains a list of supplier invoice records
Public classCode exampleESDocumentSurcharge
Ecommerce standards document that contains a list of surcharge records
Public classCode exampleESDocumentTaxcode
Ecommerce standards document that contains a list of taxcode records
Public classESDocumentType
Contains the types of Ecommerce Standards Documents (ESD) that the library contains
Public classESDRecordAccountPaymentSurcharge
Details of a surcharge assigned to an customer/supplier account payment record within a Ecommerce Standards Document
Public classESDRecordAccountPaymentSurchargeTax
Details of a tax assigned to a customer/supplier payment surcharge within a Ecommerce Standards Document
Public classESDRecordAlternateCode
Ecommerce Standards Record that holds data for a single alternate code for a product, download, or labour. An alternate code is a different code that could be used to identify a product, download, or labour.
Public classESDRecordAttachment
Ecommerce Standards Record that holds data for a single attachment file associated to a product, download, or labour.
Public classESDRecordAttribute
Ecommerce Standards Record that holds data for a single attribute associated with products, downloads, or labour. Attributes define the fields that can have values set for products, downloads, or labour.
Public classESDRecordAttributeProfile
Ecommerce Standards Record that holds data for a single attribute profile associated with entities such as products, download, labour or models. A profile allows any number of attributes to be grouped together.
Public classESDRecordAttributeValue
Ecommerce Standards Record that holds data for a single product, download, labour or model attribute value.
Public classESDRecordCategory
Ecommerce Standards record that contains data for a single category. A category is a representation of a collection of objects, and can be linked in a hierarchical data structure.
Public classESDRecordCombinationProfile
Ecommerce Standards Record that holds data for a single combination profile. Each profile defines the fields and field-values that are available for any number of combination products, downloads, or labour.
Public classESDRecordCombinationProfileField
Ecommerce Standards Record for storing the field data associated to a combination profile. Each field can contain any number of field-values, which allows products, downloads, and labour to be assigned to.
Public classESDRecordContact
Ecommerce Standards record that contains data for a single contact. A contact contains information about a person on how they can be communicated with. The contact record may be linked to a customer account, or supplier account
Public classESDRecordCurrencyExchangeRate
Ecommerce Standards Record that holds data for a single currency exchange rate that reflects the cost of purchasing one currency from another. These rates may be used to influence the price of selling or buying goods and services between states or countries.
Public classESDRecordCustomerAccount
Ecommerce Standards record that contains data for a single customer account. A customer account represents an entity (such as a person or organisation) that purchases from another entity where the account exists. The customer account may also known as a "debtor".
Public classESDRecordCustomerAccountAddress
Ecommerce Standards record that contains the data of a single address associated to a customer account.
Public classESDRecordCustomerAccountContract
Ecommerce Standards record that contains the data of a single customer account contract. A contract record may be applied to a number of customer accounts and products for a given amount of time.
Public classESDRecordCustomerAccountEnquiryBackOrder
Ecommerce Standards record that contains the data of a single Back Order that can be queried for a customer account. A back order record contains information about goods ordered by a customer account that needed to be ordered from an external supplier. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordCustomerAccountEnquiryBackOrderLine
Ecommerce Standard Record holding data for a customer account back order line
Public classESDRecordCustomerAccountEnquiryCredit
Ecommerce Standards record that contains the data of a single Credit that can be queried for a customer account. A credit record contains information about a monetary amount applied to the account's balance. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordCustomerAccountEnquiryCreditLine
Ecommerce Standard Record holding line data for a customer account credit enquiry
Public classESDRecordCustomerAccountEnquiryInvoice
Ecommerce Standards record that contains the data of a single Invoice that can be queried for a customer account. An invoice record contains information about items ordered by a customer account. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordCustomerAccountEnquiryInvoiceLine
Ecommerce Standard Record holding data for a customer account invoice line
Public classESDRecordCustomerAccountEnquiryOrderSale
Ecommerce Standards record that contains the data of a single Sales Order that can be queried for a customer account. A sales order record contains information about items ordered by a customer account. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordCustomerAccountEnquiryOrderSaleLine
Ecommerce Standard Record holding data for a customer account order line
Public classESDRecordCustomerAccountEnquiryPayment
Ecommerce Standards record that contains the data of a single Payment that can be queried for a customer account. A payment record contains information about a positive monetary amount paid to the customer account's balance. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordCustomerAccountEnquiryPaymentLine
Ecommerce Standard Record holding data for a customer account enquiry payment line
Public classESDRecordCustomerAccountEnquiryProductPrice
Holds a product's price based on a specific account price that is used for the web
Public classESDRecordCustomerAccountEnquiryQuote
Ecommerce Standards record that contains the data of a single quote that can be queried for a customer account. A quote record contains information about items that need to be confirmed and priced for a customer account. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordCustomerAccountEnquiryQuoteLine
Ecommerce Standard Record holding data for a customer account quote line. The line stores information about a single type of product, goods or service, and the pricing quoted to purchase the item
Public classESDRecordCustomerAccountEnquiryTransaction
Ecommerce Standards record that contains the data of a single transaction that can be queried for a customer account. A transaction record contains information about a positive or negative amount applied against the customer account's balance, as well the balance after the amount was applied. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordCustomerAccountPayment
Ecommerce Standard Document that holds details of a payment made by a customer account for a given record type
Public classESDRecordCustomerAccountPaymentRecord
Ecommerce Standard Document that holds details of a record associated to a payment made by a customer account
Public classESDRecordCustomerInvoice
Ecommerce Standards Record that holds data for a single invoice raised against a customer. A customer invoice specifies goods and/or services that have been purchased from a customer, and the monetary amount that the customer owes.
Public classESDRecordCustomerInvoiceLine
Ecommerce Standards Record that holds data for a single line in a customer's invoice.
Public classESDRecordDeliveryNotice
Ecommerce Standards Record that holds data for a single delivery notice. The delivery notice (also known as an Advanced Ship Notice (ASN)) advises of the delivery of products being made by the supplier. The notice can advise when goods are being packed, dispatched, in-transit, held in storage, delivered, lost, or cancelled
Public classESDRecordDeliveryNoticeLine
Ecommerce Standards Record that holds data for a single line in a delivery notice record. The line indicates the quantity of a product that is being delivered, or in the process thereof.
Public classESDRecordDownload
Ecommerce Standards Record that holds data for a single download. A download represents a piece of digital information, that may be stored, sold, or transferred.
Public classESDRecordFlag
Ecommerce Standards Record that holds data for a single type of flag. A flag can allow different entities (such as products) to be marked, allowing them to be highlighted, given additional meaning, or extra importance.
Public classESDRecordFlagMapping
Ecommerce Standards Record that holds data for a single mapping between a flag and either a product, download, or labour entity.
Public classESDRecordGeneralLedgerAccount
Ecommerce Standards Record that holds data for a single General Ledger Account. The account is used to record the monetary transactions against an aspect of a business, person or other entity, recorded against the General Ledger.
Public classESDRecordImage
Ecommerce Standards Record that holds data associated with a single product, download, or labour image.
Public classESDRecordInvoiceLineAttribute
Ecommerce Standards Record that holds data for a single attribute and value within an invoice line. This allows any additional fields and field values to be with the invoice line.
Public classESDRecordInvoiceLineAttributeProfile
Ecommerce Standards Record that holds data for a single attribute profile for an invoice line. This allows any additional attribute data to be set for the line.
Public classESDRecordInvoiceLineTax
Details of a tax assigned to a invoice line within a Ecommerce Standards Document
Public classESDRecordInvoicePayment
Ecommerce Standards Record that holds data for a single payment associated to an invoice.
Public classESDRecordInvoiceSurcharge
Details of a surcharge assigned to an invoice record within a Ecommerce Standards Document
Public classESDRecordItemGroup
Ecommerce Standards Record that holds data for a single item group. Each record represents a group of assigned products, downloads and/or labour.
Public classESDRecordItemRelation
Ecommerce Standards Record that holds data for a single relation between items. Each record links one product, labour, or download record to another product, labour, or download record
Public classESDRecordKitComponent
Ecommerce Standards Record that holds data for a single product, download, or labour assigned to a kit. A kit allows any number of products, downloads, or labour to be assigned it.
Public classESDRecordLabour
Ecommerce Standards Record that holds data for a single labour record. Labour describes the different kinds of effort required to perform a piece of work.
Public classESDRecordLocation
Ecommerce Standards Record that holds data for a single location. Location could be a physical geographical location or a virtual place.
Public classESDRecordMaker
Ecommerce Standards Record that holds data for a single maker/manufacturer. A maker/manufacturer builds and/or assembles models which contain a collection of products or raw materials.
Public classESDRecordMakerModel
Ecommerce Standards Record that holds data for a single model created or assembled by a maker/manufacturer. Each model is made up of a collection of products or raw materials.
Public classESDRecordMakerModelMapping
Ecommerce Standards Record that holds data for a single mapping between a maker/manufacturer's model, a category, and either a product, download, or labour entity. Each mapping may also contain any number of attribute values to contain more data about the mapped entity in relation to the model
Public classESDRecordOrderLineAttribute
Ecommerce Standards Record that holds data for a single attribute and value within a order line. This allows any additional fields and field values to be set with the order line.
Public classESDRecordOrderLineAttributeProfile
Ecommerce Standards Record that holds data for a single attribute profile set for a order line. This allows any additional attribute data to be set for the line.
Public classESDRecordOrderLineTax
Details of a tax assigned to a order line within a Ecommerce Standards Document
Public classESDRecordOrderPayment
Ecommerce Standards Record that holds data for a single payment associated to an order.
Public classESDRecordOrderProductDelivery
Ecommerce Standards Record that holds data for a single product delivery associated to an order.
Public classESDRecordOrderPurchase
Ecommerce Standards Record that holds data for a single purchase order. A purchase order indicates an intent to buy goods and services off a supplier.
Public classESDRecordOrderPurchaseLine
Ecommerce Standards Record that holds data for a single line in a purchase order.
Public classESDRecordOrderSale
Ecommerce Standards Record that holds data for a single sales order. A sales order indicates an intent of a customer account to make a purchase.
Public classESDRecordOrderSaleLine
Ecommerce Standards Record that holds data for a single line in a sales order.
Public classESDRecordOrderSurcharge
Details of a surcharge assigned to an order record within a Ecommerce Standards Document
Public classESDRecordPaymentType
Ecommerce Standards Record that holds data for a single payment type. Each payment type defines a way to purchase goods and services, or the way that goods and servies were paid for.
Public classESDRecordPrice
Ecommerce Standards Record that holds data for a single product price. The price may be assigned to a price-level, a price-group, or a customer account
Public classESDRecordPriceLevel
Ecommerce Standards Record that holds data for a single price level. A price level allows multiple prices to be set for the same product, download, or labour record
Public classESDRecordProduct
Ecommerce Standards Record that holds data for a single product. A product can be a physical or non-physical item that can be sold in quantities.
Public classESDRecordProductCombination
Ecommerce Standards record for associating a child product with a given combination of fields and values
Public classESDRecordProductCombinationParent
Ecommerce Standards record for associating a parent product with a product combination profile, and all of its associated product-field-value combinations
Public classESDRecordPurchaser
Ecommerce Standards Record that holds data for a single purchaser. A purchaser represents an entity (person or organisation) that may buy products, manage supplier accounts, and place purchase orders with suppliers.
Public classESDRecordSalesRep
Ecommerce Standards Record that holds data for a single sales representative. A sales representative represents an entity (person or organisation) that may sell products, manage customer accounts, and place sales orders on behalf of customers among other things.
Public classESDRecordSellUnit
Ecommerce Standards Record that holds data for a single sell unit. The unit defines how a product, download, or labour is sold individually.
Public classESDRecordStockQuantity
Ecommerce Standards Record that holds data for a stock unit quantity of a product, download or labour. This record typically stores stock quantity data that can updated on a frequent basis.
Public classESDRecordSupplierAccount
Ecommerce Standards record that contains data for a single supplier account. A supplier account represents an entity (such as a person or organisation) that supplies goods/services/items from another external entity. The supplier account may also known as a "creditor".
Public classESDRecordSupplierAccountAddress
Ecommerce Standards record that contains the data of a single address associated to a supplier account.
Public classESDRecordSupplierAccountEnquiryOrderPurchase
Ecommerce Standards record that contains the data of a single Purchase Order that can be queried for a supplier account. A purchase order record contains information about items ordered by a supplier account. The account enquiry aspect denotes that the record may be queried in real time and contain additional information associated with the record.
Public classESDRecordSupplierAccountEnquiryOrderPurchaseLine
Ecommerce Standard Record holding data for a supplier account order line
Public classESDRecordSupplierInvoice
Ecommerce Standards Record that holds data for a single invoice sent from a supplier. A supplier invoice specifies goods and/or services that have been purchased from a supplier, and the monetary amount owed to the supplier.
Public classESDRecordSupplierInvoiceLine
Ecommerce Standards Record that holds data for a single line in a supplier's invoice.
Public classESDRecordSurcharge
Ecommerce Standards Record that holds data for a single surcharge. Each surcharge defines a type of monetary amount that may be added or substracted which is factored into the final price of purchasing goods or services.
Public classESDRecordTaxcode
Ecommerce Standards Record that holds data for a single taxcode. Each taxcode defines a type of tax that can be calculated for any relevant monetary price.
Public classESDRecordType
Contains the types of Ecommerce Standards Document (ESD) records that the library contains