POST | /orders/close |
---|
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 OrderCloseResponse:
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderCloseAddress:
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 NAVOrderCloseSkuComponent:
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 NAVOrderCloseSku:
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[NAVOrderCloseSkuComponent]] = 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
buying_discount: Optional[Decimal] = None
original_order_qty: Optional[Decimal] = None
parent_s_k_u_code: Optional[str] = None
closed_quantity: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderClosePayment:
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[NAVOrderCloseAddress] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderCloseFee:
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 NAVOrderClose:
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
completed_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[NAVOrderCloseAddress] = None
order_skus: Optional[List[NAVOrderCloseSku]] = None
order_payments: Optional[List[NAVOrderClosePayment]] = None
order_fees: Optional[List[NAVOrderCloseFee]] = 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
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderCloseShipmentSku:
order_line_number: Optional[int] = None
quantity_shipped: Optional[int] = None
substitute_sku_code: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NAVOrderCloseShipment:
shipment_date_u_t_c: Optional[datetime.datetime] = None
shipping_method: Optional[str] = None
shipping_speed: Optional[str] = None
tracking_number: Optional[str] = None
shipment_status: Optional[str] = None
shipment_details: Optional[str] = None
shipping_cost: Optional[Decimal] = None
charge: Optional[Decimal] = None
tax: Optional[Decimal] = None
actual_shipping_cost: Optional[Decimal] = None
carton_weight: Optional[Decimal] = None
order_shipment_sku: Optional[List[NAVOrderCloseShipmentSku]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OrderClose(IPost):
order_close_data: Optional[NAVOrderClose] = None
shipment: Optional[List[NAVOrderCloseShipment]] = None
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /orders/close HTTP/1.1
Host: extensions.avon.ca
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"orderCloseData":{"externalOrderId":"String","orderTypeId":"String","createdDateUTC":"0001-01-01T00:00:00.0000000","submittedDateUTC":"0001-01-01T00:00:00.0000000","completedDateUTC":"0001-01-01T00:00:00.0000000","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","buyingDiscount":0,"originalOrderQty":0,"parentSKUCode":"String","closedQuantity":0}],"orderPayments":[{"paymentType":"String","paymentIdentifier1":"String","paymentIdentifier2":"String","paymentIdentifier3":"String","paymentIdentifier4":"String","paymentIdentifier5":"String","paymentToken":"String","authorizationTime":"0001-01-01T00:00:00.0000000","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"},"shipment":[{"shipmentDateUTC":"0001-01-01T00:00:00.0000000","shippingMethod":"String","shippingSpeed":"String","trackingNumber":"String","shipmentStatus":"String","shipmentDetails":"String","shippingCost":0,"charge":0,"tax":0,"actualShippingCost":0,"cartonWeight":0,"orderShipmentSku":[{"orderLineNumber":0,"quantityShipped":0,"substituteSkuCode":"String"}]}]}
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}