Как записать скидку и купон на заказы API в бэкэнде администратора WP?Php

Кемеровские программисты php общаются здесь
Anonymous
Как записать скидку и купон на заказы API в бэкэнде администратора WP?

Сообщение Anonymous »

Итак, я понял, что при использовании WP REST API для создания заказов параметр Discount_total показывает сумму скидки (которая вероятно рассчитывается путем вычитания line_items['total']< /code> от общей стоимости приобретенных покупателем товаров).
Я не совсем уверен, правда ли это, поскольку это всего лишь временное решение, которое я придумал, чтобы понять, как WOOCOMMERCE выполняет расчет скидки.
Итак, в приведенном ниже фрагменте кода я имитировал запрос заказа через WP API с рассчитанной извне суммой скидки, после чего я передал новое значение $totalPrice в API, чтобы оно отражало скидку на панели администратора. Код РАБОТАЕТ и скидка отобразилась на панели управления

Код: Выделить всё

   //code snippet
$order_data = [
'payment_method' => 'bacs',
'payment_method_title' => 'Checkout',
'customer_id' => intval($customer_id),
'transaction_id' => (string)$transaction_id,
'set_paid' => true,
'status' => 'completed',
'billing' => $billing_data,
'shipping' => $shipping_data,
'meta_data' => array(
array(
'key' => 'created by',
'value' => 'api request'
)
),
'line_items' => array(
array(
'product_id' => intval($product_id),
'quantity' => intval($quantityToBuy),
'total' => (string)$totalPrice,
)
),
];
Однако, когда я повторил тот же процесс для заказов, которые включали КУПОНЫ, отражалась только скидка по купону.

Код: Выделить всё

   $order_data = [
'payment_method' => 'bacs',
'payment_method_title' => 'Checkout',
'customer_id' => intval($customer_id),
'transaction_id' => (string)$transaction_id,
'set_paid' => true,
'status' => 'completed',
'billing' => $billing_data,
'shipping' => $shipping_data,
'meta_data' => array(
array(
'key' => 'created by',
'value' => 'api request'
)
),
'line_items' => array(
array(
'product_id' => intval($product_id),
'quantity' => intval($quantityToBuy),
'total' => (string)$totalPrice,
)
),
'coupon_lines' => array(
array(
'code' => (string)$coupon_code
)
)
];
Итак, в случаях, когда клиент использует купон в дополнение к какой-либо другой скидке, общая сумма, подлежащая оплате пользователем будет отличаться (меньше) от суммы, указанной на информационной панели.
Как мне решить эту проблему, я открыт для любых предложений.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/785 ... in-backend

Вернуться в «Php»