| GET | /returns/{RMANumber} |
|---|
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 AddressViewModel:
first_name: Optional[str] = None
last_name: Optional[str] = None
house_number: 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
locality_level_i_d1: Optional[str] = None
locality_level_i_d2: Optional[str] = None
locality_level_i_d3: Optional[str] = None
locality_level_i_d4: Optional[str] = None
locality_level_i_d5: Optional[str] = None
state_code: Optional[str] = None
postal_code: Optional[str] = None
country_code: Optional[str] = None
address_good_date: Optional[datetime.datetime] = None
latitude: Optional[Decimal] = None
longitude: Optional[Decimal] = None
address_id: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnOutboundSkuViewModel:
entity_sku_id: Optional[int] = None
created_date: Optional[datetime.datetime] = None
updated_date: Optional[datetime.datetime] = None
line_number: Optional[int] = None
sku_id: Optional[int] = None
sku_code: Optional[str] = None
warehouse_sku_code: Optional[str] = None
quantity: Optional[int] = None
price: Optional[Decimal] = None
extended_price: Optional[Decimal] = None
price_override: Optional[Decimal] = None
taxable_price: Optional[Decimal] = None
tax_amount: Optional[Decimal] = None
ordered_quantity: Optional[int] = None
return_taxable_price: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnFeeViewModel:
rma_fee_id: Optional[int] = None
created_date: Optional[datetime.datetime] = None
updated_date: Optional[datetime.datetime] = None
is_fee_waived: Optional[bool] = None
username_fee_waived: Optional[str] = None
waived_note: Optional[str] = None
fee_id: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnInboundSkuViewModel(ReturnOutboundSkuViewModel):
rma_type: Optional[str] = None
return_quantity: Optional[int] = None
auto_received_quantity: Optional[int] = None
original_quantity: Optional[int] = None
return_quantity_on_clone: Optional[int] = None
reason_type: Optional[str] = None
sku_note: Optional[str] = None
order_id: Optional[int] = None
order_number: Optional[str] = None
order_sku_id: Optional[int] = None
order_line_number: Optional[int] = None
fee_amount: Optional[Decimal] = None
extended_fee_amount: Optional[Decimal] = None
return_tax_amount: Optional[Decimal] = None
return_extended_fee_amount: Optional[Decimal] = None
return_extended_price: Optional[Decimal] = None
fees: Optional[List[ReturnFeeViewModel]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnShipmentIssueSkuViewModel:
rma_shipment_issue_sku_id: Optional[int] = None
created_date: Optional[datetime.datetime] = None
updated_date: Optional[datetime.datetime] = None
line_number: Optional[int] = None
sku_id: Optional[int] = None
sku_code: Optional[str] = None
warehouse_sku_code: Optional[str] = None
quantity: Optional[int] = None
price: Optional[Decimal] = None
extended_price: Optional[Decimal] = None
price_override: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnPaymentViewModel:
payment_id: Optional[int] = None
payment_type: Optional[str] = None
credit_card_type: Optional[str] = None
credit_card_name: Optional[str] = None
credit_card_number: Optional[str] = None
credit_card_token: Optional[str] = None
payment_guid: Optional[str] = None
credit_card_expired: Optional[str] = None
authorization_code: Optional[str] = None
bank_account_number: Optional[str] = None
bank_routing_number: Optional[str] = None
bank_account_type: Optional[str] = None
bank_name: Optional[str] = None
bank_account_name: Optional[str] = None
license_number: Optional[str] = None
license_d_o_b: Optional[str] = None
license_state: Optional[str] = None
check_number: Optional[str] = None
savings_club: Optional[str] = None
charge: Optional[Decimal] = None
rma_entered_refund: Optional[Decimal] = None
text_response: Optional[str] = None
processed: Optional[bool] = None
confirmation_code: Optional[str] = None
authorization_time: Optional[datetime.datetime] = None
billing_address: Optional[AddressViewModel] = None
transaction_id: Optional[str] = None
avs: Optional[str] = None
balancing_payment: Optional[bool] = None
serial_number: Optional[str] = None
payment_export_keyword: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnHoldViewModel:
rma_hold_id: Optional[int] = None
created_date: Optional[datetime.datetime] = None
updated_date: Optional[datetime.datetime] = None
release_date: Optional[datetime.datetime] = None
username_release: Optional[str] = None
hold_reason: Optional[str] = None
hold_note: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnViewModel:
bee_number: Optional[Decimal] = None
bee_number_customer: Optional[Decimal] = None
event_id: Optional[int] = None
event_start_date: Optional[datetime.datetime] = None
master_order_id: Optional[int] = None
master_order_id_parent: Optional[int] = None
master_order_id_related: Optional[int] = None
order_id_outbound: Optional[int] = None
created_date: Optional[datetime.datetime] = None
updated_date: Optional[datetime.datetime] = None
rma_number: Optional[str] = None
bee_business_guid: Optional[Decimal] = None
is_submitted: Optional[bool] = None
submitted_date: Optional[datetime.datetime] = None
export_date: Optional[datetime.datetime] = None
rma_status: Optional[str] = None
inbound_return_total: Optional[Decimal] = None
outbound_total: Optional[Decimal] = None
tax_amount: Optional[Decimal] = None
shipping_tax_amount: Optional[Decimal] = None
fee_total: Optional[Decimal] = None
total: Optional[Decimal] = None
shipping_method: Optional[str] = None
master_order_id_outbound: Optional[int] = None
rma_note: Optional[str] = None
sub_total: Optional[Decimal] = None
shipping_amount: Optional[Decimal] = None
payment_total: Optional[Decimal] = None
credit_not_applied_to_product_amount: Optional[Decimal] = None
fee_total_waived: Optional[Decimal] = None
outbound_order_savings_club_amount: Optional[Decimal] = None
inbound_replacement_total: Optional[Decimal] = None
inbound_tax_amount: Optional[Decimal] = None
outbound_tax_amount: Optional[Decimal] = None
outbound_order_total: Optional[Decimal] = None
outbound_order_credit_card_amount: Optional[Decimal] = None
order_created_date: Optional[datetime.datetime] = None
closed_date: Optional[datetime.datetime] = None
actual_shipping_tax_amount: Optional[Decimal] = None
actual_shipping_amount: Optional[Decimal] = None
actual_tax_amount: Optional[Decimal] = None
actual_inbound_tax_amount: Optional[Decimal] = None
rma_credit_card_amount: Optional[Decimal] = None
rma_savings_club_amount: Optional[Decimal] = None
actual_fee_total: Optional[Decimal] = None
actual_fee_total_waived: Optional[Decimal] = None
actual_total: Optional[Decimal] = None
actual_sub_total: Optional[Decimal] = None
actual_inbound_return_total: Optional[Decimal] = None
actual_inbound_replacement_total: Optional[Decimal] = None
actual_credit_not_applied_to_product_amount: Optional[Decimal] = None
tax_export_date: Optional[datetime.datetime] = None
tax_transaction_time: Optional[datetime.datetime] = None
tax_transaction_id: Optional[str] = None
reverse_tax_export_date: Optional[datetime.datetime] = None
reverse_tax_transaction_time: Optional[datetime.datetime] = None
reverse_tax_transaction_id: Optional[str] = None
final_tax: Optional[Decimal] = None
reverse_final_tax: Optional[Decimal] = None
reuseable_inbound_tax_transaction_id: Optional[str] = None
reuseable_outbound_tax_transaction_id: Optional[str] = None
order_id: Optional[int] = None
order_number: Optional[str] = None
note: Optional[str] = None
clawback_c_v_override: Optional[bool] = None
clawback_q_v_override: Optional[bool] = None
issue_gift_card: Optional[bool] = None
rma_gift_card_amount: Optional[Decimal] = None
bee_savings_serial_guid: Optional[Decimal] = None
serial_number: Optional[str] = None
gift_card_email: Optional[str] = None
order_created_during_submit: Optional[bool] = None
total_qualifying_value: Optional[Decimal] = None
total_commissionable_value: Optional[Decimal] = None
bee_savings_club_guid: Optional[Decimal] = None
is_cancel_order: Optional[bool] = None
created_by: Optional[str] = None
rma_severity: Optional[str] = None
reference: Optional[str] = None
user_name: Optional[str] = None
total_override_c_v: Optional[Decimal] = None
total_override_q_v: Optional[Decimal] = None
total_upline_c_v: Optional[Decimal] = None
total_upline_q_v: Optional[Decimal] = None
total_group_c_v: Optional[Decimal] = None
total_group_q_v: Optional[Decimal] = None
override_c_v: Optional[Decimal] = None
override_q_v: Optional[Decimal] = None
upline_c_v: Optional[Decimal] = None
upline_q_v: Optional[Decimal] = None
group_c_v: Optional[Decimal] = None
group_q_v: Optional[Decimal] = None
issue_check: Optional[bool] = None
rma_check_amount: Optional[Decimal] = None
shipping_address: Optional[AddressViewModel] = None
inbound_skus: Optional[List[ReturnInboundSkuViewModel]] = None
outbound_skus: Optional[List[ReturnOutboundSkuViewModel]] = None
shipment_issue_skus: Optional[List[ReturnShipmentIssueSkuViewModel]] = None
payments: Optional[List[ReturnPaymentViewModel]] = None
holds: Optional[List[ReturnHoldViewModel]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnGetResponse(GetResponse[ReturnViewModel]):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReturnGet(IGet):
rma_number: Optional[str] = None
TEntity = TypeVar('TEntity')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetResponse(Generic[TEntity]):
item: Optional[TEntity] = None
response_status: Optional[ResponseStatus] = None
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /returns/{RMANumber} HTTP/1.1
Host: extensions.avon.ca
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
item:
{
beeNumber: 0,
beeNumberCustomer: 0,
eventId: 0,
eventStartDate: 0001-01-01T00:00:00,
masterOrderId: 0,
masterOrderIdParent: 0,
masterOrderIdRelated: 0,
orderIdOutbound: 0,
createdDate: 0001-01-01T00:00:00,
updatedDate: 0001-01-01T00:00:00,
rmaNumber: String,
beeBusinessGuid: 0,
isSubmitted: False,
submittedDate: 0001-01-01T00:00:00,
exportDate: 0001-01-01T00:00:00,
rmaStatus: String,
inboundReturnTotal: 0,
outboundTotal: 0,
taxAmount: 0,
shippingTaxAmount: 0,
feeTotal: 0,
total: 0,
shippingMethod: String,
masterOrderIdOutbound: 0,
rmaNote: String,
subTotal: 0,
shippingAmount: 0,
paymentTotal: 0,
creditNotAppliedToProductAmount: 0,
feeTotalWaived: 0,
outboundOrderSavingsClubAmount: 0,
inboundReplacementTotal: 0,
inboundTaxAmount: 0,
outboundTaxAmount: 0,
outboundOrderTotal: 0,
outboundOrderCreditCardAmount: 0,
orderCreatedDate: 0001-01-01T00:00:00,
closedDate: 0001-01-01T00:00:00,
actualShippingTaxAmount: 0,
actualShippingAmount: 0,
actualTaxAmount: 0,
actualInboundTaxAmount: 0,
rmaCreditCardAmount: 0,
rmaSavingsClubAmount: 0,
actualFeeTotal: 0,
actualFeeTotalWaived: 0,
actualTotal: 0,
actualSubTotal: 0,
actualInboundReturnTotal: 0,
actualInboundReplacementTotal: 0,
actualCreditNotAppliedToProductAmount: 0,
taxExportDate: 0001-01-01T00:00:00,
taxTransactionTime: 0001-01-01T00:00:00,
taxTransactionId: String,
reverseTaxExportDate: 0001-01-01T00:00:00,
reverseTaxTransactionTime: 0001-01-01T00:00:00,
reverseTaxTransactionId: String,
finalTax: 0,
reverseFinalTax: 0,
reuseableInboundTaxTransactionId: String,
reuseableOutboundTaxTransactionId: String,
orderId: 0,
orderNumber: String,
note: String,
clawbackCVOverride: False,
clawbackQVOverride: False,
issueGiftCard: False,
rmaGiftCardAmount: 0,
beeSavingsSerialGuid: 0,
serialNumber: String,
giftCardEmail: String,
orderCreatedDuringSubmit: False,
totalQualifyingValue: 0,
totalCommissionableValue: 0,
beeSavingsClubGuid: 0,
isCancelOrder: False,
createdBy: String,
rmaSeverity: String,
reference: String,
userName: String,
totalOverrideCV: 0,
totalOverrideQV: 0,
totalUplineCV: 0,
totalUplineQV: 0,
totalGroupCV: 0,
totalGroupQV: 0,
overrideCV: 0,
overrideQV: 0,
uplineCV: 0,
uplineQV: 0,
groupCV: 0,
groupQV: 0,
issueCheck: False,
rmaCheckAmount: 0,
shippingAddress:
{
firstName: String,
lastName: String,
houseNumber: String,
addressLine1: String,
addressLine2: String,
addressLine3: String,
addressLine4: String,
addressLine5: String,
city: String,
localityLevelID1: String,
localityLevelID2: String,
localityLevelID3: String,
localityLevelID4: String,
localityLevelID5: String,
stateCode: String,
postalCode: String,
countryCode: String,
addressGoodDate: 0001-01-01T00:00:00,
latitude: 0,
longitude: 0,
addressId: 0
},
inboundSkus:
[
{
rmaType: String,
returnQuantity: 0,
autoReceivedQuantity: 0,
originalQuantity: 0,
returnQuantityOnClone: 0,
reasonType: String,
skuNote: String,
orderId: 0,
orderNumber: String,
orderSkuId: 0,
orderLineNumber: 0,
feeAmount: 0,
extendedFeeAmount: 0,
returnTaxAmount: 0,
returnExtendedFeeAmount: 0,
returnExtendedPrice: 0,
fees:
[
{
rmaFeeId: 0,
createdDate: 0001-01-01T00:00:00,
updatedDate: 0001-01-01T00:00:00,
isFeeWaived: False,
usernameFeeWaived: String,
waivedNote: String,
feeId: String
}
],
entitySkuId: 0,
createdDate: 0001-01-01T00:00:00,
updatedDate: 0001-01-01T00:00:00,
lineNumber: 0,
skuId: 0,
skuCode: String,
warehouseSkuCode: String,
quantity: 0,
price: 0,
extendedPrice: 0,
priceOverride: 0,
taxablePrice: 0,
taxAmount: 0,
orderedQuantity: 0,
returnTaxablePrice: 0
}
],
outboundSkus:
[
{
entitySkuId: 0,
createdDate: 0001-01-01T00:00:00,
updatedDate: 0001-01-01T00:00:00,
lineNumber: 0,
skuId: 0,
skuCode: String,
warehouseSkuCode: String,
quantity: 0,
price: 0,
extendedPrice: 0,
priceOverride: 0,
taxablePrice: 0,
taxAmount: 0,
orderedQuantity: 0,
returnTaxablePrice: 0
}
],
shipmentIssueSkus:
[
{
rmaShipmentIssueSkuId: 0,
createdDate: 0001-01-01T00:00:00,
updatedDate: 0001-01-01T00:00:00,
lineNumber: 0,
skuId: 0,
skuCode: String,
warehouseSkuCode: String,
quantity: 0,
price: 0,
extendedPrice: 0,
priceOverride: 0
}
],
payments:
[
{
paymentId: 0,
paymentType: String,
creditCardType: String,
creditCardName: String,
creditCardNumber: String,
creditCardToken: String,
paymentGuid: String,
creditCardExpired: String,
authorizationCode: String,
bankAccountNumber: String,
bankRoutingNumber: String,
bankAccountType: String,
bankName: String,
bankAccountName: String,
licenseNumber: String,
licenseDOB: String,
licenseState: String,
checkNumber: String,
savingsClub: String,
charge: 0,
rmaEnteredRefund: 0,
textResponse: String,
processed: False,
confirmationCode: String,
authorizationTime: 0001-01-01T00:00:00,
billingAddress:
{
firstName: String,
lastName: String,
houseNumber: String,
addressLine1: String,
addressLine2: String,
addressLine3: String,
addressLine4: String,
addressLine5: String,
city: String,
localityLevelID1: String,
localityLevelID2: String,
localityLevelID3: String,
localityLevelID4: String,
localityLevelID5: String,
stateCode: String,
postalCode: String,
countryCode: String,
addressGoodDate: 0001-01-01T00:00:00,
latitude: 0,
longitude: 0,
addressId: 0
},
transactionId: String,
avs: String,
balancingPayment: False,
serialNumber: String,
paymentExportKeyword: String
}
],
holds:
[
{
rmaHoldId: 0,
createdDate: 0001-01-01T00:00:00,
updatedDate: 0001-01-01T00:00:00,
releaseDate: 0001-01-01T00:00:00,
usernameRelease: String,
holdReason: String,
holdNote: String
}
]
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}