wildberriesapifordev | Unsorted

Telegram-канал wildberriesapifordev - API WILDBERRIES for Dev

2016

⚠️ Не официальная группа по обсуждению API Wildberries, больше для программистов, чем для людей! :)

Subscribe to a channel

API WILDBERRIES for Dev

Кажется в другом отчете где-то 2 поля всегда одинаковые. Даже в доке написано было в шапке метода. Не помню какой.

Читать полностью…

API WILDBERRIES for Dev

Блин, или я с другим полем спутал?

Читать полностью…

API WILDBERRIES for Dev

Не интересовал этот спп никогда...
Сейчас посмотрел, весь год нули😅 Пардоньте...

А вот поля цен различаются довольно часто.

Читать полностью…

API WILDBERRIES for Dev

Спасибо в любом случае)

Читать полностью…

API WILDBERRIES for Dev

Эти параметры одинаковые

Читать полностью…

API WILDBERRIES for Dev


COALESCE(p.avg_ppvz_for_pay_by_fin_report, s.sales_amount_sum_without_spp) * (s.sales_count - COALESCE(rd.return_count, 0::bigint))::double precision - COALESCE(d.delivery_rub_avg, 118::double precision) * s.sales_count::double precision + COALESCE(rd.return_delivery_sum, 0::bigint)::double precision - COALESCE(ac.acceptance_sum, 0::double precision) - COALESCE(ps.paidstorage_sum, 0::double precision) - COALESCE(adv.adv_costs, 0::bigint)::double precision - COALESCE(s.sales_amount_sum_without_spp, 0::double precision) * tax.tax_rate::double precision - COALESCE(s.sales_count, 0::bigint)::double precision * COALESCE(ag.avg_last_two_prices, 0::double precision) - COALESCE(s.sales_count, 0::bigint)::double precision * COALESCE(ag.last_fulfillment, 0::double precision) AS "Прибыль",
ag.is_ours,
ag.article AS purchases_article,
COALESCE(ds.opencardcount_sum, 0::bigint) AS wb_opencardcount_sum,
COALESCE(ds.addtocartcount_sum, 0::bigint) AS wb_addtocartcount_sum
FROM sales_table s
FULL JOIN orders_data od ON od.nmid = s.nmid AND s.date = od.date AND s.supplier_name = od.supplier_name
LEFT JOIN ppvz_for_pay_table p ON s.nmid = p.nm_id
LEFT JOIN acceptance_data ac ON s.nmid = ac.nmid AND s.date = ac.date
LEFT JOIN delivery_data d ON s.nmid = d.nm_id AND s.supplier_name = d.supplier
LEFT JOIN paid_storage ps ON s.nmid = ps.nmid AND s.date = ps.date
LEFT JOIN adv_data adv ON s.nmid = adv.nm_id AND s.date = adv.adv_date
LEFT JOIN aggregateddata ag ON s.nmid = ag.nm_id AND s.supplier_name = ag.supplier
LEFT JOIN products.tax tax ON s.supplier_name = tax.supplier::text
LEFT JOIN return_delivery rd ON s.nmid = rd.nmid AND s.supplier_name = rd.supplier_name AND s.date = rd.date
LEFT JOIN detail_stat ds ON ds.nm_id = s.nmid AND s.supplier_name = ds.supplier AND s.date = ds.order_date;

Читать полностью…

API WILDBERRIES for Dev

Прошу судить не строго, я не претендую на опытного специалиста по SQL запросам

WITH sales_table AS (
SELECT s_1.supplier_name,
s_1.nmid,
s_1.date::date AS date,
count(DISTINCT s_1.srid) AS sales_count,
sum(
CASE
WHEN s_1.spp = 0 THEN s_1.pricewithdisc
ELSE s_1.pricewithdisc - s_1.pricewithdisc * s_1.spp::double precision / 100::double precision
END) AS sales_amount_sum_without_spp
FROM reports.sales s_1
WHERE upper(s_1.saleid) ~~ 'S%'::text
GROUP BY s_1.supplier_name, s_1.nmid, (s_1.date::date)
), orders_data AS (
SELECT o.nmid,
o.date::date AS date,
o.supplier_name,
count(DISTINCT o.srid) AS orders_count,
sum(
CASE
WHEN o.spp = 0 THEN o.pricewithdisc
ELSE o.pricewithdisc - o.pricewithdisc * o.spp::double precision / 100::double precision
END) AS orders_amount_sum_without_spp
FROM reports.orders o
GROUP BY o.nmid, (o.date::date), o.supplier_name
), return_delivery AS (
SELECT s_1.nmid,
s_1.supplier_name,
s_1.date::date AS date,
count(DISTINCT s_1.srid) AS return_count,
count(DISTINCT s_1.srid) * 50 AS return_delivery_sum
FROM reports.sales s_1
WHERE s_1.saleid !~~ 'S%'::text
GROUP BY s_1.nmid, s_1.supplier_name, (s_1.date::date)
), ppvz_for_pay_table AS (
SELECT dfr.nm_id,
avg(dfr.ppvz_for_pay::double precision) AS avg_ppvz_for_pay_by_fin_report
FROM reports.detail_finance_reports dfr
WHERE upper(dfr.doc_type_name) = 'ПРОДАЖА'::text AND dfr.quantity = 1 AND upper(dfr.supplier_oper_name) = 'ПРОДАЖА'::text AND dfr.date_from::date >= (CURRENT_DATE - '30 days'::interval)
GROUP BY dfr.nm_id
), acceptance_data AS (
SELECT sum(t.acceptance_sum) AS acceptance_sum,
t.supplier,
t.nmid,
t.date
FROM ( SELECT a.supplier,
a.nmid,
a."shkсreatedate" AS date,
sum(a.total) AS acceptance_sum
FROM reports.acceptance a
GROUP BY a.nmid, a."shkсreatedate", a.supplier
HAVING sum(a.total) > 0::double precision
UNION ALL
SELECT cfi.supplier,
cfi.nmid,
cfi.createdat::date AS date,
sum(cfi.scanprice) AS acceptance_sum
FROM supplies.corrected_fbs_incomes cfi
WHERE cfi.scanprice >= 0::double precision AND cfi.scanprice IS NOT NULL AND cfi.scanprice <> 'NaN'::double precision
GROUP BY cfi.nmid, cfi.createdat, cfi.supplier
HAVING sum(cfi.scanprice) > 0::double precision) t
GROUP BY t.supplier, t.nmid, t.date
), delivery_data AS (
SELECT dfr.nm_id,
dfr.supplier,
avg(dfr.delivery_rub::double precision) AS delivery_rub_avg
FROM reports.detail_finance_reports dfr
WHERE dfr.nm_id <> 0 AND dfr.delivery_amount = 1 AND dfr.sale_dt::date >= (CURRENT_DATE - '30 days'::interval)
GROUP BY dfr.nm_id, dfr.supplier
), paid_storage AS (
SELECT ps_1.nmid,
ps_1.date,
ps_1.supplier,
sum(ps_1.warehouseprice) AS paidstorage_sum
FROM reports.paid_storage ps_1
GROUP BY ps_1.date, ps_1.nmid, ps_1.supplier
), adv_data AS (
SELECT af.adv_date,
af.supplier,
af.nm_id,
sum(af.views) AS adv_views_sum,
sum(af.clicks) AS adv_clicks_sum,
sum(af.atbs) AS adv_atbs_sum,
sum(af.orders) AS adv_orders_sum,
sum(af.sum) AS adv_costs
FROM analytics.adv_fullstats af
GROUP BY af.adv_date, af.supplier, af.nm_id

Читать полностью…

API WILDBERRIES for Dev

https://dev.wildberries.ru/openapi/reports#tag/Otchyoty-po-tovaram/paths/~1api~1v1~1supplier~1orders/get

lastChangeDate

Читать полностью…

API WILDBERRIES for Dev

Придётся покумекать немного... у меня задача, чтобы по нажатии одной кнопки, создавалось два документа по "Остаткам" и "Заказам", с некоторыми рассчитываемыми полями, и получить при создании первых документов максимально возможную информацию, которую выдаст API, а затем засунуть эту обработку в регламентное задание, чтобы каждый последующий день выгружалась статистика за весь предыдущий, то есть беда только для формирования первых документов

Читать полностью…

API WILDBERRIES for Dev

Ну ладно, хотя бы такой выход, но он есть, спасибо большое!

Читать полностью…

API WILDBERRIES for Dev

То есть у меня будет 90 запросов? =)

Читать полностью…

API WILDBERRIES for Dev

Не предусмотрено в этом методе получение частями ...

Читать полностью…

API WILDBERRIES for Dev

А как тебе помочь с оптимизацией запроса, если мы его не видим?

Читать полностью…

API WILDBERRIES for Dev

Ребят, всем привет
Возник вопрос, если не сложно может кто подскажет..
Запрос https://statistics-api.wildberries.ru/api/v5/supplier/reportDetailByPeriod
В ответе по позиции вижу, что параметр "retail_price" равен по значению параметру "retail_price_withdisc_rub", однако параметр "ppvz_spp_prc" отличается от нуля.. Это здоровая ситуация и я что-то не так понял? Или что-то идет не так?
Изначально планировал величину спп получить путем вычитания retail_price_withdisc_rub из retail_price. Но чую подвох..

Читать полностью…

API WILDBERRIES for Dev

а потом достаешь че получилось и идешь книжку читать

Читать полностью…

API WILDBERRIES for Dev

Ну да.
retail_price - retail_price_withdisc_rub

Читать полностью…

API WILDBERRIES for Dev

Как заметил по поиску "СПП" в чате, ты много сталкивался..
Решил немного по подгонять и дошел до мини-формулки для рассчета спп:

spp =(retail_price - acquiring_fee - ppvz_sales_commission) * ppvz_spp_prc
Сильно отличаться от истины будет?

Читать полностью…

API WILDBERRIES for Dev

Где то была информация, вроде в новостях, что они ввели это поле, но они совпадают до особого распоряжения 😊

Читать полностью…

API WILDBERRIES for Dev

Об этом подумал, но отгонял мысли. Не понял зачем два отличных параметра для одинаковых значения, правда
Обратная совместимость?

Читать полностью…

API WILDBERRIES for Dev

Ввиду сомнений о корректности значений от wb. Среди 100000 транзакций не нашел ни одной, у которой была бы разница между параметрами отличной от нуля (retail_price - retail_price_withdisc_rub). Хотя параметр ppvz_spp_prc отличен от нуля

Если говорить о смысле, то, как почитал в чате, стандартное желание заказчика увидеть

Читать полностью…

API WILDBERRIES for Dev


), rankeddata AS (
SELECT p_1.nm_id,
p_1.supplier,
p_1.is_ours,
p2.price,
p2.fulfillment,
p2.article,
row_number() OVER (PARTITION BY p_1.nm_id, p_1.supplier, p_1.is_ours ORDER BY p2.ctid DESC) AS rn,
rank() OVER (PARTITION BY p_1.nm_id, p_1.supplier, p_1.is_ours ORDER BY p2.ctid DESC) AS rnk_price
FROM products.products p_1
LEFT JOIN products.purchases p2 ON p_1.purchase_article = COALESCE(NULLIF(p2.article, ''::text), 'no_data'::text) AND p_1.supplier = p2.supplier
), aggregateddata AS (
SELECT rankeddata.nm_id,
rankeddata.supplier,
rankeddata.is_ours,
rankeddata.article,
avg(
CASE
WHEN rankeddata.rnk_price <= 2 THEN rankeddata.price
ELSE NULL::double precision
END) AS avg_last_two_prices,
max(
CASE
WHEN rankeddata.rn = 1 THEN rankeddata.fulfillment
ELSE NULL::double precision
END) AS last_fulfillment
FROM rankeddata
GROUP BY rankeddata.nm_id, rankeddata.supplier, rankeddata.is_ours, rankeddata.article
), detail_stat AS (
SELECT do2.order_date,
do2.nm_id,
do2.supplier,
sum(do2.opencardcount) AS opencardcount_sum,
sum(do2.addtocartcount) AS addtocartcount_sum
FROM analytics.detail_orders do2
GROUP BY do2.order_date, do2.nm_id, do2.supplier
)
SELECT s.supplier_name,
s.nmid,
s.date,
COALESCE(s.sales_count, 0::bigint) AS sales_count,
COALESCE(s.sales_amount_sum_without_spp, 0::double precision) AS sales_amount_sum_without_spp,
COALESCE(od.orders_amount_sum_without_spp, 0::double precision) AS orders_amount_sum_without_spp,
COALESCE(od.orders_count, 0::bigint) AS orders_count,
COALESCE(rd.return_count, 0::bigint) AS return_count,
COALESCE(p.avg_ppvz_for_pay_by_fin_report, s.sales_amount_sum_without_spp) * (s.sales_count - COALESCE(rd.return_count, 0::bigint))::double precision AS ppvz_for_pay_adj,
COALESCE(d.delivery_rub_avg, 118::double precision) * s.sales_count::double precision + COALESCE(rd.return_delivery_sum, 0::bigint)::double precision AS delivery_rub_avg,
COALESCE(ac.acceptance_sum, 0::double precision) AS acceptance_sum,
COALESCE(ps.paidstorage_sum, 0::double precision) AS paidstorage_sum,
COALESCE(adv.adv_views_sum, 0::bigint) AS adv_views_sum,
COALESCE(adv.adv_orders_sum, 0::bigint) AS adv_orders_sum,
COALESCE(adv.adv_atbs_sum, 0::bigint) AS adv_atbs_sum,
COALESCE(adv.adv_clicks_sum, 0::bigint) AS adv_clicks_sum,
COALESCE(adv.adv_costs, 0::bigint) AS adv_costs,
COALESCE(ag.avg_last_two_prices, 0::double precision) AS avg_last_two_prices,
COALESCE(ag.last_fulfillment, 0::double precision) AS last_fulfillment,
COALESCE(s.sales_count, 0::bigint)::double precision * COALESCE(ag.avg_last_two_prices, 0::double precision) AS amount_of_purchases,
COALESCE(s.sales_count, 0::bigint)::double precision * COALESCE(ag.last_fulfillment, 0::double precision) AS amount_of_fulfillment,
COALESCE(p.avg_ppvz_for_pay_by_fin_report, s.sales_amount_sum_without_spp) * (s.sales_count - COALESCE(rd.return_count, 0::bigint))::double precision - COALESCE(d.delivery_rub_avg, 118::double precision) * s.sales_count::double precision + COALESCE(rd.return_delivery_sum, 0::bigint)::double precision - COALESCE(ac.acceptance_sum, 0::double precision) - COALESCE(ps.paidstorage_sum, 0::double precision) - COALESCE(adv.adv_costs, 0::bigint)::double precision AS "Маржа",
COALESCE(s.sales_amount_sum_without_spp * tax.tax_rate::double precision, 0::double precision) AS "Сумма налогов",

Читать полностью…

API WILDBERRIES for Dev

А зачем вычислять СПП(ppvz_spp_prc), если он итак там уже есть?

Не понятен сам вопрос....

Читать полностью…

API WILDBERRIES for Dev

Можно flag=0, но тогда обратите внимание на его описание, что вы будете получать ...

Читать полностью…

API WILDBERRIES for Dev

Столько, сколько нужно. От текущей даты и вглубь. Дают чуть больше чем 90.

Читать полностью…

API WILDBERRIES for Dev

При максимуме 1 запрос в минуту... Это жесть

Читать полностью…

API WILDBERRIES for Dev

dateFrom=2024-09-01
flag=1

dateFrom=2024-09-02
flag=1

...

Читать полностью…

API WILDBERRIES for Dev

Всем привет! Подскажите, пожалуйста, может, кто сталкивался... Получаю в 1С методом «GET» статистику по "Заказам". Задаю ресурс отправки, в котором прописываю параметр &dateFrom равный (для примера) месяцу назад от текущей даты. В отладке смотрю на полученный массив данных после запроса, и там фиксированно выдаёт только 80000 строк, даже если я поставлю параметр &dateFrom равный 3 месяца назад от текущей даты (хотя в openapi.wildberries.ru написано, что варьируется от 0 до 100000 строк). В результате данные оказывается неполными и заканчиваются не текущей датой. Понятное дело, что, возможно, эту выгрузку нужно делать частями, так как все данные не помещаются в одном запросе, но весь прикол в том, что я нашёл параметр «rrdid», но он доступен только в разделе статистики "Отчет о продажах по реализации", в разделе "Заказы" такого параметра нет. Также в openapi.wildberries.ru написано, что "Гарантируется хранение данных не более 90 дней от даты заказа" в разделе статистики "Заказы". То есть параметра «rrdid» нет и одним запросом с нужной даты я данные не получаю, как получить все заказы за 90 дней именно в разделе статистики «Заказы»?

Читать полностью…

API WILDBERRIES for Dev

У меня запрос с 7 left join, собираю всю информацию по продажам и рассчитываю прибыль
Проблема в том, что очень долго запрос выполняется и на стороне Datalens в тайм-аут падаю

Читать полностью…

API WILDBERRIES for Dev

Погодите, человек ещё даже не решил, что у него за запрос, а вы уже с советами лезете.

Читать полностью…

API WILDBERRIES for Dev

да просто в chatgpt кидй и проси оптимизации... че тут местных то просить .. =)

Читать полностью…
Subscribe to a channel