Updating Avada Core V3
Avada Core package V1
Gần đây mọi người cũng đã update package @avada/core
sang bản 3.3.17
để deprecate các package @avada/shopify-auth
, @avada/shopify-charge
, @avada/subscription
và sử dụng 1 package @avada/core
duy nhất.
Sau khi merge các package rồi, mình sẽ cần update @avada/core
lên bản 3 để hash các accessToken
để đảm bảo Protected Customer Data của Shopify tốt nhất. Xem về guide nội bộ về Protected Customer Data ở đây: https://avada-development.web.app/getting-started-shopify/#shopify-protected-data---2022-07-api-version
Avada Core V3
Bản core v3 này sẽ có update lớn ở phần hashing accessToken admin API của shop. Access Token được gen thường sẽ lưu vào field accessToken
, bây giờ sẽ được
hashe và lưu vào field accessTokenHash
, salt
của hash này sẽ lưu vào function config. Hash này ở mỗi trường staging, local mọi đều để là shopify.access_token_key
với giá trị: avada-apps-access-token
nhé.
Ở trên staging để là firebase functions:config:set shopify.access_token_key="avada-apps-access-token"
, còn production là hash riêng.
Để đọc được sẽ cần dùng hàm import {prepareShopData} from '@avada/core';
để đọc ví dụ:
/**
* Create Shopify instance with the latest API version and auto limit enabled
*
* @param {Shop} shopData
* @param {string} apiVersion
* @return {Shopify}
*/
export function initShopify(shopData, apiVersion = API_VERSION) {
const shopParsedData = prepareShopData(shopData.id, shopData, shopifyConfig.accessTokenKey);
const {shopifyDomain, accessToken} = shopParsedData;
return new Shopify({
shopName: shopifyDomain,
accessToken,
apiVersion,
autoLimit: true
});
}
Lưu ý khi update v3
Chuẩn các hàm initShopify, hoặc những hàm gọi API qua GraphQL về nhận cả shop data
// Nên để
const shop = await getShopByField(shopifyDomain);
const shopify = initShopify(shop);
// Không nên, update qua cách trên
const {accessToken, shopifyDomain} = await getShopByField(shopifyDomain);
const shopify = initShopify({accessToken, shopifyDomain});