Marketplace Coop

Организация и отделения

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

Создание и изменение данных организации и департаментов, а так управление списком лиц с правом доступа к управлению организацией, осуществляется с помощью ACCESS_TOKEN, выпущенному только этой организацией.
POST
      
const response = await fetch(ENDPOINT_URL + '/v1/organization', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ACCESS_TOKEN'
  },
  body: JSON.stringify({
    title: 'Потребительский Кооператив "Ромашка"',
    shortname: "ПК Ромака", //сокращенное название организации
    slug: "romashka", //краткий псевдоним организации
    email: "contact@romashka.web", 
    regdate: "2024-03-08", 
    regnum: "123456", //дата регистрации организации
    taxid: "987654", //налоговый номер организации
    account: COOP_ACCOUNT, //account организации в Coopenomics
    website: "www.romashka.web", 
    description: "Описание организации" 
  })
});

const result = await response.json();
      
    
POST
      
mutation OrganizationMutation {
  manageOrganization(
    data: {
      organization: {
        title: 'Потребительский Кооператив "Ромашка"'
        slug: "romashka" #краткий псевдоним организации
        shortname: "ПК Ромашка" #сокращенное название организации
        email: "contact@romashka.web"
        regdate: "2024-03-08"
        regnum: "123456" #дата регистрации организации
        taxid: "987654" #налоговый номер организации
        account: COOP_ACCOUNT #account организации в Coopenomics
        website: "www.romashka.web"
        description: "Описание организации"
      }
    }
  ) {
    organization {
      id
      slug
    }
  }
}
      
    

Поле SLUG - это псевдоним организации, котрый удобно использовать в адресной строке, его можно не указывать и, в таком случае, SLUG будет сформирован из названия компании title автоматически.

У организаций могут также быть отделения, структурные подразделения или кооперативные участки. Мы называем их Департаменты. По крайней мере один департамент создается автоматически в момент регистрации компании и имеет такой же SLUG и COOP_ACCOUNT как и у самой организации. Вы можете добавлять новые или изменять данные таких департаменов дополнительным запросом Mutation:manageDivision:

POST
      
const response = await fetch(ENDPOINT_URL + '/v1/division', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ACCESS_TOKEN',
  },
  body: JSON.stringify({
    organization: "romashka", //ID или slug головной организации
    title: 'Кооперативный участок "Василёк"',
    shortname: "КУ Василёк" //сокращённое название участка
    email: "vasilek@romashka.web"
    slug: "vasilek" //краткий псевдоним участка
    account: COOP_ACCOUNT //account департамента (участка) в Coopenomics
    website: "www.romashka.web"
    description: "Описание участка"
  })
});

const result = await response.json();
      
    
POST
      
mutation OrganizationMutation {
  manageDivision (
    data: {
      organization: {
        id: "romashka" #ID или slug организации
        divisions: {
          title: 'Кооперативный участок "Василёк"'
          shortname: "КУ Василёк" #сокращённое название участка
          email: "vasilek@romashka.web"
          slug: "vasilek" #краткий псевдоним участка
          account: COOP_ACCOUNT #account департамента (участка) в Coopenomics
          website: "www.romashka.web"
          description: "Описание участка"
        }
      }
    }
  ) {
    organization {
      id
      slug
      divisions {
        id
        slug
      }
    }
  }
}
      
    

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

Права доступа могут быть сделующие:

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

POST
      
const response = await fetch(ENDPOINT_URL + '/v1/division/IDENTIFICATOR', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ACCESS_TOKEN',
  },
  body: JSON.stringify({
    title: 'Кооперативный участок "Новый Василёк"'
  })
});

const result = await response.json();
      
    
POST
      
      
    

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

POST
      
const response = await fetch(ENDPOINT_URL + '/v1/member', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ACCESS_TOKEN',
  },
  body: JSON.stringify({
    identifier: IDENTIFIER //ID, username или COOP_ACCOUNT пользователя
    division:   IDENTIFIER //ID, SLUG или COOP_ACCOUNT департамента
  })
});

const result = await response.json();
      
    
POST
      
      
    

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

Типы и классификация видов адресов:

POST
      
const response = await fetch(ENDPOINT_URL + '/v1/division', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ACCESS_TOKEN',
  },
  body: JSON.stringify({
    organization: "romashka", //ID, SLUG или COOP_ACCOUNT организации
  })
});

const result = await response.json();
      
    
POST
      
      
    

Можно добавить один или несколько телефонов методом Mutation:managePhone

Типы и классификация видов телефонных номеров:

POST
      
const response = await fetch(ENDPOINT_URL + '/v1/division', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ACCESS_TOKEN',
  },
  body: JSON.stringify({
    organization: "romashka", //ID, SLUG или COOP_ACCOUNT организации

  })
});

const result = await response.json();
      
    
POST
      

      
    

Дополнительные методы для управления организацией, департаментами и правами доступа пользователей в документации:

Теперь настало время создания магазина: Магазин и каталог