0.3.132 • Published 3 years ago

moysklad-sdk v0.3.132

Weekly downloads
-
License
ISC
Repository
-
Last release
3 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

4 years ago

0.3.100

4 years ago

0.3.102

4 years ago

0.3.105

4 years ago

0.3.104

4 years ago

0.3.107

4 years ago

0.3.106

4 years ago

0.3.130

3 years ago

0.3.132

3 years ago

0.3.131

3 years ago

0.3.97

4 years ago

0.3.96

4 years ago

0.3.95

4 years ago

0.3.121

3 years ago

0.3.120

3 years ago

0.3.122

3 years ago

0.3.125

3 years ago

0.3.124

3 years ago

0.3.127

3 years ago

0.3.126

3 years ago

0.3.129

3 years ago

0.3.99

4 years ago

0.3.128

3 years ago

0.3.98

4 years ago

0.3.119

3 years ago

0.3.110

3 years ago

0.3.112

3 years ago

0.3.111

3 years ago

0.3.114

3 years ago

0.3.113

3 years ago

0.3.116

3 years ago

0.3.115

3 years ago

0.3.118

3 years ago

0.3.117

3 years ago

0.3.109

3 years ago

0.3.108

4 years ago

0.3.94

4 years ago

0.3.93

4 years ago

0.3.92

4 years ago

0.3.91

4 years ago

0.3.90

4 years ago

0.3.89

4 years ago

0.3.75

4 years ago

0.3.79

4 years ago

0.3.78

4 years ago

0.3.77

4 years ago

0.3.76

4 years ago

0.3.86

4 years ago

0.3.85

4 years ago

0.3.84

4 years ago

0.3.83

4 years ago

0.3.82

4 years ago

0.3.81

4 years ago

0.3.80

4 years ago

0.3.88

4 years ago

0.3.87

4 years ago

0.3.74

4 years ago

0.3.73

4 years ago

0.3.72

4 years ago

0.3.71

4 years ago

0.3.70

4 years ago

0.3.64

4 years ago

0.3.63

4 years ago

0.3.62

4 years ago

0.3.61

4 years ago

0.3.60

4 years ago

0.3.69

4 years ago

0.3.68

4 years ago

0.3.67

4 years ago

0.3.66

4 years ago

0.3.65

4 years ago

0.3.53

4 years ago

0.3.52

4 years ago

0.3.51

4 years ago

0.3.50

4 years ago

0.3.59

4 years ago

0.3.58

4 years ago

0.3.57

4 years ago

0.3.56

4 years ago

0.3.55

4 years ago

0.3.54

4 years ago

0.3.49

4 years ago

0.3.48

4 years ago

0.3.47

4 years ago

0.3.46

4 years ago

0.3.45

4 years ago

0.3.44

4 years ago

0.3.43

4 years ago

0.3.42

4 years ago

0.3.41

4 years ago

0.3.40

4 years ago

0.3.39

4 years ago

0.3.38

4 years ago

0.3.37

4 years ago

0.3.36

4 years ago

0.3.35

4 years ago

0.3.34

4 years ago

0.3.33

4 years ago

0.3.31

4 years ago

0.3.30

4 years ago

0.3.32

4 years ago

0.3.29

4 years ago

0.3.28

4 years ago

0.3.27

4 years ago

0.3.26

4 years ago

0.3.25

4 years ago

0.3.20

4 years ago

0.3.24

4 years ago

0.3.23

4 years ago

0.3.22

4 years ago

0.3.21

4 years ago

0.3.19

4 years ago

0.3.18

4 years ago

0.3.9

4 years ago

0.3.17

4 years ago

0.3.16

4 years ago

0.3.15

4 years ago

0.3.14

4 years ago

0.3.13

4 years ago

0.3.12

4 years ago

0.3.11

4 years ago

0.3.10

4 years ago

0.3.7

4 years ago

0.3.6

4 years ago

0.3.5

4 years ago

0.3.2

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.1

4 years ago

0.2.0

4 years ago

0.1.9

4 years ago

0.1.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.0.21

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.13

4 years ago

0.0.14

4 years ago

0.0.15

4 years ago

0.0.16

4 years ago

0.0.17

4 years ago

0.0.18

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.12

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.5

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago