Qoo10 Functional Scope
General explanation of the Marketplace
Marketplace integration generally is standard as type of integration. It is using a sync communication, providing the option for Creating / Updating Products, Stock & Price updates, Discount setup, Getting Orders, Updating Shipping, Issuing Cancellations, Getting Claims information and working with them
Flows to be used:
Product Flows:
Create Products
Update Products
Update Stock & Price
Set Discounts
Deactivate Products?
Order Flows:
Get Orders
Accept Orders?
Update Shipping
Update Shipping Complete?
Cancelations
Other:
ℹ **Authentication - Specifics**
Authentication on Qoo10 to execute all calls is made with a simple Seller Authorization Key (SAK). To obtain this the following steps are to be made:
- Qoo10 support/administration needs to be contacted so an API key is provided
- using this API key account username and password a Certification call is made to obtain the SAK
- SAK is to be used on every following call made between WAP APP and Qoo10
- All values are to be stored in the Qoo10 account table. No specific automation can be done
- SAK is valid for an year. There is a need to store expiration date and ensure automatic revalidation
ℹ **Product flows - Specifics**
Qoo10 is not a catalogue based marketplace. Most fields seem standard and there is a possibility to add attributes that do not exist on the marketplace specifying both name and value. Variations seem to be as part of the listing, meaning they don't have their own codes unless additionally specified and are not treated as separate products. Variation options and values are free text values and can be filled in with Seller's preferred options
Category, Brand and Manufacturer are fields that are filled with codes only available on the QSM (Qoo10 Selling Manager) for download. If Brand or Manufacturer value is missing this is to be requested for register on the QSM. Shipping is set on the account level, in WAP APP we need to have the specific code of the method we want to use on the product. Description is supporting HTML
Products on Qoo10 are working with multitude of calls for Creation or Update. A lot of information is missing from generic "Start" calls that is available in several different consecutive calls so it seems that a completion of an operation as we know it will have to undergo several steps.
- Product Creation - this operation is to use multiple calls and is going to have different flows for Single and Variant products. It is to use a multi step methodology as the one we use with other marketplaces and "Channel Status" and is supposed to push a "Product Status" on "Active" as soon as a product is available on the marketplace for selling regardless if the full listing operation is complete
- Single
- SetNewGoods - Create the listing
- UpdateGoods - If any of the difference fields are actually present and filled in (example: "Short title", "Material", etc)
- EditGoodsMultiImage - If additional images are available on the product
- EditItemCondition - If condition is different than "New"
- UpdateItemDiscount - If there is "SalePrice" available and smaller than "StartPrice"
- SetItemPropertyInfo - If there is anything identified as attribute not sent with the previous calls. **Condition**: using only after an answer is received for "How added attributes are removed"
- Variation
- SetNewGoods - Create the listing
- UpdateGoods - If any of the difference fields are actually present and filled in (example: "Short title", "Material", etc)
- EditGoodsMultiImage - If additional images are available on the product
- EditItemCondition - If condition is different than "New"
- EditGoodsInventory - Set Quantity and Price and Option Code for every Variation
- UpdateItemDiscount - If there is "SalePrice" available and smaller than "StartPrice". **Condition**: using with the smallest "SalePrice on the variation"
- SetItemPropertyInfo - If there is anything identified as attribute not sent with the previous calls. Note: using only after an answer is received for "How added attributes are removed"
- Product Update - this operation is to use multiple calls and is going to have different flows for Single and Variant products if a full update is made. Furthermore it is to be possible to select a specific section which to be updated only instead of sending a full product update with all its different parts. Different section calls are to be identified with a "#" below
- Single
- UpdateGoods
- #EditGoodsContent
- #EditGoodsImage
- #EditGoodsMultiImage
- #EditItemCondition
- #SetGoodsPriceQty
- #UpdateItemDiscount
- #SetItemPropertyInfo
- Variation
- UpdateGoods
- #EditGoodsContent
- #EditGoodsImage
- #EditGoodsMultiImage
- #EditItemCondition
- #EditGoodsInventory
- #UpdateItemDiscount
- #SetItemPropertyInfo
- #EditGoodsOption
- Stock & Price Updates & Zero Quantity
- Single
- SetGoodsPriceQty
- Variation
- UpdateInventoryDataUnit
- Deactivade
- EditGoodsStatus - **Condition**: only if mandatory when sending 0 stock update. Have in mind if used to confirm if needed to use on next positive stock update
- Any Other
- EditGoodsTextIption - Only in a case of free text options needed. TBC and if added at all as phase 2
ℹ **Order flows - Specifics**
Qoo10 has two types of orders - normal and ecoupon orders. To start with we are aiming for the normal orders and are to add ecoupon orders as phase 2. Orders look completed and finished when available for download so no Pending orders are expected. TBC if multiple items on orders are available, by all looks multiple quantity is available
There is a possibility for order acknowledgement which doesn't seem mandatory
Shipping update is straight forward with providing Courier and Tracking. Shipping is on Order level. Question stays if a Shipping Completion is mandatory for the Marketplace
Cancellation works by opening "Claims" from both sides, Claims that need to be approved. Claims are possibly phase 2 for the marketplace integration
- Get Orders
- GetShippingInfo OR GetShippingInfo_v2 (GetShippingInfo will be used.)
- Accept Orders
- SetSellerCheckYN OR SetSellerCheckYN_v2 (SetSellerCheckYN will be used.)
- Ship Orders
- SetSendingInfo
- SetSendingComplete - TBC
- Cancel Orders
- GetClaimInfo OR GetClaimInfo_v2 - to read available Cancellation requests on the Marketplace
- GetShippingAndClaimInfoByOrderNo - to read Cancellation requests for specific Order ID
- SetCancelProcess - to create a claim from the seller side. **Question**: what is "ContrNo"
- SetClaimAccept - to accept buyer initiated claim
ℹ **Other - Specifics**
Questions:
- Products
- How to remove additional attributes once set?
- Will product status be updated automatically if positive quantity is passed via a normal Stock&Price update if this product was previously set as "Discontinued"?
- Are there options to add different fields to different calls? Example: is the EditItemCondition call the only way to create a "used" product as there is no other way to add this on SetNewGoods
- Is there discount on Variation Prices? If not does this mean it will show the different options with their own values and the difference to the newly set discount?
- Is it possible to buy a product without selecting any option if Variant?
- Is the EditGoodsInventory the only place where a "Code" can be set for a Product Option? Why?
- What is the Content and how (if) is it different from the product description?
- Orders
- Is it mandatory to Acknowledge orders?
- Is it mandatory to set a shipping Complete on orders (closing them in a way)?
- When setting cancellation is it a claim that needs the buyer approval or is it automatically processed?
- What happens with unapproved claims?
- Is there a list of mandatory couriers that we need to use or we can just set the one we are using when updating the shipping?
Note : Please have in mind this is not final version and will need some more work