eBay Fulfillment Policy Implementation Done
*Summary of Changes:* (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Date | Version | Name | Applied changes |
---|---|---|---|
18/03/2023 | v1.0 | Bogomil Pavlov | First Published |
05/09/2023 | v1.1 | Bogomil Pavlov | Change table of storing the fulfillment policy details |
eBay introduced a new way of managing policies and now each seller can opt in and start using the new fulfilment policies.
Everything is set on eBay and we just need to download the policy name and ID in Hemi and store them as enumerations in a new dropdown field. (v1.1) However each policy will be for single eBay site ID (eBay territory) and we need to know for which account id is the actual shipping policy. We want to store the Policy Name, Policy Id, Account ID and Type in table Policy eBay. Then from there to get and filter the correct enumerations in Shipping Template > Fulfilment Policy (under Shipping Discounts (Ebay Only!) tab).
Get Fulfilment Policies (Sell API)
In order to download the policies we need to to: GET https://api.ebay.com/sell/account/v1/fulfillment_policy?marketplace_id={{siteID}} Doc Link: https://developer.ebay.com/api-docs/sell/account/resources/fulfillment_policy/methods/getFulfillmentPolicies For each eBay site we have to specify the marketplace_id which for the SELL API are different from the ones we have in marketplace table.
Sample request: GET https://api.ebay.com/sell/account/v1/fulfillment_policy?marketplace_id=EBAY_GB Sample response:
{
"total": 270,
"fulfillmentPolicies": [
{
"name": "UK only copy 5",
"description": "Domestic: Flat: Economy services(£0.00), Standard services(£4.95).",
"marketplaceId": "EBAY_GB",
"categoryTypes": [
{
"name": "ALL_EXCLUDING_MOTORS_VEHICLES",
"default": false
}
],
"handlingTime": {
"value": 1,
"unit": "DAY"
},
"shipToLocations": {
"regionExcluded": [
{
"regionName": "AD"
},
{
"regionName": "Africa"
},
{
"regionName": "AL"
},
{
"regionName": "Asia"
},
{
"regionName": "BA"
},
{
"regionName": "BG"
},
{
"regionName": "BY"
},
{
"regionName": "Central America and Caribbean"
},
{
"regionName": "CH"
},
{
"regionName": "CY"
},
{
"regionName": "CZ"
},
{
"regionName": "DE"
},
{
"regionName": "FR"
},
{
"regionName": "GI"
},
{
"regionName": "GR"
},
{
"regionName": "HR"
},
{
"regionName": "IS"
},
{
"regionName": "IT"
},
{
"regionName": "MD"
},
{
"regionName": "ME"
},
{
"regionName": "Middle East"
},
{
"regionName": "MK"
},
{
"regionName": "MT"
},
{
"regionName": "North America"
},
{
"regionName": "Oceania"
},
{
"regionName": "PL"
},
{
"regionName": "RO"
},
{
"regionName": "RS"
},
{
"regionName": "SJ"
},
{
"regionName": "SM"
},
{
"regionName": "South America"
},
{
"regionName": "Southeast Asia"
},
{
"regionName": "UA"
},
{
"regionName": "VA"
}
]
},
"shippingOptions": [
{
"optionType": "DOMESTIC",
"costType": "FLAT_RATE",
"shippingServices": [
{
"sortOrder": 1,
"shippingCarrierCode": "Royal Mail",
"shippingServiceCode": "UK_RoyalMailFirstClassRecorded",
"shippingCost": {
"value": "0.0",
"currency": "GBP"
},
"additionalShippingCost": {
"value": "0.0",
"currency": "GBP"
},
"freeShipping": true,
"buyerResponsibleForShipping": false,
"buyerResponsibleForPickup": false
}
],
"rateTableId": "5005721011",
"shippingDiscountProfileId": "0",
"shippingPromotionOffered": false
}
],
"globalShipping": false,
"pickupDropOff": false,
"localPickup": false,
"freightShipping": false,
"fulfillmentPolicyId": "269011338022"
}
]
}
From the response we want to store the fulfillmentPolicyId
and name
which we will store as a dropdown list and we want to display the name
but push the fulfillmentPolicyId
to eBay.
(v1.1)
Please note if the seller is not opted in we will receive an error like:
eBay ID | Hemi Field | |
---|---|---|
fulfillmentPolicyId |
Policy eBay >Policy ID | |
name |
Policy eBay > Name | |
Policy eBay > Type | The type of the policy will be hardcoded as “Fulfillment“ | |
Policy eBay > Account ID | Our internal Account ID so we can refer to the correct account when displaying the enumerations. |
{
"errors": [
{
"errorId": 20403,
"domain": "API_ACCOUNT",
"category": "REQUEST",
"message": "Invalid .",
"longMessage": "User is not eligible for Business Policy.",
"inputRefIds": [
null
]
}
]
}
Create/Update Listing Amendments
In order to push the correct fulfillment policy we need to introduce new fields in the payload.
<SellerProfiles>
<SellerShippingProfile>
<ShippingProfileID>269011338022</ShippingProfileID>
</SellerShippingProfile>
</SellerProfiles>
This part needs to be added under the ReturnPolicy node only if we have specified in Shipping Template > Fulfilment Policy (under Shipping Discounts (Ebay Only!) tab) any fulfillmentPolicyId
otherwise we exclude it from the payload.
Full payload:
<?xml version="1.0" encoding="utf-8"?>
<ReviseFixedPriceItem xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken><![CDATA[v^1.1#i^1#p^3#f^0#r^1#I^3#t^Ul4xMF81OkU0ODU5MjM1RTRGOTg2Q0MwOEFERTJCOTY0OTlEMDc1XzJfMSNFXjI2MA==]]></eBayAuthToken>
</RequesterCredentials>
<DetailLevel><![CDATA[ReturnAll]]></DetailLevel>
<WarningLevel><![CDATA[High]]></WarningLevel>
<ErrorLanguage><![CDATA[en_US]]></ErrorLanguage>
<Item>
<Site><![CDATA[UK]]></Site>
<Currency><![CDATA[GBP]]></Currency>
<AutoPay><![CDATA[true]]></AutoPay>
<ItemID><![CDATA[195081857418]]></ItemID>
<Title><![CDATA[Pair of LP Aero Lockable Roof Bars & Roof Box 340L For Subaru TREZIA 2011-2015]]></Title>
<ListingDuration><![CDATA[GTC]]></ListingDuration>
<ListingType><![CDATA[FixedPriceItem]]></ListingType>
<PrimaryCategory>
<CategoryID><![CDATA[22710]]></CategoryID>
</PrimaryCategory>
<Storefront>
<StoreCategoryID></StoreCategoryID>
</Storefront>
<ConditionID><![CDATA[1000]]></ConditionID>
<Description><![CDATA[Roof Bars and Box Bundle. This is the best way of being sure the box will be compatible with the bars. We have tested it for you! You can also save money buying them together in just one order.]]></Description>
<ReturnPolicy>
<Description><![CDATA[• For all returns, please contact us first, stating your return reason & part number, as we may need to arrange for a collection, and / or in case we can offer you a better solution for your returns query.
• All Returns must be raised within 35 days from the order date.
• We can only accept returns if you have received them in faulty condition or if they turned faulty within 35 days from the order date (unless it’s a warranty case) and/or in every other case the item(s) need to be as follows:
o not devalued and in re-saleable condition
o Have not been fitted
o In original packaging in good condition (as arrived).
o include the documentation in good condition (as arrived).
• All items will be inspected and checked upon arrival.
• We will aim to replace / exchange / process your return within 2-3 working days. In case you haven’t heard back within this timeframe, please contact us and state your order number and part number so we can look into this for you asap.
• If your return is a warranty case, please state this first when contacting us as we may need to refer you to the manufacturer, which we will support you with.]]></Description>
<ReturnsAcceptedOption><![CDATA[ReturnsAccepted]]></ReturnsAcceptedOption>
<ReturnsWithinOption><![CDATA[Days_30]]></ReturnsWithinOption>
<ShippingCostPaidByOption><![CDATA[Buyer]]></ShippingCostPaidByOption>
</ReturnPolicy>
<SellerProfiles>
<SellerShippingProfile>
<ShippingProfileID>269011338022</ShippingProfileID>
</SellerShippingProfile>
</SellerProfiles>
<ItemSpecifics>
<NameValueList>
<Name><![CDATA[Brand]]></Name>
<Value><![CDATA[La Prealpina+Modula]]></Value>
</NameValueList>
<NameValueList>
<Name><![CDATA[MPN]]></Name>
<Value><![CDATA[MOCS0047+10901+L1297-9572]]></Value>
</NameValueList>
<NameValueList>
<Name><![CDATA[Manufacturer Part Number]]></Name>
<Value><![CDATA[MOCS0047+10901+L1297-9572]]></Value>
</NameValueList>
<NameValueList>
<Name><![CDATA[Type]]></Name>
<Value><![CDATA[Roof Rail]]></Value>
</NameValueList>
</ItemSpecifics>
<ShippingDetails>
<ShippingServiceOptions>
<FreeShipping>1</FreeShipping>
<ShippingService><![CDATA[UK_DHL]]></ShippingService>
<ShippingServicePriority><![CDATA[1]]></ShippingServicePriority>
<ShippingServiceCost><![CDATA[0.00]]></ShippingServiceCost>
<ShippingServiceAdditionalCost><![CDATA[0.00]]></ShippingServiceAdditionalCost>
</ShippingServiceOptions>
<ExcludeShipToLocation>Channel Islands</ExcludeShipToLocation>
<ExcludeShipToLocation>Isle of Man</ExcludeShipToLocation>
<ExcludeShipToLocation>Scottish Islands</ExcludeShipToLocation>
<ExcludeShipToLocation>Scottish Highlands</ExcludeShipToLocation>
<ExcludeShipToLocation>Northern Ireland</ExcludeShipToLocation>
<ExcludeShipToLocation>Isle of Wight</ExcludeShipToLocation>
<ExcludeShipToLocation>IE</ExcludeShipToLocation>
<GlobalShipping><![CDATA[false]]></GlobalShipping>
</ShippingDetails>
<DispatchTimeMax>2</DispatchTimeMax>
<ExtendedProducerResponsibility>
<ProducerProductID>0</ProducerProductID>
<ProductDocumentationID>0</ProductDocumentationID>
<ProductPackageID>0</ProductPackageID>
<ShipmentPackageID>0</ShipmentPackageID>
</ExtendedProducerResponsibility>
<PaymentMethods><![CDATA[CreditCard]]></PaymentMethods>
<Location><![CDATA[Stoke Orchard Cheltenham, Glouceshire]]></Location>
<PostalCode><![CDATA[GL527RU]]></PostalCode>
<Country><![CDATA[GB]]></Country>
<SKU><![CDATA[264520_3342278_BUNDLE--9572]]></SKU>
<Quantity><![CDATA[0]]></Quantity>
<StartPrice>461.94</StartPrice>
<ProductListingDetails>
<EAN><![CDATA[Does not apply]]></EAN>
</ProductListingDetails>
<DiscountPriceInfo>
<OriginalRetailPrice>514.00</OriginalRetailPrice>
<SoldOffeBay><![CDATA[0]]></SoldOffeBay>
<SoldOneBay><![CDATA[0]]></SoldOneBay>
</DiscountPriceInfo>
<PictureDetails>
<GalleryType><![CDATA[Gallery]]></GalleryType>
<PhotoDisplay><![CDATA[None]]></PhotoDisplay>
<PictureURL><![CDATA[https://autofixaproduploads.blob.core.windows.net/admin/Brands/KYB/20_KYB339701.jpg]]></PictureURL>
<PictureURL><![CDATA[https://autofixaproduploads.blob.core.windows.net/admin/Brands/vpad_logo.png]]></PictureURL>
<PictureURL><![CDATA[https://autofixaproduploads.blob.core.windows.net/admin/Brands/vpad_logo_1.png]]></PictureURL>
<PictureURL><![CDATA[https://autofixaproduploads.blob.core.windows.net/admin/VPAD/fitment.jpg]]></PictureURL>
<PictureURL><![CDATA[https://autofixaproduploads.blob.core.windows.net/admin/VPAD/follow.jpg]]></PictureURL>
<PictureURL><![CDATA[https://autofixaproduploads.blob.core.windows.net/admin/VPAD/trusted.jpg]]></PictureURL>
</PictureDetails>
<ItemCompatibilityList>
<ReplaceAll><![CDATA[true]]></ReplaceAll>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[120670]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[12155]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[133444]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[22466]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[22467]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[22469]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[22470]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[24667]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[30715]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[30716]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[31115]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[31116]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[31147]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[31148]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[31149]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[31150]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[34982]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[52438]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[52439]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[52440]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[52456]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[57455]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[57457]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[57458]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[57481]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[57499]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[5798]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[5799]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[59595]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[59600]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[59602]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[59604]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[59607]]></Value>
</NameValueList>
</Compatibility>
<Compatibility>
<NameValueList>
<Name><![CDATA[KType]]></Name>
<Value><![CDATA[59608]]></Value>
</NameValueList>
</Compatibility>
</ItemCompatibilityList>
<VideoDetails/>
</Item>
<DeletedField>Item.SubTitle</DeletedField>
<DeletedField>Item.ConditionDescription</DeletedField>
<DeletedField>Item.PayPalEmailAddress</DeletedField>
<DeletedField>Item.VideoDetails.VideoID</DeletedField>
</ReviseFixedPriceItem>