NAV

<back to all web services

NAVOrderImport

The following routes are available for this service:
POST/orders
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderImportResponse:
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderImportAddress:
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    address_line1: Optional[str] = None
    address_line2: Optional[str] = None
    address_line3: Optional[str] = None
    address_line4: Optional[str] = None
    address_line5: Optional[str] = None
    city: Optional[str] = None
    state_province_code: Optional[str] = None
    postal_code: Optional[str] = None
    county: Optional[str] = None
    country_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderImportSkuComponent:
    parent_order_line_number: Optional[int] = None
    order_line_number: Optional[int] = None
    sku_code: Optional[str] = None
    quantity: Optional[int] = None
    price_paid_per_unit: Optional[Decimal] = None
    retail_price_per_unit: Optional[Decimal] = None
    net_price: Optional[Decimal] = None
    tax_amount: Optional[Decimal] = None
    tax_percentage: Optional[Decimal] = None
    version_number: Optional[str] = None
    version_year: Optional[str] = None
    vehicle_id: Optional[str] = None
    offer_id: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderImportSku:
    sku_code: Optional[str] = None
    order_line_number: Optional[int] = None
    quantity: Optional[int] = None
    is_auto_ship: Optional[bool] = None
    order_sku_components: Optional[List[NAVOrderImportSkuComponent]] = None
    price_paid_per_unit: Optional[Decimal] = None
    retail_price_per_unit: Optional[Decimal] = None
    net_price: Optional[Decimal] = None
    net_sales: Optional[Decimal] = None
    submitted_net_price: Optional[Decimal] = None
    submitted_net_sales: Optional[Decimal] = None
    manual_discount_amount: Optional[Decimal] = None
    item_discount_percent: Optional[Decimal] = None
    tax_amount: Optional[Decimal] = None
    tax_percentage: Optional[Decimal] = None
    commissionable_value_earned: Optional[Decimal] = None
    qualifying_value_earned: Optional[Decimal] = None
    qualifying_value_earned_submitted: Optional[Decimal] = None
    override_c_v_earned: Optional[Decimal] = None
    override_c_v_earned_submitted: Optional[Decimal] = None
    override_q_v_earned: Optional[Decimal] = None
    group_c_v_earned: Optional[Decimal] = None
    group_q_v_earned: Optional[Decimal] = None
    upline_c_v_earned: Optional[Decimal] = None
    upline_q_v_earned: Optional[Decimal] = None
    version_number: Optional[str] = None
    version_year: Optional[str] = None
    coupon_code: Optional[str] = None
    substitute_indicator: Optional[str] = None
    fulfillment_indicator: Optional[str] = None
    substitute_sku_code: Optional[str] = None
    vehicle_id: Optional[str] = None
    offer_id: Optional[str] = None
    parent_s_k_u_code: Optional[str] = None
    buying_discount: Optional[Decimal] = None
    original_order_qty: Optional[Decimal] = None
    closed_quantity: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderImportPayment:
    payment_type: Optional[str] = None
    payment_identifier1: Optional[str] = None
    payment_identifier2: Optional[str] = None
    payment_identifier3: Optional[str] = None
    payment_identifier4: Optional[str] = None
    payment_identifier5: Optional[str] = None
    payment_token: Optional[str] = None
    authorization_time: Optional[datetime.datetime] = None
    authorization_code: Optional[str] = None
    transaction_id: Optional[str] = None
    amount_charged: Optional[Decimal] = None
    billing_address: Optional[NAVOrderImportAddress] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderImportFee:
    fee_system_keyword: Optional[str] = None
    fee_amount: Optional[Decimal] = None
    tax_amount: Optional[Decimal] = None
    fee_total: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderImport(IPost):
    external_order_id: Optional[str] = None
    order_type_id: Optional[str] = None
    created_date_u_t_c: Optional[datetime.datetime] = None
    submitted_date_u_t_c: Optional[datetime.datetime] = None
    bee_number_customer: Optional[Decimal] = None
    bee_number_payee: Optional[Decimal] = None
    order_source: Optional[str] = None
    shipping_method: Optional[str] = None
    gift_message: Optional[str] = None
    gift_message_from: Optional[str] = None
    gift_message_to: Optional[str] = None
    shipping_comment: Optional[str] = None
    shipping_address: Optional[NAVOrderImportAddress] = None
    order_skus: Optional[List[NAVOrderImportSku]] = None
    order_payments: Optional[List[NAVOrderImportPayment]] = None
    order_fees: Optional[List[NAVOrderImportFee]] = None
    sub_total: Optional[Decimal] = None
    order_total: Optional[Decimal] = None
    shipping_cost: Optional[Decimal] = None
    tax: Optional[Decimal] = None
    shipping_tax: Optional[Decimal] = None
    external_discount_reason: Optional[str] = None
    pc_level: Optional[Decimal] = None
    agent_id: Optional[str] = None
    number_of_customers_served: Optional[Decimal] = None
    version_number: Optional[str] = None
    version_year: Optional[str] = None
    additional_code: Optional[str] = None
    discount_percent: Optional[str] = None
    tax_rate_percent: Optional[str] = None
    order_within_time_period: Optional[Decimal] = None
    tax_area_code: Optional[str] = None
    geocode: Optional[str] = None
    fundraiser_id: Optional[str] = None
    warehouse_code: Optional[str] = None
    original_reship_external_order_id: Optional[str] = None
    shipped_version_number: Optional[str] = None
    shipped_version_year: Optional[str] = None
    master_order_id: Optional[str] = None
    coupon_value: Optional[str] = None
    sales_center_id: Optional[str] = None
    premier_level: Optional[str] = None
    pc_level_current_cycle: Optional[Decimal] = None
    premier_level_current_cycle: Optional[str] = None
    email_address: Optional[str] = None
    phone_number: Optional[str] = None

Python NAVOrderImport DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /orders HTTP/1.1 
Host: extensions.avon.ca 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	externalOrderId: String,
	orderTypeId: String,
	createdDateUTC: 0001-01-01T00:00:00,
	submittedDateUTC: 0001-01-01T00:00:00,
	beeNumberCustomer: 0,
	beeNumberPayee: 0,
	orderSource: String,
	shippingMethod: String,
	giftMessage: String,
	giftMessageFrom: String,
	giftMessageTo: String,
	shippingComment: String,
	shippingAddress: 
	{
		firstName: String,
		lastName: String,
		addressLine1: String,
		addressLine2: String,
		addressLine3: String,
		addressLine4: String,
		addressLine5: String,
		city: String,
		stateProvinceCode: String,
		postalCode: String,
		county: String,
		countryCode: String
	},
	orderSkus: 
	[
		{
			skuCode: String,
			orderLineNumber: 0,
			quantity: 0,
			isAutoShip: False,
			orderSkuComponents: 
			[
				{
					parentOrderLineNumber: 0,
					orderLineNumber: 0,
					skuCode: String,
					quantity: 0,
					pricePaidPerUnit: 0,
					retailPricePerUnit: 0,
					netPrice: 0,
					taxAmount: 0,
					taxPercentage: 0,
					versionNumber: String,
					versionYear: String,
					vehicleId: String,
					offerId: String
				}
			],
			pricePaidPerUnit: 0,
			retailPricePerUnit: 0,
			netPrice: 0,
			netSales: 0,
			submittedNetPrice: 0,
			submittedNetSales: 0,
			manualDiscountAmount: 0,
			itemDiscountPercent: 0,
			taxAmount: 0,
			taxPercentage: 0,
			commissionableValueEarned: 0,
			qualifyingValueEarned: 0,
			qualifyingValueEarnedSubmitted: 0,
			overrideCVEarned: 0,
			overrideCVEarnedSubmitted: 0,
			overrideQVEarned: 0,
			groupCVEarned: 0,
			groupQVEarned: 0,
			uplineCVEarned: 0,
			uplineQVEarned: 0,
			versionNumber: String,
			versionYear: String,
			couponCode: String,
			substituteIndicator: String,
			fulfillmentIndicator: String,
			substituteSkuCode: String,
			vehicleId: String,
			offerId: String,
			parentSKUCode: String,
			buyingDiscount: 0,
			originalOrderQty: 0,
			closedQuantity: 0
		}
	],
	orderPayments: 
	[
		{
			paymentType: String,
			paymentIdentifier1: String,
			paymentIdentifier2: String,
			paymentIdentifier3: String,
			paymentIdentifier4: String,
			paymentIdentifier5: String,
			paymentToken: String,
			authorizationTime: 0001-01-01T00:00:00,
			authorizationCode: String,
			transactionId: String,
			amountCharged: 0,
			billingAddress: 
			{
				firstName: String,
				lastName: String,
				addressLine1: String,
				addressLine2: String,
				addressLine3: String,
				addressLine4: String,
				addressLine5: String,
				city: String,
				stateProvinceCode: String,
				postalCode: String,
				county: String,
				countryCode: String
			}
		}
	],
	orderFees: 
	[
		{
			feeSystemKeyword: String,
			feeAmount: 0,
			taxAmount: 0,
			feeTotal: 0
		}
	],
	subTotal: 0,
	orderTotal: 0,
	shippingCost: 0,
	tax: 0,
	shippingTax: 0,
	externalDiscountReason: String,
	pcLevel: 0,
	agentId: String,
	numberOfCustomersServed: 0,
	versionNumber: String,
	versionYear: String,
	additionalCode: String,
	discountPercent: String,
	taxRatePercent: String,
	orderWithinTimePeriod: 0,
	taxAreaCode: String,
	geocode: String,
	fundraiserId: String,
	warehouseCode: String,
	originalReshipExternalOrderId: String,
	shippedVersionNumber: String,
	shippedVersionYear: String,
	masterOrderId: String,
	couponValue: String,
	salesCenterId: String,
	premierLevel: String,
	pcLevelCurrentCycle: 0,
	premierLevelCurrentCycle: String,
	emailAddress: String,
	phoneNumber: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}