npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@amplience/dc-integration-middleware

v2.2.0

Published

Amplience Integration Middleware is a service written in `Node.js` that is intended to manage a number of different types of services, including but not limited to:

Downloads

20

Readme

@amplience/dc-integration-middleware

Amplience Integration Middleware is a service written in Node.js that is intended to manage a number of different types of services, including but not limited to:

  • Commerce Services

dc-integration-middleware uses codecs in order to determine how and where to get data from. It currently supports getting e-commerce data from:

  • Commercetools
  • BigCommerce
  • Shopify
  • Salesforce Commerce Cloud
  • REST

📝 Pre-requisites

This extension was developed and tested with:

  • Node version 16.x
  • NPM version 8.x

⚙️ Features

The CommerceAPI interface exposes these methods:

  • getProduct (by ID or slug)
  • getProducts (by IDs, keyword, or category ID)
  • getCategory (by ID)
  • getCategoryTree (category structure)
  • getCustomerGroups (customer segmentation)
  • Customer Groups are not supported when accessing some integrations from a browser.

CORS Support Table

| | SFCC | Big Commerce (CORS) | Commercetools | Shopify | REST | | :--- | :---: | :---: | :---: | :---: | :---: | | products | ✅ | ✅ | ✅ | ✅ | ✅ | | categories | ✅ | ✅ | ✅ | ✅ | ✅ | | user segments | ✅ | ❌ | ✅ | ❌ | ✅ |

Concrete implementations of this interface are referred to as Codecs and are located in src/codec/codecs. Platform-specific e-Commerce implementations are found in src/codec/codecs/commerce. You can find types and methods here.

There is a separate project called dc-integration-tester which provides a CLI that lets you test the codecs in this project with your configuration, and potentially test new or modified codecs on your own copy of the codebase.

There are also Unit Tests for each method and vendor.

Server Support Table

If you choose to deploy your use of this middleware in your own hosting, you can change the configuration to interface with commerce API's from the server rather than client side. See import

| | SFCC | Big Commerce | Commercetools | Shopify | REST | | :--- | :---: | :---: | :---: | :---: | :---: | | products | ✅ | ✅ | ✅ | ✅ | ✅ | | categories | ✅ | ✅ | ✅ | ✅ | ✅ | | user segments | ✅ | ✅ | ✅ | ✅ | ✅ |

🏁 Quick Start

Note: as an example you can check our eComm Toolkit extension that is built using dc-integration-middleware as a middleware in Next.js.

Using the config object for one of the commerce vendors, you can get the Commerce API:

const commerceApi = await getCommerceAPI(config)

(NOTE: You should get a new Commerce API whenever you want to use different credentials or a different locale/language)

From there you can use any of the commerce methods:

// Getting the category tree
const categoryTree: Category[] = await commerceApi.getCategoryTree({})

// Getting customer groups
const customerGroups: CustomerGroup[] = await commerceApi.getCustomerGroups({})

// Getting products by ids
const products: Product[] = await commerceApi.getProducts({
    productIds: ids
})

// Getting products by keyword
const products: Product[] = await commerceApi.getProducts({
    keyword: keywordInput.current.value
})

// Getting a category by slug
const category: Category = await commerceApi.getCategory({
    slug: catSlug
})

// Getting a product by id
const product: Product = await commerceApi.getProduct({
    id: productId
})

📐 Architecture Diagram

🏢 Vendor specific information

🧩 Development

📄 License

This software is licensed under the Apache License, Version 2.0,

Copyright 2023 Amplience

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.