delivery-options

Use the delivery-options element in a price list in YML format to indicate the cost and terms of courier delivery for your region. This data will be displayed on Yandex.Market next to each of your store's product offers.

Attention.
  • When you use the delivery-options element, the available attribute doesn't affect the courier delivery period and the product status.

  • If you choose to inform customers about your delivery terms using the delivery-options element, make sure that in your store account, on the Connections and setup → Delivery settings page, the Use data from the price list option is selected.

How to indicate data in the element

The delivery-options element structure:


   <option cost=" cost" days="period" order-before="if you order before"/>

One option element provides information about one type of courier delivery:

  • cost — cost of delivery.

  • days — delivery period in business days.

  • order-before (optional) — time by which an order must be placed to receive it within the specified delivery period.

The delivery-options element may consist of up to five option elements for indicating various delivery types and conditions (for example, regular, express, etc.). If the store has several types of delivery, each of them in the option element should differ in both time and price. If the store has only one type of delivery, use only one option element.

Attention. If the delivery period depends on the time when the order is placed (you used the order-before attribute), you don't need to create two option elements with the same price and different delivery times. Yandex.Market will automatically update a delivery period for which the order-before attribute is specified (as soon as that time comes).

The cost attribute: cost of delivery.

  • You can only specify integers as values for this attribute.

  • The delivery-options element can be used in a price list twice (see the section below), therefore in delivery-options at the offer level specify the delivery cost in the offer currency. At the shop level, in the price list main currency.

  • For free delivery, set the value to 0.

If the product delivery cost varies depending on the district in the city:

  • Option A. Specify the maximum delivery cost to avoid quality errors.

  • Option B. Specify the delivery cost for the main city districts in the price list, and for the other districts create separate groups in your store account and set your owndelivery rates for them. (You can break down you delivery fees by neighborhood and district for major cities.)

The days attribute: delivery period.

Specific delivery period

If your store can offer same-day delivery, set the value to 0: days="0". If your store can offer next-day delivery, set the value to 1, and so on. The maximum value for the delivery period that can be displayed on Yandex.Market is 31 days.

You can specify both a specific number of days and a “range” of days. For example, you can specify a delivery period from 2 to 4 days as follows: days="2-4".

Attention. When you specify a “range” for your delivery window, you can't indicate more than two days.
Unknown delivery period (up to 60 days)

If the exact delivery period is unknown, set the value to 32 or more in the days attribute (or leave it empty). For such products, Yandex.Market will display information stating that delivery may take up to 60 days or a “pre-order” label will be displayed if the Yandex.Market database contains a date when the product will officially start being sold).

If a user purchases an item from your store and that item doesn't have a set delivery period, within an hour you must confirm their order. The confirmation must specify the product cost and delivery cost, but specifying a delivery date is not required. You may state a time period (no more than 60 days) in which a delivery date must be agreed upon and the order must be delivered.

The principles governing the calculation and display of the delivery period on Yandex.Market are described in the section How Yandex.Market calculates and displays delivery terms to users.

The order-before attribute: order time.

Specify the shipping cut-off time (in your store's time zone) so that customers will know when they must order by to receive the product by the promised delivery date. Use only integers between 0 and 24 as the value.

For example, the time 18:00 is displayed as order-before="18". If the delivery period is two days, then at times before 18:00 users will see that the delivery period is two days, and at times after 18:00 they will see the delivery period as three days.

If the attribute is not specified, the default value "13" is used.

How to use the element in the price list

General delivery terms for all products

The general delivery terms must be specified in the delivery-option element within the shop element (which must come after the categories element). These terms apply to all offers in your store with the exception of offers with individual delivery terms.

Attention. delivery-options as part of the shop element is mandatory. If this element is not specified, an error will be returned when the price list is verified.
<shop>
  ...
  <categories> ... </categories>
  <delivery-options>
    ...
  </delivery-options>
  <offers>
    ...
  </offers>
</shop>

Individual product delivery terms

If your offer has individual product delivery terms, then they should be specified in the delivery-options element as part of the corresponding offer element:

<shop>
  <delivery-options>
  ...
  </delivery-options>
  <offers>
    <offer id="1"> 
      <delivery-options>
      ...
      </delivery-options>
    </offer>
    <offer id="2"> 
    ...
    </offer>
  </offers>
</shop>

In this example, the first offer with id="1" has individual delivery terms, whereas the second offer with id="2" has general delivery terms that are specified within the shop element. The delivery-options element that is part of the offer element is always of higher priority.

How data from the delivery-options element is displayed on Yandex.Market

Delivery timeframe

Yandex.Market shows the delivery period in days while taking into account the business hours of the delivery service and the time when the order was placed (in the order-before attribute). If the term is not specified (it is empty or contains a value greater than 32), Yandex.Market will display information stating that delivery may take up to 60 days (or a “pre-order” label if the Yandex.Market database contains a date when the product will officially start being sold).

For detailed information, see the section How Yandex.Market calculates and displays delivery terms to users.

Delivery methods

If the store offers several delivery methods (there are multiple option elements), then the delivery option with the lowest cost will be considered to be the main one. The user will see the other delivery methods in the additional information section.

Usage examples

Specific delivery period

The store delivers all products on the next day regardless of the time when the order is placed. The delivery cost is 300 rubles.

<shop>
  <delivery-options>
    <option cost="300" days="1"/>
  </delivery-options>
  <offers>
   ...
  </offers>
</shop>

Delivery within several days

The store delivers all products within three days, and the delivery cost is 300 rubles.

<shop>
  <delivery-options>
    <option cost="300" days="1-3"/>
  </delivery-options>
  <offers>
   ...
  </offers>
</shop>

If the delivery period varies greatly, for example from two to seven days, the days attribute should specify the maximum period and an interval of no more than three days (allowed periods: 1–3, 2–4, 3–5, 4–6, etc.). So, for a delivery period of 2-7 days, you should specify days="5-7":

<shop>
  <delivery-options>
    <option cost="300" days="5-7"/>
  </delivery-options>
  <offers>
   ...
  </offers>
</shop>

Individual product delivery terms

The store delivers all products within a day, and the delivery cost is 300 rubles. However, there is an active promotion for a certain product: the next-day delivery costs 150 rubles.

<shop>
 <delivery-options> 
   <option cost="300" days="2"/> 
 </delivery-options>
  <offers>
    <offer>
      <delivery-options> 
       <option cost="150" days="1"/> 
      </delivery-options>
    </offer>
  </offers>
</shop>

The customer will see the following for the offer promotion on Yandex.Market: 150 rubles, tomorrow. For the other offers: “300 rubles, 2 days”.

The delivery period depends on the time when the order is placed

The store delivers all products on the next day if the order is placed before 14:00 on the current day. If the order is placed after 14:00, then products will be delivered on the day after tomorrow.

<shop>
  <delivery-options>
    <option cost="300" days="1" order-before="14"/>
  </delivery-options>
  <offers>
   ...
  </offers>
</shop>

The information will be displayed as follows on Yandex.Market:

  • Before 14:00: “300 rubles, tomorrow”.

  • After 14:00: “300 rubles, 2 days”.

Several delivery methods

The usual delivery period is four days if the customer places an order before 18:00, meaning that the delivery cost is 300 rubles. The store offers express same-day delivery for 500 rubles if the order is placed before 15:00.

<shop>
  <delivery-options>
    <option cost="300" days="4" order-before="18"/>
    <option cost="500" days="0" order-before="15"/>
  </delivery-options>
  <offers>
   ...
  </offers>
</shop>

For this example, the information will be displayed as follows on Yandex.Market:

  • Before 15:00: “300 rubles, 4 days”, and in the additional information section: “500 rubles, today.

  • Between 15:00 and 18:00: “300 rubles, 4 days”, and in the additional information section: “500 rubles, tomorrow.

  • After 18:00: “300 rubles, 5 days, and in the additional information section: “500 rubles, tomorrow.

Unknown delivery period (up to 60 days)

The store delivers all products with the exception of sofas on the next day for 300 rubles. The delivery fee for sofas is 500 rubles, though no delivery period is specified, as this product is made to order.

<shop>
  <delivery-options>
    <option cost="300" days="1"/>
  </delivery-options>
  <offers>
    <offer> 
      <delivery>true</delivery>
      <delivery-options>
        <option cost="500" days=""/>
      </delivery-options>
    </offer>
  </offers> 
</shop>

The following will be displayed for all offers with the exception of sofas on Yandex.Market: “300 rubles, tomorrow”. For sofas: “500 rubles, up to 60 days”.

This product is not delivered by courier

The store delivers all products on the next day with the exception of bulky items which the customer must pick up.

<shop>
  <delivery-options>
    <option cost="300" days="1"/>
  </delivery-options>
  <offers>    
    <offer id="1">
      <delivery>false</delivery>
      <pickup>true</pickup>
    </offer>
  </offers>
</shop>

The following will be displayed for all offers (excluding exceptions) on Yandex.Market: “300 rubles, tomorrow”. For a product without courier service (id="1"): “Customer pickup”).

For more detailed information about the delivery and pickup elements, see the section delivery, pickup, store.

Note. Information about the pickup option is displayed only if the store has configured customer pickup. If no customer pickup option is configured and there is no courier delivery option, the offer will not be shown on Yandex.Market, since it is not clear how the buyer will be able to receive the product.

Possible errors

One type of delivery in two elements option

Example of an incorrect offer:
<delivery-options>
  <option cost="0" days="1-2" order-before="15"/>
  <option cost="0" days="2-3"/>
</delivery-options>

In this case, before 15:00 two types of free delivery will be shown for the store's offers: one for a delivery period of 1-2 days, the other for a delivery period of 2-3 days. After 15:00, two types of delivery with the same terms and conditions will be displayed: free of charge, 2-3 days. In fact, the store offers the same free delivery, the period of which depends on the time of placing an order.

Correct:
<delivery-options>
  <option cost="0" days="1-2" order-before="15"/>
</delivery-options>

You only need to use one option element and set the time in the order-before attribute. After 15:00, Yandex.Market will automatically change the delivery period to 2-3 days.

Different types of delivery do not differ in period or price

Example of an incorrect offer:
<delivery-options>
  <option cost="400" days="0-3"/>
  <option cost="200" days="0-3"/>
</delivery-options>

In this case, two types of delivery will be displayed on Yandex.Market for the store's offers: with different prices but the same delivery period (0-3 days). In fact, the store offers express delivery within a period of 0-1 day (today or tomorrow) and the standard delivery period of 2-3 days.

Correct:
<delivery-options>
  <option cost="400" days="0-1"/>
  <option cost="200" days="2-3"/>
</delivery-options>

Don't specify a period common for all delivery types. You should specify a different period for each delivery type.