Create Cart
Creates a new Cart
in Violet.
The id
property returned in the response is what we refer to as the Cart ID and will be required for each subsequent call when building and submitting the cart.
Carts are dynamic in Violet. Not all fields my be populated at any given point in time. If there are any issues during the Checkout process, errors will be present in the errors
field on the Cart
.
External Carts
For most ecommerce platforms this action will also result in the creation of equivalent external carts. One external cart will be created for each merchant that is included in the Violet cart. Each nested Bag
in the Violet cart will be directly linked to the external cart and will contain all of the Sku’s that are unique to that merchant.
If you do not intend to submit a cart we recommend that you delete the cart. This will ensure that no external carts are orphaned or abandoned in the merchants store(s).
Handling Cart Creation Errors
While we strive to ensure that cart creation succeeds, there may occassionally be scenarios where cart creations fails in a way where it cannot be automatically reconciled. The following examples show what to expect when cart creation failure occurs for single-bag and multi-bag carts.
Single Bag Cart Creation Errors
When the creation of a Violet cart containing a single Bag
results in a failed creation in the external platform, the error will be surfaced as an API Exception in the response body. This error will typically be surface with a 400
or 422
HTTP status.
500 Internal Server Error
being returned by the commerce platform.
Multi-Bag Cart Creation Errors
When the creation of a Violet cart containing multiple Bag
’s results in one or more failed creations in the external platforms, any error(s) will be nested in the "errors": []
array on the Cart
object.
entity_type
is SKU
, the entity_id
property will to the sku_id
that was provided in the cart creation request.
Query Parameters
Deprecated: Use request body instead.
Deprecated: Use request body instead.
Deprecated: Use request body instead.
Body
Optional data to initialize the cart with upon creation.
Base currency that the cart should operate in.
One or more Sku's to initialize the cart with.
Associate the cart with a user or affiliate in your system. This value can also be added later on cart submission.
Associate the cart with an order record in your system. This value can also be added later on cart submission.
Details of the customer placing the order.
One or more discounts to initialize the cart with.
Boolean denoting whether or not this order will be placed through a wallet based payment mechanism such as apple pay.
Response
Violet Order Entity
ID of the Violet cart or order.
An alternative UUID that can be used as an ID to reference the cart or order.
Errors on the Order. During checkout, if there was an error or issue on one of the order's bags, there will be an error added to this list describing the issue. The checkout API will return 200 with the order object in the response even if there was an issue with a bag so you must always check the response for errors in this list to know if there was an issue on the order.
ID of the User placing the order
ID of the App responsible for the creation and submission of this Order.
ID of the Developer responsible for the creation and submission of this Order.
Details of the customer placing the order.
One or more Bags that make up the Order. Each Bag will contain the Sku's, shipping methods, and totals unique to a merchant. Each merchant in an Order will have their own Bag.
The shipping or billing address of a user placing an order
The shipping or billing address of a user placing an order
Payment Method belonging to an Order
The price of the Order in the base currency before discounts, shipping, duties, taxes, and tips. In Cents.
The sum of all shipping methods applied to the Order in the base currency. In Cents.
The sum of all the taxes applied to the Order in the base currency. In Cents.
The total discounts applied to the price of the Order in the base currency. In Cents.
The sum of all item prices, discounts, shipping, and taxes applied to the Order in the base currency. In Cents.
App Customer ID. This should be used to map the order to the ID of the customer in your application.
App Order ID. This should be set to a unique identifier in your system. While not enforced unique in Violet's system, it is strongly recommended that unique values are used for each cart to help correlate identifiers between Violet's system and yours.
Status of the Order
IN_PROGRESS
, PROCESSING
, COMPLETED
, CANCELED
, PARTIALLY_REFUNDED
, REFUNDED
, REQUIRES_ACTION
Order is Guest
Date of order creation
Date of last order update
Is the cart priced
Is this cart going to be placed through wallet-based checkout
Base currency of cart
Optional value used to represent an identifier in your system. This value is not required to represent a referral. It can represent the ID of anything in your system and can be used to filter order lookup results. Max length of 128 characters.
Symbol representing the currency the Order operates in.
Name of app that originated the order. Use the "extended" query param when looking up orders to include this value.
Stripe publishable key. Use for tokenizing payment methods.
Payment intent client secret. Use for payment intent based payment capture and external captures
Payment Transactions associated to the bags on this Cart
IN_PROGRESS
, PROCESSING
, COMPLETED
, CANCELED
, PARTIALLY_REFUNDED
, REFUNDED
, REQUIRES_ACTION
Boolean indicating if the cart/order will be payed using a payment intent.
Was this page helpful?