upwoo
@upwoo
WordPress ❤️ PHP ❤️ Woocommerce ❤️

Как сформировать массив PHP?

Я пытаюсь настроить API WB, мне нужны отчеты по продажам, все получается отлично, но формат в котором приходят отчеты хочу сделать удобными, так приходит в ответ на запрос

[
  {
    "realizationreport_id": 1234567,
    "date_from": "2022-10-17T00:00:00Z",
    "date_to": "2022-10-23T00:00:00Z",
    "create_dt": "2022-10-24T14:40:32",
    "suppliercontract_code": null,
    "rrd_id": 1232610467,
    "gi_id": 123456,
    "subject_name": "Мини-печи",
    "nm_id": 1234567,
    "brand_name": "BlahBlah",
    "sa_name": "MAB123",
    "ts_name": "0",
    "barcode": "1231312352310",
    "doc_type_name": "Продажа",
    "quantity": 1,
    "retail_price": 1249,
    "retail_amount": 367,
    "sale_percent": 68,
    "commission_percent": 0.1324,
    "office_name": "Коледино",
    "supplier_oper_name": "Продажа",
    "order_dt": "2022-10-13T00:00:00Z",
    "sale_dt": "2022-10-20T00:00:00Z",
    "rr_dt": "2022-10-20T00:00:00Z",
    "shk_id": 1239159661,
    "retail_price_withdisc_rub": 399.68,
    "delivery_amount": 0,
    "return_amount": 0,
    "delivery_rub": 0,
    "gi_box_type_name": "Монопалета",
    "product_discount_for_report": 399.68,
    "supplier_promo": 0,
    "rid": 123722249253,
    "ppvz_spp_prc": 0.1581,
    "ppvz_kvw_prc_base": 0.15,
    "ppvz_kvw_prc": -0.0081,
    "sup_rating_prc_up": 0,
    "is_kgvp_v2": 0,
    "ppvz_sales_commission": -3.74,
    "ppvz_for_pay": 376.99,
    "ppvz_reward": 0,
    "acquiring_fee": 14.89,
    "acquiring_bank": "Тинькофф",
    "ppvz_vw": -3.74,
    "ppvz_vw_nds": -0.75,
    "ppvz_office_id": 105383,
    "ppvz_office_name": "Пункт самовывоза (ПВЗ)",
    "ppvz_supplier_id": 186465,
    "ppvz_supplier_name": "ИП Жасмин",
    "ppvz_inn": "010101010101",
    "declaration_number": "",
    "bonus_type_name": "Штраф МП. Невыполненный заказ (отмена клиентом после недовоза)",
    "sticker_id": "1964038895",
    "site_country": "RU",
    "penalty": 231.35,
    "additional_payment": 0,
    "rebill_logistic_cost": 1.349,
    "rebill_logistic_org": "ИП Иванов Иван Иванович(123456789012)",
    "kiz": "0102900000376311210G2CIS?ehge)S\u001d91002A\u001d92F9Qof4FDo/31Icm14kmtuVYQzLypxm3HWkC1vQ/+pVVjm1dNAth1laFMoAGn7yEMWlTjxIe7lQnJqZ7TRZhlHQ==",
    "srid": "711ab8cb94e040f98b3804e5f331bf7a_r"
  }
]


realizationreport_id - это отчет все что ниже это либо "Продажа" либо "Возврат" (doc_type_name), в ответ приходит каждая продажа в таком формате, т.е. в одном отчете может быть 100 продаж и 100 возвратов, мне надо преобразовать в массив где realizationreport_id - это один отчет а в него уже входят и продажи и возвраты все.

Как мне можно это организовать? Код необязательно писать, просто подсказку дать как структурировать можно задуманное?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
@WitER
Конвертировать пришедший json в удобный для вас формат - объект/массив, после чего пройтись циклом/array_map-ом и собрать нужный вам массив.
Где, если в ответе присутствуют разные realizationreport_id - они будут ключами массивов в которые вы агрегируете данные из каждой записи по этому полю, или просто агрегируете данные в простой массив. С учётом значений поля doc_type_name, конечно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
$data = json_decode("[{......}]", true);
var_dump($data);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы