Инвентарь (см. количество на продажу)

Поле inventory в каталоге товаров представляет имеющееся в наличии количество каждого товара, доступного для продажи в вашем магазине на Facebook или в Instagram. Это значение отображается на странице подробных сведений о товаре, чтобы покупатели знали, сколько единиц товара имеется в наличии. Очень важно следить за актуальностью этого параметра, чтобы у покупателей оставалось положительное впечатление от работы вашего магазина, ведь если указано неверное значение, клиенты не смогут приобрести товары, которые на самом деле есть в наличии, или могут заказать товары, запас которых у вас закончился.

ПРИМЕЧАНИЕ. Поле inventory будет упразднено и заменено новым полем quantity_to_sell_on_facebook. Предыдущее имя поля будет поддерживаться в течение некоторого времени, но мы советуем использовать новое. Подробнее об этом изменении см. в статье Поддерживаемые поля для товаров: объявления из каталога Advantage+ и торговля.

Примечание. Товар, для которого настроено поле инвентаря, нельзя отмечать тегами или покупать. Однако его можно использовать в объявлениях из каталога Advantage+ (без оформления заказа).

Изменения в инвентаре

Поле inventory — динамическое. Это означает, что его значение изменяется по мере того, как люди покупают товары в вашем магазине на Facebook или в Instagram. Когда пользователь размещает заказ, количество соответствующего товара в инвентаре уменьшается.

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

Значение, которое вы указываете при загрузке каталога товаров или другими способами (подробнее см. в разделе Способы обновления инвентаря), считается основным. Оно используется для перезаписи значения, кэшированного на наших серверах.

На наших серверах хранятся следующие данные, связанные с количеством инвентаря:

  • предоставленный инвентарь — значение, которое вы предоставляете при загрузке каталога товаров или другими способами (подробнее см. в разделе Способы обновления инвентаря);
  • доступный инвентарь — количество товаров, которое пользователи могут приобрести (здесь учитываются ещё не обработанные заказы).

Подробнее об этих типах инвентаря см. в разделе Жизненный цикл товара.

Товары не в наличии

По мере того как пользователи покупают товар в вашем магазине на Facebook или в Instagram, значение inventory уменьшается. Когда оно достигает 0, мы помечаем товар как "Нет в наличии" и не позволяем покупателям приобретать избыточное количество товара. Старайтесь регулярно закупать товар и возвращать его в статус "В наличии". Если ваших товаров часто нет в наличии, у пользователей создается негативное впечатление от вашего магазина и бренда.

Если покупатель находит товар, которого нет в наличии, мы стараемся заменить страницу подробной информации о товаре на его вариант, который есть в наличии, на основании значения inventory для варианта товара в каталоге.

Товары, которые больше не продаются

Если товар больше не производится и не продается, вы можете решить, что его нужно удалить из каталога. Мы не рекомендуем делать это.

Удаление товара из каталога может привести к нежелательным последствиям: например, могут исчезнуть теги или изображения товаров. Рекомендуем удалять товары только по прошествии длительного времени (несколько месяцев).

Вместо удаления товаров просто задайте для поля visibility значение staging. Так платформа электронной торговли сможет связать ваш товар с существующим объектом и правильно обрабатывать различные ситуации.

Жизненный цикл товара

Каждый раз, когда вы обновляете инвентарь, мы обновляем значение предоставленного инвентаря. Это значение не соответствует доступному к покупке количеству товаров. Мы отслеживаем входящие заказы (у которых может быть разный статус) и вычитаем количество непринятых заказов, чтобы вычислить окончательное доступное количество товара. Это значение не передается за пределы нашей платформы.

Доступный инвентарь = предоставленный инвентарь – непринятые заказы.

После подтверждения заказов у вас есть 30 минут на их обработку и обновление инвентаря через каталог. По прошествии этого времени мы убираем эти подтвержденные заказы из формулы.

Превышение складских запасов

Чтобы платформа электронной торговли могла обслуживать тысячи продавцов, мы решили не поддерживать синхронное управление инвентарем. Поэтому мы не поддерживаем атомарные транзакции при покупке в комбинации с уменьшением запасов на вашем складе. Если ваш инвентарь продается по нескольким каналам, вы можете случайно превысить складские запасы товаров при продажах на Facebook или в Instagram. Это может случиться с товарами, которые доступны в ограниченном количестве и быстро продаются.

Если из-за этого у вас не получается выполнять заказы, запустите процесс отмены заказа и установите для reason_code значение OUT_OF_STOCK.

Если такая ситуация возникает часто, старайтесь обрабатывать заказы чаще и изменяйте уровень инвентаря соответственно.

Способы интеграции инвентаря

Инвентарь можно обновлять разными способами в зависимости от типа интеграции:

  • через пользовательский интерфейс Commerce Manager (небольшие группы товаров, тестирование и т. д.);
  • через ленту с автоматической или ручной загрузкой;
  • через API Feed;
  • через API Batch.

Способы обновления инвентаря

Из-за того, что распределенные системы работают асинхронно, значение inventory в вашем каталоге товаров может рассинхронизироваться (вне зависимости от того, как быстро вы обновляете уровень инвентаря). Вот что можно сделать, чтобы состояние гонки возникало как можно реже.

Предварительное распределение инвентаря

Самый эффективный способ избежать превышения запасов — заранее выделить определенный инвентарь в магазин на Facebook или в Instagram. Выделяя определенное количество инвентаря на каждый канал продаж, вы избегаете ситуаций, когда продажи по этим каналам затрагивают друг друга. Эту стратегию можно использовать для всего каталога или только для его части.

Медленная продажа товаров

Если товар продается медленно или у вас большой запас этого товара, риск превышения складских запасов сравнительно низок. В этом случае можно пользоваться простым способом обновления каталога товаров:

  • Настройте запланированное обновление ленты (ежедневное или ежечасное). Лента должна содержать все поля, в том числе самое актуальное значение inventory.

Быстрая продажа товаров

Для товаров, которые продаются быстро, запасы которых малы или очень быстро изменяются, поля с непостоянными значениями (например, inventory) нужно обновлять чаще. Для этого можно использовать API Real-Time Batch. Вот общая стратегия, которой можно следовать:

  • Настройте запланированное обновление ленты (ежедневное или ежечасное). Лента должна содержать все необходимые поля каталога товаров и не содержать поля с изменяющимися значениями, такие как inventory. Назначение этой ленты — обновление статичных полей, чтобы поля с изменяющимися значениями можно было обновлять с помощью API Real-Time.
  • Когда значения изменяются на вашем сервере, обновляйте поле inventory и другие через API Real-Time Batch. Можно также обновлять их с определенной частотой. Очень важно, чтобы эти поля не были добавлены в ленту. Это поможет избежать наложений.

Вот пример обновлений с использованием API Real-Time Batch:

curl \
  -d @body.json \
  -H "Content-Type: application/json"
  {
    "access_token": "<ACCESS_TOKEN>",
    "item_type": "PRODUCT_ITEM",
    "requests": [      
      {
        "method": "UPDATE",
        "retailer_id": "SKU1234567",
        "data": {
          "inventory": "1337",
        }
      }
    ]
  } https://graph.facebook.com/<CATALOG_ID/batch

Запросы API Batch асинхронные. Чтобы убедиться, что обновления прошли успешно, проверьте статус и результат запроса. Дополнительную информацию см. в документации по API Batch.

Если вам нужно управлять небольшим количеством товаров, каждый товар можно обновлять отдельно. Для этого напрямую используется API Graph, а не API Real-Time Batch. Из-за ограничений и регулировки в API Graph этот способ применим только к малым количествам товаров. Точное количество товаров зависит от ограничений, действующих для вашего приложения Facebook. Можно ориентироваться на это правило: если вы одновременно обновляете более десятка товаров, используйте API Real-Time Batch.

Чтобы обновить конкретные поля товара, выполните следующий вызов API:

curl -d "inventory=1337" -X POST 
https://graph.facebook.com/<FACEBOOK_PRODUCT_ID>
access_token: PAGE_ACCESS_TOKEN

Если вы используете API Graph, укажите идентификатор товара Facebook. Если вы используете API Batch, укажите свой идентификатор продавца retailer_id.

Ограничения инвентаря

Ещё один распространенный способ избежать превышения запасов — более осторожно планировать распределение инвентаря. Например, если запас товара на складе почти исчерпан, его количество в каталоге товаров можно задать как нулевое. В основном этот способ оптимизации позволяет избежать неправильного статуса товаров, но может пригодиться, если заказы часто превышают наличие товара.

Если вы знаете, как быстро продаются ваши товары, их можно разделить по различным группам и применять к ним разные ограничения в зависимости от того, как быстро их покупают. Для "быстрых" товаров обычно требуется более высокое значение, а для "медленных" можно установить низкое ограничение для перехода в статус "Нет в наличии".