Skip to main content
Published: March 25 2010, 5:36:00 PMUpdated: November 28 2020, 8:18:17 PM

Do I need to send all my Variations during a revise or relist? What about the VariationSpecificsSet?

Some rules of thumb -

  1. You should only specify variations that you want to add to the listing or the variations that you want to revise during the revise or relist operation.
  2. Use ReviseInventoryStatus call when revising only the price and/or quantity.

You should only specify the complete VariationSpecificsSet in your revise or relist request if you are adding a new variation. As a best practice specify all the possible variations that you may potentially have when you list the item for the first time. If you do this you don't have to worry about sending the VariationSpecificsSet container with the updated list of variations every time you add a new variation to the listing.

Note: The set of Variations should be an equal set or a subset of the VariationSpecificsSet.

Assumption: Item was listed with InventoryTrackingMethod = SKU

Consider this Variations snippet from an AddFixedPriceItem request. The item was listed with variations on size (7 and 8). As a best practice seller specified the VariationsSpecificSet to have values 7 through 11 although he only has size 7 and 8 in stock.

     <Variations>
      <Variation> 
        <SKU>SIZE007</SKU>
       <StartPrice currencyID="USD">9.99</StartPrice>
        <Quantity>34</Quantity>
        <VariationSpecifics>
          <NameValueList>
            <Name>Size</Name>
            <Value>7</Value>
          </NameValueList>
        </VariationSpecifics>
      </Variation>
      <Variation> 
        <SKU>SIZE008</SKU>
        <StartPrice currencyID="USD">9.99</StartPrice>
        <Quantity>47</Quantity>
        <VariationSpecifics>
          <NameValueList>
            <Name>Size</Name>
            <Value>8</Value>
          </NameValueList>
        </VariationSpecifics>
      </Variation>
      <VariationSpecificsSet>
        <NameValueList>
          <Name>Size</Name>
          <Value>7</Value>
          <Value>8</Value>
          <Value>9</Value>
          <Value>10</Value>
          <Value>11</Value>
        </NameValueList>
      </VariationSpecificsSet>
    </Variations>
.
.
</AddFixedPriceItemRequest>

Case 1: Revise existing variations - Make a call to ReviseInventoryStatus to revise the quantity of the existing variations to 50.

 <InventoryStatus>
        <SKU>SIZE007</SKU>
        <Quantity>50</Quantity> 
 </InventoryStatus>

<InventoryStatus>
     
<SKU>SIZE008</SKU> 
        <Quantity>50</Quantity> 
 </InventoryStatus>
.
.
.
</ReviseInventoryStatusRequest>

Case 2: Add a new variation - Send in the new Variation. VariationSpecificSet not required because the master set was sent when listing the item. If the original VariationSpecificSet had not contained the value 9, then you would have had to send the entire VariationSpecificsSet container during this operation, else the operation would have come back with this error. The updated item will now have 3 variations size: 7, 8, 9. This snippet could go into either a ReviseFixedPriceItem or a RelistFixedPriceItem request depending on the use case.

     <Variations>
      <Variation> 
        <SKU>SIZE009</SKU>
        <StartPrice currencyID="USD">9.99</StartPrice>
        <Quantity>12</Quantity>
        <VariationSpecifics>
          <NameValueList>
            <Name>Size</Name>
            <Value>9</Value>
          </NameValueList>
        </VariationSpecifics>
      </Variation>
         </Variations>

Case 3: Delete a variation - VariationSpecificsSet not required. Only send the Variation you want to delete. The updated item will now have 2 variations size: 8, 9. This snippet could go into either a ReviseFixedPriceItem or a RelistFixedPriceItem request depending on the use case.

<Variations>
      <Variation>
     
<Delete>true</Delete> 
        <SKU>SIZE007</SKU>
      </Variation>
 </Variations>

How well did this answer your question?
Answers others found helpful