When the buyer clicks Confirm order, the data is sent to Yandex Delivery by default, and the delivery order is created. You can customize the process and set up an order status when the data will be sent to Yandex Delivery. It means that the data will be sent to Yandex only when the order status in your store’s admin panel changes to the specified value. Here is an example of how you can set up the status:
Initially, the order appears as Draft in your Yandex Delivery account. Why is that? Because this way a manager of your store can edit order details (if necessary) after contacting the customer. Once the order details are reviewed or modified, you should save and publish the final order. The final order can’t be changed; only canceled. If the order was canceled accidentally or due to technical difficulties, you can create the order within Yandex Delivery manually. But in this case, the order will not be associated with its original copy in the online store.
If the order status changes to Canceled or the order was moved to trash, the Yandex Delivery copy of it will be marked as Canceled.
An example of how the order looks like in the Yandex Delivery account:
This section covers settings you need to configure in step 2 after connecting to the Yandex Delivery API.
Order status for shipping is the status of the order when the order details are being sent to the delivery service. You can change order statuses manually on the order creation/editing page in the admin panel. Example:
Declared value of goods (%) – here you set up the declared value of the goods in the percentage of its real value. The value ranges from 1% to 100%. The declared value affects the amount of the insurance payout if goods were lost or damaged by the fault of the delivery service.
Packaging settings – the package size by default if the product does not have dimensions and weight. The weight and dimensions are set up on the product creation/editing page; Product data -> Delivery. Example:
You can find delivery methods here: WooCommerce -> Settings -> Shipping -> Shipping zone -> inside any shipping zone (there are no shipping zones by default; you should create them). An example of shipping methods:
To see the shipping method details, add this method inside the shipping zone (see above). Then click Edit below the method name.
Payment on delivery. Select one or several shipping methods holding the CTRL-key. If the customer chooses one of these methods, he or she should pay for the goods and shipping services on delivery. It does not matter whether the shipping method is by a courier or a pickup.
Discount on delivery. Use this option to add a discount on delivery for orders above a certain price. An example:
We have designed a hook filter so that you or your web developer could create custom conditions for discounts on delivery.
The woocommerce_wbcr_yandex_delivery_cost hook filter takes three parameters:
* Actual shipping cost for the customer;
* Real shipping cost
* Woocommerce Cart
The expected return is float – the new shipping price.
An example of usage. If the number of goods is greater than 10 and the total price is higher than 12,000 rubles; or if the order has a product with ID 11 the delivery cost is zero (free).
/**
* @param float $delivery_cost
* @param float $delivery_real_cost
* @param WC_Cart $cart
*
* @return float
*/
function woocommerce_delivery_cost_sale($delivery_cost, $delivery_real_cost, $cart) {
if($cart->get_cart_contents_count() > 10 && ((float) $cart->get_cart_total()) > 12000) {
$delivery_cost = 0.0;
} else {
foreach($cart->get_cart() as $cart_item) {
if($cart_item[‘id’] === 11) {
$delivery_cost = 0.0;
}
}
}
return $delivery_cost;
}
add_filter(‘woocommerce_wbcr_yandex_delivery_cost’, ‘woocommerce_delivery_cost_sale’, 10, 3);
© 2020, Creative Motion Development