У цій статті ми описуємо запити GraphQl для отримання необхідних даних автоматично пов'язаних правил для прогресивного веб-додатку (PWA). Щоб реалізувати резолвер GraphQL, вам потрібно встановити Модуль Magento 2 Automatic Related Products Extra

Крім того, ви можете легко перевірити ці запити за допомогою розширення ChromeiQL для браузера Chrome. 

Запит на правило пов'язаного продукту GraphQL

За допомогою цього запиту ви отримаєте всі пов'язані продукти, використовуючи ідентифікатор правила (продукти, що підпадають під умови правила).

Запит:

query mfAutoRelatedProducts ($ruleId: Int $productId: Int $categoryId: Int $pageSize: Int $currentPage: Int) {
    mfAutoRelatedProducts(
      ruleId: $ruleId
      productId: $productId
      categoryId: $categoryId
      pageSize: $pageSize
      currentPage: $currentPage
 ){
     total_count
   items{
      products{
        id
        name
        sku
      }
     category_ids{
       category_id
     }
          customer_group_ids{
       group_id
     }
          store_ids{
       store_id
     }
     id
    name
    description
    status
    priority
    block_position
    merge_type
    from_one_category_only
    only_with_higher_price
    only_with_lower_price
    conditions_serialized
    actions_serialized
    block_title
    sort_by
    display_add_to_cart
    number_of_products
    display_out_of_stock
    who_bought_this_also_bought
    who_viewed_this_also_viewed
    start_date
    finish_date
    same_as_conditions_serialized
    click_count
    crt_rate
    apply_same_as_condition
     
   }
 }
}

Змінні:

{
"ruleId": 1,
"pageSize": 5,
"currentPage": 1
}

Результат:

В результаті ви отримаєте дані про перші 5 продуктів на першій сторінці.

Запит GraphQL щодо товарів, пов'язаних з автомобілем

Запит GraphQL щодо товарів та категорій

За допомогою цього запиту ви зможете використовувати товар та категорію, щоб побачити, під які правила вони підпадають.

Запит:

query mfAutoRelatedProducts ($ruleId: Int $pageSize: Int $currentPage: Int) {
 mfAutoRelatedProducts(
      ruleId: $ruleId
      pageSize: $pageSize
      currentPage: $currentPage
 ){
     total_count
   items{
      products{
        id
        name
        sku
      }
     category_ids{
       category_id
     }
          customer_group_ids{
       group_id
     }
          store_ids{
       store_id
     }
     id
    name
    description
    status
    priority
    block_position
    merge_type
    from_one_category_only
    only_with_higher_price
    only_with_lower_price
    conditions_serialized
    actions_serialized
    block_title
    sort_by
    display_add_to_cart
    number_of_products
    display_out_of_stock
    who_bought_this_also_bought
    who_viewed_this_also_viewed
    start_date
    finish_date
    same_as_conditions_serialized
    click_count
    crt_rate
    apply_same_as_condition
     
   }
 }
}

Змінні:

{
"ruleId": 1,
"productId": 1,
"categoryId": 1,
"pageSize": 5,
"currentPage": 1
}

Результат:

В результаті ви отримаєте дані про те, під які правила підпадають поточні товари та категорії.

Запити GraphQL щодо товарів, пов'язаних з автомобілем