Chuyển tới nội dung chính

Widget Người chịu trách nhiệm và Nhà sản xuất

Bối cảnh

Tại thị trường EU, khi đăng bán sản phẩm, người bán bắt buộc phải cung cấp thông tin tuân thủ và tải lên các chứng nhận tuân thủ sản phẩm liên quan, bao gồm:

Manufacturer Information: nhà sản xuất của sản phẩm

Đề cập đến các chi tiết về quy trình sản xuất, địa điểm, và các thực thể chịu trách nhiệm sản xuất sản phẩm. Tất cả sản phẩm phải có nhãn ghi thông tin liên hệ của nhà sản xuất và, nếu có liên quan, thông tin của nhà nhập khẩu. Thông tin này phải hiển thị trên sản phẩm vật lý và trong các listing sản phẩm trực tuyến.

Responsible Person (RP): người chịu trách nhiệm đảm bảo sản phẩm của người bán tuân thủ các quy định của EU.

Đối với bất kỳ sản phẩm phi thực phẩm nào, việc có một Responsible Person đặt tại EU là điều thiết yếu. Người này là đầu mối liên hệ cho khách hàng và có thể trao đổi với các cơ quan quản lý thay mặt cho doanh nghiệp về các vấn đề an toàn sản phẩm. Sản phẩm cần được dán nhãn với thông tin liên hệ của người này bằng ngôn ngữ mà người tiêu dùng có thể dễ dàng hiểu được, theo quy định của Quốc gia thành viên nơi sản phẩm được cung cấp ra thị trường.

Giới thiệu Widget

Thông tin Responsible Person

Tóm tắt: Widget này bao gồm khả năng truy vấn tồn kho RP, thêm RP, và chỉnh sửa RP.

Image

Thông tin Manufacturer

Tóm tắt: Widget này bao gồm khả năng truy vấn tồn kho Manufacturer, thêm Manufacturer, và chỉnh sửa Manufacturer.

Image

Cách tích hợp

Cấu hình preload trong WidgetConfigProvider preloadWidgetNames, bạn có thể đặt WidgetConfigProvider ở lớp ngoài cùng để preload sớm

Tích hợp với widget thông tin Responsible Person

React framework

TYPESCRIPTWord Wrap

import { WidgetConfigProvider,RemoteWidget } from '@tiktokshop/widget-kit-react';  

const getWidgetToken = async () => {
const res: any = await get('https://xxx/api/v1/widget/access_token', {
outer_shop_id: 'xxx',
partner_type: '1',
});
if (res?.code === 0) {
return res?.data;
}
return {};
};

const name = "@tiktokshop-widget/qualification:rp";

const initOptions = {
config: {
shopId: 'xxx', //seller id, such as 123456
oecRegion: 'xxx', //country,such as US
appKey: 'xxx', //The key corresponding to the merchant's creation service
isvInfo: {
name: 'xxx', //ISV name,such as OPEN_PLATFORM
},
},
getToken: getWidgetToken, //get auth token
remotes: [
{
name: name, //Integrated business name, provided by the open platform,such as:@tiktokshop-widget/reverse:ManageReturns
},
],
};

export default () => {
return (
<WidgetConfigProvider
config={initOptions.config}
getToken={initOptions.getToken}
remotes={initOptions.remotes}
preloadWidgetNames={[name]}>
<RemoteWidget
name={name}
className={'containerClass'}
/>
</WidgetConfigProvider>
);
};

Native js

JSONWord Wrap

import React, { useEffect } from 'react';  
import { get } from './utils/fetch';
import { loadWidget, init, WidgetComponent } from '@tiktokshop/widget-kit';

const name = '@tiktokshop-widget/qualification:rp';
let view = null;
export default () => {
const getWidgetToken = async () => {
const res: any = await get('https://xxx/api/v1/widget/access_token', {
outer_shop_id: 'xxx',
partner_type: '1',
});
if (res?.code === 0) {
return res?.data;
}
return {};
};

const initWidget = () => {//It is recommended to initialize the widget in the outer layer and execute the preloadWidget([name]) method to preload resources.
init({
config: {
shopId: 'xxx',
oecRegion: 'US',
appKey: 'xxx',
isvInfo: {
name: 'OPEN_PLATFORM',
},
},
remotes: [
{
name,
},
],
getToken: getWidgetToken,
});
};
useEffect(() => {
initWidget();
loadWidget(name).then((component: WidgetComponent) => {
view = component.create(
document.getElementById('widget-preview-container')!,
);
view?.render({});
});
return () => {
view?.unmount();
};
}, []);
return (
<div
className="widget-preview-container"
id="widget-preview-container"></div>
);
};

Tích hợp với widget thông tin Manufacturer

React framework

TYPESCRIPTWord Wrap

import { WidgetConfigProvider,RemoteWidget } from '@tiktokshop/widget-kit-react';  

const getWidgetToken = async () => {
const res: any = await get('https://xxx/api/v1/widget/access_token', {
outer_shop_id: 'xxx',
partner_type: '1',
});
if (res?.code === 0) {
return res?.data;
}
return {};
};

const name = "@tiktokshop-widget/qualification:mf";

const initOptions = {
config: {
shopId: 'xxx', //seller id, such as 123456
oecRegion: 'xxx', //country,such as US
appKey: 'xxx', //The key corresponding to the merchant's creation service
isvInfo: {
name: 'xxx', //ISV name,such as OPEN_PLATFORM
},
},
getToken: getWidgetToken, //get auth token
remotes: [
{
name: name, //Integrated business name, provided by the open platform,such as:@tiktokshop-widget/reverse:ManageReturns
},
],
};

export default () => {
return (
<WidgetConfigProvider
config={initOptions.config}
getToken={initOptions.getToken}
remotes={initOptions.remotes}
preloadWidgetNames={[name]}>
<RemoteWidget
name={name}
className={'containerClass'}
/>
</WidgetConfigProvider>
);
};

Native js

JSONWord Wrap

import React, { useEffect } from 'react';  
import { get } from './utils/fetch';
import { loadWidget, init, WidgetComponent } from '@tiktokshop/widget-kit';

const name = '@tiktokshop-widget/qualification:mf';
let view = null;
export default () => {
const getWidgetToken = async () => {
const res: any = await get('https://xxx/api/v1/widget/access_token', {
outer_shop_id: 'xxx',
partner_type: '1',
});
if (res?.code === 0) {
return res?.data;
}
return {};
};

const initWidget = () => {//It is recommended to initialize the widget in the outer layer and execute the preloadWidget([name]) method to preload resources.
init({
config: {
shopId: 'xxx',
oecRegion: 'US',
appKey: 'xxx',
isvInfo: {
name: 'OPEN_PLATFORM',
},
},
remotes: [
{
name,
},
],
getToken: getWidgetToken,
});
};
useEffect(() => {
initWidget();
loadWidget(name).then((component: WidgetComponent) => {
view = component.create(
document.getElementById('widget-preview-container')!,
);
view?.render({});
});
return () => {
view?.unmount();
};
}, []);
return (
<div
className="widget-preview-container"
id="widget-preview-container"></div>
);
};

Nhật ký thay đổi

Release dateUpdate
2024/10/16RP widget: phát hành phiên bản đầu tiên, bao gồm khả năng truy vấn tồn kho RP, thêm RP, và chỉnh sửa RP.Manufacturer: phát hành phiên bản đầu tiên, truy vấn tồn kho Manufacturer, thêm Manufacturer, chỉnh sửa Manufacturer.

Hướng dẫn sử dụng Widget SDK

Hướng dẫn sử dụng Widget SDK