Marketplace Coop

Магазин и каталоги

Можно создавать отдельные магазины для различных департаментов, кооперативных участков организации методом Mutation:manageShop

  PRIVATE
  
mutation OrganizationMutation {
  manageShop(
    data: {
      organization: {
        slug: "romashka",
        division: "vasilek", #ID или slug департамента, если необходимо
        shops: {
          slug: "flowers",
          title: "Маркетплейс Цветы",
          description: "Выращиваем сами",
        }
      }
    }
  ) {
    organization {
      slug
      divisions {
        slug
        shops {
          slug
          title
        }
      }
    }
  }
}
  

Список публичных категорий

Категории являются максимально полным списком и классификацией товаров и услуг. Категории переведены на несколько языков для удобства использования:

Перевод на другие языки осуществляется рабочими группами.
Как перевести на другой язык?

Запрос на получение списка публичных категорий, в котором можно также определить фильты поиска (не обязательно):

	PUBLIC
	
query CategoryQuery {
  categories(title: "Фрук") {
    id
    slug
    translate {
      title
      lang
      description
    }
    lft
    parent
    rgt
  }
}
	

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

Список частных каталогов для магазина

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

  1. Во время создания карточки товара - добавлять новую категорию и подразделы
  2. Изначально определить список необходимых категорий

Для определения списка категорий в вашем магазине определите тип Mutations:manageCatalog:

	PRIVATE
	
mutation CatalogMutation {
  manageCatalog(
    catalog: {
      category: "food", #можно использовать UUID категории или slug
      shop: "romashka"
    }
  ) {
    catalog {
      id
      translate {
        title
      }
    }
  }
}
	

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

  PRIVATE
  
mutation CatalogMutation {
  manageCatalog(
    catalog: {
      parent: "food", #можно использовать UUID категории или slug
      shop: "romashka",
      translate: [
        {lang: "ru", title: "Ягоды", description: "Сами собирали"},
        {lang: "en", title: "Berries"},
      ]
    }
  ) {
    catalog {
      id
      translate {
        title
      }
    }
  }
}
  

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

	PRIVATE
	
mutation CatalogMutation {
  manageCatalog(
    parent: "food",
    shop: "romashka",
    translate: {lang: "ru", title: "Грибы"}
  ) {
    catalog {
      id
      translate {
        title
      }
    }
  }
}
	

Каждой категории вы также можете назначать флажки, которые будут выделять категорию из всего списка

Например, создайте категорию для новогоднях товаров, которая будет отображаться только один месяц в период праздников:

	PRIVATE
	
mutation CatalogMutation {
  manageCatalog(
    catalog: {
      parent: "food",
      is_featured: true,
      start_at: "2025-12-01",
      end_at: "2026-01-14",
      translate: {
        lang: "ru", 
        title: "Съедобные украшения", 
        description: "Шоколадные игрушки на ёлку"
      }
    }
  ) {
    catalog {
      id
      translate {
        title
      }
    }
  }
}
	

Иерархия категорий и каталогов

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

Метод прямой зависимости

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

Очередность размещения категорий определяется полем lft, от меньшего номера к большему. Это поле так же используется во втором подходе.

Пример использования метода прямой зависимости:

Метод вложенных полей

Такой метод определяет поле основной родительской категории, внутри которой находятся все субкатегории. Поле категории определяется между lft (левая граница поля) и rgt(правая граница поля). Например, если основная категоря имеет две субкатегории, то иерархия будет выглядеть таким образом:

lft=0 Продовольствие rgt=9

lft=1 Ягоды rgt=2

lft=3 Фрукты rgt=8

lft=4 Яблоки rgt=5

lft=6 Финики rgt=7

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

	PRIVATE
	
mutation CatalogMutation {
  manageCatalog(
    catalog: {
      shop: "romashka", 
      id: "b049f742-5e24-442d-86e9-261b507d3a75", #UUID или slug Вашего каталога
      rgt: 10,
      lft: 11
    }
  ) {
    catalog {
      id
      translate {
        title
      }
    }
  }
}
	

Для перенесения субкатегории в поле другой родительской категории, помимо позиции lft вам также необходимо изменить и UUID поля новой родительской категории parent.

	PRIVATE
	
mutation CatalogMutation {
  manageCatalog(
    catalog: {
      shop: "romashka", 
      parent: "95954bca-f949-434b-907a-5530f349fe6a", #UUID или slug Вашего каталога
      id: "b049f742-5e24-442d-86e9-261b507d3a75", #UUID или slug Вашего каталога
      rgt: 24,
      lft: 25
    }
  ) {
    catalog {
      id
      translate {
        title
      }
    }
  }
}
	

Теперь мы можем добавлять товары и продукты, наполняя наши категории.

Подробнее: Товары, продукты и услуги