


+ +


+
+ +
-
+
-
+
++++ @lang('onebuy::app.product.order.QTY'): + ++ +
+
+ +
name, 0, 1);?>
+name;?>
+
+ Verified Buyer
+


content;?>
+ + and code blocks.
+ codes:
+ external: true
+ family:
+
+
+# ---------------------------------------------------------------
+# SEO Settings
+# See: https://theme-next.js.org/docs/theme-settings/seo
+# ---------------------------------------------------------------
+
+# If true, site-subtitle will be added to index page.
+# Remember to set up your site-subtitle in Hexo `_config.yml` (e.g. subtitle: Subtitle)
+index_with_subtitle: false
+
+# Automatically add external URL with Base64 encrypt & decrypt.
+exturl: false
+# If true, an icon will be attached to each external URL
+exturl_icon: true
+
+# Google Webmaster tools verification.
+# See: https://developers.google.com/search
+google_site_verification: 0gId0SJh4tQpwVkRakpmCucIt2I6il9JveIQf8gjGtA
+
+# Bing Webmaster tools verification.
+# See: https://www.bing.com/webmasters
+bing_site_verification:
+
+# Yandex Webmaster tools verification.
+# See: https://webmaster.yandex.ru
+yandex_site_verification:
+
+# Baidu Webmaster tools verification.
+# See: https://ziyuan.baidu.com/site
+baidu_site_verification:
+
+
+# ---------------------------------------------------------------
+# Third Party Plugins & Services Settings
+# See: https://theme-next.js.org/docs/third-party-services/
+# More plugins: https://github.com/next-theme/awesome-next
+# You may need to install the corresponding dependency packages
+# ---------------------------------------------------------------
+
+# Math Formulas Render Support
+# Warning: Please install / uninstall the relevant renderer according to the documentation.
+# See: https://theme-next.js.org/docs/third-party-services/math-equations
+# Server-side plugin: https://github.com/next-theme/hexo-filter-mathjax
+math:
+ # Default (false) will load mathjax / katex script on demand.
+ # That is it only render those page which has `mathjax: true` in front-matter.
+ # If you set it to true, it will load mathjax / katex script EVERY PAGE.
+ every_page: false
+
+ mathjax:
+ enable: false
+ # Available values: none | ams | all
+ tags: none
+
+ katex:
+ enable: false
+ # See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
+ copy_tex: false
+
+# Easily enable fast Ajax navigation on your website.
+# For more information: https://github.com/next-theme/pjax
+pjax: true
+
+# FancyBox is a tool that offers a nice and elegant way to add zooming functionality for images.
+# For more information: https://fancyapps.com/fancybox/
+fancybox: true
+
+# A JavaScript library for zooming images like Medium.
+# Warning: Do not enable both `fancybox` and `mediumzoom`.
+# For more information: https://medium-zoom.francoischalifour.com
+mediumzoom: false
+
+# Vanilla JavaScript plugin for lazyloading images.
+# For more information: https://apoorv.pro/lozad.js/demo/
+lazyload: false
+
+# Pangu Support
+# For more information: https://github.com/vinta/pangu.js
+# Server-side plugin: https://github.com/next-theme/hexo-pangu
+pangu: false
+
+# Quicklink Support
+# For more information: https://getquick.link
+# Front-matter variable (nonsupport home archive).
+quicklink:
+ enable: false
+
+ # Home page and archive page can be controlled through home and archive options below.
+ # This configuration item is independent of `enable`.
+ home: false
+ archive: false
+
+ # Default (true) will initialize quicklink after the load event fires.
+ delay: true
+ # Custom a time in milliseconds by which the browser must execute prefetching.
+ timeout: 3000
+ # Default (true) will attempt to use the fetch() API if supported (rather than link[rel=prefetch]).
+ priority: true
+
+
+# ---------------------------------------------------------------
+# Comments Settings
+# See: https://theme-next.js.org/docs/third-party-services/comments
+# ---------------------------------------------------------------
+
+# Multiple Comment System Support
+comments:
+ # Available values: tabs | buttons
+ style: tabs
+ # Choose a comment system to be displayed by default.
+ # Available values: disqus | disqusjs | changyan | livere | gitalk | utterances
+ active:
+ # Setting `true` means remembering the comment system selected by the visitor.
+ storage: true
+ # Lazyload all comment systems.
+ lazyload: false
+ # Modify texts or order for any naves, here are some examples.
+ nav:
+ #disqus:
+ # text: Load Disqus
+ # order: -1
+ #gitalk:
+ # order: -2
+
+# Disqus
+# For more information: https://disqus.com
+disqus:
+ enable: false
+ shortname:
+ count: true
+
+# DisqusJS
+# For more information: https://disqusjs.skk.moe
+disqusjs:
+ enable: false
+ # API Endpoint of Disqus API (https://disqus.com/api/docs/).
+ # Leave api empty if you are able to connect to Disqus API. Otherwise you need a reverse proxy for it.
+ # For example:
+ # api: https://disqus.skk.moe/disqus/
+ api:
+ apikey: # Register new application from https://disqus.com/api/applications/
+ shortname: # See: https://disqus.com/admin/settings/general/
+
+# Changyan
+# For more information: https://changyan.kuaizhan.com
+changyan:
+ enable: false
+ appid:
+ appkey:
+
+# LiveRe comments system
+# You can get your uid from https://livere.com/insight/myCode (General web site)
+livere_uid: #
+
+# Gitalk
+# For more information: https://gitalk.github.io
+gitalk:
+ enable: false
+ github_id: # GitHub repo owner
+ repo: # Repository name to store issues
+ client_id: # GitHub Application Client ID
+ client_secret: # GitHub Application Client Secret
+ admin_user: # GitHub repo owner and collaborators, only these guys can initialize gitHub issues
+ distraction_free_mode: true # Facebook-like distraction free mode
+ # When the official proxy is not available, you can change it to your own proxy address
+ proxy: https://cors-anywhere.azm.workers.dev/https://github.com/login/oauth/access_token # This is official proxy address
+ # Gitalk's display language depends on user's browser or system environment
+ # If you want everyone visiting your site to see a uniform language, you can set a force language value
+ # Available values: en | es-ES | fr | ru | zh-CN | zh-TW
+ language: en | zh-CN
+
+# Utterances
+# For more information: https://utteranc.es
+utterances:
+ enable: false
+ repo: user-name/repo-name # Github repository owner and name
+ # Available values: pathname | url | title | og:title
+ issue_term: pathname
+ # Available values: github-light | github-dark | preferred-color-scheme | github-dark-orange | icy-dark | dark-blue | photon-dark | boxy-light
+ theme: github-light
+
+# Isso
+# For more information: https://posativ.org/isso/
+isso: #
+
+
+# ---------------------------------------------------------------
+# Post Widgets & Content Sharing Services
+# See: https://theme-next.js.org/docs/third-party-services/post-widgets
+# ---------------------------------------------------------------
+
+# Star rating support to each article.
+# To get your ID visit https://widgetpack.com
+rating:
+ enable: false
+ id: #
+ color: "#fc6423"
+
+# AddThis Share. See: https://www.addthis.com
+# Go to https://www.addthis.com/dashboard to customize your tools.
+add_this_id:
+
+
+# ---------------------------------------------------------------
+# Statistics and Analytics
+# See: https://theme-next.js.org/docs/third-party-services/statistics-and-analytics
+# ---------------------------------------------------------------
+
+# Google Analytics
+# See: https://analytics.google.com
+google_analytics:
+ tracking_id: G-Z7L6BT187M
+ # By default, NexT will load an external gtag.js script on your site.
+ # If you only need the pageview feature, set the following option to true to get a better performance.
+ only_pageview: false
+
+# Baidu Analytics
+# See: https://tongji.baidu.com
+baidu_analytics: #
+
+# Growingio Analytics
+# See: https://www.growingio.com
+growingio_analytics: #
+
+# Cloudflare Web Analytics
+# See: https://www.cloudflare.com/web-analytics/
+cloudflare_analytics:
+
+# Microsoft Clarity Analytics
+# See: https://clarity.microsoft.com/
+clarity_analytics: #
+
+# Show number of visitors of each article.
+# You can visit https://www.leancloud.cn to get AppID and AppKey.
+leancloud_visitors:
+ enable: false
+ app_id: #
+ app_key: #
+ # Required for apps from CN region
+ server_url: #
+ # Dependencies: https://github.com/theme-next/hexo-leancloud-counter-security
+ # If you don't care about security in leancloud counter and just want to use it directly
+ # (without hexo-leancloud-counter-security plugin), set `security` to `false`.
+ security: true
+
+# Another tool to show number of visitors to each article.
+# Visit https://console.firebase.google.com/u/0/ to get apiKey and projectId.
+# Visit https://firebase.google.com/docs/firestore/ to get more information about firestore.
+firestore:
+ enable: false
+ collection: articles # Required, a string collection name to access firestore database
+ apiKey: # Required
+ projectId: # Required
+
+# Show Views / Visitors of the website / page with busuanzi.
+# For more information: http://ibruce.info/2015/04/04/busuanzi/
+busuanzi_count:
+ enable: false
+ total_visitors: true
+ total_visitors_icon: fa fa-user
+ total_views: true
+ total_views_icon: fa fa-eye
+ post_views: true
+ post_views_icon: far fa-eye
+
+
+# ---------------------------------------------------------------
+# Search Services
+# See: https://theme-next.js.org/docs/third-party-services/search-services
+# ---------------------------------------------------------------
+
+# Algolia Search
+# For more information: https://www.algolia.com
+algolia_search:
+ enable: false
+ hits:
+ per_page: 10
+
+# Local Search
+# Dependencies: https://github.com/next-theme/hexo-generator-searchdb
+local_search:
+ enable: false
+ # If auto, trigger search by changing input.
+ # If manual, trigger search by pressing enter key or search button.
+ trigger: auto
+ # Show top n results per article, show all results by setting to -1
+ top_n_per_article: 1
+ # Unescape html strings to the readable one.
+ unescape: false
+ # Preload the search data when the page loads.
+ preload: false
+
+
+# ---------------------------------------------------------------
+# Chat Services
+# See: https://theme-next.js.org/docs/third-party-services/chat-services
+# ---------------------------------------------------------------
+
+# A button to open designated chat widget in sidebar.
+# Firstly, you need to enable and configure the chat service.
+chat:
+ enable: false
+ icon: fa fa-comment # Icon name in Font Awesome, set false to disable icon.
+ text: Chat # Button text, change it as you wish.
+
+# Chatra Support
+# For more information: https://chatra.com
+# Dashboard: https://app.chatra.io/settings/general
+chatra:
+ enable: false
+ async: true
+ id: # Visit Dashboard to get your ChatraID
+ #embed: # Unfinished experimental feature for developers. See: https://chatra.com/help/api/#injectto
+
+# Tidio Support
+# For more information: https://www.tidio.com
+# Dashboard: https://www.tidio.com/panel/dashboard
+tidio:
+ enable: false
+ key: # Public Key, get it from dashboard. See: https://www.tidio.com/panel/settings/developer
+
+# Gitter Support
+# For more information: https://gitter.im
+gitter:
+ enable: false
+ room:
+
+
+# ---------------------------------------------------------------
+# Tags Settings
+# See: https://theme-next.js.org/docs/tag-plugins/
+# ---------------------------------------------------------------
+
+# Note tag (bootstrap callout)
+note:
+ # Note tag style values:
+ # - simple bootstrap callout old alert style. Default.
+ # - modern bootstrap callout new (v2-v3) alert style.
+ # - flat flat callout style with background, like on Mozilla or StackOverflow.
+ # - disabled disable all CSS styles import of note tag.
+ style: simple
+ icons: false
+ # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
+ # Offset also applied to label tag variables. This option can work with disabled note tag.
+ light_bg_offset: 0
+
+# Tabs tag
+tabs:
+ # Make the nav bar of tabs with long content stick to the top.
+ sticky: false
+ transition:
+ tabs: false
+ labels: true
+
+# PDF tag
+# NexT will try to load pdf files natively, if failed, pdf.js will be used.
+# So, you have to install the dependency of pdf.js if you want to use pdf tag and make it available to all browsers.
+# Dependencies: https://github.com/next-theme/theme-next-pdf
+pdf:
+ enable: false
+ # Default height
+ height: 500px
+
+# Mermaid tag
+mermaid:
+ enable: false
+ # Available themes: default | dark | forest | neutral
+ theme:
+ light: default
+ dark: dark
+
+
+# ---------------------------------------------------------------
+# Animation Settings
+# ---------------------------------------------------------------
+
+# Use Animate.css to animate everything.
+# For more information: https://animate.style
+motion:
+ enable: true
+ async: false
+ transition:
+ # All available transition variants: https://theme-next.js.org/animate/
+ post_block: fadeIn
+ post_header: fadeInDown
+ post_body: fadeInDown
+ coll_header: fadeInLeft
+ # Only for Pisces | Gemini.
+ sidebar: fadeInUp
+
+# Progress bar in the top during page loading.
+# For more information: https://github.com/CodeByZach/pace
+pace:
+ enable: false
+ # All available colors:
+ # black | blue | green | orange | pink | purple | red | silver | white | yellow
+ color: blue
+ # All available themes:
+ # big-counter | bounce | barber-shop | center-atom | center-circle | center-radar | center-simple
+ # corner-indicator | fill-left | flat-top | flash | loading-bar | mac-osx | material | minimal
+ theme: minimal
+
+# Canvas ribbon
+# For more information: https://github.com/hustcc/ribbon.js
+canvas_ribbon:
+ enable: false
+ size: 300 # The width of the ribbon
+ alpha: 0.6 # The transparency of the ribbon
+ zIndex: -1 # The display level of the ribbon
+
+
+# ---------------------------------------------------------------
+# CDN Settings
+# See: https://theme-next.js.org/docs/advanced-settings/vendors
+# ---------------------------------------------------------------
+
+vendors:
+ # The CDN provider of NexT internal scripts.
+ # Available values: local | jsdelivr | unpkg | cdnjs | custom
+ # Warning: If you are using the latest master branch of NexT, please set `internal: local`
+ internal: local
+ # The default CDN provider of third-party plugins.
+ # Available values: local | jsdelivr | unpkg | cdnjs | custom
+ # Dependencies for `plugins: local`: https://github.com/next-theme/plugins
+ plugins: jsdelivr
+ # Custom CDN URL
+ # For example:
+ # custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified}
+ # custom_cdn_url: https://cdnjs.cloudflare.com/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
+ custom_cdn_url:
+
+# Assets
+# Accelerate delivery of static files using a CDN
+# The js option is only valid when vendors.internal is local.
+css: css
+js: js
+images: images
diff --git a/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 000000000..fca920fef
--- /dev/null
+++ b/docs/_config.yml
@@ -0,0 +1,161 @@
+# Hexo Configuration
+## Docs: https://hexo.io/docs/configuration.html
+## Source: https://github.com/hexojs/hexo/
+
+# Site
+title: Nexa Merchant Laravel ecommerce
+subtitle: ''
+description: ''
+keywords: "Laravel, MySQL, PgSQL, Redis, Queue, PHP, 电商,Ecommerce"
+author: Steve
+language: [zh-CN,en]
+timezone: ''
+
+# URL
+## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
+url: https://nexa-merchant.vercel.app/
+permalink: :lang/:year/:month/:day/:title/
+permalink_defaults:
+pretty_urls:
+ trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
+ trailing_html: true # Set to false to remove trailing '.html' from permalinks
+
+# Directory
+source_dir: source
+public_dir: public
+tag_dir: tags
+archive_dir: archives
+category_dir: categories
+code_dir: downloads/code
+i18n_dir: :lang
+skip_render:
+
+# Writing
+new_post_name: :title.md # File name of new posts
+default_layout: post
+titlecase: false # Transform title into titlecase
+external_link:
+ enable: true # Open external links in new tab
+ field: site # Apply to the whole site
+ exclude: ''
+filename_case: 0
+render_drafts: false
+post_asset_folder: true
+marked:
+ prependRoot: true
+ postAsset: true
+relative_link: false
+future: true
+syntax_highlighter: highlight.js
+highlight:
+ line_number: true
+ auto_detect: false
+ tab_replace: ''
+ wrap: true
+ hljs: false
+prismjs:
+ preprocess: true
+ line_number: true
+ tab_replace: ''
+
+# Home page setting
+# path: Root path for your blogs index page. (default = '')
+# per_page: Posts displayed per page. (0 = disable pagination)
+# order_by: Posts order. (Order by date descending by default)
+index_generator:
+ path: ''
+ per_page: 10
+ order_by: -date
+
+# Category & Tag
+default_category: uncategorized
+category_map:
+tag_map: ["安全","SRE","DevOps", "DevSecOps","PHP", "Java", "Google"]
+
+# Metadata elements
+## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
+meta_generator: true
+
+# Date / Time format
+## Hexo uses Moment.js to parse and display date
+## You can customize the date format as defined in
+## http://momentjs.com/docs/#/displaying/format/
+date_format: YYYY-MM-DD
+time_format: HH:mm:ss
+## updated_option supports 'mtime', 'date', 'empty'
+updated_option: 'mtime'
+
+# Pagination
+## Set per_page to 0 to disable pagination
+per_page: 10
+pagination_dir: page
+
+# Include / Exclude file(s)
+## include:/exclude: options only apply to the 'source/' folder
+include:
+exclude:
+ignore:
+
+# Extensions
+## Plugins: https://hexo.io/plugins/
+## Themes: https://hexo.io/themes/
+theme: next
+
+# Deployment
+## Docs: https://hexo.io/docs/one-command-deployment
+deploy:
+ type: ''
+
+feed:
+ enable: true
+ type: atom
+ path: atom.xml
+ limit: 20
+ hub:
+ content:
+ content_limit: 140
+ content_limit_delim: ' '
+ order_by: -date
+ icon: icon.png
+ autodiscovery: true
+ template:
+
+i18n:
+ type: [page, post]
+ generator: [index, archive, category, tag]
+
+markdown:
+ render:
+ html: true
+ xhtmlOut: false
+ breaks: true
+ linkify: true
+ typographer: true
+ quotes: '“”‘’'
+ plugins:
+ anchors:
+ level: 2
+ collisionSuffix: 'v'
+ permalink: true
+ permalinkClass: header-anchor
+ permalinkSymbol: ¶
+
+search:
+ path: search.xml
+ field: post
+
+sitemap:
+ path:
+ - sitemap.xml
+ - sitemap.txt
+ template: ./sitemap_template.xml
+ template_txt: ./sitemap_template.txt
+ rel: false
+ tags: true
+ categories: true
+
+symbols_count_time:
+ symbols: true # 文章字数
+ time: true # 阅读时长
+ total_symbols: true # 所有文章总字数
+ total_time: true # 所有文章阅读中时长
diff --git a/docs/package.json b/docs/package.json
new file mode 100644
index 000000000..aa6cbf000
--- /dev/null
+++ b/docs/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "nexa-merchant-site",
+ "version": "1.0.0",
+ "private": true,
+ "scripts": {
+ "build": "hexo generate",
+ "clean": "hexo clean",
+ "deploy": "hexo deploy",
+ "server": "hexo server"
+ },
+ "hexo": {
+ "version": "7.0.0"
+ },
+ "dependencies": {
+ "hexo": "^7.1.1",
+ "hexo-asset-link": "^2.2.3",
+ "hexo-generator-archive": "^2.0.0",
+ "hexo-generator-category": "^2.0.0",
+ "hexo-generator-feed": "^3.0.0",
+ "hexo-generator-i18n": "^0.0.10",
+ "hexo-generator-index": "^3.0.0",
+ "hexo-generator-search": "^2.4.3",
+ "hexo-generator-sitemap": "^3.0.1",
+ "hexo-generator-tag": "^2.0.0",
+ "hexo-renderer-ejs": "^2.0.0",
+ "hexo-renderer-markdown-it": "^7.1.1",
+ "hexo-renderer-stylus": "^3.0.1",
+ "hexo-server": "^3.0.0",
+ "hexo-symbols-count-time": "^0.7.1",
+ "hexo-theme-landscape": "^1.0.0",
+ "hexo-theme-next": "^8.19.1"
+ }
+}
diff --git a/docs/scaffolds/draft.md b/docs/scaffolds/draft.md
new file mode 100644
index 000000000..498e95baf
--- /dev/null
+++ b/docs/scaffolds/draft.md
@@ -0,0 +1,4 @@
+---
+title: {{ title }}
+tags:
+---
diff --git a/docs/scaffolds/page.md b/docs/scaffolds/page.md
new file mode 100644
index 000000000..f01ba3cd8
--- /dev/null
+++ b/docs/scaffolds/page.md
@@ -0,0 +1,4 @@
+---
+title: {{ title }}
+date: {{ date }}
+---
diff --git a/docs/scaffolds/post.md b/docs/scaffolds/post.md
new file mode 100644
index 000000000..1f9b9a465
--- /dev/null
+++ b/docs/scaffolds/post.md
@@ -0,0 +1,5 @@
+---
+title: {{ title }}
+date: {{ date }}
+tags:
+---
diff --git a/docs/sitemap_template.txt b/docs/sitemap_template.txt
new file mode 100644
index 000000000..33751c4c9
--- /dev/null
+++ b/docs/sitemap_template.txt
@@ -0,0 +1,5 @@
+{% for post in posts %}{{ post.permalink | uriencode }}
+{% endfor %}{{ config.url | uriencode }}
+{% for tag in tags %}{{ tag.permalink | uriencode }}
+{% endfor %}{% for cat in categories %}{{ cat.permalink | uriencode }}
+{% endfor %}
\ No newline at end of file
diff --git a/docs/sitemap_template.xml b/docs/sitemap_template.xml
new file mode 100644
index 000000000..3563907db
--- /dev/null
+++ b/docs/sitemap_template.xml
@@ -0,0 +1,40 @@
+
+
+ {% for post in posts %}
+
+ {{ post.permalink | uriencode }}
+ {% if post.updated %}
+ {{ post.updated | formatDate }}
+ {% elif post.date %}
+ {{ post.date | formatDate }}
+ {% endif %}
+ monthly
+ 0.6
+
+ {% endfor %}
+
+
+ {{ config.url | uriencode }}
+ {{ sNow | formatDate }}
+ daily
+ 1.0
+
+
+ {% for tag in tags %}
+
+ {{ tag.permalink | uriencode }}
+ {{ sNow | formatDate }}
+ weekly
+ 0.2
+
+ {% endfor %}
+
+ {% for cat in categories %}
+
+ {{ cat.permalink | uriencode }}
+ {{ sNow | formatDate }}
+ weekly
+ 0.2
+
+ {% endfor %}
+
\ No newline at end of file
diff --git a/docs/source/_posts/Plugsin-onebuy.md b/docs/source/_posts/Plugsin-onebuy.md
new file mode 100644
index 000000000..6388aa6aa
--- /dev/null
+++ b/docs/source/_posts/Plugsin-onebuy.md
@@ -0,0 +1,21 @@
+---
+title: Onebuy Plugin 多件购买结算页面
+tags:
+ - Onebuy
+ - Larave
+ - MySQL
+ - Redis
+ - Compose
+ - Php
+ - Bootstrap
+ - Paypal
+ - Airwallex
+categories:
+ - Laravel
+ - Plugins
+date: 2024-02-20 14:23:12
+description: Onebuy 是一套基于NexAmerchant 开发与设计的多件购物结算插件
+lang: zh-CN
+---
+# About OneBuy Plugin
+> OneBuy Plugin 是一套基于NexAmerchant 开发与设计的多件购物结算插件,开发过程中使用到 Laravel,MySQL,Redis 等基础功能组件,使用Compose 做为模块化管理与应用
\ No newline at end of file
diff --git a/docs/source/_posts/plugin-airwallex.md b/docs/source/_posts/plugin-airwallex.md
new file mode 100644
index 000000000..41825ab9c
--- /dev/null
+++ b/docs/source/_posts/plugin-airwallex.md
@@ -0,0 +1,16 @@
+---
+title: Airwallex Laravel Composer Plugin 插件
+tags:
+ - Larave
+ - Compose
+ - Php
+ - Airwallex
+categories:
+ - Laravel
+ - Plugins
+date: 2024-02-23 14:23:12
+description: Airwallex Laravel Composer Plugin 插件
+lang: zh-CN
+---
+# About Airwallex Plugin
+> Airwallex Plugin 是一套基于NexAmerchant 开发与设计,配合Airwallex 支付网关完成一套支付管理插件。
\ No newline at end of file
diff --git a/docs/source/_posts/plugin-api.md b/docs/source/_posts/plugin-api.md
new file mode 100644
index 000000000..a53925145
--- /dev/null
+++ b/docs/source/_posts/plugin-api.md
@@ -0,0 +1,18 @@
+---
+title: API Plugin
+tags:
+ - API
+ - Larave
+ - MySQL
+ - Redis
+ - Compose
+ - Php
+categories:
+ - Laravel
+ - Plugins
+date: 2024-03-07 11:23:12
+description: API Plugin 是一套基于NexAmerchant 开发与设计API接口解决方案
+lang: zh-CN
+---
+# About API Plugin
+> Plugin 是一套基于NexAmerchant 发与设计API接口解决方案,从而可以基于次解决方案,通过标准的接口方案,让系统可以有更大的价值。
\ No newline at end of file
diff --git a/docs/source/_posts/plugsin-shopify.md b/docs/source/_posts/plugsin-shopify.md
new file mode 100644
index 000000000..c2775cf4f
--- /dev/null
+++ b/docs/source/_posts/plugsin-shopify.md
@@ -0,0 +1,19 @@
+---
+title: Shopify Plugin 多shopify 店铺管理平台
+tags:
+ - Shopify
+ - Larave
+ - MySQL
+ - Redis
+ - Compose
+ - Php
+ - API
+categories:
+ - Laravel
+ - Plugins
+date: 2024-02-20 14:23:12
+description: Shopify plugin 是一套基于NexAmerchant 开发与设计的 多Shopify 店铺管理运营的平台
+lang: zh-CN
+---
+# About Shopify Plugin
+> Shopify plugin 是一套基于NexAmerchant 开发与设计的 多Shopify 店铺管理运营的平台,基于Shopify Admin API 接口,实现对多Shopify店铺的管理运营,从而更好的提升Shopify店铺的效率
\ No newline at end of file
diff --git "a/docs/source/_posts/\345\246\202\344\275\225\345\210\233\345\273\272\344\270\200\344\270\252\344\272\247\345\223\201\346\216\250\345\271\277\351\241\265\351\235\242.md" "b/docs/source/_posts/\345\246\202\344\275\225\345\210\233\345\273\272\344\270\200\344\270\252\344\272\247\345\223\201\346\216\250\345\271\277\351\241\265\351\235\242.md"
new file mode 100644
index 000000000..6a90dc521
--- /dev/null
+++ "b/docs/source/_posts/\345\246\202\344\275\225\345\210\233\345\273\272\344\270\200\344\270\252\344\272\247\345\223\201\346\216\250\345\271\277\351\241\265\351\235\242.md"
@@ -0,0 +1,45 @@
+---
+title: 如何创建一个商品推广页面,Langing page 页面
+tags:
+ - Larave
+ - Compose
+ - Php
+ - Mysql
+ - Langing page
+categories:
+ - 产品
+ - 使用手册
+date: 2024-03-03 14:23:12
+description: 如何创建一个商品推广页面,Langing page 页面
+lang: zh-CN
+---
+
+> 实现产品页面的生成Langing page连接
+
+## 前提
+1)需要有数据库使用基础
+2)需要有一定的 HTML代码基础
+3)需要有宝塔或者一定的 sftp 等工具使用基础
+
+## 准备工作
+做好一个LP商品页面,并且可以正常打开查看
+
+## 上传到服务器
+需要上传到一个可以网站打开,并且也是可以正常html 预览的位置,获取到对应的 URL,比如
+```
+https://www.example.com/hao123/
+```
+
+## 修改代码保存到数据库
+1) 在代码的顶部,需要在全部的静态内容的最前面,这个代码是实现了,对于 Html Base 不是太清楚的可以,可以从这儿查看学习使用 [mozilla base](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/base)
+```
+
+```
+2) 本地数据库 为 lps 表中。添加一条记录,需要留意的就是 slug 字段需要为唯一,这个是后面的 推广连接的 url 内容
+
+## 获取产品页面
+
+```
+https://www.example.com/products/{$slug}
+```
+> 通过上面的页面,打开验证是否正常预览打开,如果有资源没有加载的情况,需要检查内容是否缺少,和 base 的位置是否正确。
\ No newline at end of file
diff --git "a/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(Size And Color).md" "b/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(Size And Color).md"
new file mode 100644
index 000000000..baf8cbd0e
--- /dev/null
+++ "b/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(Size And Color).md"
@@ -0,0 +1,81 @@
+---
+title: 如何基于Shopify创建一个推广商品 (基本版本 需要有 color and size)
+tags:
+ - Larave
+ - Compose
+ - Php
+ - Shopify
+ - OneBuy
+categories:
+ - 产品
+ - 使用手册
+date: 2024-03-02 14:23:12
+description: 如何基于Shopify创建一个推广商品 (基本版本 需要有 color and size)
+lang: zh-CN
+---
+这篇文章主要是描述基于shopify的商品,实现与 shopify 与 店铺的对接实现生成 checkout 页面
+
+# 获取商品
+
+## 获取全部商品
+
+```
+php artisan shopify:product:get
+```
+> 获取对应Shopify平台的全部商品的内容到本地数据库 shopify_products
+
+## 获取指定商品ID的商品
+
+```
+php artisan shopify:product:get {--prod_id=} {--force=}
+```
+> 获取shopify 上莫个商品到本地数据库, 对于需要单属性的实现,可以参考
+
+### 获取指定商品ID的商品参数
+1) prod_id 表示 shopify 的商品ID,具体Shopify ID的获取,可以通过 **获取全部商品** 来查看,对应的数据会保存到 shopify_products 表。
+2) force 表示是否强制处理,对于有一些数据已经在本地上存在后,需要使用这个方法去强制获取最新的 Shopify 商品数据内容,再做更新
+3)**现在默认导入到本地是划分到一个有优惠活动的栏目中,对于有需要的不同分类,需要在代码上面做下手动的修改**
+
+## 验证后台是否有对于的商品,商品图片,商品SKU这些内容
+1)在完成上面的操作的时候,就会发现后台已经有了基于 Shopify 的ID 为基础的商品内容存在,这个时候,对于有banner 和 size ,销售价格,商品SKU图片的需要调整的,都会在商品后台去调整。
+2)对于新的一个平台,需要添加上 FAQ, 商品的 Comments 内容,对应的已经提供了具体的模板,上传到对应的服务器
+Faq 上传的位置与文件名称
+```
+./storage/imports/faq.xlsx
+```
+执行 FAQ 脚本内容的导入 force 是针对与前面已经有了需要做更新处理 **数据保存在 Redis中**
+```
+onebuy:import:faq {--force=}
+```
+商品评论,其中 3140 是本地数据库对应商品的 ID
+```
+./storage/imports/comments_3140.xlsx
+```
+执行 商品 评论内容的导入 prod_id 这个是 本地数据库的商品ID, force 是针对前面已经有了对应的内容,做了对应的调整,会做老的评论删除,重新更新新的评论到服务器 **数据保存在 Redis中**
+```
+onebuy:import:products:comment {--prod_id=} {--force=}
+```
+## 获取商品的 checkout 连接
+```
+https://www.example.com/onebuy/{$shopify_id}
+```
+> 参数是否正常打开,如果可以打开,验证下对应的内容是否都有。验证内容事项
+
+## 对于需要给 SKU 排序的操作为
+1) 在对应的 默认 Redis 中的 默认数据库,添加一条基于商品加 属性ID的标识,现在只支持 23(Color) 属性的排序, Redis Key 类型为 Hash
+
+```
+product_attr_sort_23_3410
+```
+2) 对应里面的内容为
+```
+Key 为属性ID
+Value 为排序ID 比如 0,1,2,3
+```
+
+## 验证 checkout页面 是否工作正常
+1)发起商品支付,是否有报错情况。
+2)查看 Banner, img size, 评论, FAQ,SKU 图片是否正确,价格是否正常。
+3)快递费用的查看,没有平台的快递费用可能不一样的情况,这块数据需要到后台快递栏目中修改与查看
+4)查看对应的协议内容,文档是否正常,这块数据是基于每个本地数据库与对应的区域来获取识别的
+
diff --git "a/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(\345\215\225\345\261\236\346\200\247).md" "b/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(\345\215\225\345\261\236\346\200\247).md"
new file mode 100644
index 000000000..1b2315760
--- /dev/null
+++ "b/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(\345\215\225\345\261\236\346\200\247).md"
@@ -0,0 +1,81 @@
+---
+title: 如何基于Shopify创建一个推广商品 (单属性)
+tags:
+ - Larave
+ - Compose
+ - Php
+ - Shopify
+ - OneBuy
+categories:
+ - 产品
+ - 使用手册
+date: 2024-03-03 14:23:12
+description: 如何基于Shopify创建一个推广商品 (单属性)
+lang: zh-CN
+---
+这篇文章主要是描述基于shopify的商品,实现与 shopify 与 店铺的对接实现生成 checkout 页面
+
+# 获取商品
+
+## 获取全部商品
+
+```
+php artisan shopify:product:get
+```
+> 获取对应Shopify平台的全部商品的内容到本地数据库 shopify_products
+
+## 获取指定商品ID的商品
+
+```
+shopify:product:getv2 {--prod_id=}
+```
+> 获取shopify 上莫个商品到本地数据库, 对于需要单属性的实现,可以参考
+
+### 获取指定商品ID的商品参数
+1) prod_id 表示 shopify 的商品ID,具体Shopify ID的获取,可以通过 **获取全部商品** 来查看,对应的数据会保存到 shopify_products 表。
+2) force 表示是否强制处理,对于有一些数据已经在本地上存在后,需要使用这个方法去强制获取最新的 Shopify 商品数据内容,再做更新
+3)**现在默认导入到本地是划分到一个有优惠活动的栏目中,对于有需要的不同分类,需要在代码上面做下手动的修改**
+
+## 验证后台是否有对于的商品,商品图片,商品SKU这些内容
+1)在完成上面的操作的时候,就会发现后台已经有了基于 Shopify 的ID 为基础的商品内容存在,这个时候,对于有banner 和 size ,销售价格,商品SKU图片的需要调整的,都会在商品后台去调整。
+2)对于新的一个平台,需要添加上 FAQ, 商品的 Comments 内容,对应的已经提供了具体的模板,上传到对应的服务器
+Faq 上传的位置与文件名称
+```
+./storage/imports/faq.xlsx
+```
+执行 FAQ 脚本内容的导入 force 是针对与前面已经有了需要做更新处理 **数据保存在 Redis中**
+```
+onebuy:import:faq {--force=}
+```
+商品评论,其中 3140 是本地数据库对应商品的 ID
+```
+./storage/imports/comments_3140.xlsx
+```
+执行 商品 评论内容的导入 prod_id 这个是 本地数据库的商品ID, force 是针对前面已经有了对应的内容,做了对应的调整,会做老的评论删除,重新更新新的评论到服务器 **数据保存在 Redis中**
+```
+onebuy:import:products:comment {--prod_id=} {--force=}
+```
+## 获取商品的 checkout 连接
+```
+https://www.example.com/onebuy/v2/{$shopify_id}
+```
+> 参数是否正常打开,如果可以打开,验证下对应的内容是否都有。验证内容事项
+
+## 对于需要给 SKU 排序的操作为
+1) 在对应的 默认 Redis 中的 默认数据库,添加一条基于商品加 属性ID的标识,现在只支持 23(Color) 属性的排序, Redis Key 类型为 Hash
+
+```
+product_attr_sort_23_3410
+```
+2) 对应里面的内容为
+```
+Key 为属性ID
+Value 为排序ID 比如 0,1,2,3
+```
+
+## 验证 checkout页面 是否工作正常
+1)发起商品支付,是否有报错情况。
+2)查看 Banner, img size, 评论, FAQ,SKU 图片是否正确,价格是否正常。
+3)快递费用的查看,没有平台的快递费用可能不一样的情况,这块数据需要到后台快递栏目中修改与查看
+4)查看对应的协议内容,文档是否正常,这块数据是基于每个本地数据库与对应的区域来获取识别的
+5)因为此商品为单品,从而会需要添加上1件,2件,多件商品的商品图片,从而可以更好的展示效果
\ No newline at end of file
diff --git "a/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(\346\227\240\345\261\236\346\200\247).md" "b/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(\346\227\240\345\261\236\346\200\247).md"
new file mode 100644
index 000000000..2bcef44c1
--- /dev/null
+++ "b/docs/source/_posts/\345\246\202\344\275\225\345\237\272\344\272\216Shopify\345\210\233\345\273\272\344\270\200\344\270\252\346\216\250\345\271\277\345\225\206\345\223\201(\346\227\240\345\261\236\346\200\247).md"
@@ -0,0 +1,72 @@
+---
+title: 如何基于Shopify创建一个推广商品 (无属性)
+tags:
+ - Larave
+ - Compose
+ - Php
+ - Shopify
+ - OneBuy
+categories:
+ - 产品
+ - 使用手册
+date: 2024-03-13 13:23:12
+description: 如何基于Shopify创建一个推广商品 (无属性)
+lang: zh-CN
+---
+这篇文章主要是描述基于shopify的商品,实现与 shopify 与 店铺的对接实现生成 checkout 页面
+
+# 商品获取
+
+## 获取全部商品
+
+```
+php artisan shopify:product:get
+```
+> 获取对应Shopify平台的全部商品的内容到本地数据库 shopify_products
+
+## 获取指定商品ID的商品
+
+```
+shopify:product:getv3 {--prod_id=}
+```
+> 获取shopify 上莫个商品到本地数据库, 对于需要无属性的实现,可以参考
+
+### 获取指定商品ID的商品参数
+1) prod_id 表示 shopify 的商品ID,具体Shopify ID的获取,可以通过 **获取全部商品** 来查看,对应的数据会保存到 shopify_products 表。
+2) force 表示是否强制处理,对于有一些数据已经在本地上存在后,需要使用这个方法去强制获取最新的 Shopify 商品数据内容,再做更新
+3)**现在默认导入到本地是划分到一个有优惠活动的栏目中,对于有需要的不同分类,需要在代码上面做下手动的修改**
+
+## 验证后台是否有对于的商品,商品图片,商品SKU这些内容
+1)在完成上面的操作的时候,就会发现后台已经有了基于 Shopify 的ID 为基础的商品内容存在,这个时候,对于有banner 和 size ,销售价格,商品SKU图片的需要调整的,都会在商品后台去调整。
+2)对于新的一个平台,需要添加上 FAQ, 商品的 Comments 内容,对应的已经提供了具体的模板,上传到对应的服务器
+Faq 上传的位置与文件名称
+```
+./storage/imports/faq.xlsx
+```
+执行 FAQ 脚本内容的导入 force 是针对与前面已经有了需要做更新处理 **数据保存在 Redis中**
+```
+onebuy:import:faq {--force=}
+```
+商品评论,其中 3140 是本地数据库对应商品的 ID
+```
+./storage/imports/comments_3140.xlsx
+```
+执行 商品 评论内容的导入 prod_id 这个是 本地数据库的商品ID, force 是针对前面已经有了对应的内容,做了对应的调整,会做老的评论删除,重新更新新的评论到服务器 **数据保存在 Redis中**
+```
+onebuy:import:products:comment {--prod_id=} {--force=}
+```
+# 获取商品的 checkout 连接
+```
+https://www.example.com/onebuy/v3/{$shopify_id}
+```
+> 参数是否正常打开,如果可以打开,验证下对应的内容是否都有。验证内容事项
+
+
+
+# 验证 checkout页面 是否工作正常
+1)发起商品支付,是否有报错情况。
+2)FAQ,SKU 图片是否正确,价格是否正常。
+3)快递费用的查看,没有平台的快递费用可能不一样的情况,这块数据需要到后台快递栏目中修改与查看
+4)查看对应的协议内容,文档是否正常,这块数据是基于每个本地数据库与对应的区域来获取识别的
+5)因为此商品为单品,从而会需要添加上1件,2件,多件商品的商品图片,从而可以更好的展示效果
+
diff --git "a/docs/source/_posts/\345\246\202\344\275\225\346\267\273\345\212\240Facebook \345\203\217\347\264\240.md" "b/docs/source/_posts/\345\246\202\344\275\225\346\267\273\345\212\240Facebook \345\203\217\347\264\240.md"
new file mode 100644
index 000000000..38086e82b
--- /dev/null
+++ "b/docs/source/_posts/\345\246\202\344\275\225\346\267\273\345\212\240Facebook \345\203\217\347\264\240.md"
@@ -0,0 +1,29 @@
+---
+title: 如何添加Facebook 像素
+tags:
+ - Larave
+ - 广告
+ - Facebook
+ - OneBuy
+categories:
+ - 产品
+ - 使用手册
+date: 2024-03-03 14:23:12
+description: 如何添加Facebook 像素
+lang: zh-CN
+---
+Facebook 是海外社交的主要平台,从而我们的系统是可以通过在 env 文件中添加对于的ID,从而支持一套完整的 Facebook 广告监控流程。
+
+# Facebook 像素准备
+具体的流程,可以参考 Facebook 广告平台,注册申请。
+
+# 配置 Facebook 像素
+
+在 .env 文件中添加 添加像素ID,下面的示例是添加了2个,一个是 1111, 另外一个是 1234,多个是使用英文状态下的逗号来区分
+```
+ONEBUY_GTAG=1111,1234
+```
+
+# 查看是否生效
+1)一个是查看对于的结算页面是否有了对于的值,可以通过页面源代码的方式查看
+2)查看 facebook 广告ID是否已经收到对于的数据内容,这种一般都是基于 onebuy 插件生成的页面。
\ No newline at end of file
diff --git "a/docs/source/_posts/\346\212\225\346\265\201\345\271\277\345\221\212\345\216\237\347\220\206\344\270\216\346\265\201\347\250\213\350\257\264\346\230\216.md" "b/docs/source/_posts/\346\212\225\346\265\201\345\271\277\345\221\212\345\216\237\347\220\206\344\270\216\346\265\201\347\250\213\350\257\264\346\230\216.md"
new file mode 100644
index 000000000..cd4e7050d
--- /dev/null
+++ "b/docs/source/_posts/\346\212\225\346\265\201\345\271\277\345\221\212\345\216\237\347\220\206\344\270\216\346\265\201\347\250\213\350\257\264\346\230\216.md"
@@ -0,0 +1,39 @@
+---
+title: 投流广告原理与流程说明
+tags:
+ - Larave
+ - 广告
+categories:
+ - 产品
+ - 使用手册
+date: 2024-03-03 13:23:12
+description: 投流广告原理与流程说明
+lang: zh-CN
+---
+
+> 实现投流量过程中的订单回告,S2S
+
+
+## 工作原理
+整个工作原理为,广告商通过告诉得到他们自己生成的一个唯一值,我们就叫他 token吧,通过把这个token 告诉到我们的结算页面与LP页面,比如
+
+```
+https://www.example.com/products/{slug}?refer={token}
+```
+具体实现代码为
+```
+$refer = $request->input("refer");
+
+if(!empty($refer)) {
+ $request->session()->put('refer', $refer);
+}
+```
+对应的产品或者结算页面就是把对应的内容保存到服务器的session数据中,并且在用户发生订单后,也是会把对应的 token 内容保存到 订单中。
+
+## 订单回告
+> 在订单支付完成后,会有对应的脚本,对这些已支付的订单实现同步到其他平台,比如仓库系统,shopify 系统,广告系统等平台,这个时候就会获取到对应的 token 内容,根据广告商的参数需要,同步到对应的平台。
+
+## 注意点
+1) 在订单推送工程中,需要留意网络通信的情况,是否正常,对方API是否有保存的情况,这种情况一般都是基于日志的方式保存,从而方便问题的查询定位。
+2)推送的机制是需要只能成功推送一次原理,所以需要有对应的数据标识,对于已经推送过的订单,要标识下状态,避免重复的推送处理。
+
diff --git a/docs/source/about/index.md b/docs/source/about/index.md
new file mode 100644
index 000000000..ec29d2dc3
--- /dev/null
+++ b/docs/source/about/index.md
@@ -0,0 +1,51 @@
+---
+title: About
+date: 2023-12-01 10:00:30
+lang: zh-CN
+---
+
+## About Author
+
+### Hi 👋,I'm Steve
+
+
+- 🔭 I’m currently a Developer and SRE engineer
+- 🌱 My blog is https://medium.com/@cdndns
+
+
+
+
+
+
+
+## About Project
+> Nexa Merchant is a ecommerce open source, it's build base on laravel and vite,you can use it build self ecommerce online website,or use it build a ecommerce SASS.
+
+### Project Module
+
+#### Admin
+
+#### Products
+
+#### Order
+
+#### Market
+
+#### Sales
+
+#### Catelog
+
+#### Shipping
+
+#### Tax
+
+#### User
+
+#### SocialShare
+
+#### Payment
+
+#### FPC
+
+#### CMS
+
diff --git a/docs/source/categories/index.md b/docs/source/categories/index.md
new file mode 100644
index 000000000..3de8b5fe7
--- /dev/null
+++ b/docs/source/categories/index.md
@@ -0,0 +1,5 @@
+---
+title: Categories
+date: 2024-01-19 12:39:04
+type: categories
+---
\ No newline at end of file
diff --git a/docs/source/index.md b/docs/source/index.md
new file mode 100644
index 000000000..5c38d4309
--- /dev/null
+++ b/docs/source/index.md
@@ -0,0 +1,5 @@
+---
+title: Nexa Merchant Laravel ecommerce
+date: 2024-02-20 12:39:04
+type: homepage
+---
\ No newline at end of file
diff --git a/docs/source/tags/index.md b/docs/source/tags/index.md
new file mode 100644
index 000000000..08ce211bd
--- /dev/null
+++ b/docs/source/tags/index.md
@@ -0,0 +1,5 @@
+---
+title: Tags
+date: 2024-01-19 12:39:04
+type: tags
+---
\ No newline at end of file
diff --git a/lang/gb/auth.php b/lang/gb/auth.php
new file mode 100755
index 000000000..08a6ce839
--- /dev/null
+++ b/lang/gb/auth.php
@@ -0,0 +1,19 @@
+ 'Ці дані не відповідають нашим записам.',
+ 'throttle' => 'Забагато спроб входу. Спробуйте ще раз через :seconds секунд.',
+
+];
diff --git a/lang/gb/pagination.php b/lang/gb/pagination.php
new file mode 100755
index 000000000..9777c14c5
--- /dev/null
+++ b/lang/gb/pagination.php
@@ -0,0 +1,19 @@
+ '« Попередня',
+ 'next' => 'Наступна »',
+
+];
diff --git a/lang/gb/passwords.php b/lang/gb/passwords.php
new file mode 100755
index 000000000..6fb62c7af
--- /dev/null
+++ b/lang/gb/passwords.php
@@ -0,0 +1,22 @@
+ 'Пароль повинен містити щонайменше шість символів і відповідати підтвердженню.',
+ 'reset' => 'Ваш пароль був скинутий!',
+ 'sent' => 'Ми відправили вам посилання для скидання пароля на вашу електронну пошту!',
+ 'token' => 'Цей токен для скидання пароля недійсний.',
+ 'user' => "Ми не можемо знайти користувача за вказаною адресою електронної пошти.",
+
+];
diff --git a/lang/gb/validation.php b/lang/gb/validation.php
new file mode 100755
index 000000000..9b0e1d7aa
--- /dev/null
+++ b/lang/gb/validation.php
@@ -0,0 +1,160 @@
+ 'Поле :attribute повинно бути прийнято.',
+ 'active_url' => 'Поле :attribute має невірний URL.',
+ 'after' => 'Поле :attribute має бути датою після :date.',
+ 'after_or_equal' => 'Поле :attribute має бути датою після або рівною :date.',
+ 'alpha' => 'Поле :attribute може містити лише букви.',
+ 'alpha_dash' => 'Поле :attribute може містити лише букви, цифри, дефіси та підкреслення.',
+ 'alpha_num' => 'Поле :attribute може містити лише букви та цифри.',
+ 'array' => 'Поле :attribute повинно бути масивом.',
+ 'before' => 'Поле :attribute має бути датою до :date.',
+ 'before_or_equal' => 'Поле :attribute має бути датою до або рівною :date.',
+
+ 'between' => [
+ 'numeric' => 'Поле :attribute повинно бути між :min та :max.',
+ 'file' => 'Поле :attribute повинно бути між :min та :max кілобайтів.',
+ 'string' => 'Поле :attribute повинно бути між :min та :max символів.',
+ 'array' => 'Поле :attribute повинно містити від :min до :max елементів.',
+ ],
+
+ 'boolean' => 'Поле :attribute повинно бути true або false.',
+ 'confirmed' => 'Підтвердження поля :attribute не відповідає.',
+ 'date' => 'Поле :attribute не є коректною датою.',
+ 'date_format' => 'Поле :attribute не відповідає формату :format.',
+ 'different' => 'Поля :attribute і :other повинні бути різними.',
+ 'digits' => 'Поле :attribute повинно містити :digits цифр.',
+ 'digits_between' => 'Поле :attribute повинно містити від :min до :max цифр.',
+ 'dimensions' => 'Поле :attribute має невірні розміри зображення.',
+ 'distinct' => 'Поле :attribute містить дубльоване значення.',
+ 'email' => 'Поле :attribute повинно бути дійсною адресою електронної пошти.',
+ 'exists' => 'Обране значення поля :attribute є недійсним.',
+ 'file' => 'Поле :attribute повинно бути файлом.',
+ 'filled' => 'Поле :attribute повинно містити значення.',
+
+ 'gt' => [
+ 'numeric' => 'Поле :attribute повинно бути більше ніж :value.',
+ 'file' => 'Поле :attribute повинно бути більше ніж :value кілобайтів.',
+ 'string' => 'Поле :attribute повинно містити більше ніж :value символів.',
+ 'array' => 'Поле :attribute повинно містити більше ніж :value елементів.',
+ ],
+
+ 'gte' => [
+ 'numeric' => 'Поле :attribute повинно бути більше або рівним :value.',
+ 'file' => 'Поле :attribute повинно бути більше або рівним :value кілобайтів.',
+ 'string' => 'Поле :attribute повинно містити більше або рівно :value символів.',
+ 'array' => 'Поле :attribute повинно містити :value елементів або більше.',
+ ],
+
+ 'image' => 'Поле :attribute повинно бути зображенням.',
+ 'in' => 'Обране значення поля :attribute є недійсним.',
+ 'in_array' => 'Поле :attribute не існує в :other.',
+ 'integer' => 'Поле :attribute повинно бути цілим числом.',
+ 'ip' => 'Поле :attribute повинно бути дійсною IP-адресою.',
+ 'ipv4' => 'Поле :attribute повинно бути дійсною IPv4-адресою.',
+ 'ipv6' => 'Поле :attribute повинно бути дійсною IPv6-адресою.',
+ 'json' => 'Поле :attribute повинно бути дійсним JSON-рядком.',
+
+ 'lt' => [
+ 'numeric' => 'Поле :attribute повинно бути менше ніж :value.',
+ 'file' => 'Поле :attribute повинно бути менше ніж :value кілобайтів.',
+ 'string' => 'Поле :attribute повинно містити менше ніж :value символів.',
+ 'array' => 'Поле :attribute повинно містити менше ніж :value елементів.',
+ ],
+
+ 'lte' => [
+ 'numeric' => 'Поле :attribute повинно бути менше або рівним :value.',
+ 'file' => 'Поле :attribute повинно бути менше або рівним :value кілобайтів.',
+ 'string' => 'Поле :attribute повинно містити менше або рівно :value символів.',
+ 'array' => 'Поле :attribute повинно містити не більше ніж :value елементів.',
+ ],
+
+ 'max' => [
+ 'numeric' => 'Поле :attribute не може бути більше ніж :max.',
+ 'file' => 'Поле :attribute не може бути більше ніж :max кілобайтів.',
+ 'string' => 'Поле :attribute не може бути більше ніж :max символів.',
+ 'array' => 'Поле :attribute не може містити більше ніж :max елементів.',
+ ],
+
+ 'mimes' => 'Поле :attribute повинно бути файлом типу: :values.',
+ 'mimetypes' => 'Поле :attribute повинно бути файлом типу: :values.',
+
+ 'min' => [
+ 'numeric' => 'Поле :attribute повинно бути принаймні :min.',
+ 'file' => 'Поле :attribute повинно бути принаймні :min кілобайтів.',
+ 'string' => 'Поле :attribute повинно містити принаймні :min символів.',
+ 'array' => 'Поле :attribute повинно містити принаймні :min елементів.',
+ ],
+
+ 'not_in' => 'Обране значення поля :attribute є недійсним.',
+ 'not_regex' => 'Формат поля :attribute є недійсним.',
+ 'numeric' => 'Поле :attribute повинно бути числом.',
+ 'present' => 'Поле :attribute повинно бути присутнім.',
+ 'regex' => 'Формат поля :attribute є недійсним.',
+ 'required' => 'Поле :attribute є обов’язковим.',
+ 'required_if' => 'Поле :attribute є обов’язковим, коли :other є :value.',
+ 'required_unless' => 'Поле :attribute є обов’язковим, якщо :other не є в :values.',
+ 'required_with' => 'Поле :attribute є обов’язковим, коли :values присутні.',
+ 'required_with_all' => 'Поле :attribute є обов’язковим, коли всі значення :values присутні.',
+ 'required_without' => 'Поле :attribute є обов’язковим, коли значення :values відсутні.',
+ 'required_without_all' => 'Поле :attribute є обов’язковим, коли всі значення :values відсутні.',
+ 'same' => 'Поля :attribute і :other повинні співпадати.',
+
+ 'size' => [
+ 'numeric' => 'Поле :attribute повинно бути розміром :size.',
+ 'file' => 'Поле :attribute повинно бути розміром :size кілобайтів.',
+ 'string' => 'Поле :attribute повинно містити :size символів.',
+ 'array' => 'Поле :attribute повинно містити :size елементів.',
+ ],
+
+ 'string' => 'Поле :attribute повинно бути рядком.',
+ 'timezone' => 'Поле :attribute повинно бути дійсним часовим поясом.',
+ 'unique' => 'Поле :attribute вже існує.',
+ 'uploaded' => 'Поле :attribute не вдалося завантажити.',
+ 'url' => 'Формат поля :attribute є недійсним.',
+
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'власне-повідомлення',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap attribute place-holders
+ | with something more reader friendly such as E-Mail Address instead
+ | of "email". This simply helps us make messages a little cleaner.
+ |
+ */
+
+ 'attributes' => [],
+
+];
diff --git a/packages/Nicelizhi/Admin/src/Providers/AdminServiceProvider.php b/packages/Nicelizhi/Admin/src/Providers/AdminServiceProvider.php
index d0ae3ca5c..2971ef053 100644
--- a/packages/Nicelizhi/Admin/src/Providers/AdminServiceProvider.php
+++ b/packages/Nicelizhi/Admin/src/Providers/AdminServiceProvider.php
@@ -19,7 +19,7 @@ public function boot(Router $router)
{
Route::middleware('web')->group(__DIR__ . '/../Routes/web.php');
- $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'admin');
+ //$this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'admin');
$this->loadViewsFrom(__DIR__ . '/../Resources/views', 'admin');
@@ -29,7 +29,7 @@ public function boot(Router $router)
$this->registerACL();
- $this->app->register(EventServiceProvider::class);
+ // $this->app->register(EventServiceProvider::class);
}
/**
diff --git a/packages/Nicelizhi/Binom/README b/packages/Nicelizhi/Binom/README
new file mode 100644
index 000000000..10b828f73
--- /dev/null
+++ b/packages/Nicelizhi/Binom/README
@@ -0,0 +1 @@
+# Binom
\ No newline at end of file
diff --git a/packages/Webkul/AdminV2/composer.json b/packages/Nicelizhi/Binom/composer.json
similarity index 66%
rename from packages/Webkul/AdminV2/composer.json
rename to packages/Nicelizhi/Binom/composer.json
index 37ba7faa4..bcf4443c3 100644
--- a/packages/Webkul/AdminV2/composer.json
+++ b/packages/Nicelizhi/Binom/composer.json
@@ -1,7 +1,7 @@
{
- "name": "nicelizhi/bagisto-admin",
+ "name": "nicelizhi/bagisto-binom",
"license": "MIT",
- "description" : "Admin package",
+ "description" : "binom package",
"authors": [
{
"name": "nicelizhi",
@@ -11,13 +11,13 @@
"require": {},
"autoload": {
"psr-4": {
- "Nicelizhi\\Admin\\": "src/"
+ "Nicelizhi\\Binom\\": "src/"
}
},
"extra": {
"laravel": {
"providers": [
- "Nicelizhi\\Admin\\Providers\\AdminServiceProvider"
+ "Nicelizhi\\Binom\\Providers\\CheckoutServiceProvider"
],
"aliases": {}
}
diff --git a/packages/Nicelizhi/Binom/src/Config/binom.php b/packages/Nicelizhi/Binom/src/Config/binom.php
new file mode 100644
index 000000000..e8607146a
--- /dev/null
+++ b/packages/Nicelizhi/Binom/src/Config/binom.php
@@ -0,0 +1,5 @@
+ env('BINOM_API_HOST'),
+ 'api_key' => env('BINOM_API_KEY'),
+];
\ No newline at end of file
diff --git a/packages/Nicelizhi/Binom/src/Config/menu.php b/packages/Nicelizhi/Binom/src/Config/menu.php
new file mode 100644
index 000000000..757f73e39
--- /dev/null
+++ b/packages/Nicelizhi/Binom/src/Config/menu.php
@@ -0,0 +1,14 @@
+ 'binom',
+ 'name' => 'admin::binom.Campaigns.index',
+ 'route' => 'binom.Campaigns.index',
+ 'sort' => 10,
+ 'icon' => 'icon-dashboard',
+ ]
+];
\ No newline at end of file
diff --git a/packages/Nicelizhi/Binom/src/Providers/BinomServiceProvider.php b/packages/Nicelizhi/Binom/src/Providers/BinomServiceProvider.php
new file mode 100644
index 000000000..01081ff36
--- /dev/null
+++ b/packages/Nicelizhi/Binom/src/Providers/BinomServiceProvider.php
@@ -0,0 +1,86 @@
+group(__DIR__ . '/../Routes/web.php');
+
+ $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'binom');
+
+ $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'binom');
+
+ $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
+
+
+ /*
+ $this->app->register(EventServiceProvider::class);
+ */
+
+ if ($this->app->runningInConsole()) {
+ $this->publishes([
+ __DIR__.'/../Resources/views' => $this->app->resourcePath('themes/default/views'),
+ ], 'binom');
+ }
+
+ }
+
+ /**
+ * Register services.
+ *
+ * @return void
+ */
+ public function register()
+ {
+ $this->registerCommands();
+ $this->registerConfig();
+ }
+
+ /**
+ * Register package config.
+ *
+ * @return void
+ */
+ protected function registerConfig()
+ {
+
+ $this->mergeConfigFrom(
+ dirname(__DIR__) . '/Config/menu.php', 'menu.admin'
+ );
+
+
+ $this->mergeConfigFrom(
+ dirname(__DIR__) . '/Config/binom.php', 'binom'
+ );
+
+ }
+
+ /**
+ * Register the console commands of this package.
+ *
+ * @return void
+ */
+ protected function registerCommands(): void
+ {
+ if ($this->app->runningInConsole()) {
+ $this->commands([
+ ]);
+ }
+ }
+}
diff --git a/packages/Nicelizhi/Binom/src/Routes/web.php b/packages/Nicelizhi/Binom/src/Routes/web.php
new file mode 100644
index 000000000..b3d9bbc7f
--- /dev/null
+++ b/packages/Nicelizhi/Binom/src/Routes/web.php
@@ -0,0 +1 @@
+orderRepository->findOrFail($order_id);
- return view('checkout::product-order-success-'.$this->view_prefix_key, compact('order'));
+ $fb_ids = config('onebuy.fb_ids');
+ $ob_adv_id = config('onebuy.ob_adv_id');
+
+ return view('checkout::product-order-success-'.$this->view_prefix_key, compact('order',"fb_ids","ob_adv_id"));
}
/**
@@ -460,7 +463,8 @@ public function downsell(Request $request) {
try {
$order = $this->smartButton->createOrder($this->buildRequestBody());
- Log::info("checkout v2 order id". $order->id);
+ //Log::info("checkout v2 order id". $order->id);
+ Log::info("checkout v2 order ". json_encode($order));
$data = [];
$data['order'] = $order;
$data['code'] = 200;
@@ -469,7 +473,7 @@ public function downsell(Request $request) {
$data['redirect'] = $order->result->links[1]->href;
return response()->json($data);
} catch (\Exception $e) {
- return response()->json(json_decode($e->getMessage()), 400);
+ return response()->json($e->getMessage(), 400);
}
}
diff --git a/packages/Nicelizhi/Checkout/src/Resources/views/product-detail-checkoutv1.blade.php b/packages/Nicelizhi/Checkout/src/Resources/views/product-detail-checkoutv1.blade.php
index 156902cab..fa5105f16 100644
--- a/packages/Nicelizhi/Checkout/src/Resources/views/product-detail-checkoutv1.blade.php
+++ b/packages/Nicelizhi/Checkout/src/Resources/views/product-detail-checkoutv1.blade.php
@@ -653,7 +653,7 @@
- 2x Hatmeo Heated Vest
+ 2x Hatmeo
$ 59.99 /ea
@@ -710,7 +710,7 @@
-
@@ -1514,7 +1514,7 @@
- About Us
+ About Us
Contact Us
Shipping Policy
Privacy Policy
@@ -1556,7 +1556,7 @@
+
+
+
-
-
+
+
+
+
+
+
+
+
+ meta_title;?>
+ html_content;?>
+
+
+
\ No newline at end of file
diff --git a/packages/Webkul/OneBuy/src/Resources/views/components/layout.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/components/layout.blade.php
similarity index 100%
rename from packages/Webkul/OneBuy/src/Resources/views/components/layout.blade.php
rename to packages/Nicelizhi/OneBuy/src/Resources/views/components/layout.blade.php
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-de.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-de.blade.php
new file mode 100644
index 000000000..8b77a9daf
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-de.blade.php
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-es.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-es.blade.php
new file mode 100644
index 000000000..8b77a9daf
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-es.blade.php
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-fr.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-fr.blade.php
new file mode 100644
index 000000000..db0854efd
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-fr.blade.php
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-gb.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-gb.blade.php
new file mode 100644
index 000000000..98e68e731
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-gb.blade.php
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-us.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-us.blade.php
new file mode 100644
index 000000000..63bf8c69b
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container-us.blade.php
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container.blade.php
new file mode 100644
index 000000000..9e36e4322
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/footer-container.blade.php
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/payments-de.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-de.blade.php
new file mode 100644
index 000000000..c787624ac
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-de.blade.php
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/payments-en.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-en.blade.php
new file mode 100644
index 000000000..c787624ac
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-en.blade.php
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/payments-es.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-es.blade.php
new file mode 100644
index 000000000..c787624ac
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-es.blade.php
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/payments-fr.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-fr.blade.php
new file mode 100644
index 000000000..c787624ac
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-fr.blade.php
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/payments-gb.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-gb.blade.php
new file mode 100644
index 000000000..9791ca06f
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-gb.blade.php
@@ -0,0 +1,338 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/payments-us.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-us.blade.php
new file mode 100644
index 000000000..c787624ac
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/payments-us.blade.php
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/payments.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/payments.blade.php
new file mode 100644
index 000000000..c787624ac
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/payments.blade.php
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Nicelizhi/OneBuy/src/Resources/views/product-detail-de.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/product-detail-de.blade.php
new file mode 100644
index 000000000..251c108d2
--- /dev/null
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/product-detail-de.blade.php
@@ -0,0 +1,2882 @@
+@inject ('reviewHelper', 'Webkul\Product\Helpers\Review')
+@inject ('productViewHelper', 'Webkul\Product\Helpers\View')
+
+@php
+ $productBaseImage = product_image()->getProductBaseImage($product);
+@endphp
+
+
+
+
+ {{ trim($product->meta_title) != "" ? $product->meta_title : $product->name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @lang('onebuy::app.product.order.Secure Checkout')
+
+
+
+
+ $package_product) { ?>
+
+
+
+
+
+ @lang('onebuy::app.product.order.RECOMMENDED DEAL')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @lang('onebuy::app.product.order.Express Checkout')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@lang('onebuy::app.product.order.Shipping')
+
+@lang('onebuy::app.product.order.Enter your contact information'):
+
+
+
+
+
+
+
+
+@lang('onebuy::app.product.order.Order Summary')
+
+
+-
+
+
+
+ @lang('onebuy::app.product.order.QTY'):
+
+
+
+
+
+
+
+
+
+
+@lang('onebuy::app.product.order.Subtotal'):
+
+
+
+
+
+@lang('onebuy::app.product.order.Discount'):
+
+
+
+
+
+@lang('onebuy::app.product.order.Shipping'):
+
+
+
+
+
+
+
+@lang('onebuy::app.product.order.Total'):
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@lang('onebuy::app.product.step.Payment')
+
+@lang('onebuy::app.product.order.All transactions are secure and encrypted'):
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @lang('onebuy::app.product.order.What customers are saying about') Hatmeo
+
+
+
+
+
+ $comment) {
+ $comment = json_decode($comment);
+ //var_dump($comment);exit;
+ ?>
+
+
+
+ name, 0, 1);?>
+ name;?>
+
+
Verified Buyer
+
+
+
+
+
+
+
+
+
+
+ title;?>
+
+ content;?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @lang('onebuy::app.product.order.What customers are saying about')
+
+
+
+
+
+ $item) {
+ $item = json_decode($item);
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a;?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@include('onebuy::footer-container')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Webkul/OneBuy/src/Resources/views/product-detail.blade.php b/packages/Nicelizhi/OneBuy/src/Resources/views/product-detail-us.blade.php
similarity index 92%
rename from packages/Webkul/OneBuy/src/Resources/views/product-detail.blade.php
rename to packages/Nicelizhi/OneBuy/src/Resources/views/product-detail-us.blade.php
index 5d01772c3..75e5bc013 100644
--- a/packages/Webkul/OneBuy/src/Resources/views/product-detail.blade.php
+++ b/packages/Nicelizhi/OneBuy/src/Resources/views/product-detail-us.blade.php
@@ -6,7 +6,7 @@
@endphp
-
+
{{ trim($product->meta_title) != "" ? $product->meta_title : $product->name }}
@@ -23,6 +23,22 @@
+
+
+
+
-
-
-
-
-
-
- 4.9
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ What customers are saying about Hatmeo
- Average Rating
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ $comment) {
+ $comment = json_decode($comment);
+ //var_dump($comment);exit;
+ ?>
+
+
+
+ name, 0, 1);?>
+ name;?>
+
+
Verified Buyer
+
+
+
+
+
+
+
+
+
+
+ title;?>
+
+ content;?>
+
+
+
+
+
-
- 89%
- 11%
- 0%
- 0%
- 0%
-
-
-
+
-
-
-
- Emma Thompson
-
-
- "Listen up ladies, you need this in your life! I have been hated the way my bra would pop out my "fat" under the bra band, until I bought Hatmeo. No embarrassing armpit fats! No back straps or wires dig into the skin. Thank you!"
-
-
-
-
-
- Ava Williams
-
-
- "Excellent! I've been searching for a bra like this forever. This bra gives me a push-up effect & is comfortable on my shoulders and back. I'll buy another color now! My bra size is 38 D which is impossible to find in most places."
-
-
-
-
-
- Sophia Davis
-
-
- "I was looking at reviews for other brands and none of them fully convinced me. Finally came across this brand and this product and saw that almost everything was positive. Best ever!."
-
-
-
+
+
+
+
+
+ Frequently Asked Questions
+
+
+
+
+
+ $item) {
+ $item = json_decode($item);
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a;?>
+
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+just purchased: +product name +