Skip to content

Commit

Permalink
Added YandexYmlDelivery class and service.
Browse files Browse the repository at this point in the history
  • Loading branch information
Niklan committed Feb 23, 2018
1 parent cf1cb91 commit ce3b257
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ Add services for:

- [x] Currency
- [x] Category
- [ ] Delivery
- [x] Delivery
- [ ] ShopInfo

102 changes: 102 additions & 0 deletions src/YandexYml/Delivery/YandexYmlDelivery.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
<?php

namespace Drupal\yandex_yml\YandexYml\Delivery;

/**
* Class YandexYmlDelivery.
*
* @see https://yandex.ru/support/partnermarket/elements/delivery-options.html
*/
class YandexYmlDelivery {

/**
* Delivery cost.
*
* @var int
*/
private $cost;

/**
* Duration of delivery.
*
* @var mixed
*/
private $days;

/**
* Time of order.
*
* @var int
*/
private $orderBefore;

/**
* Set cost of delivery.
*
* - If this delivery option will be on offer level then set cost in currency
* of offer, otherwise use default currency for shop.
* - For free delivery set cost to 0.
*
* @param int $cost
*
* @return YandexYmlDelivery
*/
public function setCost($cost) {
$this->cost = $cost;
return $this;
}

/**
* Set estimated delivery time.
*
* - If can be delivered today, set it to 0.
* - For tomorrow delivery set 1.
* - Max delivery time 31 day.
* - You can pass deliver period like "2-4". But difference between from and
* to days can't be more than 3, so "2-5" will be incorrect value.
* - If you don't know delivery time or it more than 31 day, set value 32 or
* more. This will mean in Yandex "to order".
*
* @param mixed $days
*
* @return YandexYmlDelivery
*/
public function setDays($days) {
$this->days = $days;
return $this;
}

/**
* @return mixed
*/
public function getDays() {
return $this->days;
}

/**
* Set order before time.
*
* Used to denote before which time delivery offer is available. If you set
* it to 18, and delivery days to 0 (today) users before 18:00 will see
* delivery date - today, after 18:00 they will see - tomorrow.
*
* - Only 0-24 values are valid. Where 18 means 18:00.
* - Default value (if not set) 13 by Yandex.
*
* @param int $orderBefore
*
* @return YandexYmlDelivery
*/
public function setOrderBefore($orderBefore) {
$this->orderBefore = $orderBefore;
return $this;
}

/**
* @return int
*/
public function getOrderBefore() {
return $this->orderBefore;
}

}
3 changes: 3 additions & 0 deletions yandex_yml.services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,7 @@ services:
arguments: []
yandex_yml.category:
class: Drupal\yandex_yml\YandexYml\Category\YandexYmlCategory
arguments: []
yandex_yml.delivery:
class: Drupal\yandex_yml\YandexYml\Delivery\YandexYmlDelivery
arguments: []

0 comments on commit ce3b257

Please sign in to comment.