0.3.132 • Published 4 years ago

moysklad-sdk v0.3.132

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

Moysklad-Sdk

Библиотека для упрощения взаимодействия между МоимСкладом и другими приложениями. Поддерживает работу со всеми основными сущностями и предоставляет дополнительные методы.

  • Создание новых документов
  • Редактирование существующих документов
  • Дополнительные методы для манипуляции с документами
  • Rich-query фильтрации на основе реплики в MongoDB
  • LiveQuery
  • Websocket event listeners

TODO

  • Установка библиотеки через npm
  • Разобраться, на чьей стороне (бек или сдк) заниматься преобразованием данных, парсингом и составлением фильтров. Принято решение сделать всю логику на стороне SDK, оставить прокси максимально безмозглым, чтобы не разносить логику по двум местам и иметь возможность всё дебажить прямо на клиенте.
  • Добавить метод, отдающий структуру документа (fields, types, etc.)
  • Кроссбраузерность и кроссплатформенность

Установка

Используя npm:

npm install moysklad-sdk

Подключение

import SDK, { initSDK } from 'moysklad-sdk';


// Вызывается один раз для всего проекта
initSDK({
    // Опции подключения
    secret: <SECRET_KEY>
});

// Синглтон экземпляр  библиотеки
console.log('SDK', SDK);

Разработка

Запуск сборщика rollup в режиме watch

npm run dev

Компиляция в прод

npm run build
npm publish

Демо (Должен быть запущен Moysklad-Sync)

npm run demo

Примеры использования

Изменение существующего заказа покупателю.

const customerorder = await SDK.Entity.Customerorder.load({
    name: 'Test order',
});

await customerorder.setStore({
    name: 'Другой склад',
});

await customerorder.save();

Создание нового заказа покупателю.

const customerorder = await SDK.Entity.Customerorder.create({
    name: 'New order',
});

await customerorder.setStore({
    name: 'Другой склад',
});

await customerorder.save();

Поиск документов:

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

  1. ID объекта
  2. Массив для агрегации
  3. Объект для фильтрации

Лимит поиска нужно обязательно указывать в явном виде.

// Поиск по ID
const organization = await SDK.Entity.Organization.load('07bbe005-8b17-11e7-7a34-5acf0019232a');

// Поиск с фильтрацией
const counterparty = await SDK.Entity.Counterparty.load({
    name: 'Розничный покупатель',
});

// Поиск с агрегацией
const counterparty = await SDK.Entity.Counterparty.load([
    {
        $match: {
            name: 'Розничный покупатель',
        },
    },
]);

// Поиск с фильтрацией по ссылке.
const customerorder = await SDK.Entity.Customerorder.loadList(
    {
        agent: counterparty,
    },
    {
        limit: 10,
    },
);

Объект у которого в фильтре передан объект, содержащий ...meta.href будет автоматически сокращён по правилу:

Object.keys(filter).forEach(key => {
    if (filter[key].meta && filter[key].meta.href) {
        filter[`${key}.meta.href`] = filter[key].meta.href.split('?')[0];
        delete filter[key];
    }
});



filter = {
    meta: {
        href: 'https://online.moysklad.ru/api/remap/1.2/entity/store/<STORE_ID>?expand=parent',
        type: 'store',
        ...
    },
    id: '<STORE_ID>',
    name: 'xxxx',
    ...
}

filter = {
    'meta.href': 'https://online.moysklad.ru/api/remap/1.2/entity/store/<STORE_ID>'
}

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

const targetStore = await SDK.Entity.Store.load({
    name: 'Со склада',
});

const sourceStore = await SDK.Entity.Store.load({
    name: 'На склад',
});

await SDK.Entity.Move.load({
    targetStore,
    sourceStore,
});
0.3.101

5 years ago

0.3.100

5 years ago

0.3.102

5 years ago

0.3.105

5 years ago

0.3.104

5 years ago

0.3.107

4 years ago

0.3.106

5 years ago

0.3.130

4 years ago

0.3.132

4 years ago

0.3.131

4 years ago

0.3.97

5 years ago

0.3.96

5 years ago

0.3.95

5 years ago

0.3.121

4 years ago

0.3.120

4 years ago

0.3.122

4 years ago

0.3.125

4 years ago

0.3.124

4 years ago

0.3.127

4 years ago

0.3.126

4 years ago

0.3.129

4 years ago

0.3.99

5 years ago

0.3.128

4 years ago

0.3.98

5 years ago

0.3.119

4 years ago

0.3.110

4 years ago

0.3.112

4 years ago

0.3.111

4 years ago

0.3.114

4 years ago

0.3.113

4 years ago

0.3.116

4 years ago

0.3.115

4 years ago

0.3.118

4 years ago

0.3.117

4 years ago

0.3.109

4 years ago

0.3.108

4 years ago

0.3.94

5 years ago

0.3.93

5 years ago

0.3.92

5 years ago

0.3.91

5 years ago

0.3.90

5 years ago

0.3.89

5 years ago

0.3.75

5 years ago

0.3.79

5 years ago

0.3.78

5 years ago

0.3.77

5 years ago

0.3.76

5 years ago

0.3.86

5 years ago

0.3.85

5 years ago

0.3.84

5 years ago

0.3.83

5 years ago

0.3.82

5 years ago

0.3.81

5 years ago

0.3.80

5 years ago

0.3.88

5 years ago

0.3.87

5 years ago

0.3.74

5 years ago

0.3.73

5 years ago

0.3.72

5 years ago

0.3.71

5 years ago

0.3.70

5 years ago

0.3.64

5 years ago

0.3.63

5 years ago

0.3.62

5 years ago

0.3.61

5 years ago

0.3.60

5 years ago

0.3.69

5 years ago

0.3.68

5 years ago

0.3.67

5 years ago

0.3.66

5 years ago

0.3.65

5 years ago

0.3.53

5 years ago

0.3.52

5 years ago

0.3.51

5 years ago

0.3.50

5 years ago

0.3.59

5 years ago

0.3.58

5 years ago

0.3.57

5 years ago

0.3.56

5 years ago

0.3.55

5 years ago

0.3.54

5 years ago

0.3.49

5 years ago

0.3.48

5 years ago

0.3.47

5 years ago

0.3.46

5 years ago

0.3.45

5 years ago

0.3.44

5 years ago

0.3.43

5 years ago

0.3.42

5 years ago

0.3.41

5 years ago

0.3.40

5 years ago

0.3.39

5 years ago

0.3.38

5 years ago

0.3.37

5 years ago

0.3.36

5 years ago

0.3.35

5 years ago

0.3.34

5 years ago

0.3.33

5 years ago

0.3.31

5 years ago

0.3.30

5 years ago

0.3.32

5 years ago

0.3.29

5 years ago

0.3.28

5 years ago

0.3.27

5 years ago

0.3.26

5 years ago

0.3.25

5 years ago

0.3.20

5 years ago

0.3.24

5 years ago

0.3.23

5 years ago

0.3.22

5 years ago

0.3.21

5 years ago

0.3.19

5 years ago

0.3.18

5 years ago

0.3.9

5 years ago

0.3.17

5 years ago

0.3.16

5 years ago

0.3.15

5 years ago

0.3.14

5 years ago

0.3.13

5 years ago

0.3.12

5 years ago

0.3.11

5 years ago

0.3.10

5 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.2

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.1

5 years ago

0.2.0

5 years ago

0.1.9

5 years ago

0.1.0

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.0.21

5 years ago

0.0.20

5 years ago

0.0.19

5 years ago

0.0.13

5 years ago

0.0.14

5 years ago

0.0.15

5 years ago

0.0.16

5 years ago

0.0.17

5 years ago

0.0.18

5 years ago

0.0.10

5 years ago

0.0.11

5 years ago

0.0.12

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.5

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago