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 } } }